Рефетека.ру / Информатика и програм-ие

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

Министерство образования Российской Федерации

Волгоградский государственный технический университет

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

Семистровая работа по теме:

ПРОЦЕДУРЫ И ФУНКЦИИ

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

Проверил:

Волгоград 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 20) and (j mod 20) 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)

Рефетека ру refoteka@gmail.com