- •«Информатика»
- •Введение
- •Требования к оформлению отчёта по лабораторной работе
- •Лабораторная работа №1. Табуляция функции
- •3. Лабораторная работа №2. Одномерные массивы
- •4. Лабораторная работа №3. Двухмерные массивы
- •Лабораторная работа №4. Построение графика функции
- •6. Лабораторная работа №5.Строковые типы и операции над ними
4. Лабораторная работа №3. Двухмерные массивы
Номер столбца элемента
№ строки элемента |
|
1 |
2 |
… |
10 |
… |
m |
1 |
|
|
|
|
|
| |
2 |
|
|
|
1048 |
|
| |
… |
|
|
|
|
|
| |
N |
|
|
|
|
|
|
Пример:
запись элементов массива
Z[2,10]:=1048;
Z[i,k]-
Var Z:array [1..9,1...8] of word;
Выполнение лабораторной работы рассмотрим на конкретном примере.
4.1. Условие задачи:
Дана матрица 9х9, элементы которой расчитываются по формуле: Elem[i,k] =i*sin(k), гдеi= № строки,k= № столбца этого элемента.
Найти: наибольший элемент - в каждой строке, наименьший элемент - в каждом столбце. Результат записать в текстовый файл.
4.2. Постановка задачи:
1) Elem[i,k] =i*sin(k)
i- номер строки
k– номер столбца
Max[i] – наибольший элемент в каждой строке.
Min[k] – наименьший элемент в каждом столбце.
LM– обозначим имя файла в программе (логическое имя файла)
MATR.TXT– физическое имя файла (на диске)
Результаты:
Матрица max
min
Алгоритм:
да нет
да нет
нет да
нет да
Нет да
Нет да
нет да нет да
нет да
нет да
k=1 k=k+1
Нет да
4.4. Текст программы:
Program Matr;
Var Elem:array[1..9,1..9] of real;
Min,Max:array[1..9] of real;
i,k,col:integer;
s:real;
LM:text; {file of string[20]}
Begin
assign(LM,'D:\matr.txt'); {. Процедураassign устанавливает соответствие между обозначением файла ( логическим файлом), используемым в программе, и названием реального физического файла ( или устройством).}
rewrite (LM);{ Операторомrewriteоткрывается логический файл для записи в него. После окончания работы файл закрывается операторомclose.}
for i:=1 to 9 do
for k:=1 to 9 do
Elem[i,k]:=i*sin(k);
for i:=1 to 9 do
begin
Max[i]:=Elem[i,1];
for k:=2 to 9 do
if Max[i]<Elem[i,k] then Max[i]:=Elem[i,k];
end;
for i:=1 to 9 do
begin
Min[k]:=Elem[1,k];
for k:=1 to 9 do
if Min[k]>Elem[i,k] then Min[k]:=Elem[i,k];
end;
for i:=1 to 9 do
begin
for k:=1 to 9 do
write (LM,Elem[i,k]:5:1);
writeln (LM,Max[i]:9:1);
end;
writeln (LM);
for k:=1 to 9 do
write (LM,Min[k]:5:1);
writeln (LM);
Close(LM);
end.
4.5. Результат:
Открываем файл Matr.txt, находящийся в корневом каталоге дискаD
0.8 0.9 0.1 -0.8 -1.0 -0.3 0.7 1.0 0.4 1.0
1.7 1.8 0.3 -1.5 -1.9 -0.6 1.3 2.0 0.8 2.0
2.5 2.7 0.4 -2.3 -2.9 -0.8 2.0 3.0 1.2 3.0
3.4 3.6 0.6 -3.0 -3.8 -1.1 2.6 4.0 1.6 4.0
4.2 4.5 0.7 -3.8 -4.8 -1.4 3.3 4.9 2.1 5.0
5.0 5.5 0.8 -4.5 -5.8 -1.7 3.9 5.9 2.5 5.9
5.9 6.4 1.0 -5.3 -6.7 -2.0 4.6 6.9 2.9 6.9
6.7 7.3 1.1 -6.1 -7.7 -2.2 5.3 7.9 3.3 7.9
7.6 8.2 1.3 -6.8 -8.6 -2.5 5.9 8.9 3.7 8.9
0.8 0.9 0.1 -6.8- -8.6 -2.5 0.7 1.0 0.4