Информатика паскаль. задана квадpатная таблица а (n, n) , элементами котоpого являются нули и единицы. подсчитайте в ней: 1) количество стpок, в котоpых есть тpи нуля, pасположенных pядом; 2) количество столбцов, в котоpых нули и единицы чеpедуются; 3) количество единичных столбцов и количество нулевых стpок. хотя-бы одну из программ, выручайте!

Missura2001 Missura2001    2   22.09.2019 20:20    2

Ответы
katesmile7 katesmile7  08.10.2020 10:28
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018
Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger('Количество строк/столбцов в таблице:');
  var a:=MatrRandom(n,n,0,1);
  a.Println(2); Writeln(2*a.ColCount*'-');
  // 1
  var k:=0;
  for var i:=0 to a.RowCount-1 do
    for var j:=0 to a.ColCount-3 do
      if (a[i,j]=0) and (a[i,j+1]=0) and (a[i,j+2]=0) then begin
        k+=1; break
        end;
  Writeln('1: ',k);
  // 2
  k:=0;
  for var j:=0 to a.ColCount-1 do
    if (a[0,j]=0) and (a[1,j]=1) then begin
      var (i,flag):=(2,True);
      while i<=a.RowCount-2 do begin
        if not ((a[i,j]=0) and (a[i+1,j]=1)) then
          begin flag:=False; break end
        else i+=2
        end;
      if flag then k+=1
      end
    else
      if (a[0,j]=1) and (a[1,j]=0) then begin
        var (i,flag):=(2,True);
        while i<=a.RowCount-2 do begin
          if not ((a[i,j]=1) and (a[i+1,j]=0)) then
            begin flag:=False; break end
          else i+=2
          end;
        if flag then k+=1
      end;
  Writeln('2: ',k);
  // 3
  var r0:=a.Rows.Where(row->row.All(t->t=0)).Count;
  var c1:=a.Cols.Where(col->col.All(t->t=1)).Count;
  Writeln('3: Нулевых строк ',r0,', единичных колонок ',c1)
end.

Пример
Количество строк/столбцов в таблице: 4
 1 1 0 1
 0 0 0 1
 1 1 1 1
 0 1 1 1

1: 1
2: 1
3: Нулевых строк 0, единичных колонок 1
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика