В блок-схеме команда ввода записывается в параллелограмме — блоке ввода-вывода. При выполнении данной команды процессор прерывает работу и ожидает действий пользователя. Пользователь должен набрать на устройстве ввода (клавиатуре) значения вводимых переменных и нажать на клавишу ввода Enter.Значения следует вводить в том же порядке, в каком соответствующие переменные расположены в списке ввода. Обычно с помощью команды ввода присваиваются значения исходных данных, а команда присваивания используется для получения промежуточных и конечных величин. Полученные компьютером результаты решения задачи должны быть сообщены пользователю. Для этих целей предназначена команда вывода:
С помощью этой команды результаты выводятся на экран или на устройство печати на бумагу.
Поскольку присваивание является важнейшей операцией в вычислительных алгоритмах, обсудим ее более подробно. Рассмотрим последовательное выполнение четырех команд присваивания, в которых участвуют две переменные величины а и Ь. В приведенной ниже таблице напротив каждой команды присваивания указываются значения переменных, которые устанавливаются после ее выполнения.
Команда
а
b
а : = 1
-
b : = 2 * а
2
а : =b
b:=a+ b
Этот пример иллюстрирует три основных свойства команды присваивания:
• пока переменной не присвоено значение, она остается неопределенной;
• значение, присвоенное переменной, сохраняется в ней вплоть до выполнения следующей команды присваивания этой переменной:
• новое значение, присваиваемое переменной, заменяет ее предыдущее значение.
Рассмотрим один очень полезный алгоритм, который приходится часто использовать при программировании. Даны две величины: X'и Y. Требуется произвести между ними обмен значениями. Например, если первоначально было Х= 1, Y= 2, то после обмена должно стать: X= 2, Y= 1.
Хорошей моделью для решения этой задачи является следующая ситуация: имеются два стакана — один с молоком, другой с водой. Требуется произвести обмен их содержимым. Всякому ясно, что в этом случае нужен дополнительный третий пустой стакан. Последовательность действий будет следующей: 1) перелить из первого стакана в третий; 2) перелить из второго в первый; 3) перелить из третьего во второй. Цель достигнута!
По аналогии для обмена значениями двух переменных нужна третья дополнительная переменная. Назовем ее Z. Тогда задача обмена решается последовательным выполнением трех команд присваивания:
Аналогия со стаканами не совсем точна в том смысле, что при переливании из одного стакана в другой первый становится пустым. В результате же присваивания (Х:= Y) переменная, стоящая справа (Y), сохраняет свое значение.
Алгоритм для деления дробей имеет линейную структуру. В нем все команды выполняются в строго однозначной последовательности, каждая по одному разу. Линейный алгоритм составляется из команд присваивания, ввода, вывода и обращения к вспомогательным алгоритмам (об этом позже).
При описании алгоритмов в блок-схемах типы, как правило, не указываются (но подразумеваются). В алгоритмах на АЯ для всех переменных типы указываются явно. Описание типов переменных производится сразу после заголовка алгоритма. В них используются следующие обозначения типов: цел— целый тип, вещ — вещественный тип, лит— символьный (литерный) тип, лог — логический тип. В алгоритме для деления дробей для всех переменных указан целый тип.
Пример 1. Рассмотрим пример – вычисление площади треугольника по формуле Герона.