Создание программ, содержащих в своей структуре процедуры или функции

Страницы работы

7 страниц (Word-файл)

Содержание работы

Цель: создать программы, содержащие в своей структуре процедуры или функции.

Задание:

а) составить программу по алгоритму. Даны массивы А(m,n) и B(n,l) .Составить матрицу: произведение матрицы А на матрицу B.

б) Вычислить: x=1.8, a=0,5, b=3,2;

в) Даны 2 матрицы размером 10*10, элементами которых являются случайные числа из диапазона от 0 до 50. Найти сумму максимальных элементов столбцов обеих матриц и сумму минимальных элементов строк.

Блок схема:

а)

 


Блок-схема: альтернативный процесс: конецБлок-схема: данные: Matz [i,j]Блок-схема: подготовка: I=1,xБлок-схема: подготовка: J=1,yБлок-схема: альтернативный процесс: Vyvod (Matz,x,y)Блок-схема: альтернативный процесс: конецБлок-схема: ручной ввод: Matz[i,j]Блок-схема: данные: Введите Matz [i,j]Блок-схема: подготовка: j=1,y                                                    


б)

 



в)

Блок-схема: альтернативный процесс: конецБлок-схема: данные: PБлок-схема: данные: Sym

P=P+R

 
Блок-схема: типовой процесс: Symma(B,P)Блок-схема: типовой процесс: Symma(A,R)

Sym=Sym+Sum

 
Блок-схема: типовой процесс: Summa(B,sum)Блок-схема: типовой процесс: Summa(A,sym)Блок-схема: типовой процесс: Vyvod(B)Блок-схема: типовой процесс: Vyvod(A)Блок-схема: типовой процесс: Vvod(B)Блок-схема: типовой процесс: Vvod(A)Блок-схема: альтернативный процесс: начало                                                  


Блок-схема: альтернативный процесс: конец

S=S+max

 

max=M[i,j]

 
Блок-схема: решение: M[i,j]>maxБлок-схема: подготовка: i=1,10

max=0

 
Блок-схема: подготовка: j=1,10Блок-схема: альтернативный процесс: начало                                       

                                                      Summa

 


                 Vyvod                     Vvod


Программы:

а) program 007_01;

uses crt;

 type mas=array [1..50,1..50] of integer;

  var

  A:mas;

  B:mas;

  C:mas;

  m,n,l,k,i,j:integer;

 Procedure vvod (var M:mas;x,y:integer);

  var i,j:integer;

    begin

     writeln (' массив ');

    for i:=1 to x do

    for j:=1 to y do

   M[i,j]:=random(15)-5;

     end;

  Procedure vyvod ( M:mas;x,y:integer);

    var I,J:integer;

    begin

    for I:=1 to x do

    begin

    writeln;

    for J:=1 to y do

      write (M[i,j],'':2);

    end;end;

     BEGIN

     clrscr;

        writeln ('Введите кол-во строк матрицы A');

        readln(m);

        writeln ('Введите количество строк (столбцов)');

        readln(n);

        writeln ('Введите количество столбцов B');

        readln(l);

      vvod (A,m,n);

      vyvod (A,m,n);

      writeln;

      vvod (B,n,l);

      vyvod (B,n,l);

      writeln;

      readln;

       for k:=1 to m do

       for J:=1 to l do

       begin

        C[K,j]:=0;

              for i:=1 to n do

       C[k,j]:=C[K,j]+A[K,i]*B[i,j];

       end;

        vyvod (C,m,l);

        readln;

        END.

б) Program Zuum_1_2;

 uses crt;

 var

     x,a,b,y:real;

 function lg(x:real):real;

  begin

   lg:=ln(x)/ln(10);

  end;

 begin

  x:=1.8;

  a:=0.5;

  b:=3.2;

  y:=EXP(2*x)*lg(a+x)-EXP(3*x*ln(b))*lg(b-x);

  writeln ('y=',y:6:2);

  readln;

  END.

в) Program Zuum_1_3;

 uses crt;

  type mas=array [1..10,1..10] of integer;

  var

   A:mas;B:mas;

   Sym,Sum,P,R:integer;

  Procedure vvod (var M:mas);

  var i,j:integer;

   begin

    for i:=1 to 10 do

    for j:=1 to 10 do

   M[i,j]:=random(50);

   end;

  Procedure vyvod (M:mas);

  var i,j:integer;

   begin

    for i:=1 to 10 do

     begin

      writeln;

    for j:=1 to 10 do

    write (M[i,j]:2,'':2);

     end;

   end;

     Procedure summa (M:mas;var S:integer);

  var i,j,max:integer;

  begin

    for j:=1 to 10 do

      begin

       max:=0;

      for i:=1 to 10 do

      if M[i,j]>max then max:=M[i,j];

    S:=S+max;

        end;

        end;

       Procedure symma (M:mas;var T:integer);

    var i,j,min:integer;

     begin

      for i:=1 to 10 do

      begin

       min:=50;

      for j:=1 to 10 do

       if M[i,j]<min then min:=M[i,j];

     T:=T+min;

     end;

    end;

    BEGIN

    clrscr;

     vvod(A);

     vvod(B);

    vyvod(A);

    writeln;

    vyvod(B);

    writeln;

    summa(A,Sym);

    summa(B,Sum);

    Sym:=Sym+Sum;

    writeln;

    writeln('Сумма максимальных элементов столбцов обеих матриц = ',Sym);

    symma(A,R);

    symma(B,P);

    P:=P+R;

    writeln ('Сумма минимальных элементов строк обеих матриц = ',P);

    readln;

    END.

Результаты:

а) введите количество строк матрицы A: 3

введите количество строк (столбцов): 4

введите количество столбцов матрицы: 2

1 3 1 0              2 1                       получили: 8 0

1 0 4 2              1 -1                                      22 10

1 2 3 1              3 2                                        16 5

                         3 0

б) y=64.84

в) сумма максимальных элементов столбцов обеих матриц = 891

сумма минимальных элементов обеих матриц = 85

Вывод:

Я научился создавать программы, содержащие в своей структуре процедуры или функции.

Похожие материалы

Информация о работе