Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Лида
§ 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.
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;
Задача 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