системы исчисления от 7 до 16
Ответ:
Program n3;
var q,w:integer;
a:array [1..10]of integer;
begin
for q:=1 to 10 do begin
a[q]:=random(95)+5;
writeln(a[q]);
w:=a[q];
if( w mod 2 )=0 then
a[q]:=a[q]*2
else
a[q]:=a[q]*3;
end;
writeln(' ');
for q:=1 to 10 do
writeln(a[q]);
end.
Объяснение:
Если хранить число без знака, то
- в 1 байт помещаются числа от 0 до 255 (2⁸-1)
- в 2 байта помещаются числа от 0 до 65 535 (2¹⁶-1)
- в 3 байта помещаются числа от 0 до 16 777 215 (2²⁴-1)
- в 4 байта помещаются числа от 0 до 4 294 967 296 (2³²-1)
Задано число <span>33 554 433 и для его размещения потребуется <u>4 байта.</u>
Можно, конечно, этим всем не заниматься, </span>если есть возможность вычислять логарифмы. В данном случае логарифм по основанию 2, округленный в большую сторону до целых, даст необходимое для представления числа количество битов.
㏒₂<span>33554433 = ㏑</span><span>33554433/㏑2 ≈ 25.00000004 ⇒ 26 бит требуется
Переводим в байты</span>: 26/8 = 3.25 , т.е. потребуется <u>4 байта</u>.
Знать бы, какой ввод данных
пусть он будет с клавиатуры, массив А из оценок N учеников
for i:=1 to N do begin
sum:=sum+A[i]; {это для среднего балла}
if (A[i]=4) or (A[i]=5) then
k1:=k1+1; {счетчик отличников-хорошистов}
if A[i]=2 then
k2:=k2+1; {счетчик двоечников}
end;
writeln('Количество учеников, написавших на 4 и 5: ', k1);
if k2>0 then
writeln('Двоечники есть')
else writeln('Двоечников нет');
writeln('Средний балл: ', sum/N:3:2);
end.