Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

From Class_1 / лекции / Лекция 4

.doc
Скачиваний:
13
Добавлен:
10.05.2015
Размер:
2.05 Mб
Скачать

Лекция № 4

Основные этапы решения задач на компьютере

В основе решения любой инженерной или экономической задачи лежит понятие алгоритма.

Слово алгоритм произошло от имени узбекского математика Аль Хорезми, жившего в IX веке. Вплоть до 30-х годов прошлого века это понятие имело скорее методологическое, чем математическое значение. Под алгоритмом понимали конечную совокупность точно сформулированных правил, которые позволяют решать те или иные классы задач.

В настоящее время под алгоритмом принято понимать точное предписание, определяющее вычислительный процесс, ведущий от варьируемых исходных данных к искомому результату. Таким образом, алгоритм должен содержать конечную последовательность шагов или операций, однозначно определяющих процесс переработки исходных данных и промежуточных данных в искомом результате.

При составлении алгоритмов следует учитывать ряд требований, выполнение которых приводит к формированию необходимых свойств:

  1. Алгоритм должен быть однозначным, исключающим произвольность толкования любого из предписаний. Это свойство алгоритма называется определенностью.

  2. Реализация вычислительного процесса, предусмотренного алгоритмом должна через определенное число шагов привести к выдаче результатов или выдаче сообщения о невозможности решения задачи. Это свойство алгоритма называется результативностью.

  3. Решение однотипных задач с различными исходными данными можно осуществить по одному и тому же алгоритму. Это дает возможность создавать типовые программы для решения задач при различных вариантах исходных данных. Это свойство алгоритма называется массовостью.

  4. Предопределенный алгоритмом вычислительный процесс можно расчленить на отдельные этапы, элементарные операции. Это свойство алгоритма называется дискретностью.

Существует несколько способов описания алгоритмов:

  • словесное,

  • структурно-стилизованное (операторный способ),

  • графический способ (в виде схемы алгоритма),

  • программный способ (тексты на алгоритмических языках).

Словесное описание алгоритма применимо только для простейших алгоритмов, в которых нет сложных логических условий, разветвлений, циклов. Алгоритм, в соответствие с которым решение поставленной задачи сводится к арифметическим действиям, называется численным. На практике словесное описание алгоритма применяется крайне редко и, как правило, для численных алгоритмов.

Структурно-стилизованный способ описания алгоритмов реализован в операторном способе описания алгоритмов. Здесь каждая запись обозначается оператором (специальным символом). Операторы различных типов обозначаются русскими буквами, например:

А – арифметический оператор,

В – оператор ввода данных,

П – оператор вывода результатов на печать,

Л – логический оператор (условия),

Я – конец или оператор остановки.

К структурно- стилизованным описаниям алгоритмов относится способ описания алгоритмов с помощью АЯРН (алгоритмический язык в русской нотации). Он содержит систему обозначений для единообразной и точной записи алгоритмов, задания правил и их использования. Отличительной особенностью описания алгоритмов структурно-стилизованными способами является близость их к псевдокодам или к алгоритмическим языкам программирования. Достоинством структурно-стилизованных способов описания алгоритмов является их компактность.

При графическом способе описания алгоритмов, алгоритм представляется в виде последовательности блоков, выполняющих определенные функции. Форма блоков и правила их применения устанавливаются соответствующими стандартами.

Каждый блок изображается на бумаге в виде некоторой простейшей геометрической фигуры: прямоугольника, ромба, окружности и т.д. В левом верхнем углу блоку присваивается номер (метка) и он снабжается текстом внутри. При необходимости блок может быть снабжен также пояснительным текстом (комментарием).

Направление процесса обработки в схеме указывается путем соединения отдельных элементов линиями, иногда они имеют стрелки. Если один блок передает управление другим блокам в зависимости от выполнения определенных условий, то линии связи могут иметь стрелки, а также на линиях связи могут быть указаны условия. При построении схем сложных вычислительных процессов бывает целесообразно процесс решения задачи представить укрупненно. Для большей наглядности возможно представление в одном блоке целой группы этапов решения, т.е. в зависимости от сложности задачи составляют схему алгоритма с различной степенью детализации.

При построении схем алгоритмов принято использовать следующие изображения блоков:

Арифметический блок – изображает вычислительное действие или

последовательность вычислительных действий.

Блок ввода данных.

Логический блок – изображает проверку некоторого условия или условий.

Блок вывода результатов.

Блок, определяющий предопределенный процесс (подпрограмма или

процедура).

Блок цикла.

Блок начала или конца алгоритма.

Разрыв линии потока – в нем указывается номер блока, к которому осуществляется переход или из которого осуществляется переход.

Комментарий.

Стрелки на соединительных линиях между блоками сверху вниз не указываются. Стрелка указывает вход в блок цикла, а также в блоки, вход в которые осуществляется слева направо.

Правила применения символов и выполнения схем:

  1. Символ предназначен для графической идентификации функции, которую он изображает независимо от текста внутри этого символа.

  2. Символы в схемах должны быть расположены равномерно. Следует придерживать разумной длины соединений и минимального числа длинных линий.

  3. Формы символов, установленные стандартом не должны быть изменены (не должны изменяться углы, размеры и другие параметры, влияющие на форму символов).

  4. Символы могут быть вычерчены в любой ориентации, но по возможности, предпочтительной является горизонтальная ориентация.

  5. Минимальное количество текста, необходимое для понимания функции данного символа следует помещать внутри символа. Текст для чтения должен записываться слева - направо и сверху - вниз в зависимости от направления потока.

  6. Если объем текста, помещенный внутрь символа превышает его размеры, то следует использовать символ комментария.

  7. В схемах может использоваться идентификатор символов. Это – связанный с данным символом идентификатор, который определяется для использования в справочных целях в других элементах документации (например, в листинге программы).

  8. В качестве первого и последнего символа алгоритма должен быть использован символ указателя начала и конца.

Алгоритмы различаются по составу и структуре.

Алгоритм линейной структуры – алгоритм, блоки которого изображены в схеме в той последовательности, в какой должны быть выполнены предписываемые ими действия. Такой порядок выполнения действия называется естественным.

Алгоритм разветвленной структуры – это алгоритм, в котором предусмотрено разветвление выполняемой последовательности действий в зависимости от результата проверки выполнения какого-либо условия.

Алгоритм циклической структуры – это алгоритм, в котором содержатся многократно повторяющиеся участки вычислительного процесса, называемые циклами.

Циклический алгоритм позволяет существенно сокращать объем программы засчет многократного повторения ее циклического участка.

Различают следующие типы алгоритмов циклической структуры:

а) Цикл «повторять до» или цикл с постусловием;

б) Цикл «пока» или цикл с предусловием («по условию»);

в) Цикл счетный (с управляющей переменной).

а) б) в)

Для организации цикла необходимо:

  1. Задать начальные значения переменной цикла, т.е. переменной, которая будет изменяться при прохождении цикла;

  2. Задать шаг цикла, т.е. изменить значения переменной цикла перед каждым новым повторением цикла.

  3. Задать проверку условий окончания повторений по значению параметра и переход к началу цикла, если повторения не закончены.

Рассмотрим в качестве примера задачу сортировки одномерного массива.

Задание: написать алгоритм упорядочения 100 чисел по возрастанию (или по убыванию).

Решение представлено на рисунке:

Рисунок. Схема алгоритма сортировки одномерного массива по возрастанию.

Соседние файлы в папке лекции