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

Кто шагает дружно в ряд?
Пионерский наш отряд!!!
Пионерская речевка.

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

ЗАДАЧА: Напишите программу сложения двух действительных чисел.

На первой строчке пишем слово Program. Далее через пробел пишем название нашей программы Example_1 и ставим точку с запятой.

Program Example_1;

На следующей строчке описываем все, что мы будем использовать в нашей программе. А будем мы использовать переменные. Поэтому,  вторую строчку начинаем со слова Var (от англ. variable — переменная). Далее, через запятую описываем три переменные а,b,с. После этого мы должны сказать какой тип будет у этих переменных. Поскольку в задаче сказано сложить действительные числа, так и скажем об этом компьютеру. Ставим двоеточие и на чистом английском языке скажем компьютеру, что они действительные real (от англ.real — действительный, настоящий, реальный). Ставим точку с запятой.

Var a,b,c:real;

Пишем слово Begin, начинаем исполнительную часть программы (раздел операторов)

Begin

После слова Begin  выводим на экран надпись с помощью оператора Write. Отделяем его точкой с запятой от следующего оперaтора Read (от англ. read — читать, считывать). Этот оператор считывает данные, которые мы вводим с клавиатуры.

Write(‘Введите число А = ‘);Read(a);
Write(‘Введите число В = ‘);Read(a);

Следующей строкой выполняется сложение двух чисел А и В. Их сумма присваивается переменной С. Так и читается: ПРИСВОИТЬ ПЕРЕМЕННОЙ С ЗНАЧЕНИЕ СУММЫ ПЕРЕМЕННЫХ А и В. Важно отличать оператор присваивания := от равенства =
Об этих отличиях мы поговорим ниже.

c:=a+b;

После того как мы присвоили переменной С значение суммы А и В, нужно вывести это значение на экран. На помощь опять приходит оператор Write.

Write(‘Ответ А + В = ‘,c);

Программа закончилась. Пишем слово End и ставим точку.

End.

Для ленивых выкладываю текст программы (можете скопировать его и вставить в Паскаль_АВС)

Program Example_1;
Var a,b,c:real;
Begin
  Write(‘Введите число А = ‘);Read(a);
  Write(‘Введите число В = ‘);Read(b);
  c:=a+b;
  Write(‘Ответ А + В = ‘,c);
End.

Давайте попробуем оптимизировать нашу программу. Только без фанатизма.
Ведь на самом деле наша программа может быть очень короткой. Вот такой:

Мы сделали следующее:

  • Избавились от справочных надписей на экране;
  • Убрали оператор присваивания (просто вывели на экран сумму двух переменных). В этом случае значение суммы нигде не храниться, а просто выводится на экран;
  • Избавились от одной переменной.

Краткий вариант предыдущей программы:

Var a,b:real;
Begin
  Read(a);
  Read(b);
  Write(a+b);
End.

Только с точки зрения информативности наша программа оказалась на последнем месте. Никакого удобства использования. Попробуем найти золотую середину между удобством использования нашей программы и ее краткостью.

Попробуем обойтись двумя переменными А и В

Программа почти не изменилась. И пусть вас не смущает строка a:=a+b
С точки зрения математики это может и неправильно (будет правильно, если только b = 0).
В информатике такая  запись допустима. Она означает следующее:
ПРИСВОИТЬ ПЕРЕМЕННОЙ А ЗНАЧЕНИЕ СУММЫ ПЕРЕМЕННЫХ А и В.
НЕ РАВНО (=), А ИМЕННО ПРИСВОИТЬ (:=)!
Мы использовали в программе две переменных вместо трех. Экономия небольшая, однако при написании больших программ, где используется большое количество переменных, такой прием позволяет использовать меньшее количество переменных, а значит, будет использоваться меньшее количество памяти.

Program Example_1;
Var a,b:real;
Begin
  Write(‘Введите число А = ‘);Read(a);
  Write(‘Введите число В = ‘);Read(b);
  a:=a+b;
  Write(‘Ответ А + В = ‘,a);
End.