Лабораторная работа №8
Циклические алгоритмы. Разработка алгоритма и построение блок-схем
Алгоритмы «цикл».
Задача 1. Построить блок-схему для решения следующей задачи: Дано натуральное число N. Найти сумму первых N членов натурального ряда.
S=1+2+3+…+N
Составим таблицу идентификаторов.
| Объект задачи | Объект алгоритма | Иденти-фикатор | Тип, значение | Начальное значение | 
| Число членов ряда | переменная | N | целый | Вводит пользователь | 
| Сумма | переменная | S | целый | |
| Переменная цикла | переменная | i | целый | |
Очевидно, что заранее известно число повторений цикла – оно соответствует числу членов ряда. Также очевидно, что до входа в цикл сумма равна нулю. В теле цикла используется операция присваивания S=S+i, с помощью которой и вычисляется значение суммы путем прибавления к предыдущему значению переменной S все новых значений переменной i. Заметим, что в данной задаче каждый следующий член ряда совпадает с переменной цикла на текущем шаге.
Замечание1. Чаще всего в задачах подобного типа необходимо заводить дополнительные переменные, которые будут соответствовать i-му члену заданной суммы или произведения.
Замечание2. В задачах данного типа необходимо выполнять 6 этапразработки алгоритма: формальное исполнение алгоритма, т.е. производить проверку работоспособности алгоритма.
Построим блок-схему:
|   | Проверка: Пусть N=3. S=0 (вход в цикл. Цикл выполнится 3 раза) I=1: S=0+1 I=2: S=1+2 I=3: S=1+2+3 (выход из цикла по достижению конечного значения переменной цикла, в данном случае – I=3) (вывод S) S=6 Блок-схема составлена верно. | 
Задача 2. Построить блок-схему для решения следующей задачи: Дано натуральное число N и ряд натуральных чисел 1,2,3,…,  . Найти сумму членов данного ряда, причем вычисление прекратить, как только значение суммы окажется равно или превысит заданное число N.
 . Найти сумму членов данного ряда, причем вычисление прекратить, как только значение суммы окажется равно или превысит заданное число N.
S=1+2+3+4+…
Очевидно, что здесь не известно заранее число шагов цикла, поэтому цикл с параметром использовать нельзя. Для решения такого рода задач используются циклы с предусловием или с постусловием. Рассмотрим оба варианта.
Составим таблицу идентификаторов.
| Объект задачи | Объект алгоритма | Иденти-фикатор | Тип, значение | Начальное значение | 
| Заданное число | переменная | N | целый | Вводит пользователь | 
| Сумма | переменная | S | целый | |
| Переменная цикла | переменная | i | целый | |
Рассмотрим вариант с использованием цикла с постусловием: выход из данного цикла будет возможен, когда S>=N. При невыполнении данного условия вычисление суммы будет продолжаться аналогично предыдущей задаче (S=S+i). Заметим, что при использовании циклов с предусловием и постусловием нельзя забывать об изменении переменной цикла. Но в данном примере алгоритм приведет к неверному решению при N=0, т.к. в этом случае не выполнится первое по порядку сравнение: S=N=0.

Рассмотрим вариант цикла с предусловием: В данном алгоритме сначала будет выполняться проверка условия выхода из цикла S<N. Если это условие будет верно, то будет выполняться тело цикла, если же нет, то произойдет выход из цикла. В этом случае при N=0 цикл не выполнится ни разу и задача будет решена верно.
|   | 
Задание:
Построить блок-схемы для решения следующих задач:
1)  ,где n>0 – целое число, вводимое пользователем
 ,где n>0 – целое число, вводимое пользователем
2)  ,где n>0 – целое число, вводимое пользователем
 ,где n>0 – целое число, вводимое пользователем
3)
| 
 | 
4)  , где n>0 – целое число, вводимое пользователем
, где n>0 – целое число, вводимое пользователем
5) Найти значение y, если х – действительное число, вводимое пользователем: 
6)  , где n>0 – целое число, а x – действительное число, вводимые пользователем
, где n>0 – целое число, а x – действительное число, вводимые пользователем
7)  , где N>0 – целое число, а x – действительное число, вводимые пользователем
, где N>0 – целое число, а x – действительное число, вводимые пользователем
8) Вычислить значение 
9) Х – действительное число, вводимое пользователем. Вычислить: 
10) Дано n>=3 (целое), 
 Найти
 Найти 
11) Пусть a0=a1=2;  ; i=2,3,… Найти произведение
 ; i=2,3,… Найти произведение 
12) Вычислить: 
13) Дано натуральное N, действительное x. Вычислить:

14) Пусть b0=0, b1=3;  ; i=2,3,… Найти
 ; i=2,3,… Найти 
15) Дан натуральный ряд чисел от 1 до N. Вычислить сумму четных и произведение нечетных членов этого ряда.