Рассмотренный нами алгоритм приготовления чая написан обычным человеческим языком, и в нем мы оперируем обычными человеческими понятиями. Компьютерные алгоритмы, предназначенные для обработки компьютерных данных, также можно писать на человеческом языке. Тем не менее, такие алгоритмы часто оказываются более понятными, если они написаны на некотором языке программирования. Но какой язык выбрать, если мы не знаем того языка, на котором написан алгоритм? В этом случае разумно использовать нечто среднее между человеческим языком и языком программирования. Именно для этой цели служит так называемый псевдокод. Он напоминает язык программирования своей четкостью и стройностью, но в то же время он не так далек от человеческого языка, чтобы его было трудно понять. Рассмотрим задачу вычисления суммарного балла, набранного выпускником на ЕГЭ по трем предметам. Возможный алгоритм таков:
1. Ввести с клавиатуры оценку по математике.
2. Ввести с клавиатуры оценку по русскому языку.
3. Ввести с клавиатуры оценку по информатике.
4. Вычислить сумму этих трех оценок.
5. Вывести сумму на экран.
Для написания псевдокода данного алгоритма введем обозначения, которые мы будем использовать:
Действие
Русский язык
Английский язык
Ввод информации
Ввод
Input
Вывод информации
Вывод
Output
Проверка условия
Если-то
If-then
Действие для ложного условия
Иначе
Else
Множественный
выбор
Переключатель-случай
Switch-case
Цикл «For»
Для i:=1..10
For i:=1..10
Цикл «While»
Пока <условие>
While <условие>
Начало программы
Начало
Begin
Конец программы
Конец
End
Присвоение значения
:=
:=
Данные обозначения не являются каким-то стандартом, и вместо слова Input можно использовать, например, Display, вместо Begin – Start и т.д. Выбор обусловлен тем, чтобы они были понятны и просты. Итак, наш псевдокод выглядит так:
Output «Введите оценку по математике»
Input math
Output «Введите оценку по русскому языку»
Input russ
Output «Введите оценку по информатике»
Input inform
sum := math+russ+inform
Output «Сумма баллов равна»
Output sum
Данная программа просит пользователя ввести 3 оценки и запоминает их в переменные math, russ и inform. Затем вычисляется сумма этих трех переменных и записывается в переменную sum, в таких случаях говорят, что переменной sum присваивается сумма переменных math, russ и inform. Наконец, значение переменной sum выводится на экран.
Часто бывает удобно представить алгоритм графически в виде диаграммы. Такое представление называется блок-схемой. Для изображения блок-схемы принят ряд стандартных фигур:
Действие
Фигура
Начало или конец программы
Оператор выбора
(ветвление, решение)
Множественный выбор
Цикл For
Ввод или вывод информации
Вычисления
Блок-схема должна иметь одну точку входа (начало) и одну точку выхода (конец). Для нашей программы по подсчету суммы баллов блок-схема может иметь следующий вид:
При изображении блок-схем не обязательно включать в нее все шаги: достаточно только самых важных для понимания алгоритма. Цель блок-схемы – это изобразить основную логику программы, поэтому нашу блок-схему можно упростить, убрав из нее вспомогательные пользовательские сообщения:
В рассмотренном нами алгоритме вычисления суммы баллов по трем предметам ЕГЭ были использованы операции ввода и вывода, а также операции вычисления. Характерное свойство этой программы заключается в том, что независимо от входных данных последовательность выполняемых действий всегда одна и та же. Однако далеко не всегда путь детерменирован. Рассмотрим такую задачу. В университетах красный диплом выдают, если средний балл по всем предметам больше либо равен 4.75. Необходимо написать упрощенную программу, которая принимает оценки по трем предметам (математика, физика, информатика) и сообщает, получит студент красный диплом или нет. Начнем с алгоритма программы:
Ввести оценку по математике.
Ввести оценку по физике.
Ввести оценку по информатике.
Вычислить среднее арифметическое оценок.
Вывести «Красный», если среднее больше либо равно 4.75 и вывести «Синий» - иначе.
Посмотрите на шаг 5. Там вывод зависит от вычисленной суммы. Составим теперь псевдокод и блок-схему этой программы: