ЛАБОРАТОРНАЯ РАБОТА
по дисциплине “Основы программирования”
на тему
Алгоритмические языки: использование процедур при работе с двумерными массивами
Цель работы: получение навыков работы с процедурами и двумерными массивами.
Постановка задачи:
1. Изучить способы описания и использования многомерных массивов, назначение процедур, их описание и обращение к ним.
2. Разбить задачу соответствующего варианта на подзадачи, таким образом, чтобы решение каждой подзадачи описывалось процедурой, а основная программа состояла из последовательности вызова процедур.
3. Программно реализовать алгоритмы.
Задание к работе:1. Дана матрица n*m. В каждой Строке выбрать минимальный элемент, затем среди них найти наибольший. Вывести индексы найденного элемента.
2. Набрать программу, отладить ее, протестировать. Распечатать текст программы и результаты ее работы на тестовых данных.
Ход выполнения работы
1. Блок-схема:
-
|
|
|
-
+
Рисунок 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]<z then
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.
Похожие работы
... ячейка, а имя переменной превращается в адрес ячейки. Появление этого адреса происходит в результате работы специального оператора языка (NEW), однако его значение в большинстве случаев не используется при программировании на алгоритмических языках типа Паскаль. Условимся считать, что адрес ячейки, которая будет хранить переменную А, есть А. Или, другими словами, А - это общее имя переменной и ...
... . Объясните, для чего служат разрешения и привилегии в Windows NT. Зав. кафедрой -------------------------------------------------- Экзаменационный билет по предмету СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Билет № 22 Перечислите возможности и инструменты системы программирования Microsoft Developer Studio. Укажите для чего предназначается буфер в системах ввода-вывода, ...
... , сколько времени потребуется для его составления, как много места для возможных ошибок? Естественно, об этом задумывались и авторы языков программирования. Поэтому во всех существующих языках имеются типы переменных, отвечающие за хранение больших массивов данных. В языке Паскаль они так и называются: "массивы". Массивом будем называть упорядоченную последовательность данных одного типа, ...
... с внешнего устройства (из входного файла) в основную память ЭВМ, операция вывода - это пересылка данных из основной памяти на внешнее устройство (в выходной файл). Файлы на внешних устройствах часто называют физическими файлами. Их имена определяются операционной системой. В программах на языке Паскаль имена файлов задаются с помощью строк. Например, имя файла на диске может иметь вид: ...
0 комментариев