Язык программирования Pascal. Процедуры и функции. Рекурсия. Васильев В.В - 6 стр.

UptoLike

6
begin
n:=p div 2; if not odd(n) then n:=n+1;
while p mod n <> 0 do n:=n-2;
prost:=n=1
end
End; {prost}
Begin
Textbackground(7); Textcolor(blue); Clrscr;
writeln('Числа Мерсенна :');
n:=2; mers:=3; p:=false;
repeat
if prost(n) then writeln(mers);
n:=n+1;+
if mers<=maxint div 2
then mers:=mers*2
else p:=true;
if mers<maxint
then mers:=mers+1 else p:=true
until p;
readkey
End.{Mersenn}
В результате работы программы должно быть напечатано шесть чисел
Мерсенна: 3, 7, 31, 127, 2047, 8191. Следующее число 131071 выходит за пределы
типа integer.
Локальные данные создаются при вызове процедуры или функции и суще-
ствуют только в период ее исполнения . В начале выполнения процедуры или
функции выделяется память под локальные данные. Когда выполнение проце-
дуры или функции заканчивается , то память, отведенная под хранение локаль -
ных данных, освобождается . Таким образом , время жизни локальных дан-
ных совпадает со временем работы процедуры или функции, в которой они
определены . Поэтому значения всех локальных данных теряются вместе с
освобождением памяти по завершении работы процедуры или функции.
Задача 2. В книге n страниц (n - входное данное). Составьте программу,
которая будет находить, сколько цифр понадобится для того, чтобы занумеро-
вать все страницы данной книги .
Чтобы занумеровать все однозначные натуральные числа , нужно 9
цифр. Чтобы занумеровать все двузначные числа , нужно 90*2 цифр. Для трех -
значных чисел понадобится 900*3 цифр и т.д. Чтобы занумеровать все k -
значные числа , нужно
k
k
*00...009
1
321
цифр.
Количество двузначных чисел находится как разность наибольшего и
наименьшего двузначного числа плюс один: 90 = 99 - 10 + 1. Количество трех -
значных чисел находится как разность наибольшего и наименьшего трехзнач-
ного числа плюс один: 900 = 999 - 100 + 1. Количество k - значных чисел находит-