Вывести на экран ту из матриц, в которой наибольшее число строк, содержащих одни нули - Turbo Pascal (29897)
Формулировка задачи:
нужно составить следующую программу
Даны три матрицы.Вывести на экран ту из них,в которой наибольшее число строк,содержащих
одни нули (если таких матриц несколько,вывести их все).
желательно, не рандомный ввод.
буду очень благодарен даже за алгоритм)
Решение задачи: «Вывести на экран ту из матриц, в которой наибольшее число строк, содержащих одни нули»
textual
Листинг программы
uses crt; const nmax=10; type mtr=array[1..nmax,1..nmax] of integer; procedure matrix(var a:mtr;var m,n:byte;c:char); var i,j:byte; begin writeln('Введите размеры матрицы ',c); repeat write('Количество строк до ',nmax,' m='); readln(m); until m in [1..nmax]; repeat write('Количество столбцов до ',nmax,' n='); readln(n); until n in [1..nmax]; writeln('Введите элементы матрицы построчно'); for i:=1 to m do for j:=1 to n do begin write('el[',i,',',j,']='); readln(a[i,j]); end; clrscr; end; procedure print(a:mtr;m,n:byte;c:char); var i,j:byte; begin writeln('Матрица ',c); for i:=1 to m do begin for j:=1 to n do write(a[i,j]:5); writeln; end; end; function zero(a:mtr;m,n:byte):byte; var i,j,k,z:byte; begin k:=0; for i:=1 to m do begin z:=0; for j:=1 to n do if a[i,j]=0 then z:=z+1; if z=n then k:=k+1; end; zero:=k; end; var a,b,c:mtr; ma,na,mb,nb,mc,nc,za,zb,zc,mx:byte; begin clrscr; matrix(a,ma,na,'A'); matrix(b,mb,nb,'B'); matrix(c,mc,nc,'C'); writeln('Исходные матрицы:'); print(a,ma,na,'A'); za:=zero(a,ma,na); mx:=za; writeln('Количество строк из 0=',za); write('Press Enter'); readln; print(b,mb,nb,'B'); zb:=zero(b,mb,nb); if zb>mx then mx:=zb; writeln('Количество строк из 0=',zb); write('Press Enter'); readln; print(c,mc,nc,'C'); zc:=zero(c,mc,nc); if zc>mx then mx:=zc; writeln('Количество строк из 0=',zc); write('Press Enter'); readln; writeln('Матрицы в которых число строк из нолей максимально'); if za=mx then print(a,ma,na,'A'); if zb=mx then print(b,mb,nb,'B'); if zc=mx then print(c,mc,nc,'C'); readln; end.
Объяснение кода листинга программы
- В начале программы подключается библиотека crt, которая обеспечивает функции ввода-вывода.
- Объявляются три константы: nmax, которая определяет максимальное количество строк или столбцов в матрице (до 10), и два типа данных: mtr, который представляет собой матрицу целых чисел, и byte, который представляет собой базовый тип данных для целочисленных значений.
- Создается процедура matrix, которая запрашивает у пользователя размеры матрицы и затем заполняет ее элементами.
- Создается процедура print, которая выводит на экран матрицу.
- Создается функция zero, которая подсчитывает количество строк в матрице, заполненных нулями.
- В основной части программы создаются три переменные: a, b и c, которые представляют собой матрицы размером nmax x nmax.
- Запускается цикл, в котором программа поочередно выводит исходные матрицы, затем вызывает функцию zero и выводит результаты.
- В конце программы выводится сообщение о том, какие матрицы имеют максимальное количество строк из нулей.
- Если количество строк из нулей максимально в матрице a, то эта матрица выводится на экран.
- Если количество строк из нулей максимально в матрице b, то выводится матрица b.
- Если количество строк из нулей максимально в матрице c, то выводится матрица c.
- Программа завершается после ввода символа Enter.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д