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.

Объяснение кода листинга программы

  1. Создается константа nmax, которая определяет максимальное количество элементов в массиве.
  2. Создается переменная a типа array[1..nmax,1..nmax] of integer. Эта переменная представляет двумерный массив целых чисел размером nmax x nmax.
  3. Создаются три байтовые переменные: m, n и i. Они будут использоваться для чтения и записи входных данных.
  4. Создаются две целые переменные: sm, mn и mx. Они будут использоваться для хранения минимального, максимального и текущего значения в цикле поиска максимального элемента.
  5. Запускается цикл repeat, который будет выполняться до тех пор, пока m (количество строк) и n (количество столбцов) не будут варьироваться в заданном диапазоне [2..nmax].
  6. Внутри цикла m повторяется цикл repeat, который будет выполняться до тех пор, пока j (номер столбца) не будет варьироваться в заданном диапазоне [1..n]. В каждой итерации этого внутреннего цикла создается переменная a[i,j] и присваивается случайное число от 0 до 20.
  7. После завершения внутреннего цикла выводится сообщение с количеством строк, не содержащих нулей.
  8. Запускается еще один цикл repeat, который будет выполняться до тех пор, пока i (номер строки) не будет варьироваться в заданном диапазоне [1..m].
  9. Внутри цикла i повторяется цикл while, который будет выполняться до тех пор, пока j (номер столбца) не будет варьироваться в заданном диапазоне [1..n] и z (флаг нулевого элемента) будет равно 0. Если a[i,j] равно 0, то z устанавливается в 1, иначе значение j увеличивается на 1.
  10. Если z равно 0, то значение k увеличивается на 1.
  11. После завершения внутреннего цикла выводится сообщение с количеством строк, не содержащих нулей.
  12. Значение mx обновляется, чтобы отразить максимальное значение, найденное в текущей строке.
  13. Выводится сообщение с максимальным значением и количеством его вхождений.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5