Основы алгоритмизации и программирования. Часть третья. Структурированные типы данных. Асламова В.С - 11 стр.

UptoLike

21
writeln; {перевод курсора}
end;
begin
writeln (ввод np, nt, nr);
readln(np,nt,nr);
writeln(ввод mas p);
masread (p,np);
writeln(ввод массива t);
masread(t,nt);
writeln(ввод массива r);
masread(r,nr);
writeln(ввод х);
readln(x);
y:=sqr(x)*sum(p,np)+sum(t,nt)*x+sum(r,nr);
writeln(y= ,y);
end.
Пример 6:
Составить программу для вычисления функции:
)
22
2
(
)(
bath
baththa
Z
+
=
.
Использовать для вычисления гиперболического тангенса формулу:
1
1
2
2
+
=
+
=
x
x
xx
xx
e
e
ee
ee
thx
,
которую оформить в виде подпрограммы:
1) функции;
2) процедуры.
Формальными параметрами процедуры будут параметры (которые
можно передавать по значению)
x
и выходной результат с именем
th
,
который будем рассчитывать через вспомогательную переменную
c
и
r
.
x
ec
=
2
;
)1()1(
+
= ccr
;
rth
=
program bestimmung_th;
var a,b,z:real;
function th (x:real):real;
var r,c:real;
begin
c:=exp(2*x); r:=(c-1)/(c+1);
22
th:=r;
end;
begin
writeln (ввод a и b);
readln (a,b);
z:=(th(a)+sqr(th(a-b)))/sqrt(th(sqr(a)-sqr(b)));
writeln (z= ,z);
end.
Напишем вычисление той же функции через процедуру. В этом случае
аргумент функции будем передавать параметру х по значению, а результат
хранить в переменной r по ссылке.
program funth;
var a,b,z,t1,t2,t3:real;
{хпараметр значения; r – параметр-переменная }
procedure th (x:real; var r:real);
var c:real;
begin
c:=exp(2*x); r:=(c-1)/(c+1);
end;
begin
writeln (ввод a и b);
readln(a,b);
th(a,t1); th(a-b,t2); th(sqr(a)-sqr(b),t3);
z:=(t1-t2)/sqr(t3);
writeln(
z= ,z);
end.
Следует заметить, что в заголовке функции не используются, как
правило, параметры-переменные (значение которых передаётся по ссылке), т.
к. результат присваивается имени функции. Однако если формальным
параметром является массив, то он может быть оформлен как var-параметр.
Задание:
Напишите программы примеров 1 и 3, используя подпрограмму
функцию. Напишите программы примеров 4 и 5, используя вместо функции
процедуру.
    writeln;                            {перевод курсора}                          th:=r;
    end;                                                                   end;
    begin                                                                  begin
       writeln (′ввод np, nt, nr′);                                                writeln (′ввод a и b′);
       readln(np,nt,nr);                                                           readln (a,b);
       writeln(′ввод mas p′);                                                      z:=(th(a)+sqr(th(a-b)))/sqrt(th(sqr(a)-sqr(b)));
       masread (p,np);                                                             writeln (′z= ′,z);
       writeln(′ввод массива t′);                                          end.
       masread(t,nt);
                                                                             Напишем вычисление той же функции через процедуру. В этом случае
       writeln(′ввод массива r′);
       masread(r,nr);                                                  аргумент функции будем передавать параметру х по значению, а результат
       writeln(′ввод х′);                                              хранить в переменной r по ссылке.
       readln(x);                                                          program funth;
       y:=sqr(x)*sum(p,np)+sum(t,nt)*x+sum(r,nr);                          var a,b,z,t1,t2,t3:real;
       writeln(′y= ′,y);                                                                  {х – параметр значения; r – параметр-переменная }
    end.                                                                   procedure th (x:real; var r:real);
                                                                           var c:real;
       Пример 6:                                                           begin
                                                                               c:=exp(2*x); r:=(c-1)/(c+1);
      Составить программу для вычисления функции:                          end;
                                                                           begin
                                         tha+th2 (a −b) .
                                  Z=                                           writeln (′ввод a и b′);
                                                                               readln(a,b);
                                           th(a2 −b2 )                         th(a,t1); th(a-b,t2); th(sqr(a)-sqr(b),t3);
      Использовать для вычисления гиперболического тангенса формулу:           z:=(t1-t2)/sqr(t3);
                                     e x − e− x        e2x −1 ,                writeln(′z= ′,z);
                             thx =                 =                       end.
                                     e x + e− x        e2x +1
которую оформить в виде подпрограммы:                                        Следует заметить, что в заголовке функции не используются, как
              1) функции;                                              правило, параметры-переменные (значение которых передаётся по ссылке), т.
              2) процедуры.                                            к. результат присваивается имени функции. Однако если формальным
      Формальными параметрами процедуры будут параметры (которые       параметром является массив, то он может быть оформлен как var-параметр.
можно передавать по значению) x и выходной результат с именем th ,           Задание:
который будем рассчитывать через вспомогательную переменную c и r .          Напишите программы примеров 1 и 3, используя подпрограмму –
                                                                       функцию. Напишите программы примеров 4 и 5, используя вместо функции
                         c = e 2⋅ x ; r = (c −1) (c +1) ; th = r       процедуру.
    program bestimmung_th;
    var a,b,z:real;
    function th (x:real):real;
    var r,c:real;
    begin
          c:=exp(2*x); r:=(c-1)/(c+1);
                                         21                                                                       22