5. Решение задачи «Морской бой» (первый тур, номинация
«Информатика, как общеобразовательная дисциплина»),
предложенное студентом 2 курса математического
факультета ВГУ Лучкиным Алексеем
(*
(Номинация "Информатика, как общеобразовательная дисциплина")
Лучкин Алексей Юрьевич, ВГУ ,
2 курс, мат.фак ., 1.2 гр.
Web: http://www.nmarket.ru
E-mail: info@nmarket.ru
*)
uses Crt;
const
max=10;
var
mas: array[1..max,1..max] of boolean;
kor: array[1..4] of integer;
i,j,k,l,n: Integer;
F: Text;
procedure check(i,j,paluba: Integer);
var
k: Integer;
b: boolean;
begin
b:=true;
for k:=0 to paluba-1 do if ((i+k>max) or not mas[i+k,j]) then b:=false;
if b and ((i+paluba>max) or not mas[i+paluba,j]) and
((i-1<1) or not mas[i-1,j]) and ((j+1>max) or not mas[i,j+1]) and
((j-1<1) or not mas[i,j-1]) then inc(kor[paluba]);
if paluba<>1 then
begin
b:=true;
for k:=0 to paluba-1 do if ((j+k>max) or not mas[i,j+k]) then b:=false;
if b and ((i+1>max) or not mas[i+1,j]) and
((i-1<1) or not mas[i-1,j]) and ((j+paluba>max) or not mas[i,j+paluba])
and
((j-1<1) or not mas[i,j-1]) then inc(kor[paluba]);
end;