46751 (Алгоритмические языки: использование процедур при работе с двумерными массивами)
Описание файла
Документ из архива "Алгоритмические языки: использование процедур при работе с двумерными массивами", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "46751"
Текст из документа "46751"
ЛАБОРАТОРНАЯ РАБОТА
по дисциплине “Основы программирования”
на тему
Алгоритмические языки: использование процедур при работе с двумерными массивами
Цель работы: получение навыков работы с процедурами и двумерными массивами.
Постановка задачи:
1. Изучить способы описания и использования многомерных массивов, назначение процедур, их описание и обращение к ним.
2. Разбить задачу соответствующего варианта на подзадачи, таким образом, чтобы решение каждой подзадачи описывалось процедурой, а основная программа состояла из последовательности вызова процедур.
3. Программно реализовать алгоритмы.
Задание к работе:
1. Дана матрица n*m. В каждой Строке выбрать минимальный элемент, затем среди них найти наибольший. Вывести индексы найденного элемента.
2. Набрать программу, отладить ее, протестировать. Распечатать текст программы и результаты ее работы на тестовых данных.
Ход выполнения работы
1. Блок-схема:
z:=a[x,1] c[i]:=1
-
+
z:=a[x,y]
c[i]:=y
b[x]:=z
z:=b[1] y:=1
z:=b[x] y:=x
-
+
Рисунок 1. Блок-схема программы
2. Текст программы
Program lab52;
Const
max=10;
Type
mat=array[1..max] of array[1..max] of integer;
Var
a:mat;
b:array[1..max] of integer;
c:array[1..max] of Byte;
i,j:byte;
procedure vvod_m(Var a:mat;Var i,j:Byte);
Var x,y:byte;
Begin
Writeln('Введите мерность матрици ');
Write('i='); readln(i);
Write('j='); readln(j);
Writeln('Введите массив:');
for x:=1 to i do
for y:=1 to j do
Begin
write('a[',x,',',y,']=');
readln(a[x,y])
End
End;
Procedure Proc(a:mat;i,j:byte);
Var
b:array[1..max] of integer;
c:array[1..max] of Byte;
x,y:byte;
z:integer;
Begin
for x:=1 to i do
Begin
z:=a[x,1];
c[i]:=1;
for y:=2 to j do
if a[x,y] Begin z:=a[x,y]; c[i]:=y End; b[x]:=z; End; z:=b[1]; y:=1; for x:=2 to i do if b[x]>z then Begin z:=b[x]; y:=x End; Writeln('Искомый элемент-a[',y,',',c[y],']=',a[y,c[y]]); End; Begin vvod_m(a,i,j); Proc(a,i,j) End. 3. Результаты работы: 1. Тест №1. Искомый элемент - a[2,1]=3. Рисунок 2. Результат теста №1. 2. Тест №2. Искомый элемент - a[3,1]=2. Рисунок 3. Результат теста №2.