Работа n2. Циклы.
Сочетания цикла и разветвления.
При решении многих задач вычислительный процесс может иметь циклический характер. Это означает , что часть операторов многократно выполняется при различных значениях переменных. В языке PASCAL имеется три вида операторов цикла: оператор с предварительным условием (While), оператор с последующим условием (Repeat), оператор цикла с параметром (For).
Операторы для записи циклов являются сложными, так как в их состав входят другие операторы.
Для всех операторов цикла характерна следующая особенность. Повторяющиеся вычисления записываются всего один раз. Вход в цикл возможен только через его начало. Переменные цикла должны быть определены до входа в циклическую часть. Необходимо предусмотреть выход из из цикла: или по естественному его окончанию, или по оператору перехода.
Форма записи оператора цикла с предусловием:
While <логическое выражение> do begin <операторы циклической части> end; |
Например, найти наименьшее положительное число для данной ЭВМ.
Program MinEps;
var Eps, Eps_Min: real;
begin
Eps:=1;
While Eps>0 do {Заголовок оператора цикла}
begin
Eps_Min:=Eps; {Тело оператора цикла }
Eps:=Eps/2;
end;
writeln('Eps_Min=', Eps_Min);
end.
Форма записи оператора цикла с постусловием:
-
Repeat
< операторы циклической части>
Until < логическое выражение >
Например, найти наименьшее положительное число для данной ЭВМ.
Program MinEps;
var Eps_Min: real;
begin
Eps_Min:=1;
Repeat {Заголовок оператора цикла}
Eps_Min:=Eps_Min/2; {Тело оператора цикла }
Until Min_Eps/2=0;
writeln('Eps_Min=', Eps_Min);
end.
Оператор цикла с параметром используется в тех случаях, когда известно заранее число повторений. Существует два варианта оператора:
используется при изменении переменной цикла i по возрастанию
-
For i:=m1 to m2 do
begin
<операторы циклической части>
end;
используется при изменении переменной цикла i по убыванию
-
For i:=m1 Downto m2 do
begin
<операторы циклической части>
end;
Например, вычислить сумму первых 10 натуральных чисел
Program Sum10;
var i, Sum :integer;
begin
Sum:=0;
For i:=1 to 10 do
Sum:=Sum+i;
writeln('Сумма=', Sum);
end.
Замечание. Если циклическая часть оператора цикла состоит из одного оператора, операторные скобки Begin - End можно не использовать.
Целью данной работы является получение практических навыков использования операторов цикла.
ЗАДАНИЕ. Напишите программу решения задачи, с использованием операторов организующих циклические вычисления.
ВАРИАНТЫ ЗАДАНИЙ.
Дано натуральное число N. Вычислить
Дано натуральное число N. ВычислитьN корней
Дано натуральное число n. Вычислить
Дано натуральное число n. Вычислить a (a+1) ... (a+n-1)
Дано натуральное число N и действительное число x. Вычислить Sin(x)+Sin2(x)+…+Sinn(x).
Дано натуральное число N. Сколько цифр в числе N
.Дано натуральное число N. Вычислить сумму его цифр.
Пусть A 0=1, Ak=k*Ak-1+1/k, k=1,2, ...Для заданного k получить Ak.
Дано натуральное число n и действительное число a. Получить a*(a+1)*(a+2)*…*(a+n-1)/
Вычислить
10. Вычислить
11. Вычислить
12. Вычислить
13. Вычислить
14. Дано натуральное число n. Получить все натуральные числа, меньшие n и взаимно простые с ним.
15. Дано натуральное число n. Получить все простые делители этого числа.
16. Найти натуральное число от 1 до 10000 с максимальной суммой делителей.
17. Даны целые числа P, Q. Получить все делители числа Q взаимно простые с Р.
18. Найти первые 100 простых чисел.
19. Натуральное число называется совершенным, если оно равно сумме всех своих делителей, за исключением себя самого. Число 6 - совершенное, так как 6=1+2+3. Число 8 - не совершенное, так как 8<>1+2+4. Дано натуральное n. Получить все совершенные числа, меньшие n.
20. Напечатать в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр.