Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемАфанасий Твердохлебов
1 К. Поляков, Программирование на алгоритмическом языке Тема 7. Алгоритмы-функции
2 Программирование на алгоритмическом языке. Часть II К. Поляков, Максимум из трех 2 начало конец a > b? да x:= a нет x:= b c > x? да x:= c a a b b x x x x c c Где ответ? ? нет
3 Программирование на алгоритмическом языке. Часть II К. Поляков, Максимум из трех 3 алг цел Макс3(цел a, b, c) нач цел x если a > b то x:= a иначе x:= b все если c > x то x:= c все знач := x кон знач цел x цел результат – целое число внутренняя (локальная) переменная результат (значение) функции
4 Программирование на алгоритмическом языке. Часть II К. Поляков, Максимум из трех 4 алг Максимум нач цел Z, X, C, M вывод "Введите три числа " ввод Z, X, C M:= Макс3(Z, X, C) вывод "Максимум: ", M кон алг Максимум нач цел Z, X, C, M вывод "Введите три числа " ввод Z, X, C M:= Макс3(Z, X, C) вывод "Максимум: ", M кон алг цел Макс3(цел a, b, c) нач... кон вызов функции имена параметров могут быть любые!
5 Программирование на алгоритмическом языке. Часть II К. Поляков, Максимум из пяти 5 Как с помощью этой функции найти максимум из пяти чисел? ? алг Максимум нач цел Z, X, C, V, B, M ввод Z, X, C, V, B M:= Макс3( Макс3(Z,X,C), V, B) вывод "Максимум: ", M кон алг Максимум нач цел Z, X, C, V, B, M ввод Z, X, C, V, B M:= Макс3( Макс3(Z,X,C), V, B) вывод "Максимум: ", M кон алг цел Макс3(цел a, b, c) нач... кон ???
6 Программирование на алгоритмическом языке. Часть II К. Поляков, НОД трёх чисел 6 Задача: ввести три числа и найти наибольший общий делитель (НОД). Используйте формулу НОД(a,b,c) = НОД(НОД(a,b), c) Нужно два раза применить один и тот же алгоритм вычисления НОД двух чисел. ! Решение: построить вспомогательный алгоритм для вычисления НОД двух чисел и применить (вызвать) его два раза.
7 Программирование на алгоритмическом языке. Часть II К. Поляков, Общий вид программы 7 алг НОД трёх чисел нач цел a, b, c, N вывод "Введите три числа", нс ввод a, b, c N:= НОД(НОД(a,b), c) вывод N кон алг НОД трёх чисел нач цел a, b, c, N вывод "Введите три числа", нс ввод a, b, c N:= НОД(НОД(a,b), c) вывод N кон алг цел НОД(цел x, y) нач | здесь нужно вычислить НОД(x,y) кон алг цел НОД(цел x, y) нач | здесь нужно вычислить НОД(x,y) кон основной алгоритм вспомогательный алгоритм ???
8 Программирование на алгоритмическом языке. Часть II К. Поляков, Блок-схема алгоритма Евклида 8 a = b? да нет a > b? да a:=a-b нет b:=b-a начало конец
9 Программирование на алгоритмическом языке. Часть II К. Поляков, Алгоритм Евклида 9 алг цел НОД(цел x, y) нач цел a, b a:= x; b:= y | копии параметров нц пока a b если a > b то a:= a - b иначе b:= b - a все кц знач:= a | результат функции кон алг цел НОД(цел x, y) нач цел a, b a:= x; b:= y | копии параметров нц пока a b если a > b то a:= a - b иначе b:= b - a все кц знач:= a | результат функции кон
10 Программирование на алгоритмическом языке. Часть II К. Поляков, Рекурсивные функции 10 Факториал: если алг цел Факт(цел N) нач если N < 2 то знач:= 1 иначе знач:= N*Факт(N-1) все кон алг цел Факт(цел N) нач если N < 2 то знач:= 1 иначе знач:= N*Факт(N-1) все кон алг цел Факт(цел N) нач цел i знач:= 1 нц для i от 2 до N знач:= знач*i кц кон алг цел Факт(цел N) нач цел i знач:= 1 нц для i от 2 до N знач:= знач*i кц кон Алгоритм без рекурсии, как правило, работает быстрее и требует меньше памяти. !
11 Программирование на алгоритмическом языке. Часть II К. Поляков, Задания «3 » : Составить функцию, которая определяет НАИМЕНЬШЕЕ из трёх чисел и привести пример ее использования. Пример: Введите три числа: Наименьшее число 10. «4» : Составить функцию, которая вычисляет НАИМЕНЬШЕЕ из четырёх чисел и привести пример ее использования. Пример: Введите четыре числа: Наименьшее число 5.
12 Программирование на алгоритмическом языке. Часть II К. Поляков, Задания «5» : Составить функцию, которая определяет сумму всех чисел от 1 до N и привести пример ее использования. Пример: Введите число: 100 Сумма чисел от 1 до 100 = 5050
13 Программирование на алгоритмическом языке. Часть II К. Поляков, Логические функции 13 Задача: составить функцию, которая определяет, верно ли, что заданное число – четное. Особенности: ответ – логическое значение ( да или нет ) результат функции можно использовать как логическую величину в условиях ( если, пока ) Алгоритм: если число делится на 2, оно четное. если mod(N,2)= 0 то | число N четное иначе | число N нечетное все если mod(N,2)= 0 то | число N четное иначе | число N нечетное все
14 Программирование на алгоритмическом языке. Часть II К. Поляков, Логические функции 14 алг лог Четное(цел N) нач если mod(N,2) = 0 то знач:= да иначе знач:= нет все кон алг лог Четное(цел N) нач если mod(N,2) = 0 то знач:= да иначе знач:= нет все кон логическое значение ( да или нет )
15 Программирование на алгоритмическом языке. Часть II К. Поляков, Логические функции 15 алг Проверка четности нач цел x вывод "Введите целое число: " ввод x если Четное(x) то вывод "Число четное." иначе вывод "Число нечетное." все кон алг Проверка четности нач цел x вывод "Введите целое число: " ввод x если Четное(x) то вывод "Число четное." иначе вывод "Число нечетное." все кон алг лог Четное(цел N) нач... кон
16 Программирование на алгоритмическом языке. Часть II К. Поляков, Задания 16 «3»: Составить функцию, которая определяет, верно ли, что число оканчивается на 0. Пример: Введите число:Введите число: Верно.Неверно. «4»: Составить функцию, которая определяет, верно ли, что в числе вторая цифра с конца больше 6. Пример: Введите число:Введите число: Верно.Неверно.
17 Программирование на алгоритмическом языке. Часть II К. Поляков, Задания 17 «5»: Составить функцию, которая определяет, верно ли, что переданное ей число – простое (делится только на само себя и на единицу). Пример: Введите число:Введите число: 2928 Простое число.Составное число.
18 К. Поляков, Программирование на алгоритмическом языке. Часть II Тема 8. Построение графиков функций
19 Программирование на алгоритмическом языке. Часть II К. Поляков, Построение графиков функций 19 Задача: построить график функции y = x 2 на интервале от -2 до 2. Анализ: максимальное значение y max = 4 при x = ±2 минимальное значение y min = 0 при x = 0 Проблема: функция задана в математической системе координат, строить надо на экране, указывая координаты в пикселях. X Y
20 Программирование на алгоритмическом языке. Часть II К. Поляков, Преобразование координат 20 (x,y)(x,y) x y Математическая система координат Экранная система координат (пиксели) (xэ,yэ)(xэ,yэ) xэxэ yэyэ (0,0)(0,0) (0,0)(0,0) x0x0 y0y0 k – масштаб (длина изображения единичного отрезка на экране) x э = x 0 + kx y э = y 0 - ky x э = x 0 + kx y э = y 0 - ky X Y
21 Программирование на алгоритмическом языке. Часть II К. Поляков, Программа 21 на экране оси координат цикл построения графика использовать Рисователь алг График нач цел x0=150, y0=250, k=50, xe, ye вещ xmin=-2, xmax=2, x, y, h в точку(0,y0) линия в точку(x0+150,y0) в точку(x0,0) линия в точку(x0,y0+20) x:=xmin; h:=0.02 нц пока x
22 Программирование на алгоритмическом языке. Часть II К. Поляков, Как соединить точки? 22 Алгоритм: Если первая точка перейти в точку (x э,y э ) иначе линия в точку (x э,y э ) Если первая точка перейти в точку (x э,y э ) иначе линия в точку (x э,y э ) Программа: начальное значение выбор варианта действий логическая переменная лог первая... первая:= да нц пока x
23 Программирование на алгоритмическом языке. Часть II К. Поляков, Задания 23 «3»: Построить график функции на интервале [-2,2]. «4»: Построить графики функций и на интервале [-2,2].
24 Программирование на алгоритмическом языке. Часть II К. Поляков, Задания 24 «5»: Построить графики функций и на интервале [-2,2]. Соединить точки линиями.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.