Чтобы уменьшить количество вычислений, преобразуем формулу к рекуррентной.
Теперь все готово для программирования. // PascalABC.NET 3.2, сборка 1353 от 27.11.2016
var i,n:integer; a,s:real; begin Write('n='); Read(n); if n=1 then Writeln('S=1') else if n=2 then Writeln('S=0.5') else begin s:=0.5; a:=0.5; for i:=3 to n do begin a:=a/i; s:=s-a end end; Writeln('S=',s) end.
Тексты вводятся в память компьютера с клавиатуры. На клавишах написаны привычные нам буквы, цифры, знаки препинания и другие символы. В оперативную память они попадают в двоичном коде. Это значит, что каждый символ представляется 8-разрядным двоичным кодом.
Кодирование заключается в том, что каждому символу ставится в соответствие уникальный десятичный код от 0 до 255 или соответствующий ему двоичный код от 00000000 до 11111111. Таким образом, человек различает символы по их начертанию, а компьютер - по их коду.
Удобство побайтового кодирования символов очевидно, поскольку байт - наименьшая адресуемая часть памяти и, следовательно, процессор может обратиться к каждому символу отдельно, выполняя обработку текста. С другой стороны, 256 символов – это вполне достаточное количество для представления самой разнообразной символьной информации.
Теперь возникает вопрос, какой именно восьмиразрядный двоичный код поставить в соответствие каждому символу.
Понятно, что это дело условное, можно придумать множество кодировки.
Все символы компьютерного алфавита пронумерованы от 0 до 255. Каждому номеру соответствует восьмиразрядный двоичный код от 00000000 до 11111111. Этот код просто порядковый номер символа в двоичной системе счисления.
begin writeln('Сколько тебе лет?:'); readln(b); if b > 17 then begin writeln('В каком институте ты учишься?:'); readln(a); writeln(a, ' хороший институт'); writeln('До следующей встречи!'); end else if b <= 17 then begin writeln('В какой школе ты учишься?'); readln(a); writeln(a, ' не плохая школа'); writeln('До следующей встречи!'); end; end.
Теперь все готово для программирования.
// PascalABC.NET 3.2, сборка 1353 от 27.11.2016
var
i,n:integer;
a,s:real;
begin
Write('n='); Read(n);
if n=1 then Writeln('S=1')
else
if n=2 then Writeln('S=0.5')
else begin
s:=0.5; a:=0.5;
for i:=3 to n do begin a:=a/i; s:=s-a end
end;
Writeln('S=',s)
end.
Пример
n=10
S=0.281718198853615