Балтийский Государственный
Технический Университет
«ВоенМех»
имени Д.Ф. Устинова
Отчет
к лабораторной работе по информатике №5
На тему
Процедуры и матрицы
Отчет выполнил студент
Факультета «И»
Батов Сергей
Группа И433
Санкт-Петербург 2003
Лабораторная работа по информатике №5
Тема: Процедуры и матрицы
Цель: Ознакомиться с понятием процедуры и матрицы. Научиться использовать их при решении задач в языке Pascal.
Исходная задача: Дана матрица EM*N. Где M<16 и N<11. Получить номера столбцов, в которых все отрицательные числа превышают заданную величину.
Блок-схема алгоритма:
Листинг программы, решающей данную задачу:
program lab5;
const Mmax=15; Nmax=10;
type matrix = array [1..Mmax,1..Nmax] of real;
var Ematr: matrix;
m, n: integer;
min: real;
procedure Input_data (var m, n: integer; var Ematr: matrix; var min: real);
var i, j: integer;
begin
write('Введите размеры матрицы: '); readln(m, n);
writeln('Ввод матрицы [',m,'*',n,']: ');
for i:=1 to m do
begin
write(i,' строка [',n,'] элементов: ');
for j:=1 to n do
if j<n then read(Ematr[i,j])
else readln(Ematr[i,j]);
end;
write('Введите отрицательное число: '); readln(min);
writeln;
end;
procedure Count (m, n: integer; var mass: matrix; min: real);
var i, j, kol: integer;
flag, flag2: boolean;
begin
write('Номера искомых столбцов: ');
kol:=0;
for j:=1 to n do
begin
flag:=true;
flag2:=false;
i:=1;
while (i<=m) and flag do
begin
if Ematr[i,j]<0 then flag2:=true;
if (Ematr[i,j]<0) and (Ematr[i,j]<=min) then flag:=false;
inc(i);
end;
if flag and flag2 then
begin
write(j,' ');
inc(kol);
end;
end;
if kol=0 then writeln(‘Отсутствуют…’) else writeln;
end;
procedure Output_data (m, n: integer; var Ematr: matrix);
var i, j: integer;
begin
writeln('Вывод исходной матрицы: ');
for i:=1 to m do
begin
for j:=1 to n do
write(Ematr[i,j]:5:0,' ');
writeln;
end;
writeln;
end;
begin
Input_data (m, n, Ematr, min);
Output_data (m, n, Ematr);
Count (m, n, Ematr, min);
end.
Пояснения к используемым данным:
двумерный массив Ematr – исходная матрица переменные m и n – размеры исходной матрицы переменная min – хранит значение минимума для отриц. чисел процедура Input_data – процедура ввода матрицы и минимума процедура Count – процедура обработки и вывода результатов процедура Output_data – процедура вывода матрицы переменные i и j – переменные цикла переменная flag – определяет, все ли отриц. числа превосходят минимум переменная flag2 – определяет, есть ли в j-ом столбце отриц. элементы переменная kol – определяет кол-во столбцов
Тестовые данные:
1) A3*4 = -1 2 3 4 min = -3 Ответ: 1
1 2 3 4
0 0 0 -9
2) A3*4 = -1 2 -1 4 min = -2 Ответ: 1 3
1 -2 3 4
0 0 0 9
3) A3*4 = 1 2 1 4 min = -2 Ответ: Отсутствуют…
1 -2 3 4
0 0 0 9
Вывод: Мною было изучено понятие процедуры, для закрепления изученного материала была написана программа (lab5.pas) использующая матрицы. Произведенные тесты этой программы позволяют сделать вывод о правильности ее алгоритма и реализации этого алгоритма.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.