Category Archives: алгоритмы

Рекурсия в программировании. Анализ алгоритмов

merge-sort_flowchart

Рекурсия — это свойство объекта подражать самому себе. Объект является рекурсивным если его части выглядят также как весь объект. Рекурсия очень широко применяется в математике и программировании: структуры данных: граф (в частности деревья и списки) можно рассматривать как совокупность отдельного узла и подграфа (меньшего графа); строка состоит из первого символа… Read more »

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

asymptotic notation_Omega

Алгоритм — это точное предписание, однозначно определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату [1]. При разработке алгоритмов очень важно иметь возможность оценить ресурсы, необходимые для проведения вычислений, результатом оценки является функция сложности (трудоемкости). Оцениваемым ресурсом чаще всего является процессорное время (вычислительная сложность) и память (сложность алгоритма… Read more »

Блок-схемы алгоритмов. ГОСТ. Примеры

insertsort_flowchart

Схема — это абстракция какого-либо процесса или системы, наглядно отображающая наиболее значимые части. Схемы широко применяются с древних времен до настоящего времени — чертежи древних пирамид, карты земель, принципиальные электрические схемы. Очевидно, древние мореплаватели хотели обмениваться картами и поэтому выработали единую систему обозначений и правил их выполнения. Аналогичные соглашения выработаны… Read more »

Функциональное программирование и обработка изображений

Под интригующим названием статьи скрывается обзор и небольшой мануал по языку программирования, встроенному в nip2. Есть весьма популярная в узких кругах утилита обработки изображений, называемая VIPS [1]. Утилита кроссплатформенная и используется для обработки очень больших изображений. Состоит она из двух частей — библиотеки libvips и утилиты с графическим интерфейсом nip2…. Read more »

Решение логических задач на Prolog

рис. 6 дерево решения задачи о волке, козе и капусте

Заказать решение задачи на Prolog или попросить помощь Язык пролог начал зарождаться в далеком 1879 году, точнее в этом году известный ученый Людвиг Фреге предложил исчисление предикатов, которое лежит в основе логического программирования. Фреге был не только математиком, но и философом (как и большинство других известных ученых своего времени). В… Read more »

Графы. Поиск в ширину и глубину на Prolog

рис. 2 обход графа в ширину

Заказать решение задачи на Prolog или попросить помощь В статье описываются: алгоритмы обхода графа в глубину и в ширину; представление графов на языке Prolog; реализация алгоритмов обхода графа на языке Prolog.

Unit тестирование в Erlang на примере

Продолжаем изучение языка программирования Erlang. На этот раз будет рассмотрена задача о разборе и выполнении арифметических выражений из книги Чезарини (в книге задача была сложнее и с множеством дополнений типа «упрощение выражений», «дополнение выражений оператором ветвления» и т.п.). Помимо разбора выражений (строк) в статье описано Unit-тестирование последовательных программ без побочных… Read more »

Структуры данных. Деревья

Аннотация Статья знакомит читателя с понятием дерева как структуры данных, поясняет в каких случаях и для чего следует применять деревья. В статью также планировалось поместить примеры правил обработки деревьев на языке программирования «Пролог», однако, решено описать их в следующей статье. Тем не менее, это оказало влияние на текст статьи –… Read more »

Алгоритм. Свойства алгоритма

check-brackets-flowchart

Существует множество определений понятия «алгоритм»: «процедура, которая принимает любой из возможных входных экземпляров задачи и преобразует его в соответствии с требованиями, указанными в условии задачи» [1]; «точное предписание, однозначно определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату» [2]; «конечный набор правил, однозначно раскрывающих содержание и последовательность выполнения… Read more »