Информатика. Помогите с 3 номером. Готовлюсь, не знаю как решить. Плиз

0 голосов
22 просмотров

Информатика. Помогите с 3 номером. Готовлюсь, не знаю как решить. Плиз


image

Информатика (232 баллов) | 22 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Var
  a,b:array[1..100,1..100] of byte;
  n,i,j,x,y,z: byte;
  k,s,sa:integer;
begin
  write('введите размер поля N: ');
  readln(n);
  writeln('введите массив:');
  for i:=1 to n do begin 
    for j:=1 to n do begin
      read (a[i,j]);
    end;
  end;
  b:=a;
  k:=0;
  s:=0;
  for i:=1 to n do begin 
    for j:=1 to n do begin
      s:=s+a[i,j];
      if b[i,j]=1 then begin
        k:=k+1;  
        x:=i; y:=j;  
        while b[x,y]=1 do begin
          z:=0;
          while b[x,y]=1 do begin
            b[x,y]:=2; z:=z+1;  
            y:=y+1;
          end;
          x:=x+1; y:=y-z;
        end;
      end;
    end;
  end;
  sa:=Floor(s/k);  
  writeln ('Количество кораблей = ',k);
  writeln ('Средний размер кораблей = ',sa);  
end.
-----------------------------------------
Пример:
введите размер поля N:  7
введите массив:
0 0 0 0 0 0 0
0 0 1 1 1 0 0
0 0 1 1 1 0 0
0 0 0 0 0 0 0
0 1 0 1 1 0 0
0 1 0 1 1 0 0
0 0 0 0 0 0 0
       
Количество кораблей = 3
Средний размер кораблей = 4

(3.9k баллов)