Для среднего арифметического тип данных double
Для определения большего числа int.
Var p,i, n:integer;
begin
p:=1;
writeln('Введи n');
readln(n);
if n>=1 then
begin
for i:=1 to n do
p:=p*i;
writeln(p);
end else writeln('n>=1');
<span>end.
</span>
Переводим в двоичную систему счисления
592 / 2 = 296 | 0 в остатке
296 / 2 = 148 | 0
148 / 2 = 74 | 0
74 / 2 = 37 | 0
37 / 2 = 18 | 1
18 / 2 = 9 | 0
9 / 2 = 4 | 1
4 / 2 = 2 | 0
2 / 2 = 1 | 0
1
затем, пишем нули и единицы снизу-вверх
1001010000
и приписываем недостающие нули
0000 0010 0101 0000 (32 бита)
так же это число не является отрицательным,
поэтому вычислять дополнительный
(или обратный код) не нужно
Ответ: 0000001001010000
Для случайных чисел:
var
a: array[1..5] of integer;
i: integer;
begin
randomize;
for i:=1 to 5 do
a[i] := random(100);
for i:=1 to 5 do
write(a[i], ' ');
writeln;
for i:=1 to 5 do
a[i] := a[i] * i;
for i:=1 to 5 do
write(a[i], ' ');
end.
Для ручного заполнения:
var
a: array[1..5] of integer;
i: integer;
begin
for i:=1 to 5 do
readln(a[i]);
for i:=1 to 5 do
write(a[i], ' ');
writeln;
for i:=1 to 5 do
a[i] := a[i] * i;
for i:=1 to 5 do
write(a[i], ' ');
end.