К. Поляков, 2010-2011 http://kpolyakov.narod.ru 1 Программирование на алгоритмическом языке Тема 7. Алгоритмы-функции.

Презентация:



Advertisements
Похожие презентации
1 Программирование на языке Паскаль Тема 8. Графики функций © К.Ю. Поляков,
Advertisements

К. Поляков, Программирование на алгоритмическом языке Тема 4. Циклы.
К. Поляков, Программирование на алгоритмическом языке. Часть II 1. Массивы Массивы 2. Максимальный элемент массива Максимальный элемент массива.
К. Поляков, Программирование на алгоритмическом языке. Часть II 1.МассивыМассивы 2.Максимальный элемент массиваМаксимальный.
Начала программирования Занятие 18. Пошаговая детализация алгоритма. Подпрограммы-функции.
К. Поляков, Исполнитель Калькулятор.
К. Поляков, Программирование на алгоритмическом языке Тема 5. Графика.
К. Поляков, Программирование на алгоритмическом языке Тема 1. Введение.
К. Поляков, Программирование на алгоритмическом языке. Часть II Тема 4. Символьные строки.
ТИПЫ АЛГОРИТМОВ Цель:закрепить знания о типах алгоритмов, умение составлять алгоритмы, строить блок-схемы Болгова Н.А.
ОперацияMNУсловие 1 ввод M, N M N да 3 M > N > 24да 4 M := M - N M N да 6 M > N > 24нет 7 N := N - M 8.
К. Поляков, Программирование на алгоритмическом языке. Часть II Тема 4. Символьные строки.
К. Поляков, Исполнитель Водолей Урок 0. Знакомство с исполнителем Водолей.
К. Поляков, Программирование на алгоритмическом языке. Часть II Тема 5. Матрицы.
1 Программирование на языке Паскаль Функции Кулебякин В.В.
Обучающая презентация для 9 класса © Болгова Н А© Болгова Н.А.2 Основные вопросы: Закрепление типов алгоритмов Закрепление типов алгоритмов Ручная обработка.
К. Поляков, Программирование на алгоритмическом языке (7 класс) 1.ВведениеВведение 2.ВетвленияВетвления 3.Сложные.
К. Поляков, Программирование на алгоритмическом языке Введение.
К. Поляков, Программирование на алгоритмическом языке. Часть III 1.Обработка массивовОбработка массивов 2.Сортировка.
Алгоритмы работы с величинами Компьютер + система программирования исполнитель Данные Величина ЧисловаяСимвольная Логическая Система команд Переменные.
Транксрипт:

К. Поляков, Программирование на алгоритмическом языке Тема 7. Алгоритмы-функции

Программирование на алгоритмическом языке. Часть II К. Поляков, Максимум из трех 2 начало конец a > b? да x:= a нет x:= b c > x? да x:= c a a b b x x x x c c Где ответ? ? нет

Программирование на алгоритмическом языке. Часть II К. Поляков, Максимум из трех 3 алг цел Макс3(цел a, b, c) нач цел x если a > b то x:= a иначе x:= b все если c > x то x:= c все знач := x кон знач цел x цел результат – целое число внутренняя (локальная) переменная результат (значение) функции

Программирование на алгоритмическом языке. Часть 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) нач... кон вызов функции имена параметров могут быть любые!

Программирование на алгоритмическом языке. Часть 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) нач... кон ???

Программирование на алгоритмическом языке. Часть II К. Поляков, НОД трёх чисел 6 Задача: ввести три числа и найти наибольший общий делитель (НОД). Используйте формулу НОД(a,b,c) = НОД(НОД(a,b), c) Нужно два раза применить один и тот же алгоритм вычисления НОД двух чисел. ! Решение: построить вспомогательный алгоритм для вычисления НОД двух чисел и применить (вызвать) его два раза.

Программирование на алгоритмическом языке. Часть 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) кон основной алгоритм вспомогательный алгоритм ???

Программирование на алгоритмическом языке. Часть II К. Поляков, Блок-схема алгоритма Евклида 8 a = b? да нет a > b? да a:=a-b нет b:=b-a начало конец

Программирование на алгоритмическом языке. Часть 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 | результат функции кон

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

Программирование на алгоритмическом языке. Часть II К. Поляков, Задания «3 » : Составить функцию, которая определяет НАИМЕНЬШЕЕ из трёх чисел и привести пример ее использования. Пример: Введите три числа: Наименьшее число 10. «4» : Составить функцию, которая вычисляет НАИМЕНЬШЕЕ из четырёх чисел и привести пример ее использования. Пример: Введите четыре числа: Наименьшее число 5.

Программирование на алгоритмическом языке. Часть II К. Поляков, Задания «5» : Составить функцию, которая определяет сумму всех чисел от 1 до N и привести пример ее использования. Пример: Введите число: 100 Сумма чисел от 1 до 100 = 5050

Программирование на алгоритмическом языке. Часть II К. Поляков, Логические функции 13 Задача: составить функцию, которая определяет, верно ли, что заданное число – четное. Особенности: ответ – логическое значение ( да или нет ) результат функции можно использовать как логическую величину в условиях ( если, пока ) Алгоритм: если число делится на 2, оно четное. если mod(N,2)= 0 то | число N четное иначе | число N нечетное все если mod(N,2)= 0 то | число N четное иначе | число N нечетное все

Программирование на алгоритмическом языке. Часть II К. Поляков, Логические функции 14 алг лог Четное(цел N) нач если mod(N,2) = 0 то знач:= да иначе знач:= нет все кон алг лог Четное(цел N) нач если mod(N,2) = 0 то знач:= да иначе знач:= нет все кон логическое значение ( да или нет )

Программирование на алгоритмическом языке. Часть II К. Поляков, Логические функции 15 алг Проверка четности нач цел x вывод "Введите целое число: " ввод x если Четное(x) то вывод "Число четное." иначе вывод "Число нечетное." все кон алг Проверка четности нач цел x вывод "Введите целое число: " ввод x если Четное(x) то вывод "Число четное." иначе вывод "Число нечетное." все кон алг лог Четное(цел N) нач... кон

Программирование на алгоритмическом языке. Часть II К. Поляков, Задания 16 «3»: Составить функцию, которая определяет, верно ли, что число оканчивается на 0. Пример: Введите число:Введите число: Верно.Неверно. «4»: Составить функцию, которая определяет, верно ли, что в числе вторая цифра с конца больше 6. Пример: Введите число:Введите число: Верно.Неверно.

Программирование на алгоритмическом языке. Часть II К. Поляков, Задания 17 «5»: Составить функцию, которая определяет, верно ли, что переданное ей число – простое (делится только на само себя и на единицу). Пример: Введите число:Введите число: 2928 Простое число.Составное число.

К. Поляков, Программирование на алгоритмическом языке. Часть II Тема 8. Построение графиков функций

Программирование на алгоритмическом языке. Часть II К. Поляков, Построение графиков функций 19 Задача: построить график функции y = x 2 на интервале от -2 до 2. Анализ: максимальное значение y max = 4 при x = ±2 минимальное значение y min = 0 при x = 0 Проблема: функция задана в математической системе координат, строить надо на экране, указывая координаты в пикселях. X Y

Программирование на алгоритмическом языке. Часть 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

Программирование на алгоритмическом языке. Часть 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

Программирование на алгоритмическом языке. Часть II К. Поляков, Как соединить точки? 22 Алгоритм: Если первая точка перейти в точку (x э,y э ) иначе линия в точку (x э,y э ) Если первая точка перейти в точку (x э,y э ) иначе линия в точку (x э,y э ) Программа: начальное значение выбор варианта действий логическая переменная лог первая... первая:= да нц пока x

Программирование на алгоритмическом языке. Часть II К. Поляков, Задания 23 «3»: Построить график функции на интервале [-2,2]. «4»: Построить графики функций и на интервале [-2,2].

Программирование на алгоритмическом языке. Часть II К. Поляков, Задания 24 «5»: Построить графики функций и на интервале [-2,2]. Соединить точки линиями.