Линейными называются программы, состоящие из простых команд (операторов) ввода, математических расчетов (формул) и команд вывода результатов.
В линейной программе присутствуют три базовых блока:
1. Команды ввода данных
2. Математические расчеты
3. Вывод результатов.
Простыми командами (простыми указаниями алгоритма) называются команды, которые не используют условия в своем исполнении. К числу простых операторов принадлежат команды (операторы) присваивания, ввода и вывода данных, вызова вспомогательного алгоритма — подпрограммы (об этом позже).
Вспомним, что такое оператор/команда присваивания. Она задает или изменяет значение определенной переменной.
При этом изменяется содержание ячейки памяти, которая отведена для этой переменной.
Формат команды
Формат команды Примеры
<имя переменной>: = <значение>;
A:=5; B:= 10;
<имя переменной>: = <имя переменной>; A:=B;
<имя переменной>: = <выражение>; A:=A+B*2;
Слева от знака «:=» расположен имя переменной, справа — значение или имя другой переменной или выражение.
Рассмотрим пример одной из программ, которая даст понимание того, что означает линейная программа …
Рассмотрим пример одной из программ, которая даст понимание того, что означает линейная программа … {========================== ЗАДАНИЕ 1 ===================== ==========}
Руководитель проекта дал задание написать программу для расчета площади прямоугольного земельного участка со сторонами А = 25 единиц и В = 19,5 единиц.
Наши рассуждения.
1. Математический решение задачи S = ab
2. Объявление переменных.Имена переменных программист вибирает сам, исходя из их смысла.
S-Area,
a-side_a,
b-side_b;
3. Типы переменных.
На данном этапе мы видим, что А — целое число (Integer); b- действительное число (Real). При умножении целого числа на действительное получим действительное. Итак Area — действительное число (Real);
Теперь пишем программу.
Var side_a : Integer; side_b, Area : Real; BEGIN side_a:=25; side_b:=19.5; Area := side_a * side_b; Writeln('Area is =', Area:2:2); Writeln('Press Enter to Exit'); readln; END.
Для проверки наличия в программе синтаксических ошибок нажимаем F9. Для запуска программы на выполнение нажимаем Ctrl + F9. Недостатком программы является то, что при изменении значений сторон земельного участка нужно каждый раз модифицировать программу. Так что нужно добавить команды на запрос данных от пользователя. А это выполняют команды ввода / вывода данных.
Var side_a : Integer; side_b, Area : Real; BEGIN Write('Side A='); Readln (side_a); Write('Side B='); Readln (side_b); Area := side_a * side_b; Writeln('Area is =', Area:2:2); Writeln('Press Enter to Exit'); readln; END.
объявление переменных начало программы
Запрос значения стороны А. После введения числа нажимаем Enter. Число A переменной side_a.
Запрос значения стороны B. После введения числа нажимаем Enter. Число B переменной side_b.
рассчитать площадь
Вывести на экран сообщение Area is = и ее значение с двумя знаками после запятой (форматирование результата)
Сообщение, что нужно нажать Enter для выхода
Ждем нажатия …
Завершение программы …
Для проверки наличия в программе синтаксических ошибок нажимаем F9. Для запуска программы на выполнение нажимаем Ctrl + F9. Но опять же. Не всегда длина стороны А будет выражаться целым числом. Поэтому, чтобы обеспечить корректное выполнение программы для произвольных чисел нужно объявить переменную А как действительную.
Var side_a : Real; side_b: Real; Area : Real; BEGIN Write('Side A='); Readln (side_a); Write('Side B='); Readln (side_b); Area := side_a * side_b; Writeln('Area is =', Area:2:2); Writeln('Press Enter to Exit'); r eadln; END.
Для проверки наличия в программе синтаксических ошибок нажимаем F9. Для запуска программы на выполнение нажимаем Ctrl + F9.
Рассмотрим еще один пример задачи.
Дан земельный участок прямоугольной формы со сторонами А и В. Цена 1 метра ограждения С гривен. Написать программу, которая будет рассчитать цену материала для ограждения.
Итак … Начнем с математики
1. Чтобы рассчитать цену ограждения нужно найти периметр. P = 2 * (a + b);
2. Чтобы рассчитать цену материалов — нужно периметр умножить на цену за 1 метр ограждения. Сумма = периметр * цену или Сумма = (2 * (a + b)) * c
Теперь рассмотрим переменные и их типы.
Есть стороны участка А — назовем side_a, B назовем side_b, Цена — Cina. Периметр — Perimetr. Типы переменных: side_a. side_b действительные числа(Real), их длина выражаться не обязательно только в метрах (метр и сантиметр) Cina — действительное число(Real), цена идет в гривнах и копейках, даже если количество копеек равна нулю. Perimetr — действительное число(Real), потому что складываем и умножаем действительные числа. Но картина не полная.
Нужно еще переменная, которая будет сохранять результат. Итак добавляем еще переменную Summa, которая будет действительного (Real)типа. Для расчета компьютер должен знать определенные данные. А именно: длины сторон, цену за 1 метр материала для ограждения. Итак, «входящими» данным для программы будут side_a, side_b, Cina. Промежуточным результатом будет значение Perimetr Результатом будет Summa.
Var side_a : Real; side_b: Real; Perimetr : Real; Cena : Real; Summa : Real; BEGIN Write('Side A='); Readln (side_a); Write('Side B='); Readln (side_b); Write('Cina ='); Readln (Cena); Perimetr :=2 * (side_a + side_b); Summa := Cena * Perimetr; Writeln('Money =', Summa:2:2); Writeln('Press Enter to Exit'); readln; END.
{*************************** Для самостоятельного решения ******************** ********}
В каждой задаче переменные которые будут «входящими», промежуточными, и укажите переменную/переменные, которая содержит результат.
Линейные программы
Пример: Дано два целых числа А и В. Найти их суму.
Var a,b:integer; s:integer; BEGIN Write('Number A=');Readln(a); Write('Number B=');Readln(b); s:=a+b; writeln('Summa=',s); writeln('Press Enter to Exit'); readln; END.
a,b: входящие, s: результат. (протежуточных нет)