ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ

Занятие 3

ЦИКЛИЧЕСКИЙ АЛГОРИТМ

Командой повторения или циклом называется такая форма организации действий, при которой одна и та же последовательность действий повторяется до тех пор, пока сохраняется значение некоторого логического выражения. При изменении значения логического выражения на противоположное повторения прекращаются (цикл завершается).

Различают циклы с известным числом повторений (цикл с параметром) и итерационные (с пред- и постусловием).

На этом занятии рассмотрим первый из них.

В цикле с известным числом повторений параметр изменяется в заданном диапазоне. Если в цикле изменяется простая переменная, то она является параметром цикла; если в цикле изменяется переменная с индексом, то индекс этой переменной является параметром цикла.

Для организации цикла с известным числом повторений в Pascal используется оператор for.

Структура цикла, организованного с помощью этого оператора, имеет вид:

for i := a to b do begin <операторы> end;

или

for i := a downto b do begin <операторы> end;

Здесь I — параметр, изменяющийся в цикле; A, B — выражения порядкового типа, обозначающие начальное, конечное значение параметра цикла. Шаг изменения номера параметра цикла равен 1, если в заголовке цикла стоит To; и -1 — при DownTo.

Порядок выполнения цикла с шагом 1 следующий: вычисляются значения начального и конечного значений параметра цикла; параметр если I принимает начальное значение; если I меньше или равно конечному значению, исполняется тело цикла; значение параметра цикла увеличивается, т.е. I:= I+1; проверяется условие I<=B (для отрицательного шага условие I>=B) и при его выполнении цикл повторяется. Выход из цикла осуществляется, если I>B (I<B для H=-1), и выполняется оператор, следующий за оператором цикла. Если A>B (или A<B для H=-1), то цикл не исполняется ни разу.

Если в операторе цикла с параметром начальное или конечное значение параметра заданы переменными или выражениями, то значения этих переменных должны быть определены в программе до оператора цикла. Не следует внутри цикла изменять параметр цикла, его начальное и конечное значения с помощью операторов присваивания или ввода.

Задача 1. Написать программу вывода на экран таблицы умножения на 2.

program 2x;

var i:integer;

begin

for i:=1 to 10 do

writeln('2x',i,'=',exp(i*ln(2)):3:0);

end.

В этой простой задаче мы использовали для вычисления степени следующую математическую закономерность: ab=ea*lnb

Обратите так же внимание на необходимость использования в последнем операторе формата вывода без знаков после запятой. Вычисляя любую встроенную математическую функцию, компилятор Паскаля обязательно сделает результат вещественным.

Но можно поступить и иначе.

Задача 2. Дано натуральное n, действительное x. Вычислить

Разработаем алгоритм решения задачи:

1) ввести данные - количество слагаемых n и число x;

2) присвоить переменной, в которой будем хранить степени sin x, значение 1; S := 0;

3) присвоить параметру цикла значение 1;

4) если значение параметра цикла меньше n, перейти к следующему пункту, иначе к п. 9;

5) вычислить очередную степень sin x;

6) добавить вычисленное значение к сумме;

7) увеличить параметр цикла на 1;

8) перейти к п.4;

9) вывести на печать сумму S;

10) конец.

Реализуем наш алгоритм на языке.

program summa;

var s, x, pr : real; n, i : integer;

begin

write('введите число слагаемых и x: '); readln(n, x);

pr:=1;{эта переменная хранит последовательные степени sinx}

s:=0;

for i:=1 to n do

begin

pr:=pr*sin(x); {очередная степень sin(x)}

s:=s+pr

end;

writeln('сумма равна ', s:7:3)

end.

Достаточно часто цикл с параметром используется при разработке программ обработки массивов. Обычное же его применение состоит в нахождении сумм, произведений, или расчете и выводе на экран таблиц значений.

Примечание 1. Как видно из рассказа, приведённого выше, область применения цикла с параметром в языке Pascal значительно ограничена: ограничения связаны с шагом изменения параметра цикла, с типом параметра цикла, его начального и конечного значения. В Бейсике таких ограничений не существует.

Примечание 2. Циклы могут быть вложенными, т.е. при выполнении одного цикла, внутри него выполняется еще один или даже несколько циклов. Однако, следует иметь ввиду, что время выполнения вложенных циклов прямо пропорционально произведению конечных значений их параметров.

 

ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ

1. Ввести с клавиатуры 10 чисел. Если среди них есть числа, большие 15, заменить их на 15. Напечатать все полученные числа.

2. Ввести с клавиатуры 10 чисел – положительных и отрицательных. Заменить все отрицательные числа их модулями и напечатать все полученные 10 чисел.2. Даны натуральные числа от 20 до 50. Напечатать те из них, которые делятся на 3, но не делятся на 5.

3. Даны натуральные числа от 35 до 87. Найти и напечатать те из них, которые при делении на 7 дают остаток 1, 2 или 5.

4. Даны натуральные числа от 1 до 50. Найти сумму тех из них, которые делятся на 5 или на 7.

5. Напечатать те из двузначных чисел, которые делятся на 4, но не делятся на 6.

6. Найти сумму чисел от 100 до 200, кратных 17.