Вы находитесь на странице: 1из 4

СШ №1 г.

Лида
§ 3
Операторы цикла.
В языке Паскаль существует три различных оператора с помощью
которых можно запрограммировать повторяющиеся фрагменты
программы (три оператора цикла):
- счетный цикл FOR;
- цикл WHILE с предпроверкой условия;
- цикл REPEAT...UNTIL c постпроверкой условия ;.
Решим одну и ту же задачу используя различные циклы.
Задача 3-1.
Найти сумму натуральных чисел от 1 до n (n - натуральное).
1) цикл FOR
program zadacha3_1a;
var i,n,s:integer;
Begin
writeln(' введите натуральное n');
readln(n);
s:=0;
for i:=1 to n do
s:=s+i;
writeln('сумма от 1 до',n,' = ',s);
End.
2) цикл WHILE
program zadacha3_1b;
var i,n,s:integer;
Begin
writeln('введите натуральное n');
readln(n);
s:=0;
i: =1;
while i<=n do нц пока i<=n
begin s:=s+i;
s:=s+i; i:=i+1;
i:=i+1; кц
end;
writeln('сумма от 1 до',n,'=',s);
End.
3) цикл REPEAT
program zadacha3_1c;
var i,n,s:integer;
Begin
writeln(' введите натуральное n');
readln(n);
s:=0;
i:=1;
repeat
begin
s:=s+i;
i:=i+1;
end;
until i>n;
стр. 1 из 4
СШ №1 г.Лида
writeln('сумма от 1 до',n,' = ',s);
End.
Задача 3-2. Дано натуральное число n. Подсчитать количество
цифр в числе.

program zadacha3_2;
var k:integer;n,n0:real;
Begin
writeln('Введите натуральное число n');
readln(n);
n0:=n;
k:=0;
while n>=1 do
begin
k:=k+1;
n:=int(n/10);
end;
writeln('Количество цифр в числе ',n0,' = ',k);
End.

Задача 3-3.
Вычислить сумму ряда: S=1-1/2+1/3-1/4+1/5-.........1/n.
(n – натуральное)

program zadacha3_3;
var i,n,a:integer;
s:real;
Begin
writeln('Введите n');
readln(n);
s:=1;a:=1;
for i:=2 to n do
begin
a:=(-1)*a;
s:=s+a/i;
end;
writeln('Сумма ряда  S= ',s);
End.

Задача 3-4. Для данного натурального числа m>1 найдите


максимальное k, для которого ещё выполняется равенство
2k<m. (например, если m=10, то k=3)

program zadacha3_4;
var k:word;
s,m:longint;
Begin
writeln('Введите натуральное m>1');
readln(m);
k:=1;s:=2;
while s<m do
begin
k:=k+1;
стр. 2 из 4
СШ №1 г.Лида
s:=s*2;
end;
writeln('Искомое число= ',k-1);
End.
Задача 3-5. Проверить является ли число n простым.

program zadacha3_5;
var m,n:longint;
fl,i:integer;
t:string;
Begin
writeln('Введите натуральное n');
readln(n);
m:=round(sqrt(n));
fl:=0;

for i:=2 to m do
if n/i=int(n/i) then fl:=1;

if fl=0 then t:='является простым'


else t:='не является простым';
writeln('число ',t);
End.

Задача 3-6.
Найдите наибольший общий делитель двух чисел (НОД(а,b))

program zadacha3_6;
var a,b,nod,a0,b0:integer;
Begin
writeln('Введите два числа');
readln(a,b);
a0:=a;b0:=b;
while a<>b do
if a>b then a:=a-b else b:=b-a;
nod:=a;
writeln('HOД(',a0,',',b0,')=',nod);
End.

Задача 3-7.
Вычислить наименьшее общее кратное двух чисел (НОК (а,b))
Для вычисления воспользуемся формулой a*b=НОД*НОК.

program zadacha3_7;
var a,b,nod,a0,b0:integer;
nok:real;
Begin
writeln('Введите два числа');
readln(a,b);
a0:=a;b0:=b;
while a<>b do
if a>b then a:=a-b else b:=b-a;
стр. 3 из 4
СШ №1 г.Лида
nod:=a;
nok:=a0*b0/nod;
writeln('HOK (',a0,',',b0,')=',nok);
End.

стр. 4 из 4