Глава 2. Проектирование алгоритмов простой структуры - 2.2. Алгоритмы, использующие арифметический цикл

E-mail Печать PDF
Рейтинг пользователей: / 1
ХудшийЛучший 
Индекс материала
Глава 2. Проектирование алгоритмов простой структуры
2.2. Алгоритмы, использующие арифметический цикл
2.3. Алгоритмы, использующие итерационный цикл
Задачи для самостоятельного решения
Все страницы

2.2. Алгоритмы, использующие арифметический цикл

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

Пример 2.7. Пусть а0 = 1; аk = k ? ak-1 + 1/k, k = 1,2, ... Дано натуральное число n. Получить аn.

Дано: а0 - первый член последовательности; n - номер члена последовательности, значение которого требуется найти.

Найти: аn - n-й член последовательности.

Математическая модель. Посмотрим, как изменяется значение члена последовательности при изменении значения k.  При k = 1 а1 = 1 ? a0 + 1. При k = 2 а2 = 2 ? a1 + 1/2. При k = 3 а3 = 3 ? a2 + 1/3. Выполнив указанные вычисления n раз, получим искомое значение аn.  В задачах такого типа не требуется хранить результаты вычислений на каждом шаге. Поэтому использовать  массивы нецелесообразно. Обозначим через a - произвольный член последовательности. Тогда формула для вычисления будет выглядеть так: а = ? a + 1/k.

Переменная а - вещественного типа; переменные k и n - целого типа.

Решение.

Приведем блок-схему алгоритма и фрагмент алгоритма.

 

Ввод a, n

 

a = 1

нц

Для k от 1 до n

     а = k * a + 1/k

кц

 

 

Вывод а

 

Пример 2.8. Даны натуральное число n, действительное число х. Вычислить:

Дано: n - количество членов последовательности; x - действительное число.

Найти S - сумму чисел.

Математическая модель. Обозначим с - слагаемое. Начальное значение S = 0.

Количество слагаемых известно и равно n. Следовательно, можно использовать арифметический цикл.

Выведем рекуррентное соотношение, определяющее формулу, по которой вычисляется слагаемое на очередном шаге выполнения цикла.

Вспомним, что факториал числа n определяется как произведение чисел от 1 до n включительно. Следовательно, i! = 1 ?2   3 ?4  ...?i, по определению 0! = 1, 1! = 1. Для вывода рекуррентного соотношения вычислим несколько значений слагаемых.

i = 1,     c = x1/1! = x;

i = 2,     c = x2/2! = x2/ (1 ? 2) = c ? x/2 = cx/i;

i = 3,     c = x3/3! = x3/ (1 ? 2 ? 3) = cx/3 = cx/i;

i = 4,     c = x4/4! = x4/ (1 ? 2 ? 3 ? 4) = cx/4 = cx/i.

В правой части всех формул значение с равно значению, вычисленному на предыдущем шаге. Итак, получаем следующее соотношение, которое будем использовать в программе:

с = cx/i, где начальное значение с = 1, i = 1, 2, ..., n.

Переменные i, n - целого типа, переменные c, x, S - вещественного типа.

 

Решение

Ввод x, n

 

S = 0, c = 1

нц

Для i от 1 до n

    с = с * x / i

    S = S + c

кц

 

      Вывод S

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

Пример 2.9. Вычислить значение функции

для х = -1; -0,9; -0,8; ...; 0,8; 0,9; 1.

Дано: х = -1; -0,9; -0,8; ...; 0,8; 0,9; 1.

Найти значение y для каждого значения х.

Решение

Начальное значение переменной х = -1, шаг изменения равен 0,1. Воспользуемся арифметическим циклом и определим количество повторений цикла по формуле n = (хкон - хнач)/шаг + 1 = (1 - (-1))/0,1 + 1 = 21.

Обозначим параметр цикла буквой i. Значения параметра меняются от 1 до 21 с шагом 1.

В цикле в зависимости от выполнения заданных условий вычисляем значение переменной y и печатаем каждое полученное значение.



 

Добавьтe Ваш комментарий

Ваше имя (псевдоним):
Ваш адрес почты:
Заголовок:
Комментарий:

Комментарии

Интересное




Похожие материалы

Партнёры