Пример задачи с использование процедуры и функции

Пример 1.Заданы длины сторон трех треугольников. Найти больший периметр.

Для вычисления периметра треугольника напишем процедуру Perimetr, для определения большего из двух чисел напишем процедуру max.

Program prim1;


Var

A,b,c,d,e,f,g,k,l,p1,p2,p3,maxp: integer;

Procedure Perimetr (x,y,z;Integer; Var p:integer);

Begin

P:=x+y+z;

End;

Procedure Max (a,b:integer; Var m: integer);

Begin

If a>b then m:=a else m:=b;

End;

Begin

Writeln(‘введите длины сторон первого треугольника’);

Readln(a,b,c);

Perimetr(a,b,c,P1);

Writeln(‘введите длины сторон второго треугольника’);

Readln(d,e,f);

Perimetr(d,e,f,P2);

Writeln(‘введите длины сторон третьего треугольника’);

Readln(g,k,l);

Perimetr(g,k,l,P3);

Max(P1,P2,maxp); Max(maxp,P3,maxp);

Writeln(‘Больший периметр ’,maxp);

End.

Решим эту же задачу с использованием функций.

Program prim2;

Var

A,b,c,d,e,f,g,k,l,maxp: integer;

Function Perimetr (x,y,z;Integer):integer;

Begin

Perimetr:=x+y+z;

End;

Function Max (a,b:integer): integer;

Begin

If a>b then max:=a else max:=b;

End;

Begin

Writeln(‘введите длины сторон первого треугольника’);

Readln(a,b,c);

Writeln(‘введите длины сторон второго треугольника’);

Readln(d,e,f);

Writeln(‘введите длины сторон третьего треугольника’);

Readln(g,k,l);

Maxp:=Max(Perimetr(a,b,c),Perimetr(g,k,l))

Maxp:=Max(Maxp,Perimetr(d,e,f);

Writeln(‘Больший периметр ’,maxp);

End.


Контрольные вопросы по теме «Процедуры и функции»

1. Дайте определение вспомогательного алгоритма.

2. Обоснуйте необходимость применения подпрограмм.

3. Опишите структуру процедуры.

4. Опишите структуру функции.

5. Назовите основные отличия процедуры и функции.

6. Дайте определения понятиям: глобальные переменные, локальные переменные.

7. Дайте определения понятиям: формальные значения, фактические значения.

8. Опишите механизм передачи параметров из основной программы в подпрограмму и наоборот.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: