Var
m,n,p:real;
k:integer;
begin
Write('Введите через пробел начало и конец интервала: ');
Read(m,n);
p:=1;
k:=Trunc(m);
if (k mod 2)=0 then Inc(k); { Первое нечетное }
n:=Int(n); { целочисленный конец интервала }
while k<=n do
begin p:=p*k; k:=k+2 end;
Writeln('Произведение нечетных на интервале: ',p)
end.
<em>Тестовое решение:</em>
Введите через пробел начало и конец интервала: -3.8 8.2
Произведение нечетных на интервале: 315
var
m,n,i,j:integer;
p:real;
begin
Write('Введите через пробел целочисленные границы интервала: ');
Read(m,n);
for i:=m to n do
begin
p:=1;
if i=0 then Writeln('2^0=1')
else
if i<0 then
begin for j:=-1 downto i do p:=p/2; Writeln('2^(',i,')=',p) end
else
begin for j:=1 to i do p:=p*2; Writeln('2^',i,'=',p) end
end
end.
<em>Тестовое решение:</em>
Введите через пробел целочисленные границы интервала: -5 10
2^(-5)=0.03125
2^(-4)=0.0625
2^(-3)=0.125
2^(-2)=0.25
2^(-1)=0.5
2^0=1
2^1=2
2^2=4
2^3=8
2^4=16
2^5=32
2^6=64
2^7=128
2^8=256
2^9=512
2^10=1024
Если ты про то, как будет выглядеть код то:
Pascal
S:=1;
For N=1 to 3 do
S:=S*N;
Writeln(S);
<em>В результате программы </em><em><u>S=6</u></em>
Целая часть 10
10mod2=0
5mod2=1
2mod2=0
1
<span>Остаток от деления записываем в обратном порядке. Получаем число в 2-ой системе счисления:
</span>10=1010
Для перевода дробной части числа последовательно умножаем дробную часть на основание 2. В результате каждый раз записываем целую часть произведения.
<span>0.45*2 = 0.9 (целая часть </span>0)
<span>0.9*2 = 1.8 (целая часть </span>1)
<span>0.8*2 = 1.6 (целая часть </span>1)
<span>0.6*2 = 1.2 (целая часть </span>1<span>) </span>
Получаем число в 2-ой системе счисления: 0111
0.45 = 0111
10,45=1010,0111