Линейные программы

Линейными называются программы, состоящие из простых команд (операторов) ввода, математических расчетов (формул) и команд вывода результатов.
В линейной программе присутствуют три базовых блока:
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: результат. (протежуточных нет)

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

0 0 vote
Article Rating
Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments