2 мерный массив. - Pascal ABC
Формулировка задачи:
Нужно написать прогу плиз) Буду благодарен))
Дана целочисленная прямоугольная матрица. Определить:
1) количество строк, не содержащих ни одного нулевого элемента;
2) встречается ли более од¬ного раза максимальное из чисел в заданной матрице.
Решение задачи: «2 мерный массив.»
textual
Листинг программы
const nmax=20; var a:array[1..nmax,1..nmax] of integer; m,n,i,j,k,z:byte; sm,mn,mx:integer; begin randomize; repeat write('Количество строк от 2 до ',nmax,' m='); readln(m); until m in [2..nmax]; repeat write('Количество столбцов от 2 до ',nmax,' n='); readln(n); until n in [2..nmax]; writeln('Исходная матрица:'); for i:=1 to m do begin for j:=1 to n do begin a[i,j]:=random(20); write(a[i,j]:4); end; writeln; end; k:=0; for i:=1 to m do begin z:=0; j:=1; while(j<=n)and(z=0)do if a[i,j]=0 then z:=1 else inc(j); if z=0 then inc(k); end; writeln('Количество строк, не содержащих нолей=',k); k:=1; for i:=1 to m do for j:=1 to n do if(i=1)and(j=1) then mx:=a[1,1] else if a[i,j]=mx then begin k:=k+1; mx:=a[i,j]; end else if a[i,j]>mx then begin k:=1; mx:=a[i,j]; end; writeln('Максимальный элемент=',mx,' он встречен ',k,' рз.'); end.
Объяснение кода листинга программы
- Создается константа nmax, которая определяет максимальное количество элементов в массиве.
- Создается переменная a типа array[1..nmax,1..nmax] of integer. Эта переменная представляет двумерный массив целых чисел размером nmax x nmax.
- Создаются три байтовые переменные: m, n и i. Они будут использоваться для чтения и записи входных данных.
- Создаются две целые переменные: sm, mn и mx. Они будут использоваться для хранения минимального, максимального и текущего значения в цикле поиска максимального элемента.
- Запускается цикл repeat, который будет выполняться до тех пор, пока m (количество строк) и n (количество столбцов) не будут варьироваться в заданном диапазоне [2..nmax].
- Внутри цикла m повторяется цикл repeat, который будет выполняться до тех пор, пока j (номер столбца) не будет варьироваться в заданном диапазоне [1..n]. В каждой итерации этого внутреннего цикла создается переменная a[i,j] и присваивается случайное число от 0 до 20.
- После завершения внутреннего цикла выводится сообщение с количеством строк, не содержащих нулей.
- Запускается еще один цикл repeat, который будет выполняться до тех пор, пока i (номер строки) не будет варьироваться в заданном диапазоне [1..m].
- Внутри цикла i повторяется цикл while, который будет выполняться до тех пор, пока j (номер столбца) не будет варьироваться в заданном диапазоне [1..n] и z (флаг нулевого элемента) будет равно 0. Если a[i,j] равно 0, то z устанавливается в 1, иначе значение j увеличивается на 1.
- Если z равно 0, то значение k увеличивается на 1.
- После завершения внутреннего цикла выводится сообщение с количеством строк, не содержащих нулей.
- Значение mx обновляется, чтобы отразить максимальное значение, найденное в текущей строке.
- Выводится сообщение с максимальным значением и количеством его вхождений.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д