Информатика Паскаль. Задана квадpатная таблица А (N, N) , элементами котоpого являются...

0 голосов
47 просмотров

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


Информатика (35 баллов) | 47 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
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<br>        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<br>          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
(150k баллов)