Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебники 80125

.pdf
Скачиваний:
14
Добавлен:
01.05.2022
Размер:
563.38 Кб
Скачать

 

21

(блок 7) и проверяется

условие x2π (блок 8). Если это усло-

вие выполняется, то предыдущий цикл вычислений u и вывода результата на печать повторяется, причем до тех пор, пока x станет больше 2π . В этом случае вычисления должны быть закончены.

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

мер, a), а

элементами массива

являются переменные с индексами (на-

пример, ai),

где индекс означает порядковый номер элемента этого массива.

Например,

если имеется

ряд чисел: 2; 3.1; 8; 1.4; 0.5 и надо представить

этот ряд как массив а, то его элементами являются

 

a1=2;

a2=3.1;

a3=8; a4=1.4; a5=0.5.

Пример 3.

Составить алгоритм для вычисления массива С , содержащего

 

 

произведения

соответствующих

эле-

 

Начало

ментов двух массивов А и В, каждый

 

из которых содержит 8 элементов.

 

1

Решение. При

составлении алгоритма

 

(рис.4.5) необходимо вначале ввести

 

A,B

 

 

данные

(блок1) - элементы массивов

 

2

А и В,

т.е. a1, a2, …, a8 , b1 , b2,…, b8.

 

i = 1,8

Блок 2 - блок модификации, определя-

 

 

ет начало и конец повторных вычисле-

 

3

ний Сi=Ai·Bi (блок 3) при изменении

 

Ci = Ai Bi

параметра цикла i от 1 до 8 и вывода

 

4

для каждого значения i результатов на

 

печать

(блок 4). При i >8 вычисления

 

Ci

 

заканчиваются.

 

 

 

 

 

 

 

 

Еще один распространенный тип вы-

 

 

числений - проведение некоторых опе-

 

Конец

раций

с заранее определенными

эле-

 

ментами массива.

 

 

 

 

Рис.4.5

Пример 4. Составить алгоритм для выбора из массива a1, a2 ,…, a100 наибольшего числа.

Решение. В алгоритме на рис.4.6 вначале необходимо обеспечить ввод данных (т.е. массива из 100 чисел - блок 1). Затем величине A max присваивается значение первого элемента массива (блок 2). После этого должна рассматриваться следующая величина в массиве, индекс которой на единицу больше, т. е. А2 (блок 3), и эта величина сравнивается с А max (блок 4). Если оказывается, что А2 Аmax, то дальше должна рассматриваться величина А3, индекс которой увеличился на единицу в блоке 3, и которая сравнивается с А max в блоке 4.

 

 

 

 

 

 

 

 

 

 

 

 

22

 

 

 

 

 

 

 

 

Начало

 

 

Если же А max при сравнении с А2 мень-

 

 

 

 

 

 

 

 

 

 

ше этой величины, то значение А2 при-

 

 

 

 

 

 

 

1

 

 

 

 

 

сваивается переменной А max (блок 5),

 

 

 

 

 

 

 

 

A

 

 

 

 

 

 

 

 

 

 

 

 

после чего в блоке 3 вновь происходит

 

 

 

 

 

2

 

 

 

 

 

 

увеличение индекса на единицу, в бло-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Amax = A1

 

 

ке 4 вновь происходит сравнение Аi с

 

 

 

 

 

 

 

 

 

 

 

 

 

 

А max и цикл вычислений повторяется

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

до i=100, после чего в качестве резуль-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i = 2,100

 

 

тата выводится значение А max (блок 6)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нет 4

 

 

 

 

 

 

 

 

 

и вычисления заканчиваются.

 

 

 

 

 

 

 

 

 

 

Ai>Amax

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

да

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Amax = Ai

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Amax

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Конец

 

 

 

 

 

 

 

 

 

 

 

Рис.4.6

 

 

 

Контрольные вопросы и упражнения

1.Дать определение цикла. Какие процессы называются циклическими?

2.Какие типы циклов вы знаете?

3.Какие величины задаются в случае простого цикла с заданным числом повторений?

4.Составить блок-схемы алгоритмов вычисления и вывода на печать значений указанных функций на заданных промежутках и с заданным шагом h.

а)

f =

sin x + cos x

; x [0,π];

h = π

8

.

 

 

 

1 + x

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x7 x a +e2 x2 ,

при

 

x > a ,

 

 

б)

 

 

 

 

 

 

 

 

при

x = a ,

 

 

f = x sin ax +ctgx ,

 

 

 

 

 

 

 

 

 

 

 

x +0,1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ax

 

 

 

 

 

 

 

 

 

 

 

e

cos ax

+ln

 

 

 

 

 

 

,

при x < a,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a = 2,5;

 

x [1;5];

 

h = 0,3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

23

 

 

 

1

 

 

 

x

 

 

 

 

( 1

 

 

)e

 

,

при

x 0,5 ,

 

x

 

в)

 

 

 

 

 

 

 

 

 

y =

xe

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,

 

при

х > 0,5 .

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( x +1)

 

 

 

 

 

 

 

x = z arctg

z;

z [2;5]; h = 0,2.

5.В студенческой группе из 25 человек найти число учащихся, рост которых не ниже 170 см.

6.Найти количество отрицательных чисел из 50 введенных.

7.Из 20 чисел найти среднее арифметическое положительных.

8.Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал дневную норму на 10 % от нормы предыдущего дня:

8.1.Какой путь пробежит спортсмен в седьмой день?

8.2.Какой суммарный путь пробежит спортсмен за 7 дней?

8.3.Через сколько дней он будет пробегать больше 20 км в день?

8.4.Через сколько дней суммарный путь станет больше 100 км?

9.В сбербанк сделан вклад C0 рублей из расчета Р % годовых. Определить динамику возрастания вклада в течение первых 10 лет хранения.

10.Составить блок-схему печати значений функции

y =

ln2

 

sin x 0,3

 

,

больших заданного t,

 

 

 

 

 

 

 

 

e

 

 

 

 

 

 

 

где x [0,4;2],

х =0,1.

11.Составить алгоритм для

нахождения произведения модулей отрица-

тельных значений функции

 

y=sin2x - 0,5,

где x [ 0,10],

x=0,1, и суммы ее положительных зна-

чений.

 

 

 

 

 

 

12. Вычислить значение y=m!

(факториал натурального числа m, т. е.

m!=1·2·3·m; 0!=1).

13.Вычислить сумму четных чисел от 2 до 1000.

14.Разделить натуральное число m на натуральное число n, не используя операцию деления.

15.Найти произведение натуральных чисел m и n, не используя операцию умножения.

16.С клавиатуры последовательно вводятся числа до тех пор, пока не бу-

дет введен ноль. Подсчитать:

-сумму введенных чисел;

-сколько было введено отрицательных и положительных чисел;

-найти среднее арифметическое введенных чисел; затем отдельно положительных и отрицательных чисел;

24

-каких чисел было введено больше - положительных или отрицательных и насколько;

-найти максимум среди вводимых чисел;

-определить порядковый номер наибольшего числа.

17.Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить сколько клеток образуется через 3, 6, 9, …24 часа.

18. На склад привозят однородный груз на машинах различной грузоподъемности. На компьютер, управляющий работой склада, поступает информация о весе груза очередной машины. Составить алгоритм подсчета количества машин, прибывших на склад до его заполнения, если вместимость склада не более 100 тонн.

4.2. Итерационные циклы

Рассмотрим итерационные методы. Эти методы, вообще говоря, не дают возможности найти точное решение за конечное число шагов. С их помощью строится последовательность {x(k)} такая, что

lim x(k ) = x ,

k →∞

где x - точное решение.

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

x

i

 

 

Например: ex =

 

.

 

 

 

 

 

 

i=0

i!

xi

 

Вычисление каждого отдельного члена ряда по прямой формуле

мо-

i!

 

 

 

 

 

жет превысить возможности ЭВМ по представлению чисел: i! растет очень быстро, xi при x >1 также растет очень быстро, поэтому вполне возможно переполнение разрядной сетки. Даже если этого не произойдет, то следует помнить об ограниченности разрядной сетки ЭВМ: при записи в память более чем 20-значных чисел неизбежна потеря цифр. В циклах итерационного типа число повторений вычислений по одним и тем же формулам не задается.

При построении итерационных вычислительных процессов применяется метод последовательных приближений (метод итераций).

Пример 1. Составить блок-схему для вычисления приближенного значения корня уравнения x = x +1 методом последовательных приближений с заданной точностью ε.

Решение. Идея методов последовательных приближений заключается в том, что задается начальное приближение х0, которое подставляется в правую часть заданного уравнения; результатом вычислений будет новое значение х1,

25

которое вновь подставляется в правую часть уравнения, и в результате чего получается очередное значение х2 и т.д. Действия повторяются до тех пор, пока абсолютная величина разности двух последовательных приближений не окажется меньше заданного числа ε (число ε определяет точность вычислений):

x n+1 x n < ε , где

n - номер итерации (шага);

x n - приближенное значение корня уравнения на n -ой итерации (предыдущее приближение);

x n+1 - приближенное значение корня уравнения на (n+1)-ой итерации (последующее приближение).

В итерационных циклах количество повторений до завершения вычислительного процесса неизвестно. Здесь циклом управляет заданная погрешность вычислений ε. Если на очередной итерации погрешность больше или равна ε, то цикл продолжается для вычисления очередного приближенного значения результата, иначе происходит выход из цикла.

На рис.4.7 приведена блок-схема для нахождения приближенного значения корня исходного уравнения. Начальное значение приближения корня положено равным нулю (блок 2). Переход к очередному приближению пред-

Начало

1

ε

2

х = 0

3

 

х =

х+1

нет

4 х+1 - х < ε

да

5

х

Конец

Конец

Рис.4.7

ставлен

инструкцией

x =

x +1

(тело цикла - блок 3),

в которой х в

правой

части представляет

текущее

приближение, а х слева - следующее приближение. В качестве условия окончания цикла проверяется неравен-

ство

x +1 x

< ε

 

(блок 4). При зна-

чении погрешности

 

x +1 x

 

ε цикл

 

 

 

 

 

 

 

 

 

продолжается: в блоке 3 при подстановке в правую часть последнего вычисленного значения х получается очередное, более точное приближение.

При выполнении условия x +1 x < ε

значение х может рассматриваться как результат, представляющий корень уравнения, найденный с заданной точностью; при этом осуществляется выход из цикла путем передачи управления от блока 4 к блоку 5. Число выполнений тела цикла зависит не только от начального значения и закона изменения переменной х, но и от требований точности результата ε.

26

При составлении алгоритмов с итерационными циклами нельзя использовать блок модификации, т. к. неизвестно число повторений вычислений.

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

Пример 2. Составить алгоритм для вычисления суммы членов беско-

нечного ряда

y =1 +

x

+

x2

+

x3

+...

2!

 

 

 

 

3!

4!

 

при конкретном заданном значении х, причем вычисления должны производиться до тех пор, пока очередной член ряда станет меньше заданного зна-

чения погрешности ε.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Решение.

 

 

 

 

Блок-схема алгоритма приведена на рис 4.8. В начале алго-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Начало

ритма должны быть введены величины

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х и ε

(блок 1). На рис 4.8 приняты обо-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

значения: u - очередной член ряда, n -

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x, ε

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

номер этого слагаемого. При n=1 будет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u=1, а любому значению n будет соот-

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

п = 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ветствовать член

ряда

x

n

 

 

 

 

. Теперь

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(n +

1)!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и= 1

 

 

 

 

 

можно записать соотношения, связы-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вающие все последующие значения ве-

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

у= 1

 

 

 

 

 

личин

 

u =

u x

,

y = y +u,

 

 

n = n +1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n +1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

Так как в начале вычисления n=1, u=1,

 

 

 

 

 

 

 

 

 

u = u

 

 

 

 

 

 

 

 

 

 

 

 

 

y=1, то эти значения должны быть при-

 

 

 

 

 

 

 

 

 

n +1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

своены указанным переменным (блоки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

у= у + и

 

2, 3, 4). Поскольку вначале n=1, то сле-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

дующий член ряда равен u =

x

 

 

, а сумма

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

п= п + 1

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y =1 +

 

(блоки 5, 6). После вычисле-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

да

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и ε

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ния суммы двух слагаемых нужно уве-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нет

личить номер n на единицу

 

(блок 7) и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

проверить условие |u| ≥ ε (блок 8). Если

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

это условие выполняется, то необходи-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

мо вычислить следующий член ряда и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Конец

добавить

к ранее полученной сумме,

т. е. повторить операции в блоках 5,6,7.

Рис.4.8

27

Этот цикл вычислений должен повторятся до тех пор, пока u не станет меньше ε. После этого значение y должно быть выведено на печать (блок 9), и вычисления завершаются.

Пример 3. Составить блок-схему вычисления sin x для задаваемых х и ε, используя разложение sin x в ряд Тейлора:

sin x = y = x

x3

+

x5

x7

+ +(1)n+1

x2n1

 

+

 

 

 

(2n 1)!

3!

5!

7!

 

 

с точностью очередного члена ряда

x2n1

<ε, где n=1, 2, 3,…

(2n 1)!

 

 

 

 

Начало

 

 

1

 

 

 

x, ε

 

 

2

 

 

 

и = х

у = х

п = 1

 

3

ux2

 

u =

 

 

2n( 2n +1)

 

4

 

 

 

 

у = у + и

 

5

 

 

 

n = п + 1

да

6

|и| > ε

 

 

 

 

 

7

нет

 

 

 

 

 

y

 

 

 

Конец

 

 

 

Рис.4.9

Решение. Для сокращения объема вычислений при алгоритмизации подобных вычислительных процессов используется следующая общая методика, которую приведем в применении к рассматриваемой задаче. Для получения рекуррентной формулы запишем выражения для n-ого и (n+1)-ого членов записанного ряда:

un =( 1)n+1

 

x2n1

 

;

 

 

 

 

 

 

 

( 2n 1)!

 

 

 

 

un+1 = (1)n+2

x2n+1

 

 

.

 

(2n +1)!

 

 

 

 

 

 

 

Отношение

un+1

= −

x

2

 

 

 

позволя-

un

2n(2n +1)

 

 

 

 

ет вычислить каждый последующий член ряда Тейлора, если известно значение предыдущего члена (рекуррентная формула):

u

 

= u

 

 

x2

.

n+1

n

2n(2n +1)

 

 

 

 

Алгоритм вычисления sin x представлен блок-схемой на рис. 4.9. В блоке 2 задаются: начальное значение члена ряда u=x, начальная сумма ряда y=x и начальный индекс n=1.

Вблоке 3 вычисляется очередной член ряда в соответствии с рекуррентной формулой.

Вблоке 4 происходит увеличение суммы ряда y на величину следующего члена.

28

Вблоке 5 производится увеличение индекса n на 1 для перехода к следующему члену ряда.

Вблоке 6 проверяется окончание цикла: если очередной член ряда дос-

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

Пример 4. Шар катится к краю горизонтальной полки со скоростью V, затем падает с высоты H на пол с твердым покрытием и, многократно ударяясь об пол и отскакивая, продолжает изменять свое положение в горизонтальном направлении (рис.4.10)

 

 

 

Рис.4.10

 

 

 

 

 

 

 

Построить блок-схему алгоритма, имитирующего этот физический процесс.

Высоты подъема шара изменяются по закону убывающей геометрической

прогрессии

с заданным знаменателем Q. Требуется определить, пренебрегая

изменением горизонтальной составляющей скорости шара V, расстояние по

горизонтали от точки, в которой началось падение шара, до точки удара, по-

сле которого высота подъема шара составляет менее 10% от первоначальной,

и общее число ударов шара к этому моменту.

 

 

 

 

 

 

 

Решение. Если известна высота H подъема шара, то может быть получено и

Начало

 

 

время Т свободного падения:

 

 

 

2H ,

 

 

 

 

1

 

 

 

T =

где

g-

ускорение

H, V, Q

 

 

 

 

g

 

 

 

 

 

 

свободного падения.

 

 

 

 

 

 

 

 

2

 

 

 

Время

подъема

шара

после

H1 = H/10

 

 

удара равно времени после-

N = O

 

 

дующего падения. Следова-

S = V

2H

 

 

тельно, расстояние по горизон-

 

g

 

 

тали, которое шар проходит

3

 

 

 

между

ударами,

 

равно

N = N + 1

 

 

2V

 

2H .

 

 

 

 

H = Q H

 

 

 

 

 

 

 

 

 

 

5

 

 

g

 

 

 

 

 

 

 

В рассматриваемом

процессе

4

 

 

S = S + 2V 2H

H < H1

нет

повторяется один и тот же на-

 

да

g

бор

событий: удар

шара об

6

 

 

 

 

пол, подъем, падение. В опыте

 

 

 

N, S

 

 

 

 

 

 

изменяются некоторые

физи-

 

 

 

 

ческие характеристики: поло-

Конец

 

 

жение шара, его энергия. Суть

Рис.4.1.1

 

 

моделирования

процесса

 

 

 

 

 

 

 

 

 

29

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

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

Составим перечень необходимых переменных:

Q - знаменатель геометрической прогрессии, по которой изменяется высота подъема шара. Q зависит от упругих свойств материалов поверхности

ишара;

Н - изменяющаяся высота подъема шара (амплитудные значения); Н1 - высота, равная 10% от первоначальной высоты;

V - заданная горизонтальная составляющая скорости шара;

S - нарастающее расстояние по горизонтали от точки начала падения; N - нарастающее число ударов шара.

Блок-схема алгоритма представлена на рис.4.11. В алгоритме используется итерационный цикл для накопления значений N и S. В нем многократно используется инструкция H=Q H (блок 3), в результате чего последовательные значения Н образуют убывающую геометрическую прогрессию.

Первое падение шара учитывается до цикла в блоке 2

S =V

2H

.

 

 

g

Цикл оканчивается по выполнению условия H<H1.

Контрольные вопросы и упражнения

1.Дать определение итерационного вычислительного процесса.

2.Какой метод используется при алгоритмизации итерационных процессов?

3.Какова идея метода итерации?

4.Какая величина управляет итерационным циклом?

5.Почему при составлении алгоритмов с итерационными циклами нельзя использовать блок модификации?

6.Изложить суть методики построения алгоритма для вычисления сумм бесконечных рядов.

7.Поясните смысл рекуррентной формулы.

8.Каковы преимущества алгоритмов, использующих рекуррентные соотношения, перед алгоритмами прямого накопления суммы бесконечных рядов?

9.Составить блок-схему алгоритма вычисления корня k-й степени уравнения y = k x по итерационной формуле

 

 

 

 

1

 

 

x

 

yn+1 =

 

( K 1)yn

+

.

 

 

k 1

 

 

 

 

K

 

yn

 

Погрешность вычислений

 

 

yn+1 yn

 

<ε ; начальное приближение yn=y0.

 

 

30

10.Используя формулу предыдущего задания, составить блок-схему алго-

ритма вычисления y = 3 72 с точностью 10- 4 при y0=1.

11.Составить блок-схему алгоритма нахождения приближенного значения

корня

 

уравнения

x =

 

1

по итерационной формуле

 

2

+sin x

 

 

 

1

 

 

 

xi+1

=

 

при х0 = 0 с точностью 10-2.

2

+sin xi

 

 

 

 

 

 

 

12.Составить блок-схему алгоритма определения наименьшего целого

K>0, при котором вычисленное значение функции у = xk становится

K

меньше a. Определить условия, при которых задача имеет решение. 13.Составить блок-схему определения для заданного х значения cosx по

формуле cos x = y =1x2 + x4 x6 + с точностью очередного чле- 2! 4! 6!

x2n < ε

на ряда ( ) . 2n !

14.Исходя из представления arctg x знакопеременным степенным рядом

arctgx = y =

π

1

+

1

1

+

1

(x>1), построить алгоритм,

2

x

3x3

5x7

7xx

 

 

 

 

 

 

 

приближенно вычисляющий значения arctg x с точностью ε . 15. Вычислить сумму членов ряда

z =

1

+

mx

+

m( m 1)

x2

+

m( m 1)( m 2 )

x3

+

 

( m +1)!

 

 

 

m!

 

( m + 2 )!

 

( m +3 )!

 

с точностью ε. Для определения текущего значения члена ряда использовать рекуррентную формулу

Un+1 =Un

x(m n +1)

, n - номер члена ряда.

m + n

 

 

16. Получить рекуррентную формулу и вычислить сумму членов ряда

y =

1

 

+

2

+ +

n

+ с точностью ε.

2

3

3 4

(n +1)(n + 2)

 

 

 

 

17. Начертить блок-схему алгоритма вычисления f(x) с заданной точно-

стью ε :

а)

f (x) = x

x3

 

 

+

 

x

5

x

7

+ ;

3!

3

 

5!

5

7! 7

 

 

 

 

 

 

 

 

 

 

x

i

 

 

 

 

 

 

 

 

б)

f (x) = (1)i 1

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i =1

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в)

+1)(x)i

;

 

 

 

 

 

f (x)= (i

 

 

 

 

 

i=0

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]