Вопрос задан 31.07.2023 в 12:49. Предмет Информатика. Спрашивает Мунинкин Серёжа.

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

единицы. Подсчитайте в ней: 1) количество стpок, в котоpых есть тpи нуля, pасположенных pядом; 2) количество столбцов, в котоpых нули и единицы чеpедуются; 3) количество единичных столбцов и количество нулевых стpок. Срочно!!! Хотя-бы одну из программ, выручайте!
0 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
        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
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, вот решение на Pascal для заданных задач:

pascal
program CountPatterns; const N = 5; // Размер квадратной таблицы type TMatrix = array[1..N, 1..N] of Integer; var A: TMatrix; i, j, count1, count2, count3: Integer; // Подсчет количества стpок, в котоpых есть тpи нуля, pасположенных pядом function CountRowsWithThreeZeros(matrix: TMatrix): Integer; var i, j, zerosCount: Integer; begin Result := 0; for i := 1 to N do begin zerosCount := 0; for j := 1 to N do begin if matrix[i, j] = 0 then Inc(zerosCount) else zerosCount := 0; if zerosCount = 3 then begin Inc(Result); Break; end; end; end; end; // Подсчет количества столбцов, в котоpых нули и единицы чеpедуются function CountColumnsWithAlternatingValues(matrix: TMatrix): Integer; var i, j: Integer; begin Result := 0; for j := 1 to N do begin for i := 1 to N - 1 do begin if matrix[i, j] = matrix[i + 1, j] then Break; end; if i = N - 1 then Inc(Result); end; end; // Подсчет количества единичных столбцов и нулевых строк procedure CountZeroRowsAndOneColumns(matrix: TMatrix; var zeroRowCount, oneColumnCount: Integer); var i, j: Integer; begin zeroRowCount := 0; oneColumnCount := 0; for i := 1 to N do begin for j := 1 to N do begin if matrix[i, j] = 0 then Break; end; if j = N + 1 then Inc(zeroRowCount); for j := 1 to N do begin if matrix[j, i] = 1 then Break; end; if j = N + 1 then Inc(oneColumnCount); end; end; begin // Инициализация матрицы A, например случайными значениями for i := 1 to N do for j := 1 to N do A[i, j] := Random(2); // Заполнение случайными нулями и единицами count1 := CountRowsWithThreeZeros(A); count2 := CountColumnsWithAlternatingValues(A); CountZeroRowsAndOneColumns(A, count3, count3); // Вывод результатов WriteLn('Количество строк с тремя нулями подряд: ', count1); WriteLn('Количество столбцов с чередующимися значениями: ', count2); WriteLn('Количество нулевых строк: ', count3); WriteLn('Количество единичных столбцов: ', count3); end.

Пожалуйста, обратите внимание, что данная программа использует случайные значения для заполнения матрицы. Вы можете изменить их на ваши данные или выбрать другой способ инициализации.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос