Сначала все числа нужно привести к единой системе счисления.
11₂=3
11₈=9
11₁₆=17
Получается следующее: 3+9+11+17=3+20+17=20+20=40 (это в десятичной СС)
а) для перевода в двоичную СС мы последовательно делим число 40, пока остаток и частное не станет равным 0 или 1. Остаток от деления записываем в обратном порядке.
б) перевод целых десятичных чисел в любую другую системы счисления осуществляется делением числа на основание новой системы счисления (в нашем случае это 16) до тех пор, пока в остатке не останется число меньшее основания новой системы счисления. Новое число записывается в виде остатков деления, начиная с последнего.
var a: array[1..n1, 1..n1] of integer; i, j, n, k, m: integer; s: real;
begin Write('Введите число строк (cтолбцов) массива: '); Readln(n); Randomize; Writeln('Исходный массив'); m := 0; for i := 1 to n do begin for j := 1 to n do begin k := Random(101) - 50; a[i, j] := k; Write(k:4); end; Writeln; m := m + a[i, i] end; k := 0; s := m / n; for i := 1 to n do for j := 1 to n do if a[i, j] > s then k := k + 1; Writeln('Среднее значение элементов главной диагонали равно ', s); Writeln('Количество элементов, значения которых больше этой величины - ', k) end.
а) 101000₂
б) 28₁₆
Объяснение:
Сначала все числа нужно привести к единой системе счисления.
11₂=3
11₈=9
11₁₆=17
Получается следующее: 3+9+11+17=3+20+17=20+20=40 (это в десятичной СС)
а) для перевода в двоичную СС мы последовательно делим число 40, пока остаток и частное не станет равным 0 или 1. Остаток от деления записываем в обратном порядке.
б) перевод целых десятичных чисел в любую другую системы счисления осуществляется делением числа на основание новой системы счисления (в нашем случае это 16) до тех пор, пока в остатке не останется число меньшее основания новой системы счисления. Новое число записывается в виде остатков деления, начиная с последнего.
n1 = 20;
var
a: array[1..n1, 1..n1] of integer;
i, j, n, k, m: integer;
s: real;
begin
Write('Введите число строк (cтолбцов) массива: ');
Readln(n);
Randomize;
Writeln('Исходный массив');
m := 0;
for i := 1 to n do
begin
for j := 1 to n do
begin
k := Random(101) - 50;
a[i, j] := k;
Write(k:4);
end;
Writeln;
m := m + a[i, i]
end;
k := 0; s := m / n;
for i := 1 to n do
for j := 1 to n do
if a[i, j] > s then k := k + 1;
Writeln('Среднее значение элементов главной диагонали равно ', s);
Writeln('Количество элементов, значения которых больше этой величины - ', k)
end.
Тестовое решение:
Введите число строк (cтолбцов) массива: 10
Исходный массив
29 22 23 15 -23 -25 19 9 -8 -16
1 15 2 35 27 -44 -10 -34 19 50
-35 -31 15 -24 24 -11 -49 -46 40 20
16 48 16 -49 -22 -2 -37 -38 -25 9
36 44 6 23 -16 -27 -40 22 20 29
30 -12 45 32 19 10 -44 -4 41 38
-27 14 20 23 19 4 50 0 7 -21
43 -23 42 -40 -36 -29 13 43 42 0
-21 -20 -15 -40 41 -23 -47 34 -17 19
-9 18 -29 -13 -15 -29 -27 34 -46 31
Среднее значение элементов главной диагонали равно 11.1
Количество элементов, значения которых больше этой величины - 45