Блок-схема
Часто бывает удобно представить алгоритм графически в виде диаграммы. Такое представление называется блок-схемой. Для изображения блок-схемы принят ряд стандартных фигур:
Действие |
Фигура |
|
Начало или конец программы |
|
Оператор выбора (ветвление, решение) |
|
Множественный выбор |
|
Цикл For |
|
Ввод или вывод информации |
|
Вычисления |
Блок-схема должна иметь одну точку входа (начало) и одну точку выхода (конец). Для нашей программы по подсчету суммы баллов блок-схема может иметь следующий вид:
sum
:= math+russ+inform
При изображении блок-схем не обязательно включать в нее все шаги: достаточно только самых важных для понимания алгоритма. Цель блок-схемы – это изобразить основную логику программы, поэтому нашу блок-схему можно упростить, убрав из нее вспомогательные пользовательские сообщения:
sum
:= math+russ+inform
Проверка условия
В рассмотренном нами алгоритме вычисления суммы баллов по трем предметам ЕГЭ были использованы операции ввода и вывода, а также операции вычисления. Характерное свойство этой программы заключается в том, что независимо от входных данных последовательность выполняемых действий всегда одна и та же. Однако далеко не всегда путь детерменирован. Рассмотрим такую задачу. В университетах красный диплом выдают, если средний балл по всем предметам больше либо равен 4.75. Необходимо написать упрощенную программу, которая принимает оценки по трем предметам (математика, физика, информатика) и сообщает, получит студент красный диплом или нет. Начнем с алгоритма программы:
-
Ввести оценку по математике.
-
Ввести оценку по физике.
-
Ввести оценку по информатике.
-
Вычислить среднее арифметическое оценок.
-
Вывести «Красный», если среднее больше либо равно 4.75 и вывести «Синий» - иначе.
Посмотрите на шаг 5. Там вывод зависит от вычисленной суммы. Составим теперь псевдокод и блок-схему этой программы:
Begin
Output «Введите оценку по математике»
Input math
Output «Введите оценку по физике»
Input phys
Output «Введите оценку по информатике»
Input inform
average := (math+phys+inform)/3
if average >= 4.75 then
Output «Красный»
else
Output «Синий»
End
average
:= (math+russ+inform)/3
нет
да