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

Если вдруг вы еще не прошли тест — рекомендую это сделать перед чтением разбора: ссылка. В настоящий момент тест пройден слишком маленьким количеством человек чтобы делать выводы, однако гистограмму приведу: Предсказуемо, проваливают чаще всего 6 вопрос — ответ на него отличается для C++11 и C++98. Причем, в новом стандарте функция стала работать хуже. В тесте …

Алгоритмы для разработчика

Нужно ли программисту изучать алгоритмы? — многие скажут, что они ему нужны не больше чем алгебра. Однако не так давно я проводил анализ вакансий и опрос людей, ходивших по собеседованиям, оказалось что алгоритмы нужны, по крайней мере, для устройства на работу. Но нужны ли они для самой работы? — Ведь есть куча готовых библиотек, а …

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

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

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

test_stl_results_1

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

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

Содержание: Что нужно для выпуска игры? Чужой негативный опыт. Как не потратить время впустую? Мой личный опыт Чужой позитивный опыт 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]. На этот раз я хочу показать как выглядит этот процесс целиком. Мы пройдемся от …