На главную

 

 

Сайт основан 1 марта 2003 года

= Основы алгоритмизации и программирования =


Подпрограммы-процедуры.

Практическая работа № 4.2

Цель:    научиться описывать подпрограммы-процедуры, использовать команду вызова подпрограммы-процедуры, изучить порядок выполнения команды вызова подпрограммы-процедуры, научиться составлять программы с использованием подпрограммы-процедуры.

Ход работы:

1.         (2 балла). Записать в тетради программу поиска наибольшего общего делителя nod двух чисел и наименьшего общего кратного nok этих чисел в виде подпрограммы-процедуры nod_nok.

2.             (2 балла). Записать в тетради программу поиска наибольшего числа из трёх заданных чисел и наименьшего числа из этих же чисел в виде подпрограммы-процедуры max_min.

3.             (2 балла). Найти наибольший общий делитель и наименьшее общее кратное трёх заданных чисел, используя подпрограмму-процедуру nod_nok.

4.             (2 балла). Определить, какое число из заданных трёх не является ни максимальным и ни минимальным, используя в качестве подпрограммы процедуру max_min.

5.             (4 балла). Изменить программу treugolnik так, чтобы в ней вместо 5 подпрограмм-функций, использовалась подпрограмма-процедура по нахождению max, min, srednee, rav3, rav2. (В подпрограмме-процедуре использование подпрограмм-функций допускается).

 

program treygolnik;

var a,b,c,s:integer;y,y1:string;

 

function max(a,b,c:integer):integer;

begin

if (a>=b) and (a>=c) then max:=a;

if (b>=c) and (b>=a) then max:=b;

if (c>=b) and (c>=a) then max:=c;

end;

 

function min(a,b,c:integer):integer;

begin

if (a<=b) and (a<=c) then min:=a;

if (b<=c) and (b<=a) then min:=b;

if (c<=b) and (c<=a) then min:=c;

end;

 

function srednee(a,b,c:integer):integer;

begin

if ((a=min(a,b,c)) and (max(a,b,c)=c)) or ((c=min(a,b,c)) and (max(a,b,c)=a)) then srednee:=b;

if ((b=min(a,b,c)) and (max(a,b,c)=c)) or ((c=min(a,b,c)) and (max(a,b,c)=b)) then srednee:=a;

if ((b=min(a,b,c)) and (max(a,b,c)=a)) or ((a=min(a,b,c)) and (max(a,b,c)=b)) then srednee:=c;

end;

 

function rav3(a,b,c:integer):boolean;

begin

if (a=b) and (a=c) then rav3:=true  else rav3:=false;

end;

 

function rav2(a,b,c:integer):boolean;

begin

if (a=b) or (b=c) or (c=a) then rav2:=true  else rav2:=false;

end;

 

begin

readln(a,b,c);

if max(a,b,c)>min(a,b,c)+srednee(a,b,c)

   then writeln('треугольник не существует')

   else begin

       if rav3(a,b,c) then  y:='равносторонний'

                      else  if rav2(a,b,c) then y:='равнобедренный'

                                           else y:='разносторонний';

       if max(a,b,c)*max(a,b,c)=min(a,b,c)*min(a,b,c)+srednee(a,b,c)*srednee(a,b,c)

                      then y1:='прямоугольный';

       if max(a,b,c)*max(a,b,c)>min(a,b,c)*min(a,b,c)+srednee(a,b,c)*srednee(a,b,c)

                      then y1:='тупоугольный';

       if max(a,b,c)*max(a,b,c)<min(a,b,c)*min(a,b,c)+srednee(a,b,c)*srednee(a,b,c)

                      then y1:='остроугольный';

       writeln(y,' ',y1);

       end;

end.

Контрольные задания:

Задание 1.

Отметьте правильные заголовки процедур.

Procedure Function(a,b:integer); Procedure Ton;

Procedure Fon(x+y,z:integer);      Function NOD(a,b:longint);

Procedure Position(X,Y:integer): integer;        Procedure Fon(x,y,z:integer;var b:real;var a:string);

Procedure DVK(a:integer,b);    Procedure Fon(var b:real; x,y,z:integer);

Задание 2.

Даны описания процедуры и функции:

Procedure First (a1,b1,c: integer; var a,b: integer;);

Begin

a:=c div a1;

b:= c div b1;

End;

Отметьте правильно записанные команды вызова подпрограммы.

z:= First (m, k, 32000, m, k);

First (a+1, b, 0, a, b–2,);

First (a+1, 78, 0, a, b–2,);

First (m, k, 99000, m, k);

Задание 3.

Даны описания процедур и функций:

Procedure P (var a,b: integer);

Begin

a:=a+b;

b:=a-b;

End;

Function F (m,k: integer): integer;

Begin

F:= m div 10 + k mod 10;

End;

Чему будут равны значения переменных a, b после выполнения фрагмента программ:  a:=7;  b:=3;  P(a,b); b:=F(a,b-a);

Наверх

На главную

 

Дизайн : WWS corporation & ROKI company.