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

Ответы на вопрос

Отвечает Драган Диана.
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
Внимание! Если программа не работает, обновите версию!
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



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Конечно, вот решение на Pascal для заданных задач:
pascalprogram 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.
Пожалуйста, обратите внимание, что данная программа использует случайные значения для заполнения матрицы. Вы можете изменить их на ваши данные или выбрать другой способ инициализации.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili