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

скачати


 

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

Волгоградский государственный технический университет
Кафедра прикладной математики
Семистровая работа по теме:

ПРОЦЕДУРЫ И ФУНКЦИИ
Выполнил:

студент группы
Проверил:
Волгоград 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





Подпись: 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
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. Блок-схема
Блок-схема: знак завершения: НАЧАЛО


Подпись: 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




j:=j+1
 
Блок-схема: решение: j>Mx
Блок-схема: знак завершения: 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

0     4 –6
 Vector:

-4 2 4 -6


 Modul=4

Додати в блог або на сайт

Цей текст може містити помилки.

Programming, computers, informatics and cybernetics | Essay
31.4кб. | download | скачати


Related works:
Тригонометрические функции
Определение понятие задачи и функции логистики
© Усі права захищені
написати до нас