Лабораторная работа №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.
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 – целое число, вводимое пользователем
2) ,где n>0 – целое число, вводимое пользователем
3)
|
4) , где n>0 – целое число, вводимое пользователем
5) Найти значение y, если х – действительное число, вводимое пользователем:
6) , где n>0 – целое число, а x – действительное число, вводимые пользователем
7) , где N>0 – целое число, а x – действительное число, вводимые пользователем
8) Вычислить значение
9) Х – действительное число, вводимое пользователем. Вычислить:
10) Дано n>=3 (целое),
Найти
11) Пусть a0=a1=2; ; i=2,3,… Найти произведение
12) Вычислить:
13) Дано натуральное N, действительное x. Вычислить:
14) Пусть b0=0, b1=3; ; i=2,3,… Найти
15) Дан натуральный ряд чисел от 1 до N. Вычислить сумму четных и произведение нечетных членов этого ряда.