Система программирования Турбо Паскаль. Воробьева А.П - 53 стр.

UptoLike

Составители: 

107
Вариант c процедурой
Program P3_P;
Type
vect = array[1..10] of real;
Var
X, Y, R, F: vect;
i, n: integer;
max: real;
Procedure PK(a, b: real; var ro, fi: real);
begin
ro := sqrt(a
a + bb);
fi := arctan(b/a);
end;
Begin
writeln(‘Введите абсциссы точек’);
for i :=1 to 10 do read(x[i]);
writeln(‘Введите ординаты точек’);
for i := 1 to 10 do read(y[i]);
max := 0;
for i := 1 to 10 do
begin
PK(x[i], y[i], r[i], f[i]);
if r[i]>max then
begin
max := r[i];
n := i;
end;
end;
writeln(‘romax=’, r[n]:6:2, ‘ fimax=’, f[n]:6:2);
End.
Вариант c функцией
В данной задаче результатом вычисления подпрограммы яв-
ляются два значения (
ro, fi). По правилам языка Турбо Паскаль
имени функции может быть присвоено только
одно значение,
например
ro. Однако при оформлении функции допускается в
списке формальных параметров указывать не только параметры-
108
значения (входные переменные), но и параметры-переменные
(выходные переменные). Согласно этому правилу в приведенной
ниже программе параметр
fi записывается как выходной в списке
формальных параметров функции.
Program P3_F;
Type
vect = array[1..10] of real;
Var
X, Y, R, F: vect;
i, n: integer;
max: real;
Function PK(a, b: real; var fi: real): real;
var
ro: real;
begin
ro := sqrt(a
a + bb);
fi := arctan(b/a);
PK := ro;
end;
Begin
writeln(‘Введите абсциссы точек’);
for i :=1 to 10 do read(x[i]);
writeln(‘Введите ординаты точек’);
for i := 1 to 10 do read(y[i]);
max := 0;
for i := 1 to 10 do
begin
r[i] := PK(x[i], y[i], f[i]);
if r[i]>max then
begin
max := r[i];
n := i;
end;
end;
writeln(‘romax=’, r[n]:6:2, ‘ fimax=’, f[n]:6:2);
End.
                                                                 значения (входные переменные), но и параметры-переменные
Вариант c процедурой
                                                                 (выходные переменные). Согласно этому правилу в приведенной
            Program P3_P;                                        ниже программе параметр fi записывается как выходной в списке
            Type                                                 формальных параметров функции.
             vect = array[1..10] of real;
            Var                                                              Program P3_F;
             X, Y, R, F: vect;                                               Type
             i, n: integer;                                                   vect = array[1..10] of real;
             max: real;                                                      Var
            Procedure PK(a, b: real; var ro, fi: real);                       X, Y, R, F: vect;
             begin                                                            i, n: integer;
                 ro := sqrt(a∗a + b∗b);                                       max: real;
                 fi := arctan(b/a);                                          Function PK(a, b: real; var fi: real): real;
             end;                                                             var
            Begin                                                                 ro: real;
             writeln(‘Введите абсциссы точек’);                               begin
             for i :=1 to 10 do read(x[i]);                                       ro := sqrt(a∗a + b∗b);
             writeln(‘Введите ординаты точек’);                                   fi := arctan(b/a);
             for i := 1 to 10 do read(y[i]);                                      PK := ro;
             max := 0;                                                        end;
             for i := 1 to 10 do                                             Begin
                 begin                                                        writeln(‘Введите абсциссы точек’);
                     PK(x[i], y[i], r[i], f[i]);                              for i :=1 to 10 do read(x[i]);
                     if r[i]>max then                                         writeln(‘Введите ординаты точек’);
                         begin                                                for i := 1 to 10 do read(y[i]);
                             max := r[i];                                     max := 0;
                             n := i;                                          for i := 1 to 10 do
                         end;                                                     begin
                 end;                                                                 r[i] := PK(x[i], y[i], f[i]);
             writeln(‘romax=’, r[n]:6:2, ‘ fimax=’, f[n]:6:2);                        if r[i]>max then
            End.                                                                          begin
                                                                                              max := r[i];
Вариант c функцией                                                                            n := i;
                                                                                          end;
    В данной задаче результатом вычисления подпрограммы яв-                       end;
ляются два значения (ro, fi). По правилам языка Турбо Паскаль                 writeln(‘romax=’, r[n]:6:2, ‘ fimax=’, f[n]:6:2);
имени функции может быть присвоено только одно значение,                     End.
например ro. Однако при оформлении функции допускается в
списке формальных параметров указывать не только параметры-
                               107                                                              108