Учебник: Регулярные выражения (regular expressions)

Учебник: Регулярные выражения (regular expressions)

Все мы используем поиск по строкам. Это касается не только программистов, но и любых бабушек, работающих с компьютером. При этом, одни люди страдают, а другие — используют регулярные выражения. Пара ситуаций для привлечения интереса: Вы пишете программу, в которой обрабатываются номера телефонов, допустим в формате +7(ххх)ххх-хх-хх. Возможно их надо найти в тексте, а может быть …

Разбор теста по STL (std::vector)

test_stl_results_1

Итак, решаемая в тесте задача сформулирована следующим образом: дан вектор целых чисел, необходимо вставить значение «0» перед каждым нечетным числом. Пусть, у нас уже есть такая функция: bool is_odd(int value) { return value % 2; } Предложено несколько вариантов решения, каждое из которых предлагается оценить по двум критериям — корректность результата и трудоемкость вычислений. При …

Разработка казуальных игр с помощью Qt Framework

Обнаружение столкновений объектов на графической сцене Qt

Содержание: Что нужно для выпуска игры? Чужой негативный опыт. Как не потратить время впустую? Мой личный опыт Чужой позитивный опыт Qt и мобильная разработка Заготовки для мобильной разработки игр с помощью Qt Список использованной литературы 1 Что нужно для выпуска игры? В этом разделе описано почему я предлагаю использовать Qt Framework. Многие хотят разрабатывать игры, …

Основы технологии MPI на примерах

MPI_Reduce_and_Bcast_efficiency

Параллельное программирование — очень актуальное направление, т.к. большинство современных вычислительных устройств (включая телефоны) являются многоядерными или многопроцессорными. В предыдущей записи я публиковал учебник по OpenMP, однако OpenMP позволяет программировать только системы с общей памятью — в большей части, многоядерные компьютеры. Основной проблемой таких систем является плохая масштабируемость — не так легко и дешево увеличить число …

Учебник по OpenMP

openmp_architectude

Содержание: Вычислительные системы. Идеология OpenMP Синхронизация — критические секции, atomic, barrier Разделение задач между потоками Параллельный цикл Параллельные задачи (parallel tasks) Параллельные секции Заключение и дополнительная литература OpenMP — это библиотека для параллельного программирования вычислительных систем с общей памятью (дальше кратко описано что это за системы). Официально поддерживается Си, С++ и Фортран, однако можно найти …

Примеры анализа сложности алгоритмов

algorithm_example_4_5

Содержание: Еще одна статья по анализу алгоритмов? Пример 1 Пример 2 Пример 3 Пример 4 Пример 5 Заключение и дополнительная литература Еще одна статья по анализу алгоритмов? Давным давно я написал статью, в которой была параллельная реализация алгоритма быстрой сортировки [1]. По ней я получил обратную связь. Одни ребята написали мне, что быстрая сортировка будет …

Разработка игры для развития памяти под Android (C++, Qt)

drawing_screenshot

Накидал очередную игрушку под Android. Поделка оказалась играбельной, выложил на маркет и решил написать статью о процессе разработки. Вообще, на habrahabr есть куча статей в стиле «моя первая игра под Android», но зачастую [1,2]: играть в это совсем скучно; в комментариях жалуются на отсутствие технических деталей; разработчик не предоставляет читателям какую-либо часть кода для использования …

Процесс разработки программного обеспечения ICONIX

iconix

В предыдущих статьях я рассказывал про некоторые диаграммы UML — все эти статьи были из одного цикла, целью которого является описание полноценного процесса проектирования ICONIX: диаграммы использования (use-case) [UML_use-case]; диаграммы пригодности (robustness) [UML_robustness]; диаграммы последовательности (sequence) [UML_sequence]; диаграммы классов (class) [UML_class]. На этот раз я хочу показать как выглядит этот процесс целиком. Мы пройдемся от …

Диаграммы классов UML

Диаграммы классов UML

Введение и содержание Диаграмма классов занимает центральное место в проектировании объектно-ориентированной системы. Нотация классов используется на разных этапах проектирования и строится с различной степенью детализации. Язык UML применяется не только для проектирования, но и с целью документирования, а также эскизирования проекта. Я (в отличии от Гради Буча) не являюсь сторонником разработки проекта с использованием всех …

Основы UML. Диаграммы последовательности

sequence-erlang-process-example

Диаграммы последовательности (sequence diagram) являются видом диаграмм взаимодействия языка UML, которые описывают отношения объектов в различных условиях. Условия взаимодействия задаются сценарием, полученным на этапе разработки диаграмм вариантов использования [1]. Существуют различные взгляды на применение этого вида диаграмм: Фаулер предлагает строить диаграммы последовательности для визуализации наиболее сложных отношений на диаграмме классов [2]; Буч рассматривает их в …