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

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

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

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

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

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

Выполнил:

Студент группы

Проверил:

Волгоград 2003

1. Задание

1.1.

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

1.2.

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

S:=summa(a, Na, Ma)

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

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

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

Summa:=S

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. Блок-схема

J:=j+1

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


1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...
Процедуры и функции