Задания для самостоятельного выполнения

advertisement
Алгоритмизация
Работа с блок-схемами
Чтение блок-схем
•Данные задания нацелены на чтение
блок-схем и определения результата.
•Определите значение целочисленной
переменной х после выполнения
фрагмента алгоритма:
х:=121
у:=66
да
х=у
нет
да
нет
х>у
х:=х-у
у:=у-х
Примечание: знаком := обозначена операция присваивания
1) -11
2) 11
3) 44
4) 55
a := 1
b := 0
да
b=4
нет
b := b + 1
a := a * 2
1)
8
2)
16
3) 32
4) 12
b := 0
c := 0
да
b = 11
нет
c := c + b
b := b + 1
1)
1
2)
45
3) 55
4)
66
b:=0 c:=1
да
b = 10
нет
b:=b+1
c
c:=c + b
1) 36
2) 45
3) 56
4) 50
A:=1
b:=0 d:=1
да
b =5
нет
s:=a+d
b:=b+1
d:=a
a:=s
1) 5
2) 8
s
3) 13
4) 21
да
серия 1
усл 1
нет
да
серия 2
усл 2
нет
серия 3
Фрагмент блок-схемы представляет алгоритм, который содержит две команды
ветвления.
1) команду ветвления в сокращенной форме, в которую вложена команда ветвления в
полной форме
2)две команды ветвления в полной форме, одна из которой вложена в другую
3)две команды ветвления в сокращенной форме, одна из которой вложена в другую
4)команду ветвления в полной форме, в которую вложена команда ветвления в
сокращенной форме
Составить блок-схемы
• Поиск минимального значения из трех
чисел A,B,C при помощи двойного
сравнения.
НАЧАЛО
Ввод
A,B,C
+
A<=B и
A<=C
Вывод A
+
С<=B
Вывод C
Вывод B
КОНЕЦ
Составить блок-схемы
• Поиск минимального числа из трёх А,В,С.
1. Метод последовательного сравнения .
НАЧАЛО
Ввод
А,В,С
A<C
А<B
B>C
Выво
дB
КОНЕЦ
+
Вывод
C
+
Вывод
A
Составить блок-схему
• Пример 3. Составить алгоритм определения
находится ли точка М с координатами Х,У
на окружности радиуса R.
• Решение. Визуальный алгоритм приведен
на сл. рис. Для решения в нем используется
математическая модель в виде формулы
окружности R2 = X2+Y2.
Начало
Ввод
M(X,Y),
R
T:=X2+Y2
ДА
T=R2
НЕТ
Kонец
+
Составить блок-схему
• Пример 4. Составить алгоритм определения
корней уравнения (X2+B*X+C=0).
• Решение. При составления этого алгоритма
надо рассмотреть случаи, когда уравнение не
имеет корней и когда имеется только один
корень. Обозначим корни уравнения через
переменные Х1,Х2. D - промежуточная
переменная для вычисления дискриминанта.
Алгоритм вычисления корней уравнения
заданного вида приведен на сл. рис.
НАЧАЛО
Ввод
B,C
D:=B2 - 4*C
D<0
D=0
X1:=(-B+D0,5)/2
X2:=(-B-D0,5)/2
Вывод
X1,X2
КОНЕЦ
+
НЕТ
КОРНЕЙ
+
X1:=-B/2
Вывод X
Задания для самостоятельного
выполнения
Составить визуальные разветвленные алгоритмы для следующих задач.
1.Для двух чисел Х,У определить, являются ли они корнями уравнения А*Р^4+D*P^2+C=0
2.Если среди трех чисел А,В,С имеется хотя бы одно четное вычислить максимальное, иначе –
минимальное
3.Ввести положительное А>=1. Найти наибольшее из выражений вида 1\А и SIN(A).
4.Ввести два числа . Меньшее заменить полусуммой, а большее - удвоенным произведением.
5.Ввести три числа А,В,С . Удвоить каждое из них , если А>=В>=С, иначе поменять значения А и В.
6.Определить является ли точка с координатами X,Y точкой пересечения диагоналей квадрата со
стороной R ,одна вершина которого расположена в начале координат.
7.* Определить значения функции в зависимости от значения аргумента
у=
а*х2 ,
если х > 10
1/х , если –10  х  10
Sin(х) , если х < 10
ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ
• Циклические алгоритмы являются наиболее
распространенным видом алгоритмов, в
них предусматривается повторное
выполнение определенного набора
действий при выполнении некоторого
условия. Такое повторное выполнение
часто называют циклом.
Цикл с предусловием
• Цикл с предусловием начинается с проверки условия выхода из
цикла. Это логическое выражение, например I<=6. Если оно истинно,
то выполняются те действия, которые должны повторяться. В
противном случае, если логическое выражение I<=6 ложно, то этот
цикл прекращает свои действия.
i=1
I<=6
K
+
K:=K+S
i:=i+1
Цикл с постусловием
•
Цикл с постусловием функционирует иначе. Сначала выполняется один раз те действия,
которые подлежат повторению, затем проверяется логическое выражение ,
определяющее условие выхода из цикла, например, I>6 .Проверка его осуществляется
тоже по-другому. Если условие выхода истинно, то цикл с постусловием прекращает
свою работу, в противном случае - происходит повторение действий, указанных в
цикле.
i=1
K:=K+1
i:=i+0,1
+
i>6
K
Повторяющиеся действия в цикле называются "телом цикла".
• Классическим примером циклического алгоритма служит
алгоритм для вычисления степени числа Y=X. Этот
алгоритм может быть реализован на основе операции
умножения. Табличное представление такого алгоритма,
отражающего зависимость У от Х при изменении
показателя степени n от 1 до 3, представлено в табл. В
этой таблице показаны также рекуррентные соотношения
между У и Х, определяющие как на каждом шаге зависит
значение У от значения Х и от значения У, вычисленного
на предыдущем шаге.
Таблица. Рекуррентные соотношения при вычислении Y=Xⁿ
Рекуррентные
соотношения
n
Y
1
Y[1]=X
Y=X
2
Y[2]=X*X или
Y[2]=Y[1]*X
Y=X*X или Y=Y*X
3
Y[3]=X*X*X
или
Y[3]=Y[2]*X
Y=X*X*X или Y=Y*X
Составление блок-схем
• Пример 5.Пусть требуется составить алгоритм вычисления суммы ряда
S=x+x^2+x^3+…+x^n.
• Решение. Исходные данные для алгоритма это переменные x и n. На
каждом шаге будем вычислять очередной член суммы Y и прибавлять
его к предыдущему значению суммы S.Для этого используем
реккурентную формулу вычисления степени Х (см. таблицу 3) Y=Y*Х,
тогда сумма ряда на каждом шаге итерации будет вычисляться по
формуле S=S+Y. Количество итераций K изменяется от 1 до n и равно
количеству членов ряда. Начальное значение суммы ряда S равно 0.
На рис. 12 представлен циклический алгоритм с предусловием для
вычисления заданной суммы ряда.
Алгоритм вычисления суммы ряда S=x+x^2+x^3+…+x^n
НАЧАЛО
Ввод x, N
S:=0
Y:=x
K:=1
+
K<N
K:=K+1
Y:=Y*x
Вывод S
S:=S+Y
КОНЕЦ
Составление блок-схем
• Пример 6. Требуется составить алгоритм получения на отрезке
[-15,15] множества значений функции Y= SIN(X) в виде таблицы значений
(X,Y) при изменении аргумента Х по формуле X[k]=X[k-1]+h, где h=1,5.
• Решение. Такие задачи относят к задачам табулирования функций. Из
условия задачи определяем, что начальное значение отрезка
табулирования X= -15, конечное значение - X=15. Процесс получения
множества пар Х,Y) является итерационным, значит проектируемый
алгоритм будет циклическим. Условие выхода из цикла Х>15. На рис.
13 представлен циклический алгоритм с предусловием вычисления
табличного значения функции Y= SIN(X) на отрезке -15<X<15 при
изменении Х на каждом шаге итерации на величину 1,5. Результатом
выполнения алгоритма является циклический вывод множеств пар
(Y,X) .
Циклический алгоритм
табулирования функции Y =sin (X)
Текстовая форма
НАЧАЛО
алгоритма
___________________
Начало
X:= -15
Присвоить Х = -15
ПОКА
x<=15
Х <= 15
КОНЕЦ
Y =sin (X)
1.Вычислить Y= SIN(X)
2.Вывести
Y,X
3.Вычислить X=X+1,5
КОНЕЦ
Y, X
X: =X+1,5
Задания для самостоятельного
выполнения
1.
2.
3.
4.
5.
6.
7.
Вычислить число в факториале Y=X!
Вычислить сумму ряда , общий член которого задан формулой
An=(x*n)/n!.
При табулировании функции y=cos(x+a) на отрезке [1,10] c
шагом h=1 определить сумму значений y , больших p.
Подсчитать количество цифр в целом числе Х.
Вычислить сумму значений функции у=x^2 на отрезке [1,5] c
шагом 1.
* Найти минимальное значение функции Y=Sin(X)*X , на
отрезке [C,D] с шагом 0.001. Реализовать цикл с
постусловием.
Протабулировать функцию y=sin(x) на отрезке [1,5] с шагом
h=0,5. Вывести предпоследнее положительное значение
функции.
Задания для самостоятельного
выполнения
8. Определить постановку задачи и составить визуальный алгоритм для
этой задачи, если табличное представление ее решения изображено
ниже:
Условие
N>0
125>0 да
12>0
да
1>0
да
0>0
нет
S
N
0
0+5=5
5+2=7
7+1=8
125
12
1
0
Задания для самостоятельного
выполнения
9. Составить визуальную и табличную формы алгоритма по
его текстовому представлению, а также определить
конечное значение S
А)
I=0; S=0;
ПОКА I<3
I=I+3
S=S+I*I
ВЫВОД S
В) I=1; S=0;
ПОКА I >1
S=S+1/I
I=I-1
ВЫВОД S
Задания для самостоятельного
выполнения
10. Составить визуальную и текстовую форму представления
алгоритма, заданного в табличной форме.
I
1
2
J
2
3
2
3
S
0
0+1+2=3
3+1+3=7
7+2+2=11
11+2+3=16
Задания для самостоятельного
выполнения
11. Определить является ли данный фрагмент алгоритма циклом, если
да, то какого вида и какое действие является телом цикла?
I=1
В)
I =1
A)
I<=6
I<=6
+
+
K
K:=K+S
I := I +1
K
Задания для самостоятельного
выполнения
12. * Протабулировать функцию Y=tg(X), при изменении X на отрезке [A,B] с
шагом K и определить количество точек разрыва(M) этой функции.
Задания для самостоятельного
выполнения
13. Определите местонахождение ошибок в алгоритмическом решении
следующей задачи. Найти минимальное значение функции
Y=A*X2+Sin(X)*X0,5, для Х изменяющемся на отрезке [C,D] с шагом 0,01.
НАЧАЛО
C, D
X := C
M := A*X2+SIN(X)*X 0. 5
Y := A*X2+SIN(X)*X 0. 5
Y <M
Y=М
C := Y
Y, X
X := X+0.001
X>D
M
КОНЕЦ
Download