Перевести целые числа из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную системы: а) 356; б) 514; в) 2018; г) 7654; д) 78. показать полное решение.
Сначала немного математики. О модуле тут смысла нет говорить, поскольку все an - суть положительные величины на интервале (0;1).
uses Crt;
function ai(n:integer):real; var i:integer; p:real; begin p:=1; for i:=n+1 to 2*n do p:=p*i; ai:=1/p end;
var i:integer; eps,s,an:real; begin ClrScr; Write('eps='); Read(eps); s:=0; i:=1; repeat an:=ai(i); if an>=eps then begin s:=s+an; Inc(i) end until an<eps; Writeln('s=',s); ReadKey end.
Тестовые решения: eps=0.07 s= 5.8333333333E-01
eps=0.000001 s= 5.9229647667E-01
eps=1e-8 s= 5.9229653448E-01
Для контроля результата можно отметить, что сумма первых 1000 членов ряда равна приблизительно 5.922965365Е-01
Uses Crt; const pi=3.14159; var x,y,h,max,min,d:real; begin ClrScr; max:=-100; min:=100; x:=0; h:=1.1; while x<=11+h/2 do begin y:=x-pi; Writeln(x:10:7,y:12:7); if max<y then max:=y; if min>y then min:=y; x:=x+h; end; d:=abs(max-min); Writeln(d:10:7); ReadKey end.
В двоичной:
10110010010000000101111110001011101111001101001110В восьмеричной:
5441002374216746116В шестнадцатеричной:
1642027E21DE64EПодробное решение на фотографиях