Практическая работа №56 «Матрицы»

Разделы: Информатика

Класс: 10

Ключевые слова: информатика


Доброе утро, 10-й класс!

Поздравляю, Вы справились с контрольной работой!

Но мы продолжим изучение сложных типов данных - массивов.

Откройте тетради, запишите число и Практическая работа №56 «Матрицы».

- Что такое матрица?

- Каких видов она бывает?

Все вы знакомы с таблицами, играли в шашки и шахматы. Это типичный пример двухмерной матрицы или по-другому их называют двухмерными массивами. Они состоят из строк и столбов. А мы в космосе живём в сложной трёхмерной матрице.

Но нас больше всего будет волновать, как решать задачи про двухмерные матрицы на языке Паскаль. Для этого вам нужно будет прочитать § 67 стр.206-211 и ответить письменно в тетради на контрольные вопросы стр. 209.

Отвечаете письменно в тетради на вопросы. На это вам будет достаточно 5-10 минут.

Приступим к практической работе № 56.

Она состоит в решении одной задачи «Минимальный и максимальный элемент матрицы», т.е. из первой задачи учебника по этой теме. Решать мы будем её олимпиадным способом.

Итак. Создайте на своём смартфоне папку minmax, а в ней при помощи программы блокнот входной файл «in.txt» и вносим туда данные. Например:

3 3
3 8 7
4 3 6
5 4 9

Выходной файл создавать не нужно. Его создаст сама вами написанная программа. Запускаем на смартфоне Паскаль. Нужно описать входной и выходной файл f1, f2:text; . Далее описываем матрицу a: array[1..100, 1..100], т.е. максимальный размер матрицы 100х100. Описываем порядковые переменные i и j, размеры матрицы n и m, а так же конечные переменные, которые нужно вывести в выходной файл.
Выглядит это следующим образом:

var
f1, f2: text;
a: array[1..100, 1..100] of byte;// описание матрицы
i, j, n, m, min, max: byte;

Далее мы подготовим к чтению и записи входной in.txt и выходной файл out.txt

begin
assign(f1,'in.txt');
reset(f1);
assign(f2,'out.txt');
rewrite(f2);

Затем нужно прочесть с входного файла количество строк и столбцов. Переменная n будет отвечать за количество строк, а m - за количество столбцов.

readln (f1,n,m);

Далее нужно прочесть значения элементов матрицы. Для этого нужно организовать два, вложенных друг в друга, цикла с параметрами.

for i:=1 to n do
for j:=1 to m do
read(f1, a[i, j]); // В данном случае нельзя писать readln, т.к. курсор опуститься на одну строку вниз и у вас появится ещё одна пустая строка, где хотя ничего не написано, программа посчитает эту строку нулями и выдаст ответ, что якобы в вашей матрицы минимальный элемент равен нулю.

Пусть элемент первой строки и столба a [1, 1] примет одновременно временно примет минимальное и максимальное значение.

min:=matr[1, 1];
max:=matr[1, 1];

Далее для поиска минимального и максимального элемента матрицы снова используем два, вложенных друг в друга, цикла с параметрами.

for i:=1 to n do
for j:=1 to m do
begin
if a[i,j]<=min then min:=a[i,j]
else max:=a[i,j];
end;

После поиска минимального и максимального элемента матрицы нам осталось только вывести их в выходной файл.

writeln(f2,'min = ', min);
writeln(f2,'max = ', max);

Далее закрываем выходной файл.

close(f2);

и закрываем программу

end.

Далее приведу скриншопы экрана моего смартфона.

Домашним заданием для вас будет практическая работа по сортировке матрицы отдельно по строкам и столбцам. Работу выполнить на своих смартфонах и прислать мне свои работы скриншотами.

Удачи!

Если возникнут трудности в выполнении домашнего задания, то пишите мне на WhatsApp.