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

Наименование Обозначение Функция
Блок начало-конец (пуск-остановка) Элемент отображает выход во внешнюю среду и вход из внешней среды (наиболее частое применение − начало и конец программы). Внутри фигуры записывается соответствующее действие.
Блок действия Выполнение одной или нескольких операций, обработка данных любого вида (изменение значения данных, формы представления, расположения). Внутри фигуры записывают непосредственно сами операции, например, операцию присваивания: a = 10*b + c.
Логический блок (блок условия) Отображает решение или функцию переключательного типа с одним входом и двумя или более альтернативными выходами, из которых только один может быть выбран после вычисления условий, определенных внутри этого элемента. Вход в элемент обозначается линией, входящей обычно в верхнюю вершину элемента. Если выходов два или три, то обычно каждый выход обозначается линией, выходящей из оставшихся вершин (боковых и нижней). Если выходов больше трех, то их следует показывать одной линией, выходящей из вершины (чаще нижней) элемента, которая затем разветвляется. Соответствующие результаты вычислений могут записываться рядом с линиями, отображающими эти пути.
Предопределённый процесс Символ отображает выполнение процесса, состоящего из одной или нескольких операций, который определен в другом месте программы (в подпрограмме, модуле). Внутри символа записывается название процесса и передаваемые в него данные. Например, в программировании − вызов процедуры или функции.
Данные (ввод-вывод) Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод). Данный символ не определяет носителя данных (для указания типа носителя данных используются специфические символы).
Соединитель Символ отображает вход в часть схемы и выход из другой части этой схемы. Используется для обрыва линии и продолжения её в другом месте (для избежания излишних пересечений или слишком длинных линий, а также, если схема состоит из нескольких страниц).

Запись на алгоритмическом языке

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

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

В простейшем случае алгоритм на алгоритмическом языке записывается так:

алг имя алгоритма

арг список аргументов (исходные данные) описательная часть

рез список результатов (цель выполнения алгоритма)

нач начало алгоритма

последовательность команд тело алгоритма

кон конец алгоритма

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



Алгоритм, записанный на алгоритмическом языке, оформляется в соответствии с приведенными ниже правилами.

1. Служебные слова алг, нач и кон пишутся строго одно под другим.

2. Алгоритм должен иметь название. Имя (название) выбирается так, чтобы было понятно, решение какой задачи описывает алгоритм.

3. В строке арг перечисляются имена (названия) всех исходных данных.

4. В строке рез перечисляются имена (названия) тех неизвестных, которые должны быть найдены с помощью этого алгоритма.

5. Команды алгоритма записываются последовательно, одна за другой.

6. Если одна команда не вмещается на одной строке, ее можно перенести на другую строку.

7. Допускается запись нескольких команд на одной строке. В этом случае команды разделяются между собой знаком «точка с запятой» – « ; ».

Часть алгоритма от строки нач до строки кон называется телом алгоритма, которое представляет собой команды алгоритма. Тело показывает процесс достижения цели алгоритма.

Алгоритмические структуры

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

1. Линейным называется алгоритм, в котором все этапы решения задачи выполняются строго последовательно, без пропусков и повторений. Такую алгоритмическую структуру иногда называют «следование».

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

3. Цикл предусматривает многократное повторение действий.

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

Циклические алгоритмы по способу организации выхода из цикла можно разделить на два типа – арифметические (циклы со счетчиком) и итерационные (циклы с условием).

Количество повторений в первых (циклы со счетчиком) заранее известно или может быть легко вычислено.

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

Все алгоритмические конструкции имеют общее свойство: один вход и один выход.

Линейные алгоритмы

Понятие линейного алгоритма

Определение: Линейным называется алгоритм, в котором все этапы решения задачи выполняются строго последовательно, без пропусков и повторений.

Задача 1. Вычислить площадь прямоугольника S. Известно, что его ширина равна а, а длина в 2 раза больше ширины.

Решение.

1. Анализ условия задачи.

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

Итак, проанализировав условие задачи, делаем вывод, что исходными данными (аргументом), является ширина а прямоугольника, а выходными данными являются длина (вторая сторона) и площадь. Причем вторая сторона – назовем ее b – это промежуточный результат, а площадь – назовем ее S – это искомый результат.

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

2. Составим математическую модель решения нашей задачи. Запишем условие в виде одного предложения – найти площадь прямоугольника.

Наша задача может быть разбита на три основных этапа: ввод исходных данных, этап вычислений и вывод результатов. На первом этапе задается ширина а, на последнем этапе выводится результат – значение площади S.

Этап вычислений детализируем. Сначала вычисляется длина второй стороны – это первая подзадача. Затем, перемножив длины обеих сторон, получим значение площади – искомый результат – это вторая подзадача.

Таким образом, решение данной задачи состоит из двух действий. Используя введенные обозначения, запишем их:

3. Учитывая все выше сказанное, составим блок-схему алгоритма нашей задачи. Она будет выглядеть как на рисунке.

4. Запишем алгоритм на алгоритмическом языке.

алг площадь прямоугольника аргВЕЩ а резВЕЩ b, S нач ввод а вывод S кон


Алгоритм ветвления (условный алгоритм)

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

На языке блок-схем ветвление может изображаться в виде как на рисунке:

Задача 3. Даны два числа А и В. Найти наибольшее из них.

1. Анализируем условие.Что дано в задаче? а) Первое число А. Это переменная, ее задает пользователь в начале алгоритма. б) Второе число В. Тоже переменная определяется в начале алгоритма. Что является результатом в этой задаче? Максимальное из этих двух заданных чисел. Обозначим эту переменную через Max. Все эти переменные относятся к классу действительных чисел.

2. Математическая модель. Запишем условие в виде одного предложения – найти максимальное из двух заданных чисел.

Что необходимо сделать для этого? Для этого надо сравнить их и выбрать наибольшее из них следующим образом: если первое число больше второго, то максимальное – это первое число, если второе число больше первого, то максимальное – это второе число.

Заметим, что эти две ситуации взаимно противоположные: либо первое число больше, либо второе. Поэтому условно можно считать, что один случай соответствует слову «да», тогда другой случай соответствует слову «нет». Может быть еще случай, когда эти числа равны между собой. Тогда оба они равны максимальному значению.

Итак, алгоритм решения задачи состоит из этапа ввода чисел, этапа сравнения этих чисел и, наконец, этапа вывода максимального числа.

Этап сравнения этих чисел описывается так, как было сказано выше, если A больше, чем B, то Мах равен A, в другом случае (если B больше, чем A) Мах равен B. Запишем «русские слова» на математическом языке – языком формул:

Если A>B, то Мах=А, иначе Мах=В.

3. Блок-схема алгоритма нашей задачи будет выглядеть как на рисунке 3.

4. Запишем алгоритм на алгоритмическом языке.

АЛГ БИД АРГВЕЩ А, В РЕЗВЕЩ Мах НАЧ ввод А, В ЕСЛИ A > B ТО Мах:= A ИНАЧЕ Мах:=В ВСЕ вывод Мах КОН

Задача 4. Алгоритм нахождения суммы чисел

Давайте определим, как найти сумму чисел? Надо взять первые два числа и сложить их, потом к полученной сумме прибавить следующее число и так далее пока не сложим все числа.

Заметим, что всегда повторяется одно и то же действие: к старой сумме прибавляется следующее число.

Только самое первое действие немного отличается. Мы складываем два числа. Было бы хорошо, если бы все действия были бы одинаковыми, тогда задачу можно было бы решить с помощью цикла. Этого можно добиться, если задать начальную сумму, равной нулю. (Символично это будет первое число, и оно не изменит значение суммы). А затем к ней прибавим первое число, к полученной сумме второе и так далее.

Мы получили алгоритм нахождения суммы чисел. Этот алгоритм можно использовать во многих задачах. Его необходимо понять и запомнить.

Обозначим сумму S, а число. Тогда алгоритм нахождения суммы 5 чисел будет иметь следующий вид:

1) Параметр цикла: счетчик, который считает, сколько чисел уже введено и прибавлено к сумме. Пусть его имя будет I.

2) Начальное значение параметра цикла равно 1, конечное значение параметра цикла равно 5.

3) Повторяющиеся действия:

Ввод X {на каждом новом шаге прибавления узнаем значение следующего числа}
S := S + X {новое значение суммы (S, стоящее слева) получается путем прибавления к старому значению (S, стоящее справа) только что полученное число X}

Надо иметь ввиду, что начальное значение суммы S := 0.

1. Анализируем условие.Что дано в задаче? – числа X. Это переменная вещественного типа. Что является результатом в этой задаче? – Сумма S, которая тоже является переменной вещественного типа. Есть еще промежуточный результат. Это счетчик I – переменная целого типа.

Так как есть действия, которые повторяются известное количество раз, то для решения задачи необходимо использовать цикл со счетчиком (цикл типа «ДЛЯ»).

2. Математическая модель. Здесь опишем формальную схему работы цикла со счетчиком

1. S := 0

2. (действия цикла)

2.1. Параметр цикла – переменная I.

2.2. Начальное значение I равно 1, конечное значение I равно 5.

2.3. Повторяющиеся действия:

Ввод X

S := S + X

3. После завершения работы цикла:

Вывод S

3. Блок-схема алгоритма нашей задачи будет выглядеть как на рисунке 4.

4. Запишем алгоритм на алгоритмическом языке.

АЛГ сумма5 АРГВЕЩ X РЕЗВЕЩ S, ЦЕЛ I НАЧ S := 0 ДЛЯ I := 1 ДО 5 НЦ Ввод X S := S + X КЦ Вывод S КОН Рис. 4.

ПРИНЦИП ПОСТРОЕНИЯ ЭВМ




6614145246320771.html
6614217876419500.html
    PR.RU™