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

Вопрос школьника по предмету Информатика

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

Ответ учителя по предмету Информатика

Правильность расстановки кораблей не проверяется!

В программе сразу дан пример!

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Похожие вопросы от пользователей