Задан двумерный массив А из 4-х строк и 4-х столбцов. Составить программу, которая подсчитывает произведение элементов массива, лежащих вне главной диагонали на c++
Var a:array[1..18] of integer; i,n,n2,max:integer; Begin for i:=1 to 18 do Begin case i of 1..6:begin Write('Введите ',i,'-ую оценку по обязательной программе '); Readln(a[i]); n:=n+a[i]; if i=6 then Begin max:=n; n:=0; n2:=1; End; End; 7..12:Begin Write('Введите ',i-6,'-ую оценку по короткой программе '); Readln(a[i]); n:=n+a[i]; if i=12 then Begin if n>max then Begin max:=n; n2:=2;End; n:=0; End; End; 13..18:Begin Write('Введите ',i-12,'-ую оценку по произвольной программе '); Readln(a[i]); n:=n+a[i]; if i=18 then Begin if n>max then Begin max:=n; n2:=3;End; n:=0; End; End; end; end; case n2 of 1: write('Лучшая оценка по обязательной программе = ',max); 2: write('Лучшая оценка по короткой программе = ',max); 3: write('Лучшая оценка по произвольной программе = ',max); End; End.
Сначала найдем объем одного пароля. Для этого надо определить объем одного символа. Мощность алфавита равна 7-ми, то есть каждый символ в пароле принимает одно из семи значений, значит объем одного символа равен 3 битам, т.к. 2^3=8, а двумя битами (2^2=4) семь символов закодировать нельзя.
Длина пароля - 6, объем пароля равен 6*3 = 18 бит
Каждый пароль кодируется одинаковым и минимально возможно целым количеством байт, разделим 18 на 8 18:8 = 3 (нужно именно целое число, два байта - это 2*8=16 бит, у нас 18 бит, значит требуется 3 байта).
Кроме пароля на каждого пользователя выделяется 10 байт. То есть общий объем сведений на одного пользователя равен 10+3 = 13 байт.
Объем данных о 100 пользователей равен 13*100 = 1300 байт.
a:array[1..18] of integer;
i,n,n2,max:integer;
Begin for i:=1 to 18 do Begin
case i of
1..6:begin Write('Введите ',i,'-ую оценку по обязательной программе '); Readln(a[i]); n:=n+a[i]; if i=6 then Begin max:=n; n:=0; n2:=1; End; End;
7..12:Begin Write('Введите ',i-6,'-ую оценку по короткой программе '); Readln(a[i]); n:=n+a[i]; if i=12 then Begin if n>max then Begin max:=n; n2:=2;End; n:=0; End; End;
13..18:Begin Write('Введите ',i-12,'-ую оценку по произвольной программе '); Readln(a[i]); n:=n+a[i]; if i=18 then Begin if n>max then Begin max:=n; n2:=3;End; n:=0; End; End;
end;
end;
case n2 of
1: write('Лучшая оценка по обязательной программе = ',max);
2: write('Лучшая оценка по короткой программе = ',max);
3: write('Лучшая оценка по произвольной программе = ',max);
End;
End.
Мощность алфавита равна 7-ми, то есть каждый символ в пароле принимает одно из семи значений, значит объем одного символа равен 3 битам, т.к. 2^3=8, а двумя битами (2^2=4) семь символов закодировать нельзя.
Длина пароля - 6, объем пароля равен
6*3 = 18 бит
Каждый пароль кодируется одинаковым и минимально возможно целым количеством байт, разделим 18 на 8
18:8 = 3 (нужно именно целое число, два байта - это 2*8=16 бит, у нас 18 бит, значит требуется 3 байта).
Кроме пароля на каждого пользователя выделяется 10 байт. То есть общий объем сведений на одного пользователя равен 10+3 = 13 байт.
Объем данных о 100 пользователей равен 13*100 = 1300 байт.