Лабораторная работа №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)

n-раз
В зависимости от введенного пользователем целого числа n>0 (число членов суммы) и действительного х, найти зна­чение S=Sinx+SinSinx+SinSinSinx+…+SinSin…Sinx

 

 

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. Вычислить сумму чет­ных и произведение нечетных членов этого ряда.