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

UptoLike

19
Оператор присваивания:
2. Идентификатор типа в конце заголовка функции определяет тип
значения функции. Это может быть простой тип (порядковый или тип real),
строковый или типуказатель”.
3. В основной программе функция вызывается внутри выражения (т.е.
имя функции должно стоять справа от оператора присваивания) или в списке
параметров оператора writeln.
Вызов функции:
Пример 4:
Рассмотрим
пример использования подпрограммы функции для
вычисления числа сочетаний (из n по m).
)!(!
!
mnm
n
m
n
C
=
var n,m:byte;
cnm:longint;
function fact (k:byte):longint; {функция вычисляет значение k!}
var p:longint; i:byte;
begin
p:=1;
переменная
Имя
подпрограммы
функции
выражение
:=
;
Фактические
параметры
Имя функции
,
( )
20
if k>1 then for i:=2 to k do
p:=p*i;
fact:=p; {присваивание имени функции результата
работы функции}
end;
{основная программа}
begin
writeln(ввод n и m);
readln(n,m);
cnm:=fact(n) div fact(m) div fact(n-m); {вызовы функций}
writeln(число сочетаний= ,cnm);
end.
Пример 5:
Найти значение функции y(x): y(x)=ax
2
+bx+c, где
a=
=
np
i
ip
1
)(
b
=
=
nt
i
it
1
)( c=
=
n
r
i
ir
1
)( ;
Для накопления элементов массива использовать функцию. Функцию для
вычисления в общем виде можно представить как:
sum=
=
k
i
i
z
1
coust max=40;
type m=1. . max;
mas= array[m] of real;
var i,np,nt,nr:byte;
p,t,r:mas;
x,y:real;
function sum (z:mas,k:byte):real; {вычисление суммы элементов массива}
var j:byte; s:real;
begin
s:=0;
for j:=1 to k do s=s+z(j);
sum:=s; {результат присвоен имени функции}
end;
procedure masread (var z:mas,k:byte); {процедура ввода массива}
var l:byte;
begin
writeln (ввод ,k, элементов массива);
for l:=1 to k do read (z[l]);
          Оператор присваивания:                                                    if k>1 then for i:=2 to k do
                                                                                    p:=p*i;
                                                                                   fact:=p;                {присваивание имени        функции        результата
               переменная                                                                                  работы функции}
                                                                                end;
                                               :=        выражение       ;                    {основная программа}
                   Имя                                                          begin
              подпрограммы                                                          writeln(′ввод n и m′);
                 функции                                                            readln(n,m);
                                                                                   cnm:=fact(n) div fact(m) div fact(n-m);                 {вызовы функций}
                                                                                    writeln(′число сочетаний= ′,cnm);
                                                                                end.
    2.  Идентификатор типа в конце заголовка функции определяет тип
значения функции. Это может быть простой тип (порядковый или тип real),             Пример 5:
строковый или тип “указатель”.                                                    Найти значение функции y(x): y(x)=ax2+bx+c, где
    3.  В основной программе функция вызывается внутри выражения (т.е.                                np             nt               nr
имя функции должно стоять справа от оператора присваивания) или в списке                         a=   ∑ p(i)
                                                                                                      i =1
                                                                                                               b=    ∑ t (i)
                                                                                                                     i =1
                                                                                                                                 c=   ∑
                                                                                                                                      i =1
                                                                                                                                           r (i) ;
параметров оператора writeln.
                                                                             Для накопления элементов массива использовать функцию. Функцию для
          Вызов функции:                                                     вычисления в общем виде можно представить как:
                                                                                                                          k

         Имя функции
                                                                                                               sum=    ∑
                                                                                                                       i =1
                                                                                                                            zi

                                                    Фактические
                                      (              параметры
                                                                     )          coust max=40;
                                                                                type m=1. . max;
                                                                                mas= array[m] of real;
                                                         ,                      var i,np,nt,nr:byte;
                                                                                     p,t,r:mas;
         Пример 4:                                                                   x,y:real;
                                                                                function sum (z:mas,k:byte):real; {вычисление суммы элементов массива}
     Рассмотрим пример использования подпрограммы функции для
                                                                                var j:byte; s:real;
вычисления числа сочетаний (из n по m).                                         begin
                                             n!                                     s:=0;
                                      Cm =                                          for j:=1 to k do s=s+z(j);
                                       n m!(n − m)!                                 sum:=s;                         {результат присвоен имени функции}
    var n,m:byte;                                                               end;
    cnm:longint;                                                                procedure masread (var z:mas,k:byte); {процедура ввода массива}
    function fact (k:byte):longint;       {функция вычисляет значение k!}        var l:byte;
    var p:longint; i:byte;                                                      begin
    begin                                                                           writeln (′ввод ′,k,′ элементов массива′);
        p:=1;                                                                       for l:=1 to k do read (z[l]);
                                          19                                                                    20