Лекция 3_КуМир.pptx
- Количество слайдов: 49
Система программирования Ку. Мир
Вспомним: 1. Что такое алгоритм? 2. Что такое программа? 3. Что такое система программирования?
Алгоритмический язык Ку. Мир
• Основная структурная единица языка Ку. Мир — алгоритм. • Программа на языке Ку. Мир состоит из одного или нескольких алгоритмов, следующих один за другим. • Перед первым алгоритмом может располагаться вступление — любая последовательность команд. • Например, это могут быть строки с комментариями, указанием подключить исполнителя и пр.
Вступление алг первый алгоритм нач | кон алг второй алгоритм нач | кон. . . Выполнение такойалгоритм состоит в алг последний программы выполнении вступления, а затем первого нач алгоритма (он называется основным алгоритмом | программы). Остальные алгоритмы будут кон выполняться при вызове из первого алгоритма.
Алгоритм на языке Ку. Мир записывается так: алг имя_алгоритма (описание_параметров) дано условие_применимости_алгоритма надо цель_выполнения_алгоритма нач ・ последовательность команд кон
Любой язык программирования содержит следующие компоненты: 1) алфавит – множество символов, из которых можно создавать слова и предложения этого языка 2) словарь – набор специальных (зарезервированных, ключевых) слов 3) синтаксис – правила составления и записи языковых конструкций (несловарных слов и предложений) 4) семантику – установленное однозначное толкование языковых конструкций, правил их исполнения.
1. Алфавит: ∙ буквы (кириллические и латинские, прописные и строчные) ∙ цифры ∙ два специальных знака: @ _ 2. Словарь: алг нач кон исп кон_исп дано надо арг рез аргрез знач цел вещ лог сим лит таб целтаб вещтаб логтаб симтаб литтаб и или не да нет утв выход ввод вывод нс если то иначе все выбор при нц кц кц_при раз пока для от до шаг
Имена Имя – это последовательность слов, разделенных пробелами. Имя бывает у величин, таблиц, алгоритмов и исполнителей. Первое слово имени не должно начинаться с цифры. Ни одно из слов не должно быть ключевым словом. Примеры имен: m, погода на завтра, Ноябрь 7, Седьмое ноября, дом_57 б. Примеры неправильных имен: ∙ 7 е ноября (первое слово начинается с цифры) ∙ альфа-бета (”-” — недопустимый символ) ∙ альфа или омега (или — ключевое слово)
Величины Все величины в алгоритмическом языке делятся на константы и переменные. Константы Целые: 4, -2, 2478, 0 Вещественные: 1. 23, -0. 56, 1 e+4, 5 E-7 Литерные: “asdf”, “Сумма=” Логические: да, нет
Переменные Каждая переменная имеет имя, тип, вид и значение. Имя переменной служит для обозначения ее в алгоритме. Тип переменной показывает, какие значения может она принимать, и какие операции можно с ней выполнять. Вид величины показывает ее информационную роль в алгоритме. Это могут быть аргументы, результаты или промежуточные величины.
алг Сумма (арг цел а, в, рез цел с) нач с: =а+в кон Программа алг Большее из двух чисел нач цел а, в, с ввод а, в если а>в Программа то с: =а иначе с: =в все вывод “Большее из двух чисел равно “, с кон
Команды алгоритмического языка Команда присваивания общий вид <ВЕЛИЧИНА> : = <ВЫРАЖЕНИЕ> Примеры: • n : = 0 • m : = n • m : = m+1 • c : = (x+y)/2 • площадь: =a*b*sin(C)/2 • d: =b**2 -4*a*c
Команда ветвления Общий вид команды: если условие · то серия 1 · иначе серия 2 все Сокращенная форма: если условие то серия 1 все
Команды цикла Общий вид цикла N раз: нц N раз · тело_цикла кц Программа Общий вид цикла Пока нц пока условие · тело_цикла кц Общий вид цикла Для с шагом: нц для i от i 1 до i 2 шаг i 3 · тело_цикла кц
Алгоритмы в системе Ку. Мир Вычислительные алгоритмы Алгоритмы управления исполнителями
Исполнитель Робот Система команд исполнителя Робот включает: • 5 команд, вызывающих действия Робота (влево, вправо, вверх, вниз, закрасить) • 10 команд проверки условий: – 8 команд вида [слева/справа/снизу/сверху] [стена/свободно] – 2 команды вида клетка [закрашена/чистая] • 2 команды измерения (температура, радиация)
Исполнитель Робот Среда исполнителя Робот стена Робот 18 База эту клетку надо закрасить Задача для Робота: закрасить все отмеченные клетки и придти на Базу. К. Поляков, 2012 http: //kpolyakov. narod. ru
Исполнитель Робот Система команд вверх вправо вниз влево Esc + закрасить Esc + пробел К. Поляков, 2012 19 использовать Робот алг Команды нач вверх влево закрасить вправо вверх влево закрасить вправо кон http: //kpolyakov. narod. ru
Исполнитель Робот Циклы вправо закрасить вправо закрасить К. Поляков, 2012 20 использовать Робот алг Ряд Esc + Р нач нц 6 раз вправо закрасить кц вправо кон http: //kpolyakov. narod. ru
Исполнитель Робот Циклы 21 использовать Робот алг Ряд нач влево вверх нц 4 раз вверх вправо вниз закрасить вверх вправо вниз кц вверх кон К. Поляков, 2012 http: //kpolyakov. narod. ru
Исполнитель Робот Циклы 22 использовать Робот алг Ряд нач влево вверх нц 4 раз вправо вниз закрасить вверх вправо кц кон Вариант Л. Шеменковой К. Поляков, 2012 http: //kpolyakov. narod. ru
Исполнитель Робот 23 Вложенные циклы использовать Робот алг Прямоугольник нач нц 6 раз вправо закрасить кц вниз нц 6 раз влево кц кон повторить 5 раз ? К. Поляков, 2012 Где остановится? http: //kpolyakov. narod. ru
Исполнитель Робот Вложенные циклы ! 24 использовать Робот алг Прямоугольник нач нц 5 раз нц 6 раз вправо закрасить кц вниз нц 6 раз влево кц Вложенный цикл – кц это цикл внутри нц 7 раз вправо кц другого цикла. нц 5 раз вверх кц кон К. Поляков, 2012 http: //kpolyakov. narod. ru
Исполнитель Робот Циклы с условием ! 25 использовать Робот алг На Базу Esc + П нач нц пока сверху свободно вверх кц нц пока сверху стена вправо кц вверх кон Расстояния и длины стенок неизвестны! К. Поляков, 2012 http: //kpolyakov. narod. ru
Исполнитель Робот Циклы с условием 26 использовать Робот алг На Базу нач нц пока сверху свободно вверх закрасить кц нц пока сверху стена вправо кц вверх кон К. Поляков, 2012 http: //kpolyakov. narod. ru
Исполнитель Робот Вспомогательные алгоритмы ! К. Поляков, 2012 27 Вложенный цикл использовать сложно, хотя есть одинаковые ряды! http: //kpolyakov. narod. ru
Исполнитель Робот Вспомогательные алгоритмы вспомогательный алгоритм К. Поляков, 2012 28 использовать Робот алг На Базу использовать Робот нач алг На Базу вправо нач 5 раз нц вправо Ряд закрасить кон кц кон алг Ряд нач нц 5 раз вправо закрасить кц кон http: //kpolyakov. narod. ru
Исполнитель Робот Вспомогательные алгоритмы алг Ряд нач нц 5 раз вправо закрасить кц кон К. Поляков, 2012 29 использовать Робот алг На Базу нач вправо Ряд вниз; вниз нц 4 раз влево кц Ряд вниз; вниз нц 7 раз влево кц Ряд вниз; вниз нц 3 раз влево кц Ряд кон http: //kpolyakov. narod. ru
Исполнитель Робот Ветвления ! К. Поляков, 2012 30 Расстояния и количество проходов неизвестны! http: //kpolyakov. narod. ru
Исполнитель Робот Ветвления 31 использовать Робот алг На Базу нач нц пока справа свободно вправо кцесли сверху свободно внизто то вверх кон вверх Esc + Е закрасить вниз все кц вниз кон К. Поляков, 2012 http: //kpolyakov. narod. ru
Исполнитель Робот Ветвления ! Что плохо? К. Поляков, 2012 32 использовать Робот алг На Базу нач закрасить нц пока справа свободно вправо если сверху свободно то вверх закрасить вниз иначе закрасить все кц вниз кон http: //kpolyakov. narod. ru
Исполнитель Робот Сложные условия ! ! К. Поляков, 2012 33 Проход на Базу там, где сверху свободно и снизу свободно! Нужно идти вправо, пока сверху стена или снизу стена! http: //kpolyakov. narod. ru
Исполнитель Робот 34 Сложные условия использовать Робот алг На Базу Что плохо? нач вправо нц пока сверху стена или снизу стена вправо кц вверх кон ! К. Поляков, 2012 http: //kpolyakov. narod. ru
Исполнитель Робот Сложные условия 35 использовать Робот алг На Базу нач вправо нц пока сверху стена или снизу стена закрасить вправо кц вверх кон К. Поляков, 2012 http: //kpolyakov. narod. ru
Исполнитель Робот Сложные условия 36 использовать Робот алг На Базу нач вправо нц пока сверху стена или снизу стена если сверху стена то закрасить все вправо кц вверх кон К. Поляков, 2012 http: //kpolyakov. narod. ru
Исполнитель Робот 37 Переменные ! Расстояние до края стены неизвестно, База расположена с другой стороны стены на таком же расстоянии! ? К. Поляков, 2012 Как поступит человек? http: //kpolyakov. narod. ru
Исполнитель Робот Как хранить данные? 38 ячейка памяти Оперативная память 12 112 23 переменная целого типа 5 62 77 нач цел N N: = 25 N: = N + 1 кон 25 ? 26 812 32 65 321 132 новое значение переменной увеличить на 1 Переменная – это величина, имеющая имя, тип и значение. Значение переменной может изменяться во время работы программы. К. Поляков, 2012 http: //kpolyakov. narod. ru
Исполнитель Робот Переменные 39 использовать Робот алг Обход нач цел N N: = 0 нц пока сверху стена влево N: = N + 1 кц вверх нц N раз вправо кц кон К. Поляков, 2012 http: //kpolyakov. narod. ru
Исполнитель Робот Алгоритмы с результатом 40 Задача. Измерить неизвестную длину стенки и вывести результат на экран, используя команду вывод. использовать Робот алг Измерение вспомогательный нач алгоритм цел д д: = Длина стенки вывод "Длина стенки ", д кон ! К. Поляков, 2012 Вспомогательный алгоритм возвращает результат – число! http: //kpolyakov. narod. ru
Исполнитель Робот Алгоритмы с результатом результат алгоритма – целое число результат алгоритма – значение N К. Поляков, 2012 41 алг цел Длина стенки нач нц пока справа свободно вправо кц нц пока справа стена вниз кц вверх цел N = 0 нц пока справа стена вверх N: =N+1 кц вправо знач: = N кон http: //kpolyakov. narod. ru
Исполнитель Робот Цикл с переменной 42 Задача: использовать двойной цикл. ? К. Поляков, 2012 В чем сложность? http: //kpolyakov. narod. ru
Исполнитель Робот 43 Цикл с переменной использовать Робот алг Квадрат длина ряда нач нц 6 раз вправо закрасить кц длина ряда вниз нц 6 раз влево кц кц Нужно менять кон ! К. Поляков, 2012 длину ряда! http: //kpolyakov. narod. ru
Исполнитель Робот Цикл с переменной 44 использовать Робот алг Треугольник начальное цел N = 1 значение нц 6 раз нц N раз длина ряда вправо закрасить кц длина ряда вниз нц N раз влево кц N: = N + 1 увеличить кц длину кон К. Поляков, 2012 http: //kpolyakov. narod. ru
Исполнитель Робот Цикл с переменной ! Вся работа с переменной в одной строке! К. Поляков, 2012 45 использовать Робот алг Треугольник нач цел N нц для N от 1 до 6 нц N раз вправо закрасить кц вниз нц N раз влево кц кц кон http: //kpolyakov. narod. ru
Исполнитель Робот Цикл с переменной 46 использовать Робот алг Треугольник нач цел N нц для N от 6 до 1 шаг -1 нц N раз вправо закрасить кц вниз нц N раз влево кц кц кон К. Поляков, 2012 http: //kpolyakov. narod. ru
Исполнитель Робот Алгоритмы с параметрами 47 Задача: использовать вспомогательный алгоритм Ряд, при вызове которого можно указать длину ряда: Ряд(6) К. Поляков, 2012 http: //kpolyakov. narod. ru
Исполнитель Робот Алгоритмы с параметрами 48 параметр алгоритма алг Ряд (цел N) нач нц N раз 5 вправо закрасить кц кон Параметры – это дополнительные данные для работы вспомогательного алгоритма. К. Поляков, 2012 http: //kpolyakov. narod. ru
Исполнитель Робот 49 Алгоритмы с параметрами использовать Робот алг С параметрами нач Ряд(6) вниз; вниз нц 5 раз влево кц Ряд(4) вниз; вниз нц 4 раз влево кц Ряд(5) вниз; вниз нц 3 раз влево кц Ряд(3) вправо кон К. Поляков, 2012 http: //kpolyakov. narod. ru


