
Nastix
6 год назад
Илья очень любит морской бой и играет в него всё свободное время, он располагает корабли на игровом поле, так, чтобы они не соприкасались. Поле имеет размеры 5X5, клетка занятая кораблём обозначается 1, а свободная 0.После ввода данных обо всех клетках игрового поля определите, Как узнать сколько на нём кораблей? (Паскаль) можно пожалуйста решение простое, но через матрицу
ОТВЕТЫ

Semyon
Oct 24, 2020
Правильность расстановки кораблей не проверяется!
В программе сразу дан пример!
const n=5;
var a:array[1..n,1..n] of byte=
((1,0,1,0,1),
(1,0,0,0,1),
(0,0,1,0,1),
(1,0,0,0,0),
(0,0,1,1,0));
k, i, j: integer;
begin
if a[1,1]=1 then k:=1 else k:=0;
for j:=2 to n do
if (a[1,j-1]=0)and(a[1,j]=1) then k:=k+1;
for i:=2 to n do
begin
if (a[i-1,1]=0)and(a[i,1]=1) then k:=k+1;
for j:=2 to n do
if (a[i-1,j]=0)and(a[i,j-1]=0)and(a[i,j]=1) then k:=k+1;
end;
writeln('k = ',k);
end.
Результат:
k = 6
В программе сразу дан пример!
const n=5;
var a:array[1..n,1..n] of byte=
((1,0,1,0,1),
(1,0,0,0,1),
(0,0,1,0,1),
(1,0,0,0,0),
(0,0,1,1,0));
k, i, j: integer;
begin
if a[1,1]=1 then k:=1 else k:=0;
for j:=2 to n do
if (a[1,j-1]=0)and(a[1,j]=1) then k:=k+1;
for i:=2 to n do
begin
if (a[i-1,1]=0)and(a[i,1]=1) then k:=k+1;
for j:=2 to n do
if (a[i-1,j]=0)and(a[i,j-1]=0)and(a[i,j]=1) then k:=k+1;
end;
writeln('k = ',k);
end.
Результат:
k = 6
88
Смежные вопросы: