![](/user_photo/2706_HbeT2.jpg)
- •Министерство образования и науки
- •1.Этапы подготовки и решения задач на эвм
- •Рассмотрим эти этапы.
- •Основные этапы процесса подготовки и решения задач на эвм
- •2 . Алгоритмизация вычислительных процессов
- •2.1 Графический метод описания алгоритмов
- •Правила применения символов
- •2.2 Виды вычислительных процессов Основные структуры алгоритмов
- •2.2.1. Вычислительный процесс линейной структуры
- •2.2.2. Вычислительный процесс разветвляющейся структуры
- •Разветвление.
- •Множественный выбор
- •2.2.3.Вычислительный процесс циклической структуры.
- •Циклы с известным числом повторений
- •Циклы с неизвестным числом повторений
Циклы с неизвестным числом повторений
Типичным примером интерационного цикла служат задачи вычисления с заданной точностью.
Итерационные циклы широко используются в численных методах решениях алгоритмических и трансцендентных уравнений, при вычислении интегралов, определении суммы бесконечного ряда и т.д. Во всех этих задачах вычисления прекращаются при достижении некоторой точности (результатов).
Рассмотрим пример вычисления суммы бесконечного ряда чисел.
Пример 15.
Вычислить значение sin x по формуле
SinX =
Блок – схема алгоритма определения максимального и минимального значения функции
Рис.26
Пример программы:
remвычислениеmax,minфункции
inputХн,Xк, х
max=-1010
min=1010
for x= Хн to Xк step x
y=F(x)
print x,y
if y>=max then max=y
if y<=min then min=y
next x
print max,min
end
В операторе y=F(x) в правой части уравнения должно быть записано арифметическое выражение (по условию задачи).
Общая формула члена ряда
гдеn– номер члена ряда
n
Вычисления продолжать до тех пор пока
>E,
это у
словие
и есть условие выхода из цикла, где Е –
точность вычислений.
При достаточно большом n возведение в степень занимает значительное машинное время . Поэтому каждый член ряда следует получать в соответствии с рекуррентным соотношением
R = Rx
Где n = 3,5,7……..; R начальное = х. Тогда рекуррентное соотношение для получения суммы ряда будет S = S+R (-1), где Sначальное= Х. Блок – схема алгоритма вычисления суммы ряда представлены на рисунке 27.
Вычисления ведутся до тех пор , пока величина члена ряда R не станет меньше , либо равной некоторой малой величине Е. Значение R с каждым циклом уменьшается. После выполнения цикла первый раз имеем
R =
S =
После выполнения цикла второй раз
R =
S =
И т.д.
Структурный
подход предполагает использование
простейших структур, перечисленных и
списанных выше, для построения блок –
схемы алгоритмов любой сложной задачи.
Рассмотрим это на примере.
Рис.27
Программа на Qbasicимеет вид:
input x,e
s=x
r=x
n=3
do while r>e
r=r*x2/((n-1)*n)*(-1)
s=s+r
n=n+2
loop
print s
end
Пример 16.
Для каждого значения Х [Xn,Xk] c шагомХ и для каждого У[Yn,Yk] с шагомУ определить:
если Z3,5
W =
Z + 0.7 tgz если Z <3,5
Определить наибольшее и наименьшее значения из всех вычисленных значений W и соответствующие ему значения Х и У.
Блок – схема алгоритма задачи представлена на рис. 28.
Блок 1– ввод исходных данных
Блок 2 – подготовка начальных значений переменных MAX и MIN.
Блоки 3 + 31 = внешний цикл , переменная цикла Х. Тело этого цикла составляют блоки 4+ 30.
Блоки 3, 4, 31 – определяют интервал изменения переменной Х.
Блоки 7-29 – тело внутреннего цикла , переменная цикла У.
Блоки – 5, 6, 30 – определяют интервал изменения переменной У.
Блоки 7+17 – определение значений переменной Z. Это два последовательно расположенных друг за другом цикла, в которых определяется последовательно значения слагаемых 51 и 52, входящих в формулу определения Z.
Блоки 19-25 – определение и печать значения W. Это разветвляющийся вычислительный процесс, одной из ветвей которого (блоки 19-23) является циклический процесс накопления произведения.
Блоки 26 - 29 – определяют наибольшее и наименьшее значения переменной W и ее координаты.
Одним из приемов разработки алгоритмов решения более сложных задач является метод пошаговой детализации . метод пошаговой детализации заключается в том , что первоначально продумывается общая структура алгоритма без детальной проработки отдельных ее частей, , но при этом также используются основные виды структур алгоритмов. Обычно блоки, требующие дальнейшей детализации, обозначают пунктирной линией. Далее они детализируются на следующем шаге и так, пока не будет полностью осуществлена детализация всех блоков. Такой метод называется программированием сверху вниз. Так, блок – схему алгоритма (рис. 28) можно получить, используя метод пошаговой детализации (рис. 29).
Блок – схема для решения задачи 16.
Программа для решения примера имеет вид:
remсложный цикл
inputn,m,l,Xн ,Xк ,dx,Yн ,Yк ,dy
max=-1010 : min=1010
for x= Xн to Xк step dx
for y= Yн to Yк step dy
s1=0
for i=1 to n
s1=S1+cos(x*y+i)
next i
s2=0
for k=1 to m
s2=S2+sin(x*y+k)
next k
z=S1+S2
if z>=3.5 then
w=1
for n=1 to l
w=W*z(n+2)
next n
else
w=z+0.7*tan(z)
end if
print w,x,y,z
if W>=max then
max=w
xmax=x
ymax=y
end if
if W<=min then
min=W
xmin=x
ymin=y
end if
next y
next x
print max, xmax, ymax
print min, Xmin, Ymin
end