реферат Процедуры и функции

Министерство образования Российской Федерации
            Волгоградский государственный технический университет

                        Кафедра прикладной математики



                         Семистровая работа по теме:
                             ПРОЦЕДУРЫ И ФУНКЦИИ



                                                                   Выполнил:
                                                              студент группы

                                                                   Проверил:



                               Волгоград 2003
1. Задание

      1.1.
      Ввести двумерный массив. Найти сумму элементов с нечетными индексами.

      1.2.
      Ввести двумерный массив. Получить одномерный массив включающий все не
нулевые элементы матрицы. Найти модуль полученного вектора.
2.1. Блок-схема



3.1. Текст программы

PROGRAM SEM1;
uses crt;
const Nmax=10;
      Mmax=10;
type matr=array[1..Nmax,1..Mmax] of integer;
var A:matr;
Na,i,j,Ma,S,max:integer;

Procedure Vvod(var x:matr; var Nx,Mx:integer; P:char);
begin
clrscr;
write('Vvedite N: ');
read(Nx);
writeln;
write('Vvedite M: ');
read(Mx);
writeln;
for i:=1 to Nx do
                  for j:=1 to Mx do begin
                                    write(P,'[',i,',',j,']=');
                                    read(x[i,j]);
                                    end;

end;

Function Summa(var x:matr; Nx,Mx:integer):integer;
begin
S:=0;
i:=1;
repeat
j:=1;
repeat
if (i mod 2<>0) and (j mod 2<>0) then S:=S+x[i,j];
j:=j+1;
until j>Mx;
i:=i+1;
until i>Nx;
Summa:=S;
end;

Procedure Vivod(var x:matr; Nx,Mx:integer; P:char);
begin
writeln;
writeln('Matrica ',P,':');
writeln;
i:=1;
repeat
j:=1;
repeat
write(x[i,j],' ');
j:=j+1;
until j>Mx;
writeln;
i:=i+1
until i>Nx;
end;

begin
vvod(a,na,ma,'A');
S:=Summa(a,na,ma);
vivod(a,na,ma,'A');
writeln;
writeln('SUMMA= ',S);
end.

4.1. Тестовый пример и результат


N=3 M=3


1 2 3
4 5 6
7 8 9

SUMMA=20



2.2. Блок-схема



3.2. Текст программы

PROGRAM SEM2;
uses crt;
const Nmax=10;
      Mmax=10;
      Kmax=100;
type matr=array[1..Nmax,1..Mmax] of integer;
     vector=array[1..Kmax] of integer;
var A:matr;
    C:vector;
Na,i,j,Ma,Nc,k,M:integer;

Procedure Vvod(var x:matr; var Nx,Mx:integer; P:char);
begin
clrscr;
write('Vvedite N: ');
read(Nx);
writeln;
write('Vvedite M: ');
read(Mx);
writeln;
for i:=1 to Nx do
                  for j:=1 to Mx do begin
                                    write(P,'[',i,',',j,']=');
                                    read(x[i,j]);
                                    end;

end;

Procedure Sozd(var x:matr; Nx,Mx:integer);
begin
Nc:=0;
k:=1;
i:=1;
repeat
j:=1;
repeat
if (x[i,j]<>0) then begin
                    c[k]:=x[i,j];
                    Nc:=Nc+1;
                    k:=k+1;
                    end;
j:=j+1;
until j>Mx;
i:=i+1;
until i>Nx;
end;

Function Modul(var x:vector; Nx:integer):integer;
begin
M:=0;
for k:=1 to Nx do M:=M+x[k];
M:=ABS(M);
Modul:=M;
end;

Procedure Vivod(var x:vector; Nx:integer; P:char);
begin
writeln;
writeln('Vector ',P,':');
writeln;
k:=1;
repeat
write(x[k],' ');
k:=k+1;
until k>Nx;
writeln;
end;

begin
vvod(a,na,ma,'A');
Sozd(a,na,ma);
M:=Modul(c,nc);
vivod(c,nc,'C');
writeln;
writeln('MODUL= ',M);
end.

4.2. Тестовый пример и результат


 N=2 M=3


-4  2  0
  0. 4 –6

 Vector:
-4 2 4 -6


 Modul=4

-----------------------
                                    КОНЕЦ

                            VVOD (a, Na,Ma, ‘A’)

                              s:=summa(a,Na,Ma)

                            VIVOD (a,Na,Ma, ‘A’)

                          i не кр. 2 и   j не кр.2

                                   Вывод S

                                    j:=1

                                 i:=1 to Nx

                VVOD (var x:matr; var Nx,Mx:integer; P:char)

                                 x [ i , j ]

                                    Nх,Mx

                                   НАЧАЛО

j:=1 to Mx

                                     END

                                     END

                                  Modul:=M

                                  M:=ABS(M)

                                  M:=M+x[k]

                                  k:=k + 1

                                    k:=1

                                    Nc:=0

                               M:=Modul(c,Nc)

                                     END

                                   j:=j+1

                                   i:=i+1

                                    i>Nx

                                    j>Mx

                                 x [ i , j ]

                                    j:=1

                                    i:=1

                  VIVOD (var x:matr; Nx,Mx:integer; P:char)

                  Summa (var x:matr; Nx,Mx:integer):integer

                                  Summa:=S

                                    i:=1

                                    S:=0

                              S:= S + x [i, j]

                                   i:=i+1

                                    i>Nx

                                    j>Mx

                                   j:=j+1

                                     END

                                     END

                                 x [ i , j ]

j:=1 to Mx

                                 i:=1 to Nx

                                    КОНЕЦ

                                   НАЧАЛО

                                    Nх,Mx

                            VVOD (var x:matr; var
    Nx,Mx:i?????????????????????????????ъ?ъ?ъ?ъ?ъ?ъ?ъ?ъ?ъnteger; P:char)

                                     END

                                   k:=k+1

                                    M:=0

                              VIVOD (c, Nc,‘C’)


                              VVOD (a,Na,Ma‘A’)

            Modul (var x:vector; var Nx:integer; P:char):integer

                                    k>Nx

                                 x [ i , j ]

                                 k:=1 to Nx

                                    k:=1

                                SOZD (a,Na,Ma)

                  VIVOD (var x:vector; Nx:integer; P:char)

                                   i:=i+1

                                    i>Nx

                                    j>Mx

                                   j:=j+1

                                 Nc:=Nc + 1

                                     END

                                 x[i, j]<>0

                                    j:=1

                                    i:=1

                                c[k]:=x[i, j]

                      SOZD (var x:matr; Nx,Mx:integer)