Начала программирования Занятие 18. Пошаговая детализация алгоритма. Подпрограммы-функции.
Задача Задача: использовать вспомогательный алгоритм Ряд, при вызове которого можно указать длину ряда: Ряд(6)
Алгоритмы с параметрами 3 алг Ряд (цел N) нач нц 5 раз вправо закрасить кц кон алг Ряд (цел N) нач нц 5 раз вправо закрасить кц кон N параметр алгоритма Параметры – это дополнительные данные для работы вспомогательного алгоритма.
Алгоритмы с параметрами 4 использовать Робот алг С параметрами нач Ряд(6) вниз; вниз нц 5 раз влево кц Ряд(4) вниз; вниз нц 4 раз влево кц Ряд(5) вниз; вниз нц 3 раз влево кц Ряд(3) вправо кон использовать Робот алг С параметрами нач Ряд(6) вниз; вниз нц 5 раз влево кц Ряд(4) вниз; вниз нц 4 раз влево кц Ряд(5) вниз; вниз нц 3 раз влево кц Ряд(3) вправо кон
5 Вложенные циклы использовать Робот алг Прямоугольник нач нц 6 раз вправо закрасить кц вниз нц 6 раз влево кц кон использовать Робот алг Прямоугольник нач нц 6 раз вправо закрасить кц вниз нц 6 раз влево кц кон нц 6 раз вправо закрасить кц вниз нц 6 раз влево кц повторить 5 раз Где остановится? ?
Вложенные циклы 6 использовать Робот алг Прямоугольник нач нц 5 раз нц 6 раз вправо закрасить кц вниз нц 6 раз влево кц кц нц 7 раз вправо кц нц 5 раз вверх кц кон использовать Робот алг Прямоугольник нач нц 5 раз нц 6 раз вправо закрасить кц вниз нц 6 раз влево кц кц нц 7 раз вправо кц нц 5 раз вверх кц кон нц 6 раз вправо закрасить кц вниз нц 6 раз влево кц Вложенный цикл – это цикл внутри другого цикла. !
Цикл с переменной 7 Задача: использовать двойной цикл. В чем сложность? ?
Алгоритмы с результатом 8 Задача. Измерить неизвестную длину стенки и вывести результат на экран, используя команду вывод. использовать Робот алг Измерение нач цел д д:= Длина стенки вывод "Длина стенки ", д кон использовать Робот алг Измерение нач цел д д:= Длина стенки вывод "Длина стенки ", д кон вспомогательный алгоритм Вспомогательный алгоритм возвращает результат – число! !
Алгоритмы с результатом 9 алг цел Длина стенки нач нц пока справа свободно вправо кц нц пока справа стена вниз кц вверх цел N = 0 нц пока справа стена вверх N:=N+1 кц вправо знач:= N кон алг цел Длина стенки нач нц пока справа свободно вправо кц нц пока справа стена вниз кц вверх цел N = 0 нц пока справа стена вверх N:=N+1 кц вправо знач:= N кон знач:= N цел результат алгоритма – целое число результат алгоритма – значение N
Задание Написать функцию определения расстояния до стенки.
Максимум из трех 11 начало конец a > b? да x:= a нет x:= b c > x? да x:= c a a b b x x x x c c Где ответ? ? нет
Максимум из трех 12 алг цел Макс3(цел a, b, c) нач цел x если a > b то x:= a иначе x:= b все если c > x то x:= c все знач := x кон знач цел x цел результат – целое число внутренняя (локальная) переменная результат (значение) функции
Максимум из трех 13 алг Максимум нач цел 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) нач... кон вызов функции имена параметров могут быть любые!
Максимум из пяти 14 Как с помощью этой функции найти максимум из пяти чисел? ? алг Максимум нач цел 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) нач... кон ???
Использованы материалы презентаций Полякова Константина Юрьевича, учителя информатики высшей категории, ГОУ СОШ 163, г. Санкт- Петербург