Министерство образования
Российской Федерации
Волгоградский государственный
технический университет
Кафедра прикладной математики
Семистровая работа по теме:
ПРОЦЕДУРЫ И
ФУНКЦИИ
Выполнил:
студент группы
Проверил:
Волгоград 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