Необходимо описать только процедуру deg(N), которая вычисляет, какой степенью числа 8 является натуральное число N и выводит эту информацию на экран. Если N не степень восьми, процедура должна вывести информацию о том, что это не степень 8.
const n=5; var a:array[1..n,1..n] of integer; x:array[1..n] of double; i,j,k:byte; begin Randomize; Writeln('*** Исходный массив ***'); for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=Random(51)-25; Write(a[i,j]:4) end; Writeln end; Writeln('*** Массив x ***'); for j:=1 to n do begin x[j]:=0; k:=0; for i:=1 to n do if a[i,j] mod 2=0 then begin x[j]:=x[j]+a[i,j]; Inc(k) end; if k>0 then x[j]:=x[j]/k; Write(x[j]:0:5,' ') end; Writeln end.
1. Редактор отдает приоритет комбинации 555, потому что она стоит сразу после ЕСЛИ. Потому сначала Редактор преобразует все 555 к 3.
Среди 62 пятерок комбинация 555 встретится 20 раз (62 делим нацело на 3, потому что в группе 3 цифры). Поэтому получим 20 троек и за ними 55 (62 - 60 = 2 пятерки останутся).
2. Теперь 555 больше нет и Редактор начнет заменяать каждые 333 на 5. Он так сделает три раза (заменит 9 троек на 555), потому что снова появится 555, которое более приоритетно. Поэтому 9 троек заменятся на 555, а 555 заменится на 3. Из 20 исходных троек обработали 9 и заменили их на одну троку, поэтому теперь будет строка из 12 троек (20 -9 + 1) и двух пятерок в конце.
3. Снова 9 из 12 троек заменятся на 555, а те потом заменятся на 3. Получим строку 333355. В ней 333 заменится на 5. И окончательно будет 5355.
const
n=5;
var
a:array[1..n,1..n] of integer;
x:array[1..n] of double;
i,j,k:byte;
begin
Randomize;
Writeln('*** Исходный массив ***');
for i:=1 to n do begin
for j:=1 to n do begin
a[i,j]:=Random(51)-25;
Write(a[i,j]:4)
end;
Writeln
end;
Writeln('*** Массив x ***');
for j:=1 to n do begin
x[j]:=0; k:=0;
for i:=1 to n do
if a[i,j] mod 2=0 then begin
x[j]:=x[j]+a[i,j]; Inc(k)
end;
if k>0 then x[j]:=x[j]/k;
Write(x[j]:0:5,' ')
end;
Writeln
end.
Тестовое решение:
*** Исходный массив ***
-10 18 -8 -15 5
-21 -18 6 -2 9
-7 22 -4 3 14
21 16 -10 -18 -9
17 3 -14 -18 12
*** Массив x ***
-10.00000 9.50000 -6.00000 -12.66667 13.00000
5355
Объяснение:
1. Редактор отдает приоритет комбинации 555, потому что она стоит сразу после ЕСЛИ. Потому сначала Редактор преобразует все 555 к 3.
Среди 62 пятерок комбинация 555 встретится 20 раз (62 делим нацело на 3, потому что в группе 3 цифры). Поэтому получим 20 троек и за ними 55 (62 - 60 = 2 пятерки останутся).
2. Теперь 555 больше нет и Редактор начнет заменяать каждые 333 на 5. Он так сделает три раза (заменит 9 троек на 555), потому что снова появится 555, которое более приоритетно. Поэтому 9 троек заменятся на 555, а 555 заменится на 3. Из 20 исходных троек обработали 9 и заменили их на одну троку, поэтому теперь будет строка из 12 троек (20 -9 + 1) и двух пятерок в конце.
3. Снова 9 из 12 троек заменятся на 555, а те потом заменятся на 3. Получим строку 333355. В ней 333 заменится на 5. И окончательно будет 5355.