Вложенное описание алгоритма кумир ошибка

Учебно-методическое пособие «Исполнитель Робот в программе КуМир »
учебно-методическое пособие (информатика и икт) по теме

Григорьева Юлия Александровна

Знакомство с программой Кумир осваение азов программирования.

В ней учащиеся могут получить практические навыки при создании и отладке алгоритма, работая с такими исполнителями, как Робот, Чертёжник, Водолей, Кузнечик,Черепашка.

При изучении одного из наиболее трудных разделов информатики «алгоритмизация и программирование».

Цель разработки: изучить возможности программирования на примере конкретного исполнителя Робот с использованием среды КУМИР; дать практические навыки работы с исполнителем.

Скачать:

Вложение Размер
metod_razrabotka_robot1.doc 642.5 КБ
Презентация с заданиями и решениями 2.09 МБ

Предварительный просмотр:

Методическая разработка по информатике.

Тема: «Исполнитель Робот в программе КуМир на уроках информатики »

Автор: Григорьева Ю.А.,

учитель технологии «Информатика и ИКТ»

Цель разработки : изучить возможности программирования на примере конкретного исполнителя Робот с использованием среды КУМИР; дать практические навыки работы с исполнителем.

Методическая разработка составлена для проведения уроков информатики Практика на компьютере : работа с учебным исполнителем алгоритмов; составление линейных, ветвящихся и циклических алгоритмов управления исполнителем; составление алгоритмов со сложной структурой; использование вспомогательных алгоритмов (процедур, подпрограмм).

Учащиеся должны знать:

  • что такое исполнитель; СКИ Робота, среду исполнителя Робот;
  • что такое алгоритм ; в чем состоят основные свойства алгоритма;
  • способы записи алгоритмов: блок-схемы, учебный алгоритмический язык; основные алгоритмические конструкции: следование, ветвление, цикл; структуры
  • алгоритмов; ⇒ назначение вспомогательных алгоритмов; технологии построения сложных алгоритмов:

Учащиеся должны уметь:

  • понимать описания алгоритмов на учебном алгоритмическом языке;
  • выполнить трассировку алгоритма для известного исполнителя;
  • составлять линейные, ветвящиеся и циклические алгоритмы управления исполнителя Робот; выделять подзадачи; определять и использовать вспомогательные алгоритмы.

Занятие 1 (2 часа) Урок 1.

Исполнитель Робот. Система команд исполнителя.

  1. Описание СКИ исполнителя, среды исполнителя.

2.Разбор типичных алгоритмов Робота.

Рассмотрим описание исполнителя.

Среда исполнителя : Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки.

СКИ Робота : простые команды: вверх, вниз, влево, вправо, закрасить.

Команды логические: (проверки условия)

сверху свободно снизу свободно

слева свободно справа свободно.

Логические связки: И,НЕ, ИЛИ:

Пример:(Не слева свободно) или (не справа свободно)

Команда ветвления : команда цикла:

если условие то нц пока условие

серия команд серия команд

(В КИМах 2009 года команды Робота отличались от привычных детям, что приводило к путанице : )

Команда ветвления : команда цикла:

если условие то нц пока условие делать

серия команд серия команд

Общий вид окна программы Кумир. Графическая среда Робота:

В КИМах демонстрационного варианта 2010 года формат команд изменен на привычный

Порядок создания алгоритма:

1.Командами Инструменты -Редактировать стартовую обстановку нарисовать на поле Робота стены и установить Робота в начальное положение.

2.Командами Робот- Сменить стартовую обстановку сохранить новую обстановку.

3.Командами Вставка- Использовать Робот указать исполнителя.

4.В окне документа записать алгоритм, используя меню Вставка.

5.Командами Выполнение –выполнить непрерывно (или по шагам) запустить алгоритм.

6.Рассмотреть результат выполнения алгоритма и при необходимости произвести его отладку.

Занятие 1 (2 часа) Урок 2.

Практическая работа « Составление линейных алгоритмов».

Задания: 1.Робот в произвольной точке поля. Закрасить клетку сверху, снизу и справа от исходного положения.

  1. Робот в произвольной точке поля. Передвинуть Робот на 4 клетки вправо, закрасив их.
  2. Создайте новую стартовую обстановку, нарисовав на поле квадрат со стороной 4 клетки. Сохраните обстановку как стартовую.
  3. Создайте новую стартовую обстановку, нарисовав на поле коридор с проходами в стенах. Сохраните обстановку как obst2.fil. Смените стартовую обстановку на вновь созданную.

Занятие 2 (2 часа) Урок 1.

Тема : Ветвление и последовательная детализация алгоритма.

Разбор задач КИМов с использованием исполнителя Робот.

если не снизу свободно

если не снизу свободно

если не снизу свободно

если не снизу свободно

если не снизу свободно

если не снизу свободно

Пр. раб. №14. Составление и отладка алгоритмов ветвления

Задания. См. Приложение.

Занятие 3. Циклические алгоритмы. Урок 1-2

Цель: раскрыть сущность понятия цикла в алгоритмах, показать формы записи циклов алгоритмах, дать навыки создания и записи циклических алгоритмов.

Пр. раб. №15. Составление и отладка циклических алгоритмов

1.Составьте алгоритм, закрашивающий все внутренние клетки, прилегающие к стене.

нц пока справа свободно

нц пока снизу свободно

нц пока не снизу свободно

2.Составить алгоритм, закрашивающий все клетки между Роботом и стеной. Расстояние до стены неизвестно.

нц пока справа свободно

3.Составить алгоритм, закрашивающий все клетки, находящиеся между двумя стенами.

нц пока (не сверху свободно) или (не снизу свободно)

если (не сверху свободно) и (не снизу свободно)

4.Составить алгоритм, закрашивающий все клетки вокруг прямоугольной стены.

нц пока не справа свободно

нц пока не снизу свободно

нц пока не слева свободно

нц пока не сверху свободно

нц пока не снизу свободно

нц пока слева свободно

нц пока не слева свободно

нц пока сверху свободно

нц пока не сверху свободно

Занятие 4 Урок 1

Цель: ввести понятие основного и вспомогательного алгоритма; объяснить правила использования вспомогательного алгоритма; разобрать примеры алгоритмов с использованием вспомогательного.

1.Ввод новых терминов (основного и вспомогательного алгоритма, вызова) и объяснение новых понятий.

2.Разбор примеров решения задач с применением вспомогательного алгоритма.

При решении некоторых задач удобно разбить их на более мелкие подзадачи, каждую из которых можно оформит как самостоятельный алгоритм. В этом случае сначала составляется так называемый основной алгоритм, в котором для решения подзадач используются вызовы вспомогательных алгоритмов, которые дописываются позднее. Такой способ решения называется методом последовательного уточнения. Он позволяет работать над проектом группе программистов, каждый при этом решает свою подзадачу.

В процессе решения задачи каждый вспомогательный алгоритм может при необходимости быть разбит на более мелкие вспомогательные алгоритмы.

Команда выполнения вспомогательного алгоритма называется вызовом и записывается в теле основного алгоритма.

Один и тот же алгоритм может рассматриваться как основной и вспомогательный по отношению к другим алгоритмам. В алгоритмическом языке сначала записывается основной алгоритм, ниже подряд записываются вспомогательные.

Робот находится в верхнем левом углу поля. Стен и закрашенных клеток нет. Составить алгоритм, с использованием вспомогательного, рисующий четыре крестика на одной горизонтали. Конечное положение Робота может быть произвольным.

Разбор на доске:

Задача2. Робот находится в верхнем левом углу поля. Стен и закрашенных клеток нет. Составьте алгоритм, который закрашивает в шахматном порядке квадрат 8 х 8. Конечное положение Робота может быть произвольным.

Занятие 4 Урок 2

Практическая работа на ПК «Решение задачи с использованием вспомогательных алгоритмов» .

Цель : привить практические навыки построения алгоритмов методом последовательного уточнения.

1.Задание полностью проходит за ПК. Учащиеся получают задания и выполняют их в программной среде Кумир. Результаты Работы сохраняются в виде файлов для последующей проверки.

Задача1 . Робот находится в нижнем левом углу поля. Стен и закрашенных клеток нет. Составьте алгоритм, который закрашивает 6 вертикальных полос одинаковой длины в 6 клеток. Конечное положение Робота может быть произвольным.

Задача2 .Используя вспомогательные, составьте алгоритм для закрашивания клеток, образующих число 1212.

Домашнее задание : Придумайте алгоритм, рисующий следующее изображение: Для решения задачи примените два вспомогательных алгоритма.

Занятие 5 Урок 1-2

«Составление алгоритма в среде исполнителя Робот».

Цель: проверить полученные знания по созданию и умению анализировать алгоритмы в программной среде Кумир.

Задания для контрольной работы делятся по уровням сложности и включает в себя 3 задачи с исполнителем Робот (1 и 2 задача –на ветвление и циклы, 3 задача с- на использование вспомогательного алгоритма.) Тексты заданий приводятся в приложении.

Исходные и конечные обстановки и созданные алгоритмы записываются в виде файла.

Оценка выставляется соответственно уровню сложности задания. Ученик вправе сам выбрать тип задания.

Основные понятия и команды в программе КУМИР

Программа на языке КуМир в простейшем случае состоит из нескольких алгоритмов, следующих один за другим.

Алгоритмы в программе должны располагаться вплотную друг к другу, между ними могут быть только пустые строки и строки с комментариями.

Разработчики языка «КуМир» преследовали цель создать простой язык для начального курса информатики, отвечающий современной технологии программирования и допускающий производственное использование. За основу был взят школьный алгоритмический язык.

В разных языках программирования такие единицы называются по-разному, в КуМире такая единица называется «Исполнитель».

Переменная – именованная область памяти, используемая для хранения значения, которое можно изменить при выполнении программы. Константа – именованная область памяти, используемая для хранения фиксированного значения, которое невозможно изменить при выполнении программы.

Переменная – именованная область памяти, используемая для хранения значения, которое можно изменить при выполнении программы.

Константа – именованная область памяти, используемая для хранения фиксированного значения, которое невозможно изменить при выполнении программы.

ОБЩИЙ ВИД ОПИСАНИЯ АЛГОРИТМА алг имя_алгоритма тип_алгоритма дано условие_применимости алгоритма надо цель_выполнения_алгоритма нач последовательность команд кон Описание алгоритма состоит из: Заголовка (часть до служебного слова нач ) Тела алгоритма (часть словами нач и кон )

ОБЩИЙ ВИД ОПИСАНИЯ АЛГОРИТМА

алг имя_алгоритма тип_алгоритма

  • даноусловие_применимости алгоритма
  • надоцель_выполнения_алгоритма

последовательность команд

Описание алгоритма состоит из:

Заголовка (часть до служебного слова нач )

Тела алгоритма (часть словами нач и кон )

Блок-схема алгоритма алг имя_алгоритма нач тело алгоритма кон НАЧАЛО ТЕЛО АЛГОРИТМА КОНЕЦ

алг имя_алгоритма

тело алгоритма

ТИПЫ ВЕЛИЧИН ИСПОЛЬЗУЕМЫХ В ПРОГРАММЕ Типы величин Как пишутся в программе Целые Пример описания цел Вещественные 1 2 3 4 и т.д. вещ Литерные 0,5 2,3 1,345 лит а б в г В записи имен переменных могут быть использованы любые символы русского и латинского алфавита, а так же цифры. Имя не должно начинаться с цифры. На длину имен в системе КуМир строгих ограничений не накладывается, но для удобства редактирования и во избежание переполнения строк переменным и алгоритмам не стоит давать слишком длинные имена. Обычно имя подбирается так, чтобы можно было понять, для чего предназначен алгоритм. При редактировании программ также следует помнить о том, что русские и латинские буквы, сходные по написанию, различаются ЭВМ. Например, если при описании переменной с именем А пользователь набрал

ТИПЫ ВЕЛИЧИН ИСПОЛЬЗУЕМЫХ В ПРОГРАММЕ

Типы величин

Как пишутся в программе

Пример описания

Вещественные

1 2 3 4 и т.д.

В записи имен переменных могут быть использованы любые символы русского и латинского алфавита, а так же цифры. Имя не должно начинаться с цифры. На длину имен в системе КуМир строгих ограничений не накладывается, но для удобства редактирования и во избежание переполнения строк переменным и алгоритмам не стоит давать слишком длинные имена. Обычно имя подбирается так, чтобы можно было понять, для чего предназначен алгоритм. При редактировании программ также следует помнить о том, что русские и латинские буквы, сходные по написанию, различаются ЭВМ. Например, если при описании переменной с именем А пользователь набрал «А» на латинском алфавите, а в тексте алгоритма пытается обратиться к этой переменной, набирая ее имя на русском алфавите, то в данной строке на «полях» появится сообщение «имя не определено».

Арифметические операции и стандартные функции для работы с числами Название операции Как пишутся в программе Сложение а+б Вычитание а-б Умножение а*б Деление а/б Возведение в степень а**б Присваивание а:=б

Арифметические операции и стандартные функции для работы с числами

Название операции

Как пишутся в программе

Возведение в степень

Присваивание

б Меньше или равно a Больше или равно a=б » width=»640″

ОПЕРАЦИИ СРАВНЕНИЯ ЧИСЕЛ

Название операции

Как пишутся в программе

Меньше или равно

Больше или равно

ВСТРОЕННЫЕ ФУНКЦИИ Обращение Функция Типы SIN (X) COS (X) TG (X) EXP (X) LN (X) ABS (X) SQRT (X) MOD (A, B) INT (X) ПИ Аргумента синус х косинус х тангенс х экспонента х (е х ) натур. логарифм х модуль х корень квадратный х остаток от деления (А на В) целая часть числа число

ВСТРОЕННЫЕ ФУНКЦИИ

SIN (X) COS (X) TG (X) EXP (X) LN (X) ABS (X) SQRT (X) MOD (A, B) INT (X) ПИ

синус х косинус х тангенс х экспонента х (е х ) натур. логарифм х модуль х корень квадратный х остаток от деления (А на В) целая часть числа число «пи» — 3,14159

вещ вещ вещ вещ вещ вещ вещ вещ, цел вещ вещ

вещ вещ вещ вещ вещ вещ вещ цел цел без аргум

КОМАНДЫ АЛГОРИТМИЧЕСКОГО ЯЗЫКА Вначале алгоритма объявляются перемен-ные и константы , которым будут присваи-ваться значения необходимые для расчетов вещ а, р Сколько величин участвует в работе программы - столько и должно быть объявлено их вначале.

КОМАНДЫ АЛГОРИТМИЧЕСКОГО ЯЗЫКА

Вначале алгоритма объявляются перемен-ные и константы , которым будут присваи-ваться значения необходимые для расчетов

вещ а, р

Сколько величин участвует в работе программы — столько и должно быть объявлено их вначале.

КОМАНДЫ АЛГОРИТМИЧЕСКОГО ЯЗЫКА Например команда: Вывод “введите сторону квадрата” в процессе работы программы будет отображаться в нижнем окне: ВЫВОД диалога

КОМАНДЫ АЛГОРИТМИЧЕСКОГО ЯЗЫКА

Например команда:

Вывод “введите сторону квадрата”

в процессе работы программы будет отображаться в нижнем окне:

ВЫВОД диалога

КОМАНДЫ АЛГОРИТМИЧЕСКОГО ЯЗЫКА Например команда: ввод а после нажатия клавиши Enter будет отображена в правом окне, ВВОД данных то есть в буфере обмена (в памяти) программы.

КОМАНДЫ АЛГОРИТМИЧЕСКОГО ЯЗЫКА

Например команда:

после нажатия клавиши Enter будет отображена в правом окне,

ВВОД данных

то есть в буфере обмена (в памяти) программы.

КОМАНДЫ АЛГОРИТМИЧЕСКОГО ЯЗЫКА Например команда: р:=а*4 это ПРОЦЕСС, читается так: значению р присваивается переменная а умноженная на число 4 Выполнение операций

КОМАНДЫ АЛГОРИТМИЧЕСКОГО ЯЗЫКА

Например команда:

это ПРОЦЕСС, читается так: значению р присваивается переменная а умноженная на число 4

Выполнение операций

КОМАНДЫ АЛГОРИТМИЧЕСКОГО ЯЗЫКА Например команда: вывод “периметр =” , р в процессе работы программы будет отображаться в нижнем окне, ВЫВОД данных то есть будет выводиться результат работы программы.

КОМАНДЫ АЛГОРИТМИЧЕСКОГО ЯЗЫКА

Например команда:

вывод “периметр =” , р

в процессе работы программы будет отображаться в нижнем окне,

ВЫВОД данных

то есть будет выводиться результат работы программы.

КОМАНДЫ АЛГОРИТМИЧЕСКОГО ЯЗЫКА ВЕТВЛЕНИЕ если условие то серия 1 иначе серия 2 все если условие то серия 1 все ЦИКЛИЧЕСКИЕ нц число повторений раз тело цикла кц Ветвление бывает полное и неполное. Цикл с предусловием (цикл пока) - цикл, выполнение которого повторяется, пока истинно условие цикла. Служебные слова НЦ (начало цикла) и КЦ (конец цикла)пишутся строго одно под другим и соединяются вертикальной чертой. Правее этой черты записывается повторяемая последовательность команд (тело цикла). Цикл с параметром (цикл для) - повторное выполнение тела цикла, пока целочисленный параметр пробегает множество всех значений от начального ( i1 ) до конечного ( in ): нц пока условие тело цикла кц

КОМАНДЫ АЛГОРИТМИЧЕСКОГО ЯЗЫКА

если условие

  • тосерия 1
  • иначесерия 2

если условие

  • тосерия 1

нц число повторений раз

  • тело цикла

Ветвление бывает полное и неполное.

Цикл с предусловием (цикл пока) — цикл, выполнение которого повторяется, пока истинно условие цикла. Служебные слова НЦ (начало цикла) и КЦ (конец цикла)пишутся строго одно под другим и соединяются вертикальной чертой. Правее этой черты записывается повторяемая последовательность команд (тело цикла).

Цикл с параметром (цикл для) — повторное выполнение тела цикла, пока целочисленный параметр пробегает множество всех значений от начального ( i1 ) до конечного ( in ):

нц пока условие

  • тело цикла

КОМАНДЫ АЛГОРИТМИЧЕСКОГО ЯЗЫКА нс, Служебное слово ( новая строка ) указывает ЭВМ, что информация должна выводиться на новую строку.

КОМАНДЫ АЛГОРИТМИЧЕСКОГО ЯЗЫКА

Служебное слово ( новая строка ) указывает ЭВМ, что информация должна выводиться на новую строку.

-82%

Работа с системой программирования КуМир (Комплект Учебных Миров). Программирование с использованием языка кумир Как сделать программу в кумире

Введите второе число, например 7 и нажмите « Enter » Рис.5 алгоритм выполнен!

Очистите поле алгоритма «Программа→Новая программа» — поле очищено.

Имя алгоритма может быть любым набором символов:

Имя бывает у величин, таблиц, алгоритмов и исполнителей. Имя – это последовательность

слов, разделенных пробелами. Первое слово имени не должно начинаться с цифры. Ни

одно из слов не должно быть ключевым словом.

Примеры имен: m, погода на завтра, Ноябрь 7, Седьмое ноября, дом_57б.

Примеры неправильных имен:

Альфа-бета (”-” — недопустимый символ)

Альфа или омега (или — ключевое слово)

Величины, с которыми работает КуМир-программа, подразделяются на несколько типов.

Величина каждого из типов может принимать свой набор значений. В языке КуМир предусмотрены следующие типы величин:

цел — принимает целые значения от -2147483647 до 2147483647

вещ — принимает вещественные значения между и

лог — принимает значения да или нет (внутреннее представление – да=1, нет=0)

сим — значением может быть любой литеральный символ (практически любой символ)

лит — значением может быть строка литеральных символов

Типы цел и вещ называются числовыми; типы сим и лит — текстовыми.

Язык КуМир содержит встроенные функции преобразования числовых типов в тексто-

вые и наоборот. При необходимости значения целого типа автоматически переводятся в вещественные, а символьные — в текстовые. Для преобразования вещественных

значений в целые используется встроенная функция int

На первых уроках будем рассматривать только первые два.

Описание величин: величины описываются рядом с ключевым словом нач

Нач цел j, k, n, вещ s

Название операции или функции

возведение в степень

степень числа e

минимум из чисел x и y

максимум из чисел x и y

остаток от деления x на y

частное от деления x на y

целая часть числа x

случайное число в диапазоне от 0 до x

(-1, 0 или 1) sign(x)

(e . 2 . 718181 ) exp(x)

(x, y — целые ) mod(x,y)

(x, y — целые) div(x,y)

  1. Составить простейший алгоритм на вычисление среднего арифметического 3 чисел. Данные вводятся с клавиатуры.

нач цел а,б,с, вещ д

ввод а;ввод б;ввод с

вывод «д с синус s 100%» loading=lazy>

  1. перевести дюймы в мм, если 1 дюйм = 2,54 мм
  2. перевести км/ч в м/с (умножить на 1000, разделить на 3600)
  3. перевести часы в секунды.
  4. Рассчитать скорость тела ( v = S / t )
  5. вычислить площадь и периметр прямоугольника со сторонами а, б
  6. вычислить объем прямоугольной призмы.
  7. вычислить площадь круга
  8. вычислить площадь треугольника по 3 сторонам (формула Герона)
  9. вычислить гипотенузу прямоугольного треугольника

Программирование с использованием языка КуМир

(из опыта работы)

КуМир (Комплект Учебных МИРов) – система программирования, предназначенная для поддержки начальных курсов информатики и программирования в средней и высшей школе .

Она разработана в Российской Академии наук в рамках плановых работ и распространяется свободно (на условиях лицензии GNU GPL v.2).

Скорее всего в ближайшие годы будет происходить постепенный переход на компьютеризированный вариант сдачи ЕГЭ по информатике. Компьютерная тестирующая система (КТС ЕГЭ) пока ориентирована на использование кроссплатформенных систем программирования Кумир и FreePascal.

В 1985 году наш академик АП Ершов придумал язык русский алгоритмический язык, похожий на язык программирования ALGOL. Но поскольку в то время ещё не было компьютерной поддержки этого языка (те, кто преподавали информатику в первые её годы вхождения в школу, помнят, что всё делалось в безмашинном варианте, вручную, на бумаге), потом появились компьютеры с дисковой операционной системой (DOS). Но хорошей программной поддержки русского алгоритмического языка не было создано. Первый КуМир работал очень медленно, его интерфейс был очень примитивен. Про Кумир забыли, так как стали появляться другие, более удобные и функциональные языки. Но, к сожалению, почти все они англоязычные . Для массовой школы их освоение сопряжено с использованием английских слов и сокращений, что требует дополнительного времени на освоение. Поэтому программирование как таковое из школы постепенно почти ушло. Учителя за редким исключением просто не включали программирование в свои уроки. А программа по информатике содержит линию программирования, значит этим надо заниматься.

Те, кто изучает язык Delphy, Pascal, Си, возврат к алгоритмическому языку воспринимают как откат назад, в прошлое, считая его примитивным. А время идёт, и наши программисты тоже работают. Тот Кумир, что был в 80-е годы, претерпел значительную доработку, и на сегодня версия 1.72 является одной из перспективных, полностью готовой для работы в школе в компьютерном варианте.

Первый сигнал о втором пришествии Кумира появился в апреле 2010 года после семинаров, которые проводили, и на Дне учителя информатики 2.04.2010 в рамках Девятого московского педагогического марафона. Чуть позже в газете «Информатика» появилась статья и, посвященная компьютерному варианту ЕГЭ.

Новость произвела эффект разорвавшейся бомбы среди учителей информатики. На педагогических сайтах развернулись бурные дискуссии (см. тему «Быть Кумиру?» и обсуждение на сайте pedsovet. org).
Большинство участников этих словесных баталий Кумир не приняли, было сказано много ругательных слов.

По словам самих авторов, Кумир предназначен для начального обучения алгоритмизации и программированию (6-7 классы). Пока он занимал эту нишу, все было относительно хорошо и спокойно: практически никто из учителей не трогал Кумир, но и Кумир никого не трогал.

Но теперь встал вопрос о том, что Кумир становится одним из (двух) языков, разрешенных на компьютерном ЕГЭ по информатике, то есть «поднимается» на уровень 10-11 классов. Это заставило задуматься. Мера явно вынужденная: для компьютерного ЕГЭ требуется

    кроссплатформенность бесплатность простота установки относительная известность и популярность.

Таких сред не очень много, поэтому возврат к КуМиру вполне логичен. С этим придётся считаться и использовать в своей работе.

Надо сказать, что в методической литературе опубликовано достаточно много материалов с тем, чтобы такой массовый переход произошёл комфортно и безболезненно.

29 ноября 2010 года Московский институт открытого образования (МИОО) провёл апробацию компьютеризированной системы проведения ЕГЭ по информатике и ИКТ (КТС ЕГЭ). В газете «Информатика» (№№ 24/2010 и 2/2011) опубликованы статьи из серии «Освой КуМир за 6 часов». До этого, в 2009 году, напечатан цикл материалов и «Методика преподавания основ алгоритмизации на базе системы КуМир». На очередном Дне учителя информатики (01.04.2011) продвижение КуМира продолжилось (проведены семинар и круглый стол). Все это говорит о том, что с Кумиром придется считаться.

В настоящее время наблюдается затишье: сроков и прямых указаний на введение компьютерной тестирующей системы пока не называют.

Как и любое явление, язык КуМир имеет достоинства и недостатки. О них много говорили на упомянутом курсе МИОО, даже была сделана Wiki-страничка «Плюсы и минусы Кумира».

Современные версии языка 1.7, 1.8 обладают рядом существенных недостатков:

    медлительность Кумира, работающего медленнее, чем любая из Паскаль-сред отсутствие «нормальной» (не черепашьей) графики совершенно неразвитые средства работы со строками (например, нет функции поиска) устарелая и полностью кривая работа с файлами (например, перед тем, как открыть файл на запись, нужно каждый раз проверять, существует ли он, и если нет, то создавать пустой файл отдельной командой) нельзя менять значения аргументов внутри вспомогательных алгоритмов (например, в реализации алгоритма Евклида как функции приходится заводить две лишние переменные); нельзя вызывать функцию как процедуру, игнорируя ее результат; неудобная и неполная справочная система; нет форматного вывода на консоль и в файл, как в Паскале (типа вывод x:4 ), это нужно, например, чтобы вывести на экран матрицу ровными столбиками.

Кушниренко обещал, что версия 2.0 будет существенно быстрее.

Общие выводы по Кумиру :

    русские команды школьники воспринимают намного легче английских для изучения основ программирования и алгоритмизации Кумир ничем не хуже Паскаля, в новой версии можно делать практически все, что нужно; если удастся серьезно ускорить вычисления, будет совсем хорошо Кумир очень неплохо идет даже в 9-11 классах на базовом уровне и может быть очень удачным выбором для тех, кто в будущем не будет профессионально программировать.

ПиктоМир — младший брат КуМира, отдельно распространяемая, свободно распространяемая программная система для изучения азов программирования дошкольниками и младшими школьниками. ПиктоМир позволяет ребенку «собрать» из пиктограмм на экране компьютера несложную программу, управляющую виртуальным исполнителем-роботом. ПиктоМир в первую очередь ориентирован на дошкольников, еще не умеющих писать или на младшеклассников, не очень любящих писать. При желании, ПиктоМир-программу можно сохранить в КуМире и продолжить работу над ней в КуМире.

Программирование в ЕГЭ имеет вес 10 (первичный балл), что составляет 25% всей работы

В своей практике основы языка КуМир закладываю ещё в 7 классе при изучении исполнителей Чертёжник и Робот (по программе ЛЛ Босовой). В 9 классе работаю по такому плану.

Практическая работа на уроке

Знакомство со средой КуМир: непосредственное управление действиями Робота (интерфейс, команды, отказы)

Работа с Пультом, редактирование стартовой обстановки, запись линейных алгоритмов

Программное управление Роботом. Основная конструкция алгоритма: алг-нач-кон. Команда повторения: цикл К раз

Рисование контура (прямоугольник), 3 одинаковых букв. Запись текста программ в память компьютера

Команда повторения: цикл ПОКА. Блок-схема

Движение Робота до стены

Команда ветвления в полной форме. Блок-схема

Обход преграды в форме угла

Команда ветвления в краткой форме. Блок-схема

Закраска верхних боковых выходов горизонтального коридора

Переменная: имя, тип, значение. Команда присваивания

Подсчёт закрашенных клеток, выходов, шагов до преграды, возвращение в исходную клетку (цикл К раз)

Вложенные структуры. Блок-схема

Закрашивание ряда клеток через одну

Вычислительные алгоритмы, функции div и mod

Нахождение сумм, разностей, произведений заданных в алгоритме чисел. Закрашивание ряда клеток через одну

Команды ввода и вывода, функция sqrt. Аргументы, результаты, промежуточные величины.

Решение квадратного уравнения на компьютере

Нахождение максимума (минимума) двух и трёх чисел

Знакомство с исполнителем Чертёжник. Абсолютное и относительное смещение

Изображение прямоугольника с диагоналями, домика

Рисование улицы из трёх домиков. Рисование орнамента

Запись алгоритма и выполнение программы на компьютере

Сумма цифр десятичного числа

Запись алгоритма и выполнение программы на компьютере

Команда выбора из многих вариантов

Перевод Робота из одного угла прямоугольника в противоположный

Самостоятельная и групповая работа (индивидуальные дифференцированные задания)

Исполнение алгоритмов (протокол)

Самостоятельная и групповая работа (индивидуальные дифференцированные задания)

Создание алгоритмов и выполнение программ на компьютере

Повторение: основные алгоритмические конструкции

Перевод Робота к ближайшей стене

Составить алгоритм, исполнить программу

Количество алгоритмов (программ), изучаемых на уроке, зависит от общего развития учащихся и поэтому варьируется год от года. На дом предлагаются подобные задания (с некоторым изменением ситуации, задачи перед исполнителем), на последующих уроках работы проверяются, отмечаются лучшие предложения, правильный текст алгоритмов записывается в рабочие тетради учащихся, проверяется на компьютерах.

Русский язык, подсветка и пояснение ошибок, цветное написание ключевых слов, наглядное движение исполнителей на экране позволяет включить в работу самых слабых учеников. Так как изучение темы начинается на первом же уроке с непосредственного получения видимых практических результатов управления исполнителем Робот, с работы в среде КуМир.

Большую помощь в работе по данной теме оказывает пособие «Информатика 7-9 классы» АГ Кушниренко, ГВ Лебедева, ЯН Зайдельмана, 2002, Дрофа.

Из 14 шаблонов возможных на ЕГЭ заданий (в кодификаторе элементов содержания и требований к уровню подготовки выпускников общеобразовательных учреждений в 2013 году) уже 3 задачи решаются в 9 классе: Нахождение максимума (минимума) двух, трёх, четырёх чисел без использования массивов и циклов, Нахождение корней квадратного уравнения, Нахождение наибольшего общего делителя двух натуральных чисел. Работу над остальными задачами необходимо решать в индивидуальном плане с теми учащимися 10-11 классов, которые будут сдавать ЕГЭ по информатике и ИКТ.

    http://kpolyakov. *****/2011/04/blog-post_5678.html Сайт разработчиков Кумира (lpm. *****) Кумир на сайте НИИСИ РАН (www. *****/kumir) , Методика преподавания основ алгоритмизации на базе системы Кумир (*****). Кушниренко (publ. *****). Учебники по КуМиру (www. *****). , . Информатика 7-9 классы (2003 г.). (www. *****).

· Преподавание программирования в среде КуМир.

· Решение задач в системе Кумир (test. kumir. su).

· Курс алгоритмизации с использованием исполнителей системы Кумир и автоматического тестирования (*****)

    Курс «Алгоритмизация и программирование: от первых шагов до подготовки к ЕГЭ» (*****) Система программирования «КуМир». Издательство «Лицей»(www.). Методика преподавания основ алгоритмизации на базе системы «КуМир». Лекции, АГ Кушниренко, АГ Леонов, Учебно-методическая газета «Информатика» №№ 17, 18, 20-24 за 2009 год, Издательский дом «Первое сентября»; Информатика 7-9 классы. АГ Кушниренко, ГВ Лебедев, ЯН Зайдельман, Дрофа, М, 2002; Язык и система КуМир, Встроенная справка программы Комплект учебных миров; Информатика. Учебно-методическая газета для учителей №24 (2010 г.) и №2 (2011 г.), Издательский дом «Первое сентября»;

Начинать показ со страницы:

Транскрипт

1 Работа с системой программирования КуМир (Комплект Учебных Миров) 1. Установка КуМир 2. Знакомство с исполнителем Робот 3. Основные команды исполнителя Робот 4. Циклы, условия, примеры решения задач. 5. Задачи для самостоятельной работы 1. Установка КуМир Чтобы установить систему программирования КуМир, необходимо сначала перейти на официальный сайт разработчиков этой системы и скачать установочный дистрибутив. Сайт находится по адресу: И выглядит следующим образом: Если нажать на надпись, выделенную красным прямоугольником, то начнется закачка установщика текущей версии программы. Так будет выглядеть скачанный файл: Запускаем установку: 1. Нажимаем «Далее» 2. Нажимаем «Принимаю»

3 Находим ярлык программы на рабочем столе или в меню «Пуск» и пробуем запустить среду КуМир: 2. Знакомство с исполнителем Робот Робот один из исполнителей алгоритмов, доступный в системе программирования КуМир. Чтобы открыть окно робота, нужно нажать на кнопку на панели инструментов, указанную ниже на скриншоте: Должно открыться следующее окно: Как вы видите, робот «живет» на прямоугольном поле, разделѐнном на ячейки. Сам робот это маленький ромбик в центре этого поля. Это поле по-другому называется стартовой обстановкой робота и сейчас мы научимся, как еѐ менять.

4 Итак, заходим в меню «Инструменты» — «Редактировать стартовую обстановку робота». Должно открыться следующее окно: Как видно из раздела «помощь», чтобы добавить препятствия на поле робота, нужно щелкнуть по границе между ячейками, а чтобы переместить робота, необходимо щелкнуть на нѐм левой кнопкой мыши и перетащить в другое место. Попробуем изменить обстановку следующим образом:

5 Теперь осталось сохранить эту обстановку. Выбираем пункт меню «Обстановка» — «Сохранить как стартовую» И выбираем произвольную папку для сохранения и имя файла, жмѐм «сохранить»: Теперь, если ещѐ раз открыть текущую обстановку робота, то мы увидим, что произошли изменения: Обратите внимание, что если открыто синее поле, то вы изменяете стартовую обстановку робота. Если же поле зелѐное, то это текущее поле для работы с роботом. Не путайте их!

6 3. Основные команды исполнителя Робот Примечание: чтобы научиться хорошо работать с роботом, набирайте и выполняйте все алгоритмы, приведённые в данном пособии. Как мы определились ранее, робот это исполнитель алгоритмов. И как у каждого исполнителя, у него есть своя система команд. То есть набор команд, которые робот понимает. Вот основные команды робота: вверх вниз влево вправо закрасить перемещает робота на одну клетку вверх перемещает робота на одну клетку вниз перемещает робота на одну клетку влево перемещает робота на одну клетку вправо закрашивает ячейку, в которой стоит робот Как вы уже поняли, первые 4 команды нужны для перемещения робота по полю. Итак, попробуем эти команды в действии. В КуМире напишем следующий текст (точки в стоках 4, 5, 6 ставятся автоматически): Команда «Использовать Робот» позволяет указать системе КуМир, что мы будем работать с исполнителем робот. Если мы не напишем эту команду, КуМир не сможет распознать команды, которые мы будем вводить. Запись алг нач кон также обязательна и обозначает: алгоритм, начало, конец. Все команды нашего алгоритма для робота мы будем писать между ключевыми словами нач и кон.

7 Итак, реализуем простейший алгоритм для робота. Обратите внимание, что если команды написаны верно, то они подсвечиваются синим цветом. (нельзя написать команды «в низ», «право» или «верх», будьте внимательны!). Выполнить алгоритм вы можете двумя способами: 1. По шагам выполнить одну команду алгоритма и остановиться 2. Непрерывно выполнить все команды алгоритма сразу. Попробуем запустить непрерывное выполнение алгоритма, робот перейдет в конечное положение:

8 Чтобы понять, как «ходит» робот, можно попробовать пошаговое выполнение: для этого нажимайте клавишу F8 или выберите пункт меню «Выполнение» — «ШАГ». Робот сделал 2 команды «вправо» и остановился на команде «вниз». Если ещѐ раз нажать F8 (один шаг алгоритма), то робот шагнѐт вниз и остановится на следующей команде. Таким образом, много раз нажимая F8 мы можем выполнить все шаги алгоритма. Обратите внимание, что выполнение алгоритма всегда начинается из той точки, в которой изначально стоял робот. Попробуем выполнить следующий алгоритм: Робот стоял в левом верхнем углу прямоугольника. После непрерывного выполнения алгоритма он закрасит 3 клетки и окажется в клетке, указанной на скриншоте.

9 Что же произойдет, если мы попытаемся шагнуть «вверх» из начального положения, то есть пойти «в стенку»? Как видно на скриншоте выше, робот разбился, потому что он не умеет проходить сквозь стенки. Алгоритмы, в которых робот разбивается (неважно о какую стену), считаются ошибочными. 4. Циклы, условия, примеры решения задач В среде КуМир есть возможность менять размеры стартовой обстановки. Мы можем уменьшать количество клеток на поле робота, а также увеличивать их. Также можно представить бесконечное поле для робота и решать на нѐм задачи. Допустим, имеется стартовая обстановка, как показано ниже на скриншоте: Задача 1: Робот расположен на поле напротив вертикальной стены, слева от неѐ, размер поля и расстояние до стены неизвестны. Необходимо дойти роботом до стены. Очевидно, что невозможно решить эту задачу просто написав последовательно много команд «вправо», потому что робот либо разобьется о стену, либо не дойдет до неѐ. Угадать это невозможно, так как расстояние до стены неизвестно.

10 Но из условия задачи можно понять, что нам нужно идти роботом вправо до тех пор, пока не встретится стена. То есть нам нужно много раз выполнить команду вправо, но остановиться тогда, когда на пути встретится стена. В этом нам поможет цикл типа «пока». Обратите внимание, что у нас в алгоритме появилась новая алгоритмическая структура цикл. Разберем, как она работает. нц пока начало цикла «пока» справа свободно условие, проверяющее, свободна ли клетка справа. Если стены между текущей клеткой и соседней справа нет, то условие верно (возвращает значение «да»), иначе — условие неверно (возвращает «нет»). кц конец цикла Цикл выполняется следующим образом: 1. Проверяется условие «справа свободно» (т.е. есть справа стена или еѐ нет) 2. Если условие верно, делаем команды, написанные между нц и кц. Если нет переходим на команду, записанную после кц 3. Возвращаемся на проверку условия В начальном положении у робота свободна клетка справа, поэтому условие верно (надпись «да») и робот выполняет команду «вправо». Очевидно, что робот остановится в клетке, которая прилегает к стене (условие станет неверным), то есть дойдет до неѐ. Аналогично, можно решить задачи движения до стены сверху, стены слева и стены снизу на бесконечном поле. Для этого стоит лишь поменять команду условия.

11 Роботу доступны следующие проверки: слева свободно справа свободно снизу свободно сверху свободно эти команды также, как и команды движения, относятся к системе команд робота. Обратите внимание, что команды «вверху свободно», «низ свободно» или любые другие, отличающиеся от приведѐнных выше, будут неверными. Как и с командами движения, правильность написания условий можно отследить по выделению шрифта синим цветом. Задача 2: Обойти роботом прямоугольник изнутри и закрасить все клетки, прилегающие к стенкам (начальное положение робота: верхний левый угол). Начальное положение Алгоритм «дойти до нижней стены» Алгоритм «дойти до нижней стены и закрасить» Подумайте, почему не закрасилась последняя клетка?

12 Алгоритм «дойти до нижней стены и закрасить, дойти до правой стены и закрасить» Аналогично добавим циклы для двух других стенок. Задача решена. Задача 3: Дана стартовая обстановка, представленная на скриншоте ниже. Пройти роботом по коридору, закрашивая только те клетки, у которых присутствует нижняя стенка. Мы знаем, как реализовать алгоритм движения до правой стены. Напишем и выполним его:

13 Теперь подумаем, как закрасить клетки, у которых есть нижняя стенка. Если мы просто добавим в цикл команду «закрасить», то робот закрасит нам все клетки: А нам нужно закрашивать только с тем условием, что снизу есть стена. Посмотрим, как добавить такое условие в алгоритм: Команда если-то-все называется условной (условным оператором) и позволяет по условию выполнять либо одно действие, либо другое. Посмотрим внимательно на условие «не снизу свободно»? Что же оно означает? Команда «снизу свободно» проверяет свободно ли снизу и если свободно возвращает «да», иначе «нет». НЕ это отрицание этой команды. То есть «не снизу свободно» проверяет есть ли снизу стена. И если стена есть (снизу несвободно), то возвращает «да», иначе «нет». В итоге, команда «закрасить» выполняется только тогда, когда снизу стена. Это нам и было нужно. Задача 3.1: Задание то же, что и в предыдущей задаче, но нужно закрасить только те клетки, у которых есть и нижняя и верхняя стенки. Для этого напишем сложное условие (из двух простых, соединѐнных союзом и).

14 Выполнение алгоритма: Робот закрасил только те клетки, где выполняются оба условия «не снизу свободно» и «не сверху свободно», то есть клетки, у которых есть стена сверху и снизу. Задача 3.2: Стартовая обстановка та же, но необходимо закрасить клетки, у которых есть хотя бы одна стена сверху или снизу (или обе вместе). Для этого между условиями используем команду «или»: Обратите внимание, что робот не закрасил только те клетки у которых нет ни нижней, ни верхней стены. Операции не, и, или называются логическими операциями и позволяют из простых условий составлять сложные. Эти сложные условия вы можете записать как в цикл «нц пока», так и в условный оператор «если-то-все».

15 5. Задачи для самостоятельной работы: Примечание 1: Во всех задачах нужно закрасить клетки поля так, как указано в столбце «задание». Начальное положение робота имеет значение и указано на скриншотах со стартовой обстановкой. Примечание 2: После того, как вы написали алгоритм, решающий задачу, попробуйте немного изменить стартовую остановку, не меняя сути задачи (например, уменьшить или увеличить коридор для примера-задачи 3) и снова попробовать выполнить ваш алгоритм. Если и в этом случае все работает верно, то задача решена. Пробуйте ради интереса находить такие стартовые обстановки, в которых ваш алгоритм не будет работать (иначе за вас их найдет учитель;) Стартовая обстановка Задание Расстояние между вертикальными стенками не менее 2 клеток. Конечное положение робота неважно Робот находится в середине горизонтальной стены. Конечное положение робота неважно Конечное положение робота неважно

16 Конечное положение робота неважно Конечное положение робота неважно Конечное положение робота неважно Закрасить указанные ячейки и перевести робота в конечное положение. Другие стартовые обстановки можно взять из демо-версий ГИА по информатике (или придумать самим)

Практикум по КуМир В данном практикуме будут рассмотрены только возможности исполнителя Робот, которые можно использовать для написания программы при выполнении задания ГИА. После запуска среды КуМир на

20.1 Запись короткого алгоритма в среде формального исполнителя Примечание Алгоритм должен решать задачу для произвольного размера поля и любого допустимого расположения стен внутри прямоугольного поля.

Задачи для исполнителя РОБОТ 1.Линейные алгоритмы 1.1. Перевести Робота из начального положения () в точку A за минимальное число шагов любым из возможных способов. 1.2. Перевести Робота из начального

19 Информатика. 9 класс. Вариант ИН933 1 Критерии оценивания заданий с развёрнутым ответом В электронную таблицу занесли данные о сдаче выпускных экзаменов учащимися одного из городов. Ниже приведены первые

Задание 20.1. Составление алгоритма для формального исполнителя (высокий уровень, время выполнения — 45 мин) Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки.

Итоговая контрольная работа по Информатике и ИКТ 9 класс Демоверсия Инструкция по выполнению работы На выполнение итоговой контрольной работы по информатике отводится 45 минут. Работа состоит из 3 частей,

МУНИЦИПАЛЬНОЕ БЮДЖЕТНОЕ ОБЩЕОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ СРЕДНЯЯ ОБЩЕОБРАЗОВАТЕЛЬНАЯ ШКОЛА 6 С УГЛУБЛЕННЫМ ИЗУЧЕНИЕМ ОТДЕЛЬНЫХ ПРЕДМЕТОВ Задание 1 Выполнение алгоритмов для исполнителя ЕГЭ по информатике

С2_1. Исполнитель обот Исполнитель обот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Ниже приведено описание обота. У обота есть четыре команды перемещения: вверх вниз

Задание 14. Выполнение алгоритмов для исполнителя Робот При решении задач данного вида необходимо знать: 1. В школьном алгоритмическом языке нц обозначает «начало цикла», а кц «конец цикла»; все команды

19 Информатика. 9 класс. Вариант ИНФ951 1 Критерии оценивания заданий с развёрнутым ответом В издательстве детских книг данные об изданных книгах хранятся в электронной таблице. Ниже приведены первые пять

Информатика. 9 класс. Демонстрационный вариант 5 (9 минут) 1 Диагностическая тематическая работа 5 по подготовке к ОГЭ по ИНФОРМАТИКЕ и ИКТ по теме «Логика и алгоритмы» Инструия по выполнению работы На

Информатика. 9 класс. Вариант ИН933 1 Критерии оценивания заданий с развёрнутым ответом 19 В электронную таблицу занесли результаты тестирования учащихся по математике и физике. На рисунке приведены первые

Информатика. 9 класс. Вариант 1 1 Критерии оценивания заданий с развёрнутым ответом 19 В электронную таблицу занесли результаты диагностической работы учащихся 8 класса по математике. На рисунке приведены

Информатика. 9 класс. Демонстрационный вариант 5 (9 минут) 1 Информатика. 9 класс. Демонстрационный вариант 5 (9 минут) 2 Диагностическая тематическая работа 5 по подготовке к ГИА-9 по ИНФОРМАТИКЕ и ИКТ

1 Введение 1.1 Обстановки Робота Исполнитель Робот существует в некоторой обстановке прямоугольном поле, разбитом на клетки, между которыми могут стоять стены. Обстановка, в которой находится Робот, называется

Информатика. 9 класс. Вариант ИН90601 1 Критерии оценивания заданий с развёрнутым ответом 19 В электронную таблицу занесли данные наблюдения за погодой в течение одного года. Ниже приведены первые пять

Переводной экзамен «Информатика» 8 класс (базовый уровень) Инструкция по выполнению работы На выполнение контрольной работы по информатике отводится 90 минут (два академических часа). Работа состоит из

ТЕМА «ОСНОВЫ АЛГОРИТМИЗАЦИИ» В КОНТРОЛЬНО-ИЗМЕРИТЕЛЬНЫХ МАТЕРИАЛАХ ИТОГОВОЙ АТТЕСТАЦИИ 9 КЛАСС (методические рекомендации по решению задач повышенного и высокого уровней сложности) Малышев Михаил Владимирович,

Решения заданий I (школьного) этапа Всероссийской олимпиады школьников по информатике и ИКТ для учащихся 5-6 классов г. Мурманск 2016-2017 учебный год Цель проведения олимпиады: выявление наиболее талантливых

ИТОГОВОЕ ТЕСТИРОВАНИЕ Часть А (задание с выбором ответа) Часть 1 (При выполнении заданий этой части (1 6) обведите номер выбранного ответа кружком. Если Вы выбрали не тот номер, зачеркните его и обведите

Итоговая контрольная работа по ИНФОРМАТИКЕ 9 класс, 2015 2016 учебный год Демоверсия ФИ класс дата Инструкция по выполнению работы Работа состоит из двух частей, включающих в себя 13 заданий. Часть 1 содержит

Информатика. 9 класс. Вариант 1 Критерии оценивания заданий с развёрнутым ответом 19 В электронную таблицу занесли результаты наблюдения за погодой в городе Зарайске в течение года. На рисунке приведены

Информатика. 9 класс. Вариант Критерии оценивания заданий с развёрнутым ответом 9 В электронную таблицу занесли результаты тестирования учащихся по русскому языку и математике. На рисунке приведены первые

Вариант 14-02 Часть А А1. Дано N = 1528, M = 6C16. Какое из чисел K, записанных в двоичной системе, отвечает условию N
9. Известно, что где-то правее Робота есть стена. Составьте алгоритм, под управлением которого Робот закрасит ряд клеток до стены и вернется в исходное положение.

10. Известно, что где-то правее Робота есть закрашенная клетка.

Составьте алгоритм, под управлением которого Робот закрасит ряд клеток до закрашенной клетки и вернется в исходное положение.

11. Известно, что Робот находится рядом с левым входом в горизонтальный коридор.

12. Известно, что Робот находится где-то в горизонтальном коридоре. Ни одна из клеток коридора не закрашена.

Составьте алгоритм, под управлением которого Робот закрасит все клетки этого коридора и вернется в исходное положение.

13. В ряду из десяти клеток правее Робота некоторые клетки закрашены.

Составьте алгоритм, который закрашивает клетки:

а) ниже каждой закрашенной клетки;

б) выше и ниже каждой закрашенной клетки.

14. Что можно сказать о правильности следующего фрагмента алгоритма?

нц пока клетка закрашена

ЕСЛИ справа свободно ТО

к
ц

15. Напишите программу, с помощью которой Робот сможет попасть в клетку Б во всех трех лабиринтах.

16. Напишите программу, следуя которой Робот сможет пройти по коридору от левого нижнего угла поля к правому верхнему. Коридор имеет ширину одна клетка и тянется в направлении слева-снизу вправо-вверх. Пример возможного коридора изображен на рисунке.

З

адачи ГИА

  1. Коридор1. Робот находится где-то в вертикальном коридоре. Ни одна из клеток коридора не закрашена. Составить алгоритм, под управлением которого Робот закрасит все клетки этого коридора и вернется в исходное положение.

Дано
оридор2. Робот находится в верхней клетке узкого вертикального коридора. Ширина коридора – одна клетка, длина коридора может быть произвольной.

Напишите для Робота алгоритм, закрашивающий все клетки внутри коридора и возвращающий Робота в исходную позицию. Например, для приведенного выше рисунка Робот должен закрасить следующие клетки (см.рисунок):

  1. На бесконечном поле имеется длинная горизонтальная стена. Длина стены неизвестна. Робот находится в одной из клеток непосредственно сверху от стены. Начальное положение Робота также неизвестно. Одно из возможных положений:

Дано
апишите алгоритм для Робота, закрашивающий все клетки, расположенные выше стены и прилегающие к ней, независимо от размеров стены и начального положения Робота. Например, для приведенного рисунка Робот должен закрасить следующие клетки:

Конечное положение Робота может быть произвольным. При выполнении алгоритма Робот не должен разрушаться.


  1. На бесконечном поле имеется длинная вертикальная стена. Длина стены неизвестна. Робот находится в одной из клеток, расположенной непосредственно справа от стены. Начальное положение робота также неизвестно. Одно из возможных положений робота приведено на рисунке (робот обозначен буквой «Р»):Напишите для работа алгоритм, закрашивающий все прилегающие к стене клетки: слева, начиная с верхней не закрашенной и через одну; справа, начиная с нижней закрашенной и через одну. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведенного выше рисунка робот должен закрасить следующие клетки (см. рисунок): Конечное расположение робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера стены и любой допустимой начальной позиции робота. При исполнении алгоритма Робот не должен разрушиться.

Напишите для Робота алгоритм, закрашивающий все клетки, расположенные левее вертикальной стены и выше горизонтальной стены и прилегающие к ним. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок).

Напишите для Робота алгоритм, закрашивающий прилегающие к стене клетки, сверху и снизу, начиная с левой и через одну. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведѐнного рисунка а) Робот должен закрасить следующие клетки (см. рис. б).

Конечное положение Робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера стены и любой допустимой начальной позиции Робота.

  1. На бесконечном поле имеется длинная вертикальная стена. Длина стены неизвестна. Робот находится в одной из клеток, расположенной непосредственно слевав от стены. Начальное положение робота также неизвестно. Одно из возможных положений робота приведено на рисунке (робот обозначен буквой «Р»):
  • слева все;
  • справа, начиная с верхней незакрашенной и через одну.

B
1102_ГИА2011

На бесконечном поле имеются две горизонтальные стены. Длина стен неизвестна. Расстояние между стенами неизвестно. Робот находится над нижней стеной в клетке, расположенной у ее левого края. Напишите для Робота алгоритм, закрашивающий все клетки, расположенные выше нижней стены и ниже верхней стены и прилегающие к ним. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведенного выше рисунка робот должен закрасить следующие клетки (см. рисунок):

Конечное расположение робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера поля и любого допустимого расположения стен внутри прямоугольного поля. При исполнении алгоритма Робот не должен разрушиться.

В
1103_ГИА_2011

На бесконечном поле имеется горизонтальная стена. Длина стены неизвестна. От правого конца стены вниз отходит вертикальная стена также неизвестной длины. Робот находится над горизонтальной стеной в клетке, расположенной у ее левого края. На рисунке указан один из возможных способов расположения стен и Робота (Робот обозначен буквой «Р»).

Напишите для Робота алгоритм, закрашивающий все клетки, расположенные выше горизонтальной стены и правее вертикальной стены и прилегающие к ним. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок).

Исполнитель Робот Система команд исполнителя Робот Команды перемещения: вверх, вниз, влево, вправо Робот перемещается на одну клетку вверх, вниз, влево, вправо. Команда закрасить – закрашивает клетку, в которой стоит Робот. Проверка истинности условия: сверху свободно, снизу свободно, слева свободно, справа свободно Робот проверяет истинность условия отсутствия стены у той клетки, где находится Робот. Можно использовать запись составных условий, образованных логическими операциями И, ИЛИ, НЕ.

Исполнитель Робот Непосредственное редактирование обстановки Все команды редактирования обстановки выполняются с помощью мыши: поставить/убрать стену – щелкнуть по границе между клетками, закрасить/очистить клетку – щелкнуть по клетке, переместить Робота – перетащить мышью в нужную клетку.

Исполнитель Робот Команды меню Робот Показать поле Робота Делает видимым окно наблюдения за Роботом. Напечатать обстановку Создает файл в формате PDF, изображающий текущую обстановку в цветном или в черно-белом варианте. Сохранить обстановку в файл Создает текстовый файл с описанием обстановки во внутреннем формате *.fil. Этот файл в дальнейшем может быть загружен в качестве стартовой обстановки (команда Сменить стартовую обстановку) или при редактировании стартовой обстановки (команда Открыть окна редактирования стартовой обстановки). Сменить как стартовую обстановку Устанавливает новое имя файла стартовой обстановки (с помощью стандартного диалога) и загружает новую стартовую обстановку. Вернуться в стартовую обстановку Делает стартовую обстановку текущей.

Исполнитель Робот Изображение текущей обстановки в окне наблюдения Изображение текущей обстановки всегда полностью помещается в рабочем поле окна наблюдения за Роботом. Фон рабочего поля – зеленый. Закрашенные клетки – серые. Между клетками – тонкие черные линии. Стены Изображаются толстыми желтыми линиями. В клетке рабочего поля окна наблюдения Робот изображается ромбиком.

Исполнитель Робот Пример 1. Составим алгоритм с именем «Ход конем», что бы Роботу попасть из точки А в точку Б (Рис.3). Алгоритм имеет вид (Рис. 4.). После его исполнения Робот переместиться в нужную точку (Рис.5). Алгоритм, записанный на языке исполнителя называется программой. Рис.3Рис.4 Рис.5

———————————————————
>>> СКАЧАТЬ ФАЙЛ <<<
———————————————————
Проверено, вирусов нет!
———————————————————

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

При освоении темы алгоритмы воспользуемся системой программирования КУМИР.При решении некоторых задач с роботом необходимо использовать вложенные циклы или ветвления. Ц икл называется вложенным, если он размещается внутри другого цикла. ••• Помогите с программой Кумир. Anastasia. * Знаток (405), на голосовании 4 года назад. При описании алгоритма программа выдает таку ошибка ОШИБКА ВЫПОЛНЕНИЯ: Величина или алгоритм не описаны (4113) вот как написан алгоритм. Алгоритм на языке КуМир записывается так: алг тип_алгоритма имя_алгоритма ( описание_параметров) · дано условие_применимости_алгоритма · надо цель_выполнения_ алгоритма нач · последовательность команд кон. Начало » Конспекты школьника » kumir » Вложенные циклы и условия.Теперь, когда понятно что необходимо делать, запишем алгоритм на КуМире. Вложенные циклы (цикл в цикле).Удалив символ |, мы тем самым указали Кумиру на то, что будем работать с исполнителем Робот. Если этого не сделать, то при написании программы мы столкнемся с ошибкой «Нет такого алгоритма». Кумир Решение по схеме 1.Ребят работаю в ворде и хочу вставить картинку но пишет что графический фильтр не справился с задачей кто знает что делать испробовала все метода в буфер обмена рукой перетаскивала в паинт. Описание: 1 урок Простейший алгоритм. Откройте программу Кумир Рис.1 Рис.1 Используя из строки меню Программа→Открыть программу→1 Пример.kum в поле алгоритма появится 1 пример Рис.2 Рис.2. Общее. Алгоритмизация в среде КУМир. Авторы: Удалова Т.Л., Новикова Е.Ю.Вложенные циклы. Рисование узоров Лекция. Задание 4. Создать алгоритм рисования узора. Алгоритм на языке КуМир записывается так: алг тип_алгоритма имя_алгоритма ( описание_параметров) · дано условие_применимости_алгоритма · надоПримеры слов: бета123, 3кг, мама, Linux, КоСтЯ, kumir@infomir_ru. В языке КуМир есть специальные команды для организации программы с циклическим алгоритмом.да. Если одна циклическая конструкция находится внутри другой, то такое построение называется вложенными циклами. Алгоритм на Кумире для исполнителя РоботСпособы записи алгоритмов. • Словесное описание. • Запись по шагам.Петя решил сделать алгоритм более понятным и не использовать вложенные команды если. Описания обстановок хранятся в текстовых файлах специального формата (формат.fil).В системе КУМИР вспомогательные алгоритмы пишутся в конце основной программы (после служебногоПри исполнении алгоритма Робот не должен разрушиться. В 1103_ГИА_2011. Переменные, с которыми работает КуМир-программа, подразделяются на несколько типов.Есть два варианта реализации этого алгоритма – без применения составных условий, но при этом надо вкладывать ветвление друг в друга, и с применением составных условий. .su. Язык и система программирования КуМир. В 1985 г. академик А.П. Ершов придумал похожий на Алгол.Национальная лексика и простота. Чтобы составить программу, нужно: • продумать алгоритм, • записать его на некотором (изученном). * КуМир = Комплект Учебных МИРов * Кумир: Водолей * Задача «A+B» C:= * Кумир: автоматическая проверка вызвать алгоритм «A плюс B» передать ему исходные данные получить результат Варианты обмена данными: глобальные переменныеВложенные циклы. Методы алгоритмизации. Рекуррентные соотношения. Метод итерации. Инвариант цикла.18/2009. Лекция 2. Практическое знакомство с системой “КуМир”: исполнитель Робот. Понятие алгоритма. используя вложенные циклы.используйте описание функции для вычисления факториала(н) и С(н,к).Вычислительные алгоритмы в среде Кумир Подготовлено по материалам учебника И.Г.Семакина «Информатика и ИКТ» 9 класс. Ниже мы будем обсуждать только те понятия, конструкции и команды школьного языка и системы КуМир, которые нужны при решении задач типа С2-С3. В частности, все программы ниже будут состоять из одного алгоритма без параметров. Предварительный просмотр: Методическая разработка по информатике. Тема: «Исполнитель Робот в программе КуМир на уроках информатики ».понимать описания алгоритмов на учебном алгоритмическом языке Алгоритмический язык КуМир. Слайд №2. Содержание Интерфейс окна программы Линейный алгоритм Структуры «Ветвление» Одномерный массив.Описание одномерного массива нач. цел N=20. цел таб a[1:N], b[1:N] …

Содержание

  1. Кумир имя не объявлено что делать
  2. Помогите, пожалуйста, почему в программе КуМир ,,Имя не объявлено», хотя там всё правильно. Что мне нужно исправить. ​
  3. Настройка среды Кумир для исполнителя Робот
  4. КуМир, Исполнитель Робот
  5. Главное меню
  6. Пульт
  7. Задачи
  8. Знакомство с языком и системой КуМир путем решения задач С2

Кумир имя не объявлено что делать

Помогите, пожалуйста, почему в программе КуМир ,,Имя не объявлено», хотя там всё правильно. Что мне нужно исправить. ​

Замечание: предполагается, что в имени файла нет «.».
program qq;
var s:string;
begin
writeln(‘Введите имя файла:’);
readln(s);
s:=copy(s,1,pos(‘.’,s))+’exe’;
writeln(s);
end.

Пример:
Введите имя файла:
Привет.txt
Привет.exe

5 — 10 + 20 = 15 (q = -2)
15 — 15 + 15 = 15 (q = -1)
20 -10 + 5 = 15 (q = -0.5)
15 + 0 + 0 = 15 (q = 0)
5 + 5 + 5 = 15 (q = 1)

программа на руби, для нахождения

Ответ:

Объяснение:

В этой кодировке символ занимат 1 байт = 8 бит.

284 на 8 нацело не делится, а число символов должно быть целым, поэтому такое сообщение невозможно.

Настройка среды Кумир для исполнителя Робот

На прошлом уроке мы познакомились с исполнителем Робот, узнали как его установить и запустить. Сегодня будем настраивать программу для дальнейшей работы.

Запущенная программа Кумир выглядит так.

Среда Кумир, исполнитель Робот

Первым делом мы должны раскомментировать первую строку нашей программы, убрав символ |

Раскомментируем первую строку

Таким образом, программа станет выглядеть так:

использовать Робот

алг

нач

кон

Удалив символ |, мы тем самым указали Кумиру на то, что будем работать с исполнителем Робот. Если этого не сделать, то при написании программы мы столкнемся с ошибкой «Нет такого алгоритма». Поэтому очень важно при создании новой программы раскомментировать первую строку. Теперь все готово для дальнейшей работы.

КуМир, Исполнитель Робот

Чтобы задать условия для выполнения, нужно выполнить команду меню Инструменты→Редактировать стартовую обстановку Робота.

В результате мы увидим окно:

Помощь выводит исчерпывающую информацию о возможных действиях:

Меню Обстановка позволяет сделать следующее:

Новая обстановка Сбрасывает имя файла и создает обстановку, показанную в синем окне выше
Открыть Открытие уже созданной обстановки (файл *.fil) для редактирования
Недавние обстановки Ускоряет доступ к 8 последним проектам
Сохранить Сохраняет текущие изменения
Сохранить как. Позволяет задать имя для обстановки
Сохранить как стартовую Именно она будет средой по умолчанию
Печать в файл Создает PDF-файл с картинкой обстановки, именем файла, датой и комментарием
Закрыть Закрывает окно редактирования

Главное меню

Пульт

Вызов пульта производится нажатием на кнопку или через меню Робот→Показать пульт.

Если выполнить команду меню Редактирование→Перехватывать команды Пульта, то действия, производимые пультом будут записываться в виде правильных команд в текст программы. Названный пункт будет помечен флажком (галочкой).

Некоторые из записываемых команд окажутся избыточными, так как для них используется вывод информации, а не действия. Но их можно отредактировать, либо взять из них только нужные элементы.

Подробности использования пульта смотри меню Инфо→Язык и система КуМир.

Задачи

  1. Робот находится в левом верхнем углу прямоугольной области неизвестного размера, со всех сторон окруженной стенками. Посередине находится стена, в которой есть проход. Где он, точно неизвестно, но проход не примыкает к нижней стенке. Задача: написать программу, которая переведет робота в правый нижний угол. Файл среды.
  2. См. также ОГЭ: вопрос 20.1.
  3. См. также ЕГЭ: вопросы 6, 14.

Copyright © 1993–2022 Мацкявичюс Д.А. Все права защищены.
Никакая часть сайта не может быть воспроизведена никаким способом без письменного разрешения правообладателя и явной ссылки на данный ресурс.

Источник

Знакомство с языком и системой КуМир путем решения задач С2

Знакомство с языком и системой КуМир путем решения задач С2

Настоящая короткая инструкция адресована читателям, имеющим практический опыт решения нескольких десятков простейших задач по программированию на каком-нибудь языке программирования.

Предполагается, что читатель хочет с минимальными затратами времени научиться решать на школьном алгоритмическом языке в системе КуМир, задачи, подобные задачам С2-С6 демоверсии компьютеризированного ЕГЭ. Эта демоверсия опубликована на сайте МИОО: На том же сайте сказано, как загрузить систему КуМир (версия для ЕГЭ) для операционных систем типа MS Windows и Linux . Ниже мы будем обсуждать только те понятия, конструкции и команды школьного языка и системы КуМир, которые нужны при решении задач типа С2-С3. В частности, все программы ниже будут состоять из одного алгоритма без параметров. В условиях задач С2-С6 не предусмотрена какая-либо работа с файлами. Предписывается вводить информацию с клавиатуры и выводить ее на экран. Дополнительно требуется, чтобы каждая порция вводимой или выводимой информации размещалась на отдельной строке и обрабатывалась одной командой ввод или вывод .

Вывод значения величины х в отдельную строку производится в командой

где нс означает н овая с трока.

Ввод значения величины х производится командой

по этой команде в окне ввода/вывода подсвечивается строка, в которую будет направлено эхо ввода и система КуМир ожидает посимвольного ввода значения величины, завершаемого нажатием клавиши Enter .

Итак, загружаем КуМир и, согласно инструкции, запускаем версию КуМира для ЕГЭ. Мы увидим следующую картинку.

В верхней строке с иконками команд, правее крестика, должно быть пусто. Если правее крестика Вы увидели три желто-зеленые иконки, то Вы запустили полный КуМир, с Роботом и Чертежником, которые Вам не нужны. Перечитайте инструкцию и запустите версию КуМир для ЕГЭ. Размеры трех областей, которые мы видим при первом появлении окна КуМира на экране, для задач С2-С6 неудобны. Их нужно изменить. Для этого нужно «схватить» мышкой нижний край окна (под словом Редактирование) и уменьшить высоту окна, затем «схватить» мышкой правый край окна и уменьшить ширину и наконец, нужно подвинуть границы между тремя областями окна так, чтобы получилась картинка примерно такой формы и размера:

Начнем с задачи С2, в которой нужно подсчитать количество различных значений среди модулей трех введенных с клавиатуры целых чисел a , b , c .

Условие и решение задачи C 2

С2. Составить программу, которая вводит с клавиатуры три целых числа a, b,c (каждое число – отдельной командой «ввод»), заменяет каждое из этих чисел на его модуль и выводит на экран количество различных среди полученных трех чисел. Ничего, кроме этого количества, программа выводить не должна. Например, если все числа равны, программа должна выводить число 1 . При использовании системы Fr ee Pascal для представления целых чисел используйте тип LongInt .

Указание. Модуль целого числа можно вычислить следующим образом:

Пояснение. Ответом в этой задаче является программа, записанная на школьном алгоритмическом языке или языке Free Pascal. Эта программа должна быть подготовлена и проверена в среде программирования КуМир или Free Pascal и сохранена в одном файле средствами среды программирования. Далее этот файл должен быть загружен в экзаменационную работу средствами системы КТС ЕГЭ.
Не забудьте загрузить в Вашу экзаменационную работу файл с подготовленной Вами программой.

Важное замечание. В КуМире имена переменных можно писать русскими буквами, а можно и латинскими. Какой способ удобнее? При решении задач С2-С6 удобнее всего установить латинский нижний регистр и давать переменным однобуквенные имена, тем более, что в условиях задач уже используются имена: a , b , c , n . Чтобы поменьше переключать регистр при наборе ключевых слов на русском языке, используйте клавишу Alt: пока эта клавиша удерживается в нажатом положении, текущий латинский регистр становится русским (и наоборот).

Алгоритм решения задачи С2 назовем С2 (заглавная латинская буква С). КуМир для ЕГЭ настроен так, что латинские буквы в именах изображаются курсивом, поэтому в тексте программы латинские буквы можно отличить от схожих по начертанию русских. Сохранять программу будем в файле C 2.kum

Начнем составление алгоритма. В начале алгоритма, после слова нач, опишем целые переменные a , b , c

далее напишем команды ввода значения этих переменных с клавиатуры. Как требуется в условии задачи, каждое значение введем отдельной командой:

Далее, следуя указанию по программированию из условия задачи, добавим команды, заменяющие каждое число на его модуль, и выполним получившуюся программу, нажав клавишу F9

В окне ввода/вывода внизу появляется желтая строка, в которую будет производиться ввод цифр первого числа. В нижней части обрамления окна система выводит сообщение Ожидается ввод: цел. Ввод цифр целого числа должен быть завершен нажатием клавиши Enter . Введем единственую цифру первого числа 1 и нажмем клавишу Enter , аналогочно введем числа -1 и 2. Программа завершит работу:

На полях программы, справа от ее текста, система КуМир показывает результаты выполнения команд ввод в строках 3,4,5 и результаты присваиваний в строках 6,7,8. И на полях строк 3,4,5 и в окне ввода/вывода видно, что были введены три числа 1 -1 2 . Однако на полях строк 6,7,8 почему-то показано, что все три числа стали равны 1 . Почему же число c оказалось равным 1 , а не 2 ? «Элементарно, Ватсон»: на место строки 8 мы скопировали строку 6, собираясь затем поменять в ней в двух местах букву a на букву c . После этого мы изменили первую букву а , но забыли изменить вторую и получилась ошибочная команда

Исправим эту ошибку и попробуем дописать в конец алгоритма команду, вычисляющую количество различных среди чисел a , b :

Технические замечания. 1) Хотя в меню вставка есть макрокоманды по вставке управляющих конструкций, в данном случае удобнее набрать ключевые слова конструкции вручную, разместив их в одной строке.

2) В процессе редактировании строки, до момента окончания редактирования строки, КуМир не производит перепроверку программы. Эта перепроверка запускается после «покидания» строки курсором.

Уводим курсор из редактируемой строки номер 9 и смотрим, что получилось. КуМир сообщает, что в строке 9 найдены три ошибки типа «Величина или алгоритм не описаны»:

Какие именно величины не описаны, показано в строке 9 тремя красными подчеркиваниями. Во-первых, подчеркнута, русская буква а, ее нужно исправить на латинскую а. Кроме того, мы забыли описать величину k .

Исправляем эти ошибки и пока [1] КуМир переразбирает программу, думаем, что еще осталось сделать. Величина k показывает, сколько различных среди первых двух чисел a и b . Сравним третье число c числом а, затем с числом b . Если c не совпадает ни с a ни с b , то при переходе от набора чисел

a b к набору a b c количество различных чисел увеличивается на 1. Если же число c совпадает с одним из первых двух чисел, то добавление числа c к набору a b количества различных чисел не меняет. Эти длинные словесные объяснения записываются в алгоритме очень коротко:

Для завершения программы осталось вывести вычисленный ответ k в отдельной строке вывод k , нс:

Запустив программу для входных данных 1 1 1 , получим правильный ответ 1:

Запуская программу еще на нескольких наборах входных данных, убеждаемся, что она работает правильно:

Убедившись в правильности программы, необходимо сохранить ее, а затем включить файл C 2. kum в экзаменационную работу средствами системы КТС ЕГЭ.

[1] Для коротенькой программы переразбор происходит мгновенно. Для очень длинной программы на не очень новом компьютере переразбор может занять несколько секунд. Зеленый сигнал светофора показывает, что переразбор закончен. Для коротких программ на светофор можно не обращать внимания.

Источник

———————————————————
>>> СКАЧАТЬ ФАЙЛ <<<
———————————————————
Проверено, вирусов нет!
———————————————————

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

При освоении темы алгоритмы воспользуемся системой программирования КУМИР.При решении некоторых задач с роботом необходимо использовать вложенные циклы или ветвления. Ц икл называется вложенным, если он размещается внутри другого цикла. ••• Помогите с программой Кумир. Anastasia. * Знаток (405), на голосовании 4 года назад. При описании алгоритма программа выдает таку ошибка ОШИБКА ВЫПОЛНЕНИЯ: Величина или алгоритм не описаны (4113) вот как написан алгоритм. Алгоритм на языке КуМир записывается так: алг тип_алгоритма имя_алгоритма ( описание_параметров) · дано условие_применимости_алгоритма · надо цель_выполнения_ алгоритма нач · последовательность команд кон. Начало » Конспекты школьника » kumir » Вложенные циклы и условия.Теперь, когда понятно что необходимо делать, запишем алгоритм на КуМире. Вложенные циклы (цикл в цикле).Удалив символ |, мы тем самым указали Кумиру на то, что будем работать с исполнителем Робот. Если этого не сделать, то при написании программы мы столкнемся с ошибкой «Нет такого алгоритма». Кумир Решение по схеме 1.Ребят работаю в ворде и хочу вставить картинку но пишет что графический фильтр не справился с задачей кто знает что делать испробовала все метода в буфер обмена рукой перетаскивала в паинт. Описание: 1 урок Простейший алгоритм. Откройте программу Кумир Рис.1 Рис.1 Используя из строки меню Программа→Открыть программу→1 Пример.kum в поле алгоритма появится 1 пример Рис.2 Рис.2. Общее. Алгоритмизация в среде КУМир. Авторы: Удалова Т.Л., Новикова Е.Ю.Вложенные циклы. Рисование узоров Лекция. Задание 4. Создать алгоритм рисования узора. Алгоритм на языке КуМир записывается так: алг тип_алгоритма имя_алгоритма ( описание_параметров) · дано условие_применимости_алгоритма · надоПримеры слов: бета123, 3кг, мама, Linux, КоСтЯ, kumir@infomir_ru. В языке КуМир есть специальные команды для организации программы с циклическим алгоритмом.да. Если одна циклическая конструкция находится внутри другой, то такое построение называется вложенными циклами. Алгоритм на Кумире для исполнителя РоботСпособы записи алгоритмов. • Словесное описание. • Запись по шагам.Петя решил сделать алгоритм более понятным и не использовать вложенные команды если. Описания обстановок хранятся в текстовых файлах специального формата (формат.fil).В системе КУМИР вспомогательные алгоритмы пишутся в конце основной программы (после служебногоПри исполнении алгоритма Робот не должен разрушиться. В 1103_ГИА_2011. Переменные, с которыми работает КуМир-программа, подразделяются на несколько типов.Есть два варианта реализации этого алгоритма – без применения составных условий, но при этом надо вкладывать ветвление друг в друга, и с применением составных условий. .su. Язык и система программирования КуМир. В 1985 г. академик А.П. Ершов придумал похожий на Алгол.Национальная лексика и простота. Чтобы составить программу, нужно: • продумать алгоритм, • записать его на некотором (изученном). * КуМир = Комплект Учебных МИРов * Кумир: Водолей * Задача «A+B» C:= * Кумир: автоматическая проверка вызвать алгоритм «A плюс B» передать ему исходные данные получить результат Варианты обмена данными: глобальные переменныеВложенные циклы. Методы алгоритмизации. Рекуррентные соотношения. Метод итерации. Инвариант цикла.18/2009. Лекция 2. Практическое знакомство с системой “КуМир”: исполнитель Робот. Понятие алгоритма. используя вложенные циклы.используйте описание функции для вычисления факториала(н) и С(н,к).Вычислительные алгоритмы в среде Кумир Подготовлено по материалам учебника И.Г.Семакина «Информатика и ИКТ» 9 класс. Ниже мы будем обсуждать только те понятия, конструкции и команды школьного языка и системы КуМир, которые нужны при решении задач типа С2-С3. В частности, все программы ниже будут состоять из одного алгоритма без параметров. Предварительный просмотр: Методическая разработка по информатике. Тема: «Исполнитель Робот в программе КуМир на уроках информатики ».понимать описания алгоритмов на учебном алгоритмическом языке Алгоритмический язык КуМир. Слайд №2. Содержание Интерфейс окна программы Линейный алгоритм Структуры «Ветвление» Одномерный массив.Описание одномерного массива нач. цел N=20. цел таб a[1:N], b[1:N] …

Содержание

  1. Описания простых величин
  2. Описания таблиц
  3. Область действия описаний
  4. Знакомство с языком и системой КуМир путем решения задач С2
  5. Типы величин
  6. Понятие «слово»
  7. Ключевые слова
  8. Особенности имен в языке КуМир
  9. Вопросы для самопроверки

Перед использованием в КуМир-программе каждую величину необходимо описать, то есть задать величине статические характеристики: имя, тип и вид.

Рассмотрим способы описания простых и табличных величин.

Описания простых величин

Для описания простых величин используется команда описания, состоящая из ключевого слова необходимого типа ( цел , вещ , сим , лит , лог ), после которого следует имя (или список имен) величины. Например,

  • цел длина, ширина
  • лит примечание

В приведенном примере в первом случае описываются две величины целого типа длина и ширина , следующая команда описывает величину диагональ , которой присваивается вещественный тип и в последнем случае величина примечание получает литерный тип.

Описания таблиц

В описании таблиц после описания типа используется ключевое слово таб (может записываться слитно или раздельно с ключевым словом типа), затем, для каждой величины указываются размерность таблицы и диапазон изменения индексов. Например,

  • вещтаб рост[1: 10]
  • цел таб классы [1:4, 1:11]

В первой строке описывается таблица рост , состоящая из 10 элементов вещественного типа. Индексы элементов этой таблицы принимают значения от 1 до 10.

Во второй строке описывается двумерная (4 строки и 11 столбцов) таблица классы , в которой 44 элемента.

Область действия описаний

Область действия описания величины в программе (часть программы, в которой допустимо использовать данную величину) определяется способом ее описания.

Если описание величины произошло во вступлении к программе, то ее можно использовать в любой части этой программы.

Если величина описана в теле алгоритма, то ее можно использовать после места описания только в теле этого алгоритма.

  • цел длина, ширина
  • алг
  • нач
  • Команды алгоритма
  • вещ диагональ
  • | Область действия описания величины диагональ
  • кон

Величины длина и ширина описаны во вступлении, поэтому их можно использовать в любой части не только основного алгоритма, но и любом другом алгоритме этой программы. Величина диагональ описана в теле алгоритма, значит, область действия ее описания только часть алгоритма после описания.

Copyright © 2014-2021, Урок информатики
Все права защищены

Источник

Знакомство с языком и системой КуМир путем решения задач С2

Знакомство с языком и системой КуМир путем решения задач С2

Настоящая короткая инструкция адресована читателям, имеющим практический опыт решения нескольких десятков простейших задач по программированию на каком-нибудь языке программирования.

Предполагается, что читатель хочет с минимальными затратами времени научиться решать на школьном алгоритмическом языке в системе КуМир, задачи, подобные задачам С2-С6 демоверсии компьютеризированного ЕГЭ. Эта демоверсия опубликована на сайте МИОО: На том же сайте сказано, как загрузить систему КуМир (версия для ЕГЭ) для операционных систем типа MS Windows и Linux . Ниже мы будем обсуждать только те понятия, конструкции и команды школьного языка и системы КуМир, которые нужны при решении задач типа С2-С3. В частности, все программы ниже будут состоять из одного алгоритма без параметров. В условиях задач С2-С6 не предусмотрена какая-либо работа с файлами. Предписывается вводить информацию с клавиатуры и выводить ее на экран. Дополнительно требуется, чтобы каждая порция вводимой или выводимой информации размещалась на отдельной строке и обрабатывалась одной командой ввод или вывод .

Вывод значения величины х в отдельную строку производится в командой

где нс означает н овая с трока.

Ввод значения величины х производится командой

по этой команде в окне ввода/вывода подсвечивается строка, в которую будет направлено эхо ввода и система КуМир ожидает посимвольного ввода значения величины, завершаемого нажатием клавиши Enter .

Итак, загружаем КуМир и, согласно инструкции, запускаем версию КуМира для ЕГЭ. Мы увидим следующую картинку.

В верхней строке с иконками команд, правее крестика, должно быть пусто. Если правее крестика Вы увидели три желто-зеленые иконки, то Вы запустили полный КуМир, с Роботом и Чертежником, которые Вам не нужны. Перечитайте инструкцию и запустите версию КуМир для ЕГЭ. Размеры трех областей, которые мы видим при первом появлении окна КуМира на экране, для задач С2-С6 неудобны. Их нужно изменить. Для этого нужно «схватить» мышкой нижний край окна (под словом Редактирование) и уменьшить высоту окна, затем «схватить» мышкой правый край окна и уменьшить ширину и наконец, нужно подвинуть границы между тремя областями окна так, чтобы получилась картинка примерно такой формы и размера:

Начнем с задачи С2, в которой нужно подсчитать количество различных значений среди модулей трех введенных с клавиатуры целых чисел a , b , c .

Условие и решение задачи C 2

С2. Составить программу, которая вводит с клавиатуры три целых числа a, b,c (каждое число – отдельной командой «ввод»), заменяет каждое из этих чисел на его модуль и выводит на экран количество различных среди полученных трех чисел. Ничего, кроме этого количества, программа выводить не должна. Например, если все числа равны, программа должна выводить число 1 . При использовании системы Fr ee Pascal для представления целых чисел используйте тип LongInt .

Указание. Модуль целого числа можно вычислить следующим образом:

Пояснение. Ответом в этой задаче является программа, записанная на школьном алгоритмическом языке или языке Free Pascal. Эта программа должна быть подготовлена и проверена в среде программирования КуМир или Free Pascal и сохранена в одном файле средствами среды программирования. Далее этот файл должен быть загружен в экзаменационную работу средствами системы КТС ЕГЭ.
Не забудьте загрузить в Вашу экзаменационную работу файл с подготовленной Вами программой.

Важное замечание. В КуМире имена переменных можно писать русскими буквами, а можно и латинскими. Какой способ удобнее? При решении задач С2-С6 удобнее всего установить латинский нижний регистр и давать переменным однобуквенные имена, тем более, что в условиях задач уже используются имена: a , b , c , n . Чтобы поменьше переключать регистр при наборе ключевых слов на русском языке, используйте клавишу Alt: пока эта клавиша удерживается в нажатом положении, текущий латинский регистр становится русским (и наоборот).

Алгоритм решения задачи С2 назовем С2 (заглавная латинская буква С). КуМир для ЕГЭ настроен так, что латинские буквы в именах изображаются курсивом, поэтому в тексте программы латинские буквы можно отличить от схожих по начертанию русских. Сохранять программу будем в файле C 2.kum

Начнем составление алгоритма. В начале алгоритма, после слова нач, опишем целые переменные a , b , c

далее напишем команды ввода значения этих переменных с клавиатуры. Как требуется в условии задачи, каждое значение введем отдельной командой:

Далее, следуя указанию по программированию из условия задачи, добавим команды, заменяющие каждое число на его модуль, и выполним получившуюся программу, нажав клавишу F9

В окне ввода/вывода внизу появляется желтая строка, в которую будет производиться ввод цифр первого числа. В нижней части обрамления окна система выводит сообщение Ожидается ввод: цел. Ввод цифр целого числа должен быть завершен нажатием клавиши Enter . Введем единственую цифру первого числа 1 и нажмем клавишу Enter , аналогочно введем числа -1 и 2. Программа завершит работу:

На полях программы, справа от ее текста, система КуМир показывает результаты выполнения команд ввод в строках 3,4,5 и результаты присваиваний в строках 6,7,8. И на полях строк 3,4,5 и в окне ввода/вывода видно, что были введены три числа 1 -1 2 . Однако на полях строк 6,7,8 почему-то показано, что все три числа стали равны 1 . Почему же число c оказалось равным 1 , а не 2 ? «Элементарно, Ватсон»: на место строки 8 мы скопировали строку 6, собираясь затем поменять в ней в двух местах букву a на букву c . После этого мы изменили первую букву а , но забыли изменить вторую и получилась ошибочная команда

Исправим эту ошибку и попробуем дописать в конец алгоритма команду, вычисляющую количество различных среди чисел a , b :

Технические замечания. 1) Хотя в меню вставка есть макрокоманды по вставке управляющих конструкций, в данном случае удобнее набрать ключевые слова конструкции вручную, разместив их в одной строке.

2) В процессе редактировании строки, до момента окончания редактирования строки, КуМир не производит перепроверку программы. Эта перепроверка запускается после «покидания» строки курсором.

Уводим курсор из редактируемой строки номер 9 и смотрим, что получилось. КуМир сообщает, что в строке 9 найдены три ошибки типа «Величина или алгоритм не описаны»:

Какие именно величины не описаны, показано в строке 9 тремя красными подчеркиваниями. Во-первых, подчеркнута, русская буква а, ее нужно исправить на латинскую а. Кроме того, мы забыли описать величину k .

Исправляем эти ошибки и пока [1] КуМир переразбирает программу, думаем, что еще осталось сделать. Величина k показывает, сколько различных среди первых двух чисел a и b . Сравним третье число c числом а, затем с числом b . Если c не совпадает ни с a ни с b , то при переходе от набора чисел

a b к набору a b c количество различных чисел увеличивается на 1. Если же число c совпадает с одним из первых двух чисел, то добавление числа c к набору a b количества различных чисел не меняет. Эти длинные словесные объяснения записываются в алгоритме очень коротко:

Для завершения программы осталось вывести вычисленный ответ k в отдельной строке вывод k , нс:

Запустив программу для входных данных 1 1 1 , получим правильный ответ 1:

Запуская программу еще на нескольких наборах входных данных, убеждаемся, что она работает правильно:

Убедившись в правильности программы, необходимо сохранить ее, а затем включить файл C 2. kum в экзаменационную работу средствами системы КТС ЕГЭ.

[1] Для коротенькой программы переразбор происходит мгновенно. Для очень длинной программы на не очень новом компьютере переразбор может занять несколько секунд. Зеленый сигнал светофора показывает, что переразбор закончен. Для коротких программ на светофор можно не обращать внимания.

Источник

Величины в языке Кумир принято делить на переменные и постоянные.

Постоянной называется величина, значение которой указывается в тексте программы (например, 10 ; 3.14 ; и т. д.) и не меняется в процессе исполнения алгоритма.

Переменной называется величина, значение которой может меняться в процессе исполнения алгоритма.

Каждая переменная величина, используемая в алгоритме на языке КуМир, должна иметь имя, тип, вид и значение .

Имя величины используется для ее идентификации в алгоритме.

Тип величины показывает диапазон ее допустимых значений и операции, которые можно с ней выполнять.

Вид величины определяет информационную роль, которую величина играет в алгоритме. Например, для хранения текущих расчетов используются промежуточные величины.

Имя, тип и вид величины являются статическими характеристиками, которые можно определить по тексту алгоритма.

В каждый момент выполнения Кумир-программы величина может иметь некоторое конкретное значение или быть неопределенной. Значение является динамической характеристикой величины поскольку может быть определено только во время выполнения алгоритма.

Типы величин

Как и в любом языке программирования в Кумире существует несколько типов величин. Рассмотрим классификацию типов и возможные диапазоны их значений.

  • цел – целый тип, диапазон допустимых значений лежит в пределах от -(МАКСЦЕЛ+1) до МАКСЦЕЛ, где МАКСЦЕЛ = 2147483647 ;
  • вещ – вещественный тип, диапазон допустимых значений лежит в пределах от -МАКСВЕЩ до МАКСВЕЩ, где МАКСВЕЩ – это число, немного меньшее, чем 1.797693×10 308 ;

Величины МАКСЦЕЛ и МАКСВЕЩ определяются способом представления чисел в памяти компьютеров и в большинстве современных языков программирования имеют примерно одинаковые значения.

Вещественные значения можно преобразовать к целым с помощью встроенной функции int , например:

  • вещ а = 10.8; цел в
  • в := int(а)
  • вывод в
  • сим – символьный тип, значением может быть любой литеральный символ;
  • лит – значением может быть строка литеральных символов.

Встроенные функции языка Кумир позволяют преобразовать числовые типы в текстовые и наоборот.

  • лог – может принимать значения да или нет .

В языке программирования Кумир используются простые и табличные величины.

Copyright © 2014-2021, Урок информатики
Все права защищены

Источник

Прежде чем переходить к определению имени в языке КуМир рассмотрим понятия «слово» и «ключевые слова».

Понятие «слово»

Слово в языке КуМир представляет собой последовательность разрешенных (словарных) символов . К словарным символам относятся:

  • буквы (кириллические и латинские, прописные и строчные);
  • цифры;
  • два специальных знака: @ _.

Примеры допустимых слов: длина, сумма1, 3кг, MacOS, admin@mail_ru

Примеры недопустимых слов: альфа-123, а%в, С++

Ключевые слова

Ключевые слова — это слова, которые имеют специальное значение в языке программирования . В языке КуМир к зарезервированным словам относятся

  • алг, нач, кон, исп, кон_исп, дано, надо, арг, рез, аргрез, знач, цел, вещ, лог, сим, лит, таб, целтаб, вещтаб, логтаб, литтаб, и, или, не, да, нет, утв, выход, ввод, вывод, нс, если, то, иначе, все, выбор, при, нц, кц, кц_при, раз, пока, для, от, до, шаг.

Особенности имен в языке КуМир

Имя в языке Кумир – это слово или последовательность слов, которые могут, разделяться пробелами . Первое слово в имени не может начинаться с цифры. Запрещается использовать в именах ключевые слова.

Имена в Кумире могут быть присвоены величинам, таблицам, алгоритмам и исполнителям.

Примеры допустимых имен: m, периметр, площадь квадрата, Сумма10, Класс_10

Примеры недопустимых имен: 1S, а&в

Исключение: ключевое слово не можно использовать в Кумир-программе не более одного раза в отрицаниях логических величин, таблиц и алгоритмов функций между словами многословного имени. Например,

  • лог А, пятый урок история = да
  • А := не пятый урок история
  • А := пятый не урок история
  • А := пятый урок не история

Вопросы для самопроверки

  1. Какие символы относятся к словарным символам в языке Кумир?
  2. Что представляет собой слово в Кумире?
  3. Какие слова называются ключевыми?
  4. Какими особенностями обладает имя в языке Кумир?

Copyright © 2014-2021, Урок информатики
Все права защищены

Источник

Вложенные циклы и ветвления в системе
КУМИР

Одним
из фундаментальных понятий в информатике является понятие алгоритма.
Происхождение самого термина «алгоритм» связано с математикой. Это слово
происходит от Algorithmi – латинского написания имени Мухаммеда аль-Хорезми
(787 – 850) выдающегося математика средневекового Востока. В своей книге
«Об индийском счете» он сформулировал правила записи натуральных
чисел с помощью арабских цифр и правила действий над ними столбиком.

 В
дальнейшем алгоритмом стали называть точное предписание, определяющее
последовательность действий, обеспечивающую получение требуемого результата из
исходных данных.

 Алгоритм
может быть предназначен для выполнения его человеком или автоматическим
устройством. Создание алгоритма, пусть даже самого простого, — процесс
творческий. Он доступен исключительно живым существам, а долгое время
считалось, что только человеку. В XII в. был выполнен латинский перевод его
математического трактата, из которого европейцы узнали о десятичной позиционной
системе счисления и правилах арифметики многозначных чисел. Именно эти правила
в то время называли алгоритмами.

Данное
выше определение алгоритма нельзя считать строгим – не вполне ясно, что такое
«точное предписание» или «последовательность действий, обеспечивающая получение
требуемого результата». Поэтому обычно формулируют несколько общих свойств
алгоритмов, позволяющих отличать алгоритмы от других инструкций.

Такими
свойствами являются:

 • Дискретность
(прерывность, раздельность) – алгоритм должен представлять процесс решения
задачи как последовательное выполнение простых (или ранее определенных) шагов.
Каждое действие, предусмотренное алгоритмом, исполняется только после того, как
закончилось исполнение предыдущего.

Определенность
– каждое правило алгоритма должно быть четким, однозначным и не оставлять места
для произвола. Благодаря этому свойству выполнение алгоритма носит механический
характер и не требует никаких дополнительных указаний или сведений о решаемой
задаче.

Результативность
(конечность) – алгоритм должен приводить к решению задачи за конечное число
шагов.

Массовость
– алгоритм решения задачи разрабатывается в общем виде, то есть, он должен быть
применим для некоторого класса задач, различающихся только исходными данными.
При этом исходные данные могут выбираться из некоторой области, которая
называется областью применимости алгоритма.

Способы записи алгоритмов

Для
записи алгоритмов используют самые разнообразные средства. Выбор средства
определяется типом исполняемого алгоритма.

 Выделяют
следующие основные способы записи алгоритмов:

вербальный,
 когда алгоритм описывается на человеческом  (естественном)  языке.
Естественными являются национальные языки (русский, английский, немецкий и
т.д.);

символьный,
когда алгоритм описывается с помощью набора символов и является программой (программы
пишутся с помощью языков программирования);


графический
,
когда алгоритм описывается с помощью набора графических изображений (блок-схема).

Общепринятыми
способами записи являются графическая запись с помощью блок-схем и символьная
запись
с помощью какого-либо алгоритмического языка — программа.

При
графическом способе записи составляются блок-схемы , на которых с помощью
условных обозначений  (геометрических фигур) обозначаются различные части
алгоритма. Элементы блок-схем представлены на рисунке.

Система программирования КУМИР

При
освоении  темы алгоритмы воспользуемся системой программирования КУМИР.

КуМир 
(Комплект Учебных МИРов) — система программирования, предназначенная для
поддержки начальных курсов информатики и программирования в средней и высшей
школе.

В
системе КуМир используется школьный алгоритмический язык с русской лексикой и
встроенными исполнителями Робот и Чертёжник и др.

При
вводе программы КуМир осуществляет постоянный полный контроль ее правильности,
сообщая на полях программы обо  всех обнаруженных ошибках.

 При
выполнении программы в пошаговом режиме КуМир выводит на поля результаты
операций присваивания и значения логических выражений. Это позволяет ускорить
процесс освоения азов программирования.

Графический исполнитель  Робот

Графический исполнитель  Робот  позволяет  освоить  азы
программирования  и понять  работу основных  алгоритмических конструкций.

Графический исполнитель — это объект управления. А управлять им будем мы с
вами.

Исполнитель робот находится в некоторой стартовой 
обстановке
– прямоугольном поле, разбитом на клетки, между которыми могут
стоять стены.

Робот может перемещаться по полю, обходя
стены и закрашивать клетки. Робот не может пройти сквозь стену, но может
проверять есть ли рядом с ним стена. Робот не может выйти за пределы
прямоугольника, ограничивающего поле.

Выноска 2: Стены
Выноска 2: Робот

Робот
может выполнять команды
: вверх, вниз, вправо,
влево, закрасить.

Робот может проверять
условия
: сверху свободно, снизу свободно,
справа свободно, слева свободно, добавление частицы
не меняет условие на противоположное. Не сверху свободно, не снизу свободно, не справа свободно,  не слева
свободно.

Базовые алгоритмические структуры

—  Выделяют три базовые алгоритмические
структуры (конструкции) —линейная (следование), ветвление и цикл, из
которых можно построить любой алгоритм. Каждая алгоритмическая структура
имеет одну точку входа и одну точку выхода.

—  Будем записывать алгоритмы на и
школьном  АЯ и в виде блок-схем.

Линейная структура

Линейная
структура
является
самой простой организацией алгоритмов — команды выполняются последовательно
одна за другой

Пример:

использовать Робот
алг квадрат
нач
. закрасить
. вправо
. закрасить
. вниз
. закрасить
. влево
. закрасить
.
кон

Циклическая структура (цикл)

—  Циклическая структура (цикл) обеспечивает многократное
выполнение одних и тех же команд. Существует несколько разновидностей
циклических структур.

—  Любая циклическая структура состоит
из двух частей — заголовка и тела цикла.

—  Набор команд, повторяющихся при
выполнении цикла, называют телом цикла.

—   Заголовок определяет количество повторений тела
цикла.

Цикл на число повторений (раз)

(запись в алгоритмическом языке)

нц N раз

<команда>

кц

 Пример:       

использовать Робот
алг  столбик

нач
. нц 5 раз
. . закрасить
. . вверх
. кц

кон

Цикл с предусловием (пока)

(запись в алгоритмическом языке)

нц пока <условие>

<команда>

кц

Пример:                                                      

использовать Робот
алг Линия

нач

нц пока сверху свободно
                 закрасить
                 вверх
               кц

кон

Цикл с постусловием (при)

(запись в алгоритмическом языке)

нц

<команда>

кц_при <условие>

Пример:

использовать Робот
алг Линия

нач
нц

   
закрасить; вверх                                                                                           

   
кц_при слева свободно 

 кон

Структура «ветвление».

—  Структура «ветвление». Решение некоторых задач
требует различных действий в зависимости от выполнения некоторых условий. В
таких случаях говорят о ветвлении алгоритма.

—  Для реализации структуры «ветвление»
используются две структурированные команды  школьного АЯ — если и выбор, каждая
из которых может быть полной и неполной.

—  В блок-схемах и школьном АЯ
<условие> — это логическое выражение, результатом которого может быть
одно из двух возможных значений — истина или ложь. В школьном АЯ
эти значения записывают как  да и нет. В языках программирования часто
используются значения
True и False. В компьютере эти значения хранятся
как 1 и 0.

Полное ветвление

(запись в алгоритмическом языке)

если <условие>
. . то <команда1>
. . иначе <команда2>
все

Пример:

использовать Робот
алг ветвление_полное

нач
. если сверху свободно
. . то вверх
. . иначе вниз
. все

кон

Неполное ветвление

(запись в алгоритмическом языке)

если <условие>
. . то <команда1>
все

Пример:                                                                                  

использовать Робот
алг ветвление_неполное

нач
. если сверху свободно
. . то вверх
. все

кон

Вспомогательный алгоритм
(процедура)

—  Алгоритм по которому решается
некоторая подзадача из основной задачи и который, как правило выполняется
многократно, называется  вспомогательным алгоритмом.

—  Вспомогательный алгоритм, записанный
на языке программирования, называется подпрограммой или процедурой.

—  Вспомогательный алгоритм  вызывается
из основной программы  через имя. Вспомогательный алгоритм записывается после
основного алгоритма. У вспомогательного алгоритма обязательно должно быть имя.

использовать Робот
алг  
нач
 вниз

        
квадрат
         вниз

вниз
кон

алг квадрат
нач

закрасить

вправо

закрасить

вниз

закрасить

влево

закрасить
кон

Вложенные циклы и ветвления

При
решении некоторых задач с роботом необходимо использовать вложенные циклы или
ветвления.

Цикл
называется вложенным, если он размещается внутри другого цикла.

Рассмотрим
вложенный цикл  на примере цикла пока.

Мы
знаем, что цикл состоит из заголовка цикла, который определяет количество
повторений тела цикла .

Тело
цикла, это та часть  цикла, которая повторяется при выполнении цикла.

Телом
цикла может быть команда, несколько команд, а также другой цикл или ветвление.

В
том случае, когда телом цикла является другой цикл или ветвление, они
называются вложенными.

Вложенный цикл

На
первом проходе, внешний цикл вызывает внутренний, который исполняется до своего
завершения, после чего управление передается в тело внешнего цикла. На втором
проходе внешний цикл опять вызывает внутренний. И так до тех пор, пока не
завершится внешний цикл.

Вложенное ветвление

Рассмотрим решение задачи с вложенными ветвлениями и циклами:

Задача
1
  Робот
находится на стене, в которой есть  отверстия, двигаясь вдоль стены вправо,
робот должен закрашивать все клеточки, где есть отверстия.

использовать Робот
алг
нач
. нц пока
справа
свободно
  нц пока снизу свободно
.закрасить;
вправо
. . кц
. . вправо
. кц
кон

Составим
алгоритм решения задачи с вне6шим циклом пока и вложенным циклом пока.

использовать Робот
алг
нач
. нц пока
справа свободно
. . если снизу свободно
. . . то закрасить; вправо
. . . иначе вправо
. . все
. кц
кон

Решим
эту же задачу, используя внешний цикл пока и вложенное ветвление.

использовать Робот
алг
нач
. нц
. . вправо
. . нц пока
снизу свободно
. . . закрасить;
вправо
. . кц
. кц при не
справа свободно
кон

Решим
эту же задачу с помощью внешнего цикла при и вложенного цикла пока.

Хирьянов Тимофей Федорович

Алгоритм на языке КуМир записывается так:

алг тип_алгоритма имя_алгоритма (описание аргументов и результатов)
  дано условие_применимости_алгоритма
  надо цель_выполнения_алгоритма
нач
  последовательность команд
кон

Описание алгоритма состоит из:

  • заголовка (часть до служебного слова нач),
  • тела алгоритма (часть между словами нач и кон).

Части «дано», «надо», а также «тип алгоритма» и «описание аргументов и результатов» могут отсутствовать.

Простейшие алгоритмы

Рассмотрим следующий вспомогательный алгоритм для исполнителя Чертежник.

алг квадрат
нач
  опустить перо
  сместиться на вектор(0,2)
  сместиться на вектор(2,0)
  сместиться на вектор(0,-2)
  сместиться на вектор(-2,0)
  поднять перо
кон

Он позволяет нарисовать квадрат 2х2 (начиная с левого нижнего угла). Для этого нужно использовать в основной программе команду вызова вспомогательного алгоритма, которая будет иметь вид:

квадрат

Алгоритмы с аргументами

Для того, чтобы рисовать квадраты разных размеров, можно использовать алгоритм с аргументами.

алг квадрат (арг вещ а)
нач
  опустить перо
  сместиться на вектор(0, а)
  сместиться на вектор(а, 0)
  сместиться на вектор(0, -а)
  сместиться на вектор(-а, 0)
  поднять перо
кон

Слово арг означает, что у алгоритма есть аргумент (а), а вещ — то, что этот аргумент имеет вещественный тип. Команда вызова такого алгоритма может иметь вид

квадрат(2)

(в этом случае будет нарисован квадрат 2×2) или, например,

квадрат(5)

(в этом случае будет нарисован квадрат 5×5).

Алгоритмы с результатами

Алгоритм может не только получать информацию, но и отдавать ее. Для этого используется специальный вид величины — результаты.

алг гипотенуза (вещ a, b, рез вещ c)
  дано a >= 0 и b >= 0 | длины катетов треугольника
  надо | c = длинa гипотенузы этого треугольника
нач
  c := sqrt(a ** 2 + b ** 2)
кон

Здесь служебное слово рез указывает на то, что
величина c является результатом и ее значение будет меняться в процессе
работы алгоритма. Например, после вызова

гипотенуза(3, 4, c)

величина c примет значение 5.

Алгоритмы-процедуры и алгоритмы-функции

Рассмотренные выше примеры являются алгоритмами-процедурами. В Кумире также существуют алгоритмы-функции. Алгоритм-функция после выполнения возвращает значение-результат.
Правила описания алгоритмов-процедур и алгоритмов-функций имеют два отличия.
Во-первых, для алгоритмов-функций на месте тип_алгоритма
должен быть указан один из простых типов алгоритмического языка (вещ,
цел и т.д.), определяющий тип значений, которые возвращает данная
функция.
Во-вторых, в теле алгоритма-функции необходимо использовать служебную величину знач,
которой присваивается вычисленное значение функции. Ее описанием служит
заголовок алгоритма, но в остальном величина знач используется так же,
как и любая другая промежуточная величина. (В теле алгоритма-процедуры
величину знач использовать нельзя.)
Вызов алгоритма-процедуры является отдельной командой алгоритмического языка и имеет вид:

имя_алгоритма-процедуры

или

имя_алгоритма-процедуры (список_параметров_вызова)

Вызов алгоритма-функции производится путем указания его имени в выражении. Встретив это имя при вычислении выражения, КуМир выполняет алгоритм-функцию.

алг вещ площадь (вещ a, b, c)
  дано a >= 0 и b >= 0 и c >= 0 | длины сторон треугольника
  надо | значение функции равно площади этого треугольника
нач
  вещ p | полупериметр
  p := (a + b + c) / 2
  знач := sqrt(p * (p — a) * (p — b) *  (p — c))
кон

Использовать этот алгоритм в программе можно, например, так:

алг
нач вещ P
  P := площадь(3, 4, 4)
кон

или так:

если площадь(a, b, c) > 10
  то
    …
все

 Система подготовки обучающихся к ОГЭ по информатике на примере решения задач по алгоритмизации в среде «КУМИР»  Гребнева Татьяна Васильевна,  учитель информатики МБОУ г. Мурманска СОШ № 33

Система подготовки обучающихся к ОГЭ по информатике на примере решения задач по алгоритмизации в среде «КУМИР»

Гребнева Татьяна Васильевна,

учитель информатики

МБОУ г. Мурманска СОШ № 33

Задание 15.1  Разработка алгоритма для учебного исполнителя «Робот»

Задание 15.1 Разработка алгоритма для учебного исполнителя «Робот»

Задание 15.1 Традиционно заключается в разработке алгоритма для учебного исполнителя «Робот». Описание команд исполнителя и синтаксиса управляющих конструкций соответствует общепринятому школьному алгоритмическому языку, также оно дано в тексте задания. Формулировке задания предшествует описание команд исполнителя и синтаксиса записи алгоритмических конструкций ветвления и цикла, поэтому задание может быть выполнено даже теми школьниками, которые не знакомы с используемым синтаксисом языка, но владеют основами алгоритмизации. На бесконечном поле имеются стены, которые робот должен обойти, закрасить нужные клетки и не разбиться. Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера поля и любого допустимого расположения стен внутри прямоугольного поля. При исполнении алгоритма Робот не должен разрушиться. Учащиеся записывают алгоритм в текстовом редакторе и сохраняют в текстовом файле.

Задание 15.1

  • Традиционно заключается в разработке алгоритма для учебного исполнителя «Робот». Описание команд исполнителя и синтаксиса управляющих конструкций соответствует общепринятому школьному алгоритмическому языку, также оно дано в тексте задания.
  • Формулировке задания предшествует описание команд исполнителя и синтаксиса записи алгоритмических конструкций ветвления и цикла, поэтому задание может быть выполнено даже теми школьниками, которые не знакомы с используемым синтаксисом языка, но владеют основами алгоритмизации.
  • На бесконечном поле имеются стены, которые робот должен обойти, закрасить нужные клетки и не разбиться. Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера поля и любого допустимого расположения стен внутри прямоугольного поля. При исполнении алгоритма Робот не должен разрушиться.
  • Учащиеся записывают алгоритм в текстовом редакторе и сохраняют в текстовом файле.

Основные ошибки при выполнении задания 15.1 Представленные алгоритмы решения работают только в частных случаях. Использование цикла «n раз» вместо цикла «пока». Использование конструкций ветвления вместо конструкции цикла. Представлены линейные алгоритмы решения. Происходит «зацикливание» (алгоритм не завершается). Закрашены лишние клетки. Закрашена лишняя клетка / Не закрашена нужная клетка. Столкновение со стеной (Робот разбивается). Алгоритм содержит бесконечные циклы. Некорректное использование операторов цикла – отсутствует начало цикла (НЦ) или конец цикла (КЦ).

Основные ошибки при выполнении задания 15.1

  • Представленные алгоритмы решения работают только в частных случаях.
  • Использование цикла «n раз» вместо цикла «пока».
  • Использование конструкций ветвления вместо конструкции цикла.
  • Представлены линейные алгоритмы решения.
  • Происходит «зацикливание» (алгоритм не завершается).
  • Закрашены лишние клетки.
  • Закрашена лишняя клетка / Не закрашена нужная клетка.
  • Столкновение со стеной (Робот разбивается).
  • Алгоритм содержит бесконечные циклы.
  • Некорректное использование операторов цикла – отсутствует начало цикла (НЦ) или конец цикла (КЦ).

Проблема Большая часть затруднений учащихся связана с недостаточностью умений смыслового чтения : представленные алгоритмы решения работают только при конкретных размерах коридора; робот закрашивает клетки, например, слева от стены, а не справа; алгоритм работает только для конкретной обстановки. По-прежнему учащиеся показывают недостаточные умения в использовании конструкции цикла «ПОКА» с условием : путают с конструкцией ветвления «ЕСЛИ» или неверно указывают условие выхода из цикла.

Проблема

Большая часть затруднений учащихся связана с недостаточностью умений смыслового чтения :

  • представленные алгоритмы решения работают только при конкретных размерах коридора;
  • робот закрашивает клетки, например, слева от стены, а не справа;
  • алгоритм работает только для конкретной обстановки.

По-прежнему учащиеся показывают недостаточные умения в использовании конструкции цикла «ПОКА» с условием :

  • путают с конструкцией ветвления «ЕСЛИ» или неверно указывают условие выхода из цикла.

Пример формулировки задания 15.1 На бесконечном поле есть горизонтальная и вертикальная стены. Правый конец горизонтальной стены соединён с нижним концом вертикальной стены. Длины стен неизвестны. В горизонтальной стене есть ровно один проход, точное место прохода и его ширина неизвестны. Робот находится в клетке, расположенной рядом с вертикальной стеной слева от её верхнего конца. На рисунке указан один из возможных способов расположения стен и Робота (Робот обозначен буквой «Р»).

Пример формулировки задания 15.1

На бесконечном поле есть горизонтальная и вертикальная стены. Правый конец горизонтальной стены соединён с нижним концом вертикальной стены. Длины стен неизвестны. В горизонтальной стене есть ровно один проход, точное место прохода и его ширина неизвестны. Робот находится в клетке, расположенной рядом с вертикальной стеной слева от её верхнего конца. На рисунке указан один из возможных способов расположения стен и Робота (Робот обозначен буквой «Р»).

Напишите для Робота алгоритм,  закрашивающий все клетки, расположенные непосредственно выше и ниже горизонтальной стены.  Проход должен остаться незакрашенным.  Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок).

Напишите для Робота алгоритм,

  • закрашивающий все клетки, расположенные непосредственно выше и ниже горизонтальной стены.
  • Проход должен остаться незакрашенным.
  • Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок).

Важно учитывать: При исполнении алгоритма Робот не должен разрушиться. Выполнение алгоритма должно завершиться . Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для любого допустимого расположения стен и любого расположения и размера прохода внутри стены. Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе.

Важно учитывать:

  • При исполнении алгоритма Робот не должен разрушиться.
  • Выполнение алгоритма должно завершиться .
  • Конечное расположение Робота может быть произвольным.
  • Алгоритм должен решать задачу для любого допустимого расположения стен и любого расположения и размера прохода внутри стены.
  • Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе.

Правильное решение:

Правильное решение:

Правильное решение:  Любое правильное решение этой задачи обязательно должно содержать не менее 7 циклов «пока», перемещающих робота вдоль стен.  Если такие циклы в алгоритме отсутствуют, то задание решено неверно и оценивается в 0 баллов.

Правильное решение:

  • Любое правильное решение этой задачи обязательно должно содержать не менее 7 циклов «пока», перемещающих робота вдоль стен.
  • Если такие циклы в алгоритме отсутствуют, то задание решено неверно и оценивается в 0 баллов.

Критерии оценивания:

Критерии оценивания:

Разбор возможных ошибок

Разбор возможных ошибок

Ошибка № 1 :  ширина прохода ровно      1 клетка  За такое решение: 0 баллов .

Ошибка № 1 : ширина прохода ровно 1 клетка

За такое решение: 0 баллов .

Ошибка № 2 : цикл n раз  За такое решение: 0 баллов .

Ошибка № 2 : цикл n раз

За такое решение: 0 баллов .

Ошибка № 3 : ветвление вместо цикла  За такое решение: 0 баллов .

Ошибка № 3 : ветвление вместо цикла

За такое решение: 0 баллов .

Ошибка № 4 : линейный алгоритм  За такое решение: 0 баллов .

Ошибка № 4 : линейный алгоритм

За такое решение: 0 баллов .

Ошибка № 5 : Задача решена, но при возвращении в исходную позицию  произведена проверка препятствия сверху За такое решение: 0 баллов . Здесь надо помнить, что поле Робота бесконечно ! Поэтому произойдёт зацикливание последнего цикла. Если в условии задачи не указано конечное расположение Робота, а учащийся возвращает его в исходную позицию, то это за ошибку не считается (п ри условии корректной остановки).

Ошибка № 5 : Задача решена, но при возвращении в исходную позицию произведена проверка препятствия сверху

За такое решение: 0 баллов .

Здесь надо помнить, что поле Робота бесконечно !

Поэтому произойдёт зацикливание последнего цикла.

Если в условии задачи не указано конечное расположение Робота, а учащийся возвращает его в исходную позицию, то это за ошибку не считается (п ри условии корректной остановки).

Ошибка № 6 : Закрашены лишние клетки Здесь надо помнить, что по условию поле Робота бесконечно и ширина прохода может быть бесконечно большой ! Поэтому в результате увеличения ширины прохода будет закрашено более 10 клеток.  За такое решение: 0 баллов .

Ошибка № 6 : Закрашены лишние клетки

Здесь надо помнить, что по условию поле Робота бесконечно и ширина прохода может быть бесконечно большой !

Поэтому в результате увеличения ширины прохода будет закрашено более 10 клеток.

За такое решение: 0 баллов .

Ошибка № 7 :  Закрашена лишняя клетка/     Не закрашена нужная клетка Данное решение на 1 балл :  Робот не разбивается;  закрашено не более 10 лишних клеток;  не закрашено не более 10 клеток, которые должны быть закрашены.

Ошибка № 7 : Закрашена лишняя клетка/ Не закрашена нужная клетка

Данное решение на 1 балл :

  • Робот не разбивается;
  • закрашено не более 10 лишних клеток;
  • не закрашено не более 10 клеток, которые должны быть закрашены.

Ошибка № 8 : Столкновение со стеной ОШИБКА ВЫПОЛНЕНИЯ: Робот - нельзя сквозь стену ( 8061 )  За такое решение: 0 баллов .

Ошибка № 8 : Столкновение со стеной

ОШИБКА ВЫПОЛНЕНИЯ:

Робот — нельзя сквозь стену ( 8061 )

За такое решение: 0 баллов .

Правильное решение:

Правильное решение:

Рекомендации по проверке задания 15.1

Рекомендации по проверке задания 15.1

Задание 15.1 Представление в задании команд исполнителя и синтаксиса управляющих конструкций соответствует общепринятому школьному алгоритмическому языку. Использование свободно распространяемой среды учебного исполнителя, например, среду Кумир (сайт http:// www.niisi.ru/kumir ) или другую среду с аналогичными возможностями исполнителя «Робот». Синтаксис команд используемой среды может отличаться от синтаксиса, описанного в условии. Результатом выполнения является файл, подготовленный в среде учебного исполнителя , содержащий запись алгоритма, являющегося решением задания или  текстовый файл , содержащий запись алгоритма.

Задание 15.1

  • Представление в задании команд исполнителя и синтаксиса управляющих конструкций соответствует общепринятому школьному алгоритмическому языку.
  • Использование свободно распространяемой среды учебного исполнителя, например, среду Кумир (сайт http:// www.niisi.ru/kumir ) или другую среду с аналогичными возможностями исполнителя «Робот».
  • Синтаксис команд используемой среды может отличаться от синтаксиса, описанного в условии.
  • Результатом выполнения является файл, подготовленный в среде учебного исполнителя , содержащий запись алгоритма, являющегося решением задания или текстовый файл , содержащий запись алгоритма.

Рекомендации по оцениванию Завершает ли работу проверяемый алгоритм (то есть верно ли, что алгоритм не содержит бесконечных циклов)? Остается ли робот цел в результате исполнения алгоритма (то есть верно ли, что Робот не разрушается от столкновения со стеной)? Полностью ли Робот выполняет поставленную задачу, то есть закрашивает все требуемые клетки .  Если ответы утвердительные на все вопросы, то есть алгоритм всегда заканчивает свою роботу , Робот не разрушается  при исполнении алгоритма и полностью выполняет поставленную в условии задачу, то задание оценивается в 2 балла.

Рекомендации по оцениванию

  • Завершает ли работу проверяемый алгоритм (то есть верно ли, что алгоритм не содержит бесконечных циклов)?
  • Остается ли робот цел в результате исполнения алгоритма (то есть верно ли, что Робот не разрушается от столкновения со стеной)?
  • Полностью ли Робот выполняет поставленную задачу, то есть закрашивает все требуемые клетки .

Если ответы утвердительные на все вопросы, то есть алгоритм всегда заканчивает свою роботу , Робот не разрушается при исполнении алгоритма и полностью выполняет поставленную в условии задачу, то задание оценивается в 2 балла.

Источники Система программирования КуМир https://www.niisi.ru/kumir/books.htm К.Ю. Поляков Кумир для подготовки к ОГЭ. Практикум http://kpolyakov.spb.ru/school/kumir.htm Программирование в системе Кумир https://sites.google.com/site/fakultativinformatika/ Денис Кириенко (Архив с курсом заданий для практикума) http://server.179.ru/wiki/?page=DenisKirienko/Kumir https://server.179.ru/wiki/?show_files=1&page=Denis_Kirienko/Kumir#header-files Удалова Т.Л. (Варианты для Робота) http://licey.net/free/18-programmirovanie_na_yazyke_kumir/70-sistema_programmirovaniya_kumir.html «Информатика. Кумир» Удалова Т.Л. https://books.google.ru/books?id=CdAqevFDPa4C&printsec=frontcover&hl=ru#v=onepage&q&f=false

Источники

Система программирования КуМир

https://www.niisi.ru/kumir/books.htm

К.Ю. Поляков Кумир для подготовки к ОГЭ. Практикум

http://kpolyakov.spb.ru/school/kumir.htm

Программирование в системе Кумир

https://sites.google.com/site/fakultativinformatika/

Денис Кириенко (Архив с курсом заданий для практикума)

http://server.179.ru/wiki/?page=DenisKirienko/Kumir

https://server.179.ru/wiki/?show_files=1&page=Denis_Kirienko/Kumir#header-files

Удалова Т.Л. (Варианты для Робота)

http://licey.net/free/18-programmirovanie_na_yazyke_kumir/70-sistema_programmirovaniya_kumir.html

«Информатика. Кумир» Удалова Т.Л.

https://books.google.ru/books?id=CdAqevFDPa4C&printsec=frontcover&hl=ru#v=onepage&q&f=false

Описания величин в языке Кумир

Перед использованием в КуМир-программе каждую величину необходимо описать, то есть задать величине статические характеристики: имя, тип и вид.

Рассмотрим способы описания простых и табличных величин.

Описания простых величин

Для описания простых величин используется команда описания, состоящая из ключевого слова необходимого типа (цел, вещ, сим, лит, лог), после которого следует имя (или список имен) величины. Например,

  • цел длина, ширина
  • лит примечание

В приведенном примере в первом случае описываются две величины целого типа длина и ширина , следующая команда описывает величину диагональ , которой присваивается вещественный тип и в последнем случае величина примечание получает литерный тип.

Описания таблиц

В описании таблиц после описания типа используется ключевое слово таб (может записываться слитно или раздельно с ключевым словом типа), затем, для каждой величины указываются размерность таблицы и диапазон изменения индексов. Например,

  • вещтаб рост[1: 10]
  • цел таб классы [1:4, 1:11]

В первой строке описывается таблица рост, состоящая из 10 элементов вещественного типа. Индексы элементов этой таблицы принимают значения от 1 до 10.

Во второй строке описывается двумерная (4 строки и 11 столбцов) таблица классы, в которой 44 элемента.

Область действия описаний

Область действия описания величины в программе (часть программы, в которой допустимо использовать данную величину) определяется способом ее описания.

Если описание величины произошло во вступлении к программе, то ее можно использовать в любой части этой программы.

Если величина описана в теле алгоритма, то ее можно использовать после места описания только в теле этого алгоритма.

Рассмотрим пример:

  • цел длина, ширина
  • алг
  • нач
  • вещ диагональ
  • кон

Величины длина и ширина описаны во вступлении, поэтому их можно использовать в любой части не только основного алгоритма, но и любом другом алгоритме этой программы. Величина диагональ описана в теле алгоритма, значит, область действия ее описания только часть алгоритма после описания.

Вложенные циклы и ветвления в системе
КУМИР

Одним
из фундаментальных понятий в информатике является понятие алгоритма.
Происхождение самого термина «алгоритм» связано с математикой. Это слово
происходит от Algorithmi – латинского написания имени Мухаммеда аль-Хорезми
(787 – 850) выдающегося математика средневекового Востока. В своей книге
«Об индийском счете» он сформулировал правила записи натуральных
чисел с помощью арабских цифр и правила действий над ними столбиком.

 В
дальнейшем алгоритмом стали называть точное предписание, определяющее
последовательность действий, обеспечивающую получение требуемого результата из
исходных данных.

 Алгоритм
может быть предназначен для выполнения его человеком или автоматическим
устройством. Создание алгоритма, пусть даже самого простого, — процесс
творческий. Он доступен исключительно живым существам, а долгое время
считалось, что только человеку. В XII в. был выполнен латинский перевод его
математического трактата, из которого европейцы узнали о десятичной позиционной
системе счисления и правилах арифметики многозначных чисел. Именно эти правила
в то время называли алгоритмами.

Данное
выше определение алгоритма нельзя считать строгим – не вполне ясно, что такое
«точное предписание» или «последовательность действий, обеспечивающая получение
требуемого результата». Поэтому обычно формулируют несколько общих свойств
алгоритмов, позволяющих отличать алгоритмы от других инструкций.

Такими
свойствами являются:

 • Дискретность
(прерывность, раздельность) – алгоритм должен представлять процесс решения
задачи как последовательное выполнение простых (или ранее определенных) шагов.
Каждое действие, предусмотренное алгоритмом, исполняется только после того, как
закончилось исполнение предыдущего.

Определенность
– каждое правило алгоритма должно быть четким, однозначным и не оставлять места
для произвола. Благодаря этому свойству выполнение алгоритма носит механический
характер и не требует никаких дополнительных указаний или сведений о решаемой
задаче.

Результативность
(конечность) – алгоритм должен приводить к решению задачи за конечное число
шагов.

Массовость
– алгоритм решения задачи разрабатывается в общем виде, то есть, он должен быть
применим для некоторого класса задач, различающихся только исходными данными.
При этом исходные данные могут выбираться из некоторой области, которая
называется областью применимости алгоритма.

Способы записи алгоритмов

Для
записи алгоритмов используют самые разнообразные средства. Выбор средства
определяется типом исполняемого алгоритма.

 Выделяют
следующие основные способы записи алгоритмов:

вербальный,
 когда алгоритм описывается на человеческом  (естественном)  языке.
Естественными являются национальные языки (русский, английский, немецкий и
т.д.);

символьный,
когда алгоритм описывается с помощью набора символов и является программой (программы
пишутся с помощью языков программирования);


графический
,
когда алгоритм описывается с помощью набора графических изображений (блок-схема).

Общепринятыми
способами записи являются графическая запись с помощью блок-схем и символьная
запись
с помощью какого-либо алгоритмического языка — программа.

При
графическом способе записи составляются блок-схемы , на которых с помощью
условных обозначений  (геометрических фигур) обозначаются различные части
алгоритма. Элементы блок-схем представлены на рисунке.

Система программирования КУМИР

При
освоении  темы алгоритмы воспользуемся системой программирования КУМИР.

КуМир 
(Комплект Учебных МИРов) — система программирования, предназначенная для
поддержки начальных курсов информатики и программирования в средней и высшей
школе.

В
системе КуМир используется школьный алгоритмический язык с русской лексикой и
встроенными исполнителями Робот и Чертёжник и др.

При
вводе программы КуМир осуществляет постоянный полный контроль ее правильности,
сообщая на полях программы обо  всех обнаруженных ошибках.

 При
выполнении программы в пошаговом режиме КуМир выводит на поля результаты
операций присваивания и значения логических выражений. Это позволяет ускорить
процесс освоения азов программирования.

Графический исполнитель  Робот

Графический исполнитель  Робот  позволяет  освоить  азы
программирования  и понять  работу основных  алгоритмических конструкций.

Графический исполнитель — это объект управления. А управлять им будем мы с
вами.

Исполнитель робот находится в некоторой стартовой 
обстановке
– прямоугольном поле, разбитом на клетки, между которыми могут
стоять стены.

Робот может перемещаться по полю, обходя
стены и закрашивать клетки. Робот не может пройти сквозь стену, но может
проверять есть ли рядом с ним стена. Робот не может выйти за пределы
прямоугольника, ограничивающего поле.

Выноска 2: Стены
Выноска 2: Робот

Робот
может выполнять команды
: вверх, вниз, вправо,
влево, закрасить.

Робот может проверять
условия
: сверху свободно, снизу свободно,
справа свободно, слева свободно, добавление частицы
не меняет условие на противоположное. Не сверху свободно, не снизу свободно, не справа свободно,  не слева
свободно.

Базовые алгоритмические структуры

—  Выделяют три базовые алгоритмические
структуры (конструкции) —линейная (следование), ветвление и цикл, из
которых можно построить любой алгоритм. Каждая алгоритмическая структура
имеет одну точку входа и одну точку выхода.

—  Будем записывать алгоритмы на и
школьном  АЯ и в виде блок-схем.

Линейная структура

Линейная
структура
является
самой простой организацией алгоритмов — команды выполняются последовательно
одна за другой

Пример:

использовать Робот
алг квадрат
нач
. закрасить
. вправо
. закрасить
. вниз
. закрасить
. влево
. закрасить
.
кон

Циклическая структура (цикл)

—  Циклическая структура (цикл) обеспечивает многократное
выполнение одних и тех же команд. Существует несколько разновидностей
циклических структур.

—  Любая циклическая структура состоит
из двух частей — заголовка и тела цикла.

—  Набор команд, повторяющихся при
выполнении цикла, называют телом цикла.

—   Заголовок определяет количество повторений тела
цикла.

Цикл на число повторений (раз)

(запись в алгоритмическом языке)

нц N раз

<команда>

кц

 Пример:       

использовать Робот
алг  столбик

нач
. нц 5 раз
. . закрасить
. . вверх
. кц

кон

Цикл с предусловием (пока)

(запись в алгоритмическом языке)

нц пока <условие>

<команда>

кц

Пример:                                                      

использовать Робот
алг Линия

нач

нц пока сверху свободно
                 закрасить
                 вверх
               кц

кон

Цикл с постусловием (при)

(запись в алгоритмическом языке)

нц

<команда>

кц_при <условие>

Пример:

использовать Робот
алг Линия

нач
нц

   
закрасить; вверх                                                                                           

   
кц_при слева свободно 

 кон

Структура «ветвление».

—  Структура «ветвление». Решение некоторых задач
требует различных действий в зависимости от выполнения некоторых условий. В
таких случаях говорят о ветвлении алгоритма.

—  Для реализации структуры «ветвление»
используются две структурированные команды  школьного АЯ — если и выбор, каждая
из которых может быть полной и неполной.

—  В блок-схемах и школьном АЯ
<условие> — это логическое выражение, результатом которого может быть
одно из двух возможных значений — истина или ложь. В школьном АЯ
эти значения записывают как  да и нет. В языках программирования часто
используются значения
True и False. В компьютере эти значения хранятся
как 1 и 0.

Полное ветвление

(запись в алгоритмическом языке)

если <условие>
. . то <команда1>
. . иначе <команда2>
все

Пример:

использовать Робот
алг ветвление_полное

нач
. если сверху свободно
. . то вверх
. . иначе вниз
. все

кон

Неполное ветвление

(запись в алгоритмическом языке)

если <условие>
. . то <команда1>
все

Пример:                                                                                  

использовать Робот
алг ветвление_неполное

нач
. если сверху свободно
. . то вверх
. все

кон

Вспомогательный алгоритм
(процедура)

—  Алгоритм по которому решается
некоторая подзадача из основной задачи и который, как правило выполняется
многократно, называется  вспомогательным алгоритмом.

—  Вспомогательный алгоритм, записанный
на языке программирования, называется подпрограммой или процедурой.

—  Вспомогательный алгоритм  вызывается
из основной программы  через имя. Вспомогательный алгоритм записывается после
основного алгоритма. У вспомогательного алгоритма обязательно должно быть имя.

использовать Робот
алг  
нач
 вниз

        
квадрат
         вниз

вниз
кон

алг квадрат
нач

закрасить

вправо

закрасить

вниз

закрасить

влево

закрасить
кон

Вложенные циклы и ветвления

При
решении некоторых задач с роботом необходимо использовать вложенные циклы или
ветвления.

Цикл
называется вложенным, если он размещается внутри другого цикла.

Рассмотрим
вложенный цикл  на примере цикла пока.

Мы
знаем, что цикл состоит из заголовка цикла, который определяет количество
повторений тела цикла .

Тело
цикла, это та часть  цикла, которая повторяется при выполнении цикла.

Телом
цикла может быть команда, несколько команд, а также другой цикл или ветвление.

В
том случае, когда телом цикла является другой цикл или ветвление, они
называются вложенными.

Вложенный цикл

На
первом проходе, внешний цикл вызывает внутренний, который исполняется до своего
завершения, после чего управление передается в тело внешнего цикла. На втором
проходе внешний цикл опять вызывает внутренний. И так до тех пор, пока не
завершится внешний цикл.

Вложенное ветвление

Рассмотрим решение задачи с вложенными ветвлениями и циклами:

Задача
1
  Робот
находится на стене, в которой есть  отверстия, двигаясь вдоль стены вправо,
робот должен закрашивать все клеточки, где есть отверстия.

использовать Робот
алг
нач
. нц пока
справа
свободно
  нц пока снизу свободно
.закрасить;
вправо
. . кц
. . вправо
. кц
кон

Составим
алгоритм решения задачи с вне6шим циклом пока и вложенным циклом пока.

использовать Робот
алг
нач
. нц пока
справа свободно
. . если снизу свободно
. . . то закрасить; вправо
. . . иначе вправо
. . все
. кц
кон

Решим
эту же задачу, используя внешний цикл пока и вложенное ветвление.

использовать Робот
алг
нач
. нц
. . вправо
. . нц пока
снизу свободно
. . . закрасить;
вправо
. . кц
. кц при не
справа свободно
кон

Решим
эту же задачу с помощью внешнего цикла при и вложенного цикла пока.

Хирьянов Тимофей Федорович

Алгоритм на языке КуМир записывается так:

алг тип_алгоритма имя_алгоритма (описание аргументов и результатов)
  дано условие_применимости_алгоритма
  надо цель_выполнения_алгоритма
нач
  последовательность команд
кон

Описание алгоритма состоит из:

  • заголовка (часть до служебного слова нач),

  • тела алгоритма (часть между словами нач и кон).

Части «дано», «надо», а также «тип алгоритма» и «описание аргументов и результатов» могут отсутствовать.

Простейшие алгоритмы

Рассмотрим следующий вспомогательный алгоритм для исполнителя Чертежник.

алг квадрат
нач
  опустить перо
  сместиться на вектор(0,2)
  сместиться на вектор(2,0)
  сместиться на вектор(0,-2)
  сместиться на вектор(-2,0)
  поднять перо
кон

Он позволяет нарисовать квадрат 2х2 (начиная с левого нижнего угла). Для этого нужно использовать в основной программе команду вызова вспомогательного алгоритма, которая будет иметь вид:

квадрат

Алгоритмы с аргументами

Для того, чтобы рисовать квадраты разных размеров, можно использовать алгоритм с аргументами.

алг квадрат (арг вещ а)
нач
  опустить перо
  сместиться на вектор(0, а)
  сместиться на вектор(а, 0)
  сместиться на вектор(0, -а)
  сместиться на вектор(-а, 0)
  поднять перо
кон

Слово арг означает, что у алгоритма есть аргумент (а), а вещ — то, что этот аргумент имеет вещественный тип. Команда вызова такого алгоритма может иметь вид

квадрат(2)

(в этом случае будет нарисован квадрат 2×2) или, например,

квадрат(5)

(в этом случае будет нарисован квадрат 5×5).

Алгоритмы с результатами

Алгоритм может не только получать информацию, но и отдавать ее. Для этого используется специальный вид величины — результаты.

алг гипотенуза (вещ a, b, рез вещ c)
  дано a >= 0 и b >= 0 | длины катетов треугольника
  надо | c = длинa гипотенузы этого треугольника
нач
  c := sqrt(a ** 2 + b ** 2)
кон

Здесь служебное слово рез указывает на то, что
величина c является результатом и ее значение будет меняться в процессе
работы алгоритма. Например, после вызова

гипотенуза(3, 4, c)

величина c примет значение 5.

Алгоритмы-процедуры и алгоритмы-функции

Рассмотренные выше примеры являются алгоритмами-процедурами. В Кумире также существуют алгоритмы-функции. Алгоритм-функция после выполнения возвращает значение-результат.
Правила описания алгоритмов-процедур и алгоритмов-функций имеют два отличия.
Во-первых, для алгоритмов-функций на месте тип_алгоритма
должен быть указан один из простых типов алгоритмического языка (вещ,
цел и т.д.), определяющий тип значений, которые возвращает данная
функция.
Во-вторых, в теле алгоритма-функции необходимо использовать служебную величину знач,
которой присваивается вычисленное значение функции. Ее описанием служит
заголовок алгоритма, но в остальном величина знач используется так же,
как и любая другая промежуточная величина. (В теле алгоритма-процедуры
величину знач использовать нельзя.)
Вызов алгоритма-процедуры является отдельной командой алгоритмического языка и имеет вид:

имя_алгоритма-процедуры

или

имя_алгоритма-процедуры (список_параметров_вызова)

Вызов алгоритма-функции производится путем указания его имени в выражении. Встретив это имя при вычислении выражения, КуМир выполняет алгоритм-функцию.

алг вещ площадь (вещ a, b, c)
  дано a >= 0 и b >= 0 и c >= 0 | длины сторон треугольника
  надо | значение функции равно площади этого треугольника
нач
  вещ p | полупериметр
  p := (a + b + c) / 2
  знач := sqrt(p * (p — a) * (p — b) *  (p — c))
кон

Использовать этот алгоритм в программе можно, например, так:

алг
нач вещ P
  P := площадь(3, 4, 4)
кон

или так:

если площадь(a, b, c) > 10
  то
    …
все

Понравилась статья? Поделить с друзьями:
  • Влияние юридической ошибки на уголовную ответственность
  • Внешний диск ошибка код 43
  • Влияние фактической ошибки на форму вины
  • Внешний hdd ошибка ввода вывода
  • Влияние фактических и юридических ошибок на квалификацию преступлений