Научиться использовать структурный подход в программировании – разбиение сложной задачи на более простые. Узнать, как для этого можно использовать подпрограммы-процедуры.
При создании программы для решения более или менее сложной задачи выполняется разделение этой задачи на подзадачи, этих подзадач – на более мелкие подзадачи и так далее до тех пор, пока подзадачи не станут легко программируемыми. Для такой организации используются подпрограммы.
В программах часто приходится повторять некоторые аналогичные действия многократно. Используя подпрограммы, можно единожды описать действия в подпрограмме, а затем лишь только вызывать ее. Такой принцип дефрагментации программы называется нисходящим программированием и соответствует принципам структурного программирования, в основу которого и положено понятие подпрограммы.
В Турбо-Паскале используются подпрограммы двух видов: процедуры и функции Описание процедуры имеет следующий вид:
Процедуры Без параметровС параметрами Параметры – переменные Параметры – значения
Р1 Р2 Р21
Составить программу для вычисления площади выпуклого 4-угольника, заданного длинами его сторон и диагональю. A B D C Диагональ делит 4-угольник на два 3-угольника, к которым применима формула Герона:
program Prog1; var AB, BC, CD, DA, AC, S1, S2, S, a, b, c, p: real; Procedure Ploshad1; begin p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); end; begin Writeln('Задайте стороны 4-х угольника ABCD и его диагональ AC'); readln (AB, BC, CD, DA, AC); a:=AB; b:=BC; c:=AC; Ploshad1; S1:=s; a:=DA; b:=AC; c:=CD; Ploshad1; S2:=s; Writeln ('Площадь ABCD= ', S1+S2:8:2); readln; end. A B D C 2 обращения к процедуре Команды присваивания, задающие значения a, b, c перед каждым вызовом процедуры Команды присваивания для сохранения результатов Связь процедуры Ploshad1 с остальными операторами происходит с помощью переменных a, b, c и s. Переменная p используется только внутри процедуры. Ее можно и описать в этой процедуре.
program Prog2; var AB, BC, CD, DA, AC, S1, S2, S, a, b, c: real; Procedure Ploshad1; var p:real; begin p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); end; begin Writeln('Задайте стороны 4-х угольника ABCD и его диагональ AC'); readln (AB, BC, CD, DA, AC); a:=AB; b:=BC; c:=AC; Ploshad1; S1:=s; a:=DA; b:=AC; c:=CD; Ploshad1; S2:=s; Writeln ('Площадь ABCD= ', S1+S2:8:2); end.
Переменные, которые описаны и используются внутри процедуры, называются – локальными. Переменные, которые описаны в основной программе, называются – глобальными. Локальные переменные действуют только внутри данной процедуры. Глобальные переменные действуют во всей программе и в каждой ее процедуре.
P1 P2 P21
Составить и выполнить на компьютере программы для решения задач: 1. Найти наибольшее из 4 чисел, используя процедуру нахождения наибольшего из 2-х чисел. 2. Найти НОД четырех чисел, используя процедуру нахождения НОД двух чисел
1. Выучить конспект. 2. Задачник 1 ч. стр (читать). 3. Задачник 1 ч. стр