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
Program n_5; var a, d: integer; b, c, f: real; begin d := random(1, 8); writeln('Для выбора А-92 введите 1. Цена: 20.00руб. за литр'); writeln('Для выбора А-95 введите 2. Цена: 25.00руб. за литр'); writeln('Для выбора А-98 введите 3. Цена: 30.00руб. за литр'); write('Введите марку бензина - '); readln(a); write('Введите количество литров - '); readln(b); if (a < 1) or (a > 3) or (b <= 0) then write('Ошибка. Введены некорректные значения'); case a of 1: c := 20 * b; 2: c := 25 * b; 3: c := 30 * b end; writeln; writeln('Кассовый чек'); writeln('АЗС: "Полный бак"'); writeln('Адрес: г.Волгоград, улица Новослободская д.32'); writeln('Кассир: Иванова Ирина Викторовна'); writeln('Номер колонки: ', d); case a of 1: writeln('Бензин: А-92'); 2: writeln('Бензин: А-95'); 3: writeln('Бензин: А-98'); end; write('Введите размер оплаты - '); readln(f); writeln('Сумма к оплате - ', f); if f > c then writeln('Сдача: ', f - c) else writeln('Не достаточно средств'); write('Хорошего дня'); end.
Внимание! Если программа не работает, обновите версию!
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