Доброе утро, 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.