Вывести на экран ту из матриц, в которой наибольшее число строк, содержащих одни нули - Turbo Pascal (29897)

Узнай цену своей работы

Формулировка задачи:

нужно составить следующую программу Даны три матрицы.Вывести на экран ту из них,в которой наибольшее число строк,содержащих одни нули (если таких матриц несколько,вывести их все). желательно, не рандомный ввод. буду очень благодарен даже за алгоритм)

Решение задачи: «Вывести на экран ту из матриц, в которой наибольшее число строк, содержащих одни нули»

textual
Листинг программы
  1. uses crt;
  2. const nmax=10;
  3. type mtr=array[1..nmax,1..nmax] of integer;
  4. procedure matrix(var a:mtr;var m,n:byte;c:char);
  5. var i,j:byte;
  6. begin
  7. writeln('Введите размеры матрицы ',c);
  8. repeat
  9. write('Количество строк до ',nmax,' m=');
  10. readln(m);
  11. until m in [1..nmax];
  12. repeat
  13. write('Количество столбцов до ',nmax,' n=');
  14. readln(n);
  15. until n in [1..nmax];
  16. writeln('Введите элементы матрицы построчно');
  17. for i:=1 to m do
  18. for j:=1 to n do
  19.  begin
  20.   write('el[',i,',',j,']=');
  21.   readln(a[i,j]);
  22.  end;
  23. clrscr;
  24. end;
  25. procedure print(a:mtr;m,n:byte;c:char);
  26. var i,j:byte;
  27. begin
  28. writeln('Матрица ',c);
  29. for i:=1 to m do
  30.  begin
  31.   for j:=1 to n do
  32.   write(a[i,j]:5);
  33.   writeln;
  34.  end;
  35. end;
  36. function zero(a:mtr;m,n:byte):byte;
  37. var i,j,k,z:byte;
  38. begin
  39. k:=0;
  40. for i:=1 to m do
  41.  begin
  42.   z:=0;
  43.   for j:=1 to n do
  44.   if a[i,j]=0 then z:=z+1;
  45.   if z=n then k:=k+1;
  46.  end;
  47. zero:=k;
  48. end;
  49.  
  50.  
  51. var a,b,c:mtr;
  52.     ma,na,mb,nb,mc,nc,za,zb,zc,mx:byte;
  53. begin
  54. clrscr;
  55. matrix(a,ma,na,'A');
  56. matrix(b,mb,nb,'B');
  57. matrix(c,mc,nc,'C');
  58. writeln('Исходные матрицы:');
  59. print(a,ma,na,'A');
  60. za:=zero(a,ma,na);
  61. mx:=za;
  62. writeln('Количество строк из 0=',za);
  63. write('Press Enter');
  64. readln;
  65. print(b,mb,nb,'B');
  66. zb:=zero(b,mb,nb);
  67. if zb>mx then mx:=zb;
  68. writeln('Количество строк из 0=',zb);
  69. write('Press Enter');
  70. readln;
  71. print(c,mc,nc,'C');
  72. zc:=zero(c,mc,nc);
  73. if zc>mx then mx:=zc;
  74. writeln('Количество строк из 0=',zc);
  75. write('Press Enter');
  76. readln;
  77. writeln('Матрицы в которых число строк из нолей максимально');
  78. if za=mx then print(a,ma,na,'A');
  79. if zb=mx then print(b,mb,nb,'B');
  80. if zc=mx then print(c,mc,nc,'C');
  81. readln;
  82. end.

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

  1. В начале программы подключается библиотека crt, которая обеспечивает функции ввода-вывода.
  2. Объявляются три константы: nmax, которая определяет максимальное количество строк или столбцов в матрице (до 10), и два типа данных: mtr, который представляет собой матрицу целых чисел, и byte, который представляет собой базовый тип данных для целочисленных значений.
  3. Создается процедура matrix, которая запрашивает у пользователя размеры матрицы и затем заполняет ее элементами.
  4. Создается процедура print, которая выводит на экран матрицу.
  5. Создается функция zero, которая подсчитывает количество строк в матрице, заполненных нулями.
  6. В основной части программы создаются три переменные: a, b и c, которые представляют собой матрицы размером nmax x nmax.
  7. Запускается цикл, в котором программа поочередно выводит исходные матрицы, затем вызывает функцию zero и выводит результаты.
  8. В конце программы выводится сообщение о том, какие матрицы имеют максимальное количество строк из нулей.
  9. Если количество строк из нулей максимально в матрице a, то эта матрица выводится на экран.
  10. Если количество строк из нулей максимально в матрице b, то выводится матрица b.
  11. Если количество строк из нулей максимально в матрице c, то выводится матрица c.
  12. Программа завершается после ввода символа Enter.

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


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

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

15   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы