Материал: Основы алгоритмизации вычислительных процессов. методические указания по курсу «Информатика» для студентов I-го курса всех специальностей. Авдеев В.П., Венгерова Г.Т

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

 

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. Число выполнений тела цикла зависит не только от начального значения и закона изменения переменной х, но и от требований точности результата ε.

Источник: https://studfile.net/preview/16569448/