Процедуры и функции
Министерство образования Российской Федерации
Волгоградский государственный технический университет
Кафедра прикладной математики
Семистровая работа по теме:
ПРОЦЕДУРЫ И ФУНКЦИИ
Выполнил:
студент группы
Проверил:
Волгоград 2003
1. Задание
1.1.
Ввести двумерный массив. Найти сумму элементов с нечетными индексами.
1.2.
Ввести двумерный массив. Получить одномерный массив включающий все не нулевые элементы матрицы. Найти модуль полученного вектора.
s:=summa(a,Na,Ma) КОНЕЦ Вывод S Nх,Mx VIVOD (a,Na,Ma, ‘A’) VVOD (a, Na,Ma, ‘A’) END x [ i , j ] j:=1 to Mx i:=1 to Nx НАЧАЛО VVOD (var x:matr; var Nx,Mx:integer; P:char)
2.1. Блок-схема
S:=0
i:=1
Summa (var x:matr; Nx,Mx:integer):integer
j:=1
i не кр. 2 и j не кр.2
S:= S + x [i, j]
j:=j+1
j>Mx
i:=i+1
i>Nx
Summa:=S
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) END
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. Блок-схема
НАЧАЛО
VVOD (a,Na,Ma‘A’)
SOZD (a,Na,Ma)
M:=Modul(c,Nc)
VIVOD (c, Nc,‘C’)
КОНЕЦ
VVOD (var x:matr; var Nx,Mx:integer; P:char)
Nх,Mx END i:=1 to Nx
x [ i , j ] j:=1 to Mx
SOZD (var x:matr; Nx,Mx:integer)
Nc:=0
k:=1
i:=1
j:=1
x[i, j]<>0
c[k]:=x[i, j]
Nc:=Nc + 1
k:=k + 1
j:=j+1
j>Mx
i:=i+1
i>Nx
END
Modul (var x:vector; var Nx:integer; P:char):integer
M:=0
k:=1 to Nx
M:=ABS(M)
Modul:=M M:=M+x[k]
END
x [ i , j ]
k:=1
k>Nx
k:=k+1
END
VIVOD (var x:vector; Nx:integer; P:char)
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
4 –6
Vector:
-4 2 4 -6
Modul=4
Нравится материал? Поддержи автора!
Ещё документы из категории информатика:
Чтобы скачать документ, порекомендуйте, пожалуйста, его своим друзьям в любой соц. сети.
После чего кнопка «СКАЧАТЬ» станет доступной!
Кнопочки находятся чуть ниже. Спасибо!
Кнопки:
Скачать документ