Алгоритмы_примеры_22_10.ppt
- Количество слайдов: 19
алгоритмы в примерах • линейный • ветвление • циклический 1
линейный алгоритм — описание действий, которые выполняются однократно в заданном порядке. Линейный алгоритм применяется при однократном вычислении арифметического выражения. Пример 1 В результате работы алгоритма У: = Х – 1 Х: = У У: = Х + 3*У Вывод У «У» приняла значение 20. Чему равно Х до начала работы алгоритма? 2
Разветвляющийся — алгоритм в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий. Пример 2 4
Циклический алгоритм — описание действий, которые должны повторяться указанное число раз или пока не выполнено заданное условие. Перечень повторяющихся действий называется телом цикла. Пример 3 Составить блок – схему вычислений значений функции Ук = СОS(КХ) + К для К = 1 , 2, …, 50 6
Блок - схема К = 1, 50, 1 У К = СОS(КХ) + К 7
Циклический алгоритм • Пример 4 • Составить блок – схему для вычисления значения суммы первых N натуральных чисел 8
Блок - схема S= 0 К = 1, N, 1 S= S + K 9
Циклический алгоритм Пример 5 Составить блок – схему вычислений значений функции У = 3*Х/(1+Х 2) для Х, изменяющимся от 0 до 30 с шагом 1 для цикла с постусловием 10
Блок - схема Х=0 Ух = 3*Х/(1+Х 2) Х = Х +1 да нет Х<= 3 11
Дана функция Y(х)=х+10. Найти сумму значений функции, которые у<16 на отрезке [хн; хк] с шагом х. Цикл с постусловием по аргументу x. начало S=S+y хн, хк, х, х =х + х Х=хн; S=0 нет хн=0, хк=10, х=2, х <хк +1 Y=х+10 у<16 Пример да Печать s конец 12
Циклический алгоритм Пример 6 Дан фрагмент программы. Что будет вычислено для массива целых чисел Х[1: N] k: =0 нц для j от 1 до N если Х [j]>0 то k : = k +1 все кц Вывод k 1. массив целых чисел Х[ 1: 5] N = 5 2. Х[1] = 1; Х[2] = 0; Х[3] = -1; Х[4] = 2; Х[5] = 4 3. К = 0 4. для j от 1 до 5 1. j = 1 если Х[ 1] >0 то K = 0+1 = 1 2. j = 2 если Х[ 2] >0 то K = 1 , т. к. Х[2] = 0 3. j = 3 если Х[ 3] >0 то K = 1 , т. к. Х[3] = -1 4. j = 4 если Х[ 4] >0 то K = 1 +1 = 2 , т. к. Х[4] = 2 5. j = 5 если Х[ 5] >0 то K = 2 +1 = 3 , т. к. Х[5] = 4 5. Конец цикла 6. Вывод К 13
Циклический алгоритм Пример 7 14
решение а = 3; в = 7 пока а/2<= в/3 делать а = 1, 5 < в = 2, 33 а = 1, 5 +2 =3, 5; в = 2, 33 + 3 = 5, 333 а = 3, 5 <=5, 333 15
Вложенные циклы Пример 8 Чему будет равно значение К после выполнения алгоритма? 16
Решение K=0 1. I = 1 (до 5) 1. J = 1( до 2) 1. 2. I = 2 (до 5) 1. J = 1( до 3) 1. 2. 3. K =0 +1 K =1 +1 =2 K =2 +1 = 3 K =3 +1 =4 K =4 +1 =5 I = 3 (до 5) 1. J = 1( до 4) 1. 2. 3. 4. K =5 +1 = 6 K =6 +1 =7 K =7 +1 =8 K =9 +1 =10 4. I = 4 (до 5) J = 1( до 5) 1. K =10 +1 = 11 2. K =11 +1 =12 3. K =12 +1 =13 4. K =13 +1 =14 5. K =14 +1 =15 5. I = 5 J = 1( до 6) 1. K =15 +1 = 16 2. K =16 +1 =17 3. K =17 +1 =18 4. K =18 +1 =19 5. K =19 +1 =20 17
Подпрограмма - этот блок, позволяющий в разных местах программы выполнить один и тот же расчет и имеющий своё имя и параметры. Подпрограмма на зависит основной программы Пример 9 18
Решение Вместо формальных аргументов берем фактические Х = 3, У = 5 А = 3 + 2 =5, В = 5 +3 = 8, В = 5+8 = 13 19
Дома: Дан фрагмент алгоритма: если a < b, то с = 2*b , иначе с = 2*а d=1 пока с > b выполнять d = d + 1; с = с – 2 Найти значения d и с при начальных значениях a = 2 b = 3 20
Решение с = 2*b = 6 d=1 с = 6> d = 1 d = d + 1= 2; с = с – 2 = 6 – 2 =4 d = 2 > с =4 d = 2 + 1=3; с = 4 – 2 = 2 d =3 < с = 2 конец цикла d =3; с = 2 21