|
|||
begin. fori:=1 to3 dobegin … end; begin //тело главной программы end. Вызов процедуры для последующего выполнения записывается в теле главной программы.
Пример 1. Программа вычисления площади и периметра. Открыть в Паскале файл. program pr; uses crt; var a, b: integer; p: real; begin //Вычисление площади прямоугольного треугольника writeln; writeln('Вычисление: '); write('Введите стороны a, b: '); readln(a, b); writeln('площадь прямоугольного треугольника: ', 0. 5*a*b: 2: 1); //--------------------------------------------- //Вычисление площади равностороннего треугольника writeln; writeln('Вычисление: '); write('Введите стороны a, b: '); readln(a, b); p: =(a+a+b)/2; writeln('площадь равностороннего треугольника: ', sqrt(p*(p-a)*(p-a)*(p-b)): 2: 2); //-------------------------------------------- //Вычисление периметра прямоугольника writeln; writeln('Вычисление: '); write('Введите стороны a, b: '); readln(a, b); writeln('периметр прямоугольника: ', 2*a+2*b); //-------------------------------------------- //Вычисление площади прямоугольника writeln; writeln('Вычисление: '); write('Введите стороны a, b: '); readln(a, b); writeln('площадь прямоугольника: ', a*b); //-------------------------------------------- end.
При вызове процедуры работа главной программы приостанавливается и начинает выполняться вызванная процедура. Когда процедура выполнит свою задачу, программа продолжится с оператора, следующего за оператором вызова процедуры. Т. е. мы “научили” ПК новой команде tx. Ею можно пользоваться только в этой программе и, причем, много раз.
//***Вычисление**** procedure tx; begin writeln; writeln('Вычисление: '); write('Введите стороны a, b: '); end; и в нужном месте вызвать процедуру tx.
uses crt; var a, b: integer; p: real; //***Вычисление**** procedure tx; begin writeln; writeln('Вычисление: '); write('Введите стороны a, b: '); end; //******************* begin //Вычисление площади прямоугольного треугольника tx; readln(a, b); writeln('площадь прямоугольного треугольника: ', 0. 5*a*b: 2: 1); //Вычисление площади равностороннего треугольника tx; readln(a, b); p: =(a+a+b)/2; writeln('площадь равностороннего треугольника: ', sqrt(p*(p-a)*(p-a)*(p-b)): 2: 2); //Вычисление периметра прямоугольника tx; readln(a, b); writeln('периметр прямоугольника: ', 2*a*2*b); //Вычисление площади прямоугольника tx; readln(a, b); writeln('площадь прямоугольника: ', a*b); end. Давайте попробуем понять, какие существуют достоинства данной программы?
Можно решить задачу так: for i: =1 to 3 do begin writeln(‘Введите a и b: ’); readln(a, b); writeln(‘Площадь=’, a*b); end; Хорошим стилем программирования считается использование процедур. Необходима процедура, которая будет вычислять площадь прямоугольника. Вот как схематично будет выглядеть главная программа: текст readln (a, b); вычисление текст readln (a, b); вычисление текст readln (a, b); вычисление Процедура текста уже есть (см пример1). Создадим вторую процедуру, которая вычисляет площадь. Но для того чтобы вычислить S, надо знать 2 стороны, поэтому процедуре надо показать какие стороны она должна перемножать. procedure pl (c, d: integer) var S: integer; begin S: =c*d;
Writeln (‘площадь прямоугольника со сторонами ’, c, ‘ ‘, d, ‘=‘, S); end;
Параметр – это переменная, которой присваивается некоторое значение. Существуют формальные параметры, определенные в заголовке подпрограммы, и фактические параметры – выражения, задающие конкретные значения при обращении к подпрограмме. Процедура выполнится, если вызвать ее по имени и указать фактические параметры, отделенные друг от друга запятыми и заключенных в круглые скобки: pl(4, 5); pl(a, b); Фактические параметры должны совпадать по типу и количеству с формальными. Итак, главная программа: fori: =1 to3 do
|
|||
|