Представьте себе клетчатое поле (как лист из тетради в клеточку) на котором находится некий объект, который мы назовем Робот. Используя специальные команды, мы можем этим Роботом управлять — перемещать его по клеткам, закрашивать клетки. И в большинстве случаев наша задача будет заключаться в том, чтобы написать такую программу для Робота, выполняя которую он будет закрашивать определенные клетки.
Настройка среды Кумир для исполнителя Робот.
Запущенная программа Кумир выглядит так.
Первым делом мы должны раскомментировать первую строку нашей программы, убрав символ |
Таким образом, программа станет выглядеть так:
использовать Робот
алг
нач
кон
Удалив символ |, мы тем самым указали Кумиру на то, что будем работать с исполнителем Робот. Если этого не сделать, то при написании программы мы столкнемся с ошибкой «Нет такого алгоритма». Поэтому очень важно при создании новой программы раскомментировать первую строку. Теперь все готово для дальнейшей работы.
Но перед началом, нам необходимо задать стартовую обстановку Робота и познакомиться с простыми командами исполнителя Робот.
Стартовая обстановка Робота
Перед началом выполнения программы необходимо задать исполнителю Робот стартовую обстановку. Это значит установить Робота в нужную позицию, расставить стены, закрасить нужные клетки и т. п. Этот шаг очень важен. Если его проигнорировать, то программа может работать неправильно или вообще завершится аварийно.
Что такое стартовая обстановка?
Наш Робот находится в некой среде — это клетчатое поле, размер которого известен. Так же на этом поле могут находится стены и закрашенные клетки, а сам Робот может находится в любой клетке. Так вот — стартовая обстановка задает положение Робота на поле и расположение всех остальных элементов — стен, закрашенных клеток. И перед тем, как писать алгоритм для Робота необходимо задать стартовую обстановку. Насколько это важно давайте рассмотрим на примере. Пусть есть две стартовые обстановки:
Стартовая обстановка 1 |
Стартовая обстановка 2 |
Отличаются они только тем, что в стартовой обстановке 2 справа от Робота находится стена.
Если наша программа начнется с команды, которая переместит Робота на одну клетку вправо (о простых командах Робота), то в первом случае (стартовая обстановка 1) Робот выполнит эту команду, а во втором программа завершится аварийно, так как Робот не может ходить сквозь стены. Получается, что одна и та же программа в первом случае работает, а во втором приводит к ошибке. Именно поэтому так важно задавать стартовую обстановку для Робота.
Как задать стартовую обстановку?
Запустив среду Кумир в меню Инструменты выбираем пункт Редактировать стартовую обстановку Робота
Откроется окно с синим фоном. Это и есть стартовая обстановка Робота. И мы ее можем изменить.
По-умолчанию, размер окна 10 на 15 клеток. Если нам необходимо изменить количество строк и столбцов, то щелкаем Обстановка -> Новая обстановка и задаем необходимые значения
Далее,
- чтобы переместить Робота в новую позицию, щелкаем по нему левой кнопкой мыши и не отпуская ее тащим Робота в нужное место.
- чтобы добавить/удалить стену, щелкаем левой кнопкой мыши по границе клетки.
- чтобы закрасить/очистить клетку, щелкаем по ней левой кнопкой мыши
- чтобы добавить или убрать точку в клетку щелкаем по клетке, удерживая клавишу Ctrl
После того, как мы задали нужную стартовую обстановку, ее необходимо сохранить (Обстановка -> Сохранить или Обстановка -> Сохранить как). После этого закрываем окно Обстановка и в основном окне программы выбираем Робот -> Сменить стартовую обстановку
Находим сохраненную ранее обстановку и загружаем ее. После этого убедимся, что загрузили правильную стартовую обстановку, щелкнув по кнопке Показать окно Робота
Если в окне с зеленым фоном (текущая обстановка Робота) вы увидите вашу обстановку, то можно переходить к написанию алгоритма, используя простые команды Робота.
Исполнитель Робот. Простые команды.
У нашего Робота тоже есть система команд. Сегодня мы рассмотрим простые команды Робота. Всего их 5:
вверх
вниз
влево
вправо
закрасить
Результат выполнения этих команд понятен из их названия:
вверх — переместить Робота на одну клетку вверх
вниз — переместить Робота на одну клетку вниз
влево — переместить Робота на одну клетку влево
вправо — переместить Робота на одну клетку вправо
закрасить — закрасить текущую клетку (клетку в которой находится Робот).
Эти команды можно писать с клавиатуры, а можно использовать горячие клавиши (нажав их команды будут вставляться автоматически):
вверх — Escape, Up (стрелка вверх)
вниз — Escape, Down (стрелка вниз)
влево — Escape, Left (стрелка влево)
вправо — Escape, Right (стрелка вправо)
закрасить — Escape, Space (пробел)
Обратите внимание, что набирать нужную комбинацию горячих клавиш нужно не привычным нам способом! Мы привыкли нажимать клавиши одновременно, а здесь их нужно нажимать последовательно.
Теперь мы готовы написать первый алгоритм для Робота. Предлагаю начать с простого — нарисуем квадрат со стороной 3 клетки. Поехали!
Запускаем Кумир, настраиваем его. Можно начинать писать программу? Конечно нет! Мы же не задали стартовую обстановку! Делаем это. Предлагаю использовать вот такую:
Вот теперь все готово. Начинаем писать программу. Пока она выглядит так
Удаляем символ «|» и называем наш алгоритм «Квадрат»
Предлагаю рисовать квадрат, двигаясь по часовой стрелке. Для начала закрасим текущую клетку, дав команду закрасить. Потом делаем шаг вправо и опять закрашиваем клетку. И еще раз шаг вправо и закрасить.
Попробуем запустить программу и посмотреть что же получилось. Для запуска нажимаем F9 или же кнопку на панели инструментов
В результате мы должны увидеть вот такую картину
Если такое окно Робота у вас не появилось, то на панели инструментов щелкните «Показать окно Робота» или в меню Робот выберите пункт «Показать окно Робота». Продолжаем дальше.
Теперь мы будем двигаться вниз и закрашивать правую сторону квадрата:
вниз
закрасить
вниз
закрасить
Потом пойдем влево, закрашивая нижнюю границу квадрата
влево
закрасить
влево
закрасить
У нас осталась одна незакрашенная клетка. Закрасим ее
вверх
закрасить
Все готово! В итоге наша программа выглядит так:
использовать Робот
алг Квадрат
нач
закрасить
вправо
закрасить
вправо
закрасить
вниз
закрасить
вниз
закрасить
влево
закрасить
влево
закрасить
вверх
закрасить
кон
А результат ее работы вот так
Итак, сегодня мы с вами написали программу, используя простые команды Робота. Рекомендую попрактиковаться самостоятельно — придумать себе задание и написать программу. Это могут быть самые различные фигуры, узоры, буквы. К примеру, попробуйте написать программу, рисующую букву П, Р, Ш, Щ, М. А если получится и захотите поделиться — комментируйте и прикрепляйте результат к комментарию.
Исполнитель Робот. Циклы.
Итак, что такое цикл? Представьте, что мы находимся на уроке физической культуры и перед нами стоит задача сделать 7 приседаний. Это задание можно оформить в виде линейного алгоритма и тогда оно будет выглядеть примерно так:
сделай приседание
сделай приседание
сделай приседание
сделай приседание
сделай приседание
сделай приседание
сделай приседание
Т. е мы повторили команду сделай приседание 7 раз. А есть ли смысл писать 7 одинаковых команд? Может проще дать команду сделай 7 приседаний? Конечно проще и правильнее. Это и есть цикл. Вы можете сами вспомнить примеры циклов из жизни — их довольно много.
Таким образом линейный алгоритм, где повторяются одни и те же команды мы можем оформить в виде циклического алгоритма — примерно так:
повторяй 7 раз
сделай приседание
конец цикла
Вот так, на придуманном нами языке мы оформили цикл. У исполнителя Робот тоже есть возможность записывать циклы. Причем, циклы бывают разные. Тот вариант, который мы только что рассмотрели называется цикл со счетчиком или цикл с параметром.
Виды циклов.
Цикл со счетчиком.
Цикл со счетчиком применяется когда заранее известно сколько повторений необходимо сделать. В примере выше с приседаниями именно такой случай.
Для того, чтобы написать цикл со счетчиком для исполнителя необходимо знать его синтаксис. А он такой:
нц <количество повторений> раз
<команда 1>
<команда 2>
…
<команда n>
кц
Здесь мы должны указать количество повторений (число) и команды, которые будут повторяться. Команды, которые повторяются в цикле называют телом цикла.
Давайте рассмотрим это на примере.
Закрасим 7 клеток, как на рисунке. Рекомендую почитать про стартовую обстановку Робота и про его простые команды.
Изначально Робот находился в левой верхней клетке.
Давайте для начала решим задачу линейно. В этом случае мы будет закрашивать текущую клетку и перемещаться на 1 клетку вправо и программа будет выглядеть так:
использовать Робот
алг
нач
закрасить
вправо
закрасить
вправо
закрасить
вправо
закрасить
вправо
закрасить
вправо
закрасить
вправо
закрасить
вправо
кон
Как видим, команды закрасить и вправо повторяются 7 раз. Давайте теперь перепишем программу с использованием цикла. Кстати, чтобы вставить цикл в свою программу можно в меню Вставка выбрать пункт нц-раз-кц или нажать одну из комбинаций клавиш Esc, Р (русская буква Р) или Esc, H (латинская буква H). Причем клавиши надо нажимать последовательно — сначала Esc, отпустить ее и только потом Р или H.
Так вот, наша программа с циклом будет выглядеть так:
использовать Робот
алг
нач
нц 7 раз
закрасить
вправо
кц
кон
Если мы ее запустим, то увидим, что в результате получится тоже самое — 7 закрашенных клеток. Однако программа стала короче и значительно грамотней с алгоритмической точки зрения!
В качестве разминки и закрепления предлагаю самостоятельно написать программу для Робота, которая нарисует квадрат со стороной 7 клеток. Естественно, используя цикл. Жду решения в комментариях.
Цикл с условием.
Вернемся к физкультуре и изменим задачу. Ведь кто-то может и не сделать 7 приседаний, а другой способен сделать 27. Можно ли учесть это при создании цикла? Конечно. Только теперь мы будем использовать не счетчик (количество повторений), а условие. К примеру, пока не устал, делай приседания. В этом случае человек будет делать не конкретное число приседаний, а приседать до тех пор, пока не устанет. И наш цикл на абстрактном языке примет такой вид:
пока не устал
сделай приседание
конец цикла
Слова не устал в нашем случае — это условие. Когда оно истинно, цикл выполняется. Если же оно ложно (устал) тело цикла не будет выполнено. У исполнителя Робот есть несколько условий
сверху свободно
снизу свободно
слева свободно
справа свободно
сверху стена
снизу стена
слева стена
справа стена
Теперь давайте решим следующую задачу для Робота — нарисовать вертикальную линию от левой до правой границы поля использую цикл с условием. Изначально Робот находится в левом верхнем углу.
Давайте сначала сформулируем словесный алгоритм — т. е. опишем словами что нужно делать Роботу. Этот алгоритм будет звучать примерно так:
«Пока справа свободно делай шаг вправо и закрашивай клетку»
В результате Робот пробежит по всем клеткам вправо и будет их закрашивать до тех пор, пока справа не окажется стена.
Исходный код нашей программы для Робота будет примерно такой:
использовать Робот
алг
нач
нц пока справа свободно
вправо
закрасить
кц
кон
В результате выполнения этой программы мы увидим вот такую картину:
Как видим, не хватает только закрашенной первой клетки. Для этого перед циклом необходимо выполнить команду закрасить.
Для закрепления прошу написать программу, которая будет делать рамку вокруг рабочего поля Робота независимо от его размера. Конечно же с использованием циклов с условием. В итоге должно получиться так:
———————————————————
>>> СКАЧАТЬ ФАЙЛ <<<
———————————————————
Проверено, вирусов нет!
———————————————————
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
При освоении темы алгоритмы воспользуемся системой программирования КУМИР.При решении некоторых задач с роботом необходимо использовать вложенные циклы или ветвления. Ц икл называется вложенным, если он размещается внутри другого цикла. ••• Помогите с программой Кумир. 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] …
Вложенные циклы и ветвления в системе
КУМИР
Одним
из фундаментальных понятий в информатике является понятие алгоритма.
Происхождение самого термина «алгоритм» связано с математикой. Это слово
происходит от Algorithmi – латинского написания имени Мухаммеда аль-Хорезми
(787 – 850) выдающегося математика средневекового Востока. В своей книге
«Об индийском счете» он сформулировал правила записи натуральных
чисел с помощью арабских цифр и правила действий над ними столбиком.
В
дальнейшем алгоритмом стали называть точное предписание, определяющее
последовательность действий, обеспечивающую получение требуемого результата из
исходных данных.
Алгоритм
может быть предназначен для выполнения его человеком или автоматическим
устройством. Создание алгоритма, пусть даже самого простого, — процесс
творческий. Он доступен исключительно живым существам, а долгое время
считалось, что только человеку. В XII в. был выполнен латинский перевод его
математического трактата, из которого европейцы узнали о десятичной позиционной
системе счисления и правилах арифметики многозначных чисел. Именно эти правила
в то время называли алгоритмами.
Данное
выше определение алгоритма нельзя считать строгим – не вполне ясно, что такое
«точное предписание» или «последовательность действий, обеспечивающая получение
требуемого результата». Поэтому обычно формулируют несколько общих свойств
алгоритмов, позволяющих отличать алгоритмы от других инструкций.
Такими
свойствами являются:
• Дискретность
(прерывность, раздельность) – алгоритм должен представлять процесс решения
задачи как последовательное выполнение простых (или ранее определенных) шагов.
Каждое действие, предусмотренное алгоритмом, исполняется только после того, как
закончилось исполнение предыдущего.
• Определенность
– каждое правило алгоритма должно быть четким, однозначным и не оставлять места
для произвола. Благодаря этому свойству выполнение алгоритма носит механический
характер и не требует никаких дополнительных указаний или сведений о решаемой
задаче.
• Результативность
(конечность) – алгоритм должен приводить к решению задачи за конечное число
шагов.
• Массовость
– алгоритм решения задачи разрабатывается в общем виде, то есть, он должен быть
применим для некоторого класса задач, различающихся только исходными данными.
При этом исходные данные могут выбираться из некоторой области, которая
называется областью применимости алгоритма.
Способы записи алгоритмов
Для
записи алгоритмов используют самые разнообразные средства. Выбор средства
определяется типом исполняемого алгоритма.
Выделяют
следующие основные способы записи алгоритмов:
— вербальный,
когда алгоритм описывается на человеческом (естественном) языке.
Естественными являются национальные языки (русский, английский, немецкий и
т.д.);
— символьный,
когда алгоритм описывается с помощью набора символов и является программой (программы
пишутся с помощью языков программирования);
—
графический,
когда алгоритм описывается с помощью набора графических изображений (блок-схема).
Общепринятыми
способами записи являются графическая запись с помощью блок-схем и символьная
запись с помощью какого-либо алгоритмического языка — программа.
При
графическом способе записи составляются блок-схемы , на которых с помощью
условных обозначений (геометрических фигур) обозначаются различные части
алгоритма. Элементы блок-схем представлены на рисунке.
Система программирования КУМИР
При
освоении темы алгоритмы воспользуемся системой программирования КУМИР.
КуМир
(Комплект Учебных МИРов) — система программирования, предназначенная для
поддержки начальных курсов информатики и программирования в средней и высшей
школе.
В
системе КуМир используется школьный алгоритмический язык с русской лексикой и
встроенными исполнителями Робот и Чертёжник и др.
При
вводе программы КуМир осуществляет постоянный полный контроль ее правильности,
сообщая на полях программы обо всех обнаруженных ошибках.
При
выполнении программы в пошаговом режиме КуМир выводит на поля результаты
операций присваивания и значения логических выражений. Это позволяет ускорить
процесс освоения азов программирования.
Графический исполнитель Робот
Графический исполнитель Робот позволяет освоить азы
программирования и понять работу основных алгоритмических конструкций.
Графический исполнитель — это объект управления. А управлять им будем мы с
вами.
Исполнитель робот находится в некоторой стартовой
обстановке – прямоугольном поле, разбитом на клетки, между которыми могут
стоять стены.
Робот может перемещаться по полю, обходя
стены и закрашивать клетки. Робот не может пройти сквозь стену, но может
проверять есть ли рядом с ним стена. Робот не может выйти за пределы
прямоугольника, ограничивающего поле.
Робот
может выполнять команды: вверх, вниз, вправо,
влево, закрасить.
Робот может проверять
условия: сверху свободно, снизу свободно,
справа свободно, слева свободно, добавление частицы не меняет условие на противоположное. Не сверху свободно, не снизу свободно, не справа свободно, не слева
свободно.
Базовые алгоритмические структуры
Выделяют три базовые алгоритмические
структуры (конструкции) —линейная (следование), ветвление и цикл, из
которых можно построить любой алгоритм. Каждая алгоритмическая структура
имеет одну точку входа и одну точку выхода.
Будем записывать алгоритмы на и
школьном АЯ и в виде блок-схем.
Линейная структура
Линейная
структура является
самой простой организацией алгоритмов — команды выполняются последовательно
одна за другой
Пример:
использовать Робот |
Циклическая структура (цикл)
Циклическая структура (цикл) обеспечивает многократное
выполнение одних и тех же команд. Существует несколько разновидностей
циклических структур.
Любая циклическая структура состоит
из двух частей — заголовка и тела цикла.
Набор команд, повторяющихся при
выполнении цикла, называют телом цикла.
Заголовок определяет количество повторений тела
цикла.
Цикл на число повторений (раз)
(запись в алгоритмическом языке)
нц N раз
<команда>
кц
Пример:
использовать Робот
алг столбик
нач
. нц 5 раз
. . закрасить
. . вверх
. кц
кон
Цикл с предусловием (пока)
(запись в алгоритмическом языке)
нц пока <условие>
<команда>
кц
Пример:
использовать Робот
алг Линия
нач
нц пока сверху свободно
закрасить
вверх
кц
кон
Цикл с постусловием (при)
(запись в алгоритмическом языке)
нц
<команда>
кц_при <условие>
Пример:
использовать Робот
алг Линия
нач
нц
закрасить; вверх
кц_при слева свободно
кон
Структура «ветвление».
Структура «ветвление». Решение некоторых задач
требует различных действий в зависимости от выполнения некоторых условий. В
таких случаях говорят о ветвлении алгоритма.
Для реализации структуры «ветвление»
используются две структурированные команды школьного АЯ — если и выбор, каждая
из которых может быть полной и неполной.
В блок-схемах и школьном АЯ
<условие> — это логическое выражение, результатом которого может быть
одно из двух возможных значений — истина или ложь. В школьном АЯ
эти значения записывают как да и нет. В языках программирования часто
используются значения True и False. В компьютере эти значения хранятся
как 1 и 0.
Полное ветвление
(запись в алгоритмическом языке)
если <условие>
. . то <команда1>
. . иначе <команда2>
все
Пример:
использовать Робот
алг ветвление_полное
нач
. если сверху свободно
. . то вверх
. . иначе вниз
. все
кон
Неполное ветвление
(запись в алгоритмическом языке)
если <условие>
. . то <команда1>
все
Пример:
использовать Робот
алг ветвление_неполное
нач
. если сверху свободно
. . то вверх
. все
кон
Вспомогательный алгоритм
(процедура)
Алгоритм по которому решается
некоторая подзадача из основной задачи и который, как правило выполняется
многократно, называется вспомогательным алгоритмом.
Вспомогательный алгоритм, записанный
на языке программирования, называется подпрограммой или процедурой.
Вспомогательный алгоритм вызывается
из основной программы через имя. Вспомогательный алгоритм записывается после
основного алгоритма. У вспомогательного алгоритма обязательно должно быть имя.
использовать Робот
алг
нач
вниз
квадрат
вниз
вниз
кон
алг квадрат
нач
закрасить
вправо
закрасить
вниз
закрасить
влево
закрасить
кон
Вложенные циклы и ветвления
При
решении некоторых задач с роботом необходимо использовать вложенные циклы или
ветвления.
Цикл
называется вложенным, если он размещается внутри другого цикла.
Рассмотрим
вложенный цикл на примере цикла пока.
Мы
знаем, что цикл состоит из заголовка цикла, который определяет количество
повторений тела цикла .
Тело
цикла, это та часть цикла, которая повторяется при выполнении цикла.
Телом
цикла может быть команда, несколько команд, а также другой цикл или ветвление.
В
том случае, когда телом цикла является другой цикл или ветвление, они
называются вложенными.
Вложенный цикл
На
первом проходе, внешний цикл вызывает внутренний, который исполняется до своего
завершения, после чего управление передается в тело внешнего цикла. На втором
проходе внешний цикл опять вызывает внутренний. И так до тех пор, пока не
завершится внешний цикл.
Вложенное ветвление
Рассмотрим решение задачи с вложенными ветвлениями и циклами:
Задача
1 Робот
находится на стене, в которой есть отверстия, двигаясь вдоль стены вправо,
робот должен закрашивать все клеточки, где есть отверстия.
|
|||
Составим
алгоритм решения задачи с вне6шим циклом пока и вложенным циклом пока.
использовать Робот |
Решим
эту же задачу, используя внешний цикл пока и вложенное ветвление.
использовать Робот |
Решим
эту же задачу с помощью внешнего цикла при и вложенного цикла пока.
Содержание
- Кумир имя не объявлено что делать
- Помогите, пожалуйста, почему в программе КуМир ,,Имя не объявлено», хотя там всё правильно. Что мне нужно исправить.
- Настройка среды Кумир для исполнителя Робот
- КуМир, Исполнитель Робот
- Главное меню
- Пульт
- Задачи
- Знакомство с языком и системой КуМир путем решения задач С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-файл с картинкой обстановки, именем файла, датой и комментарием |
Закрыть | Закрывает окно редактирования |
Главное меню
Пульт
Вызов пульта производится нажатием на кнопку или через меню Робот→Показать пульт.
Если выполнить команду меню Редактирование→Перехватывать команды Пульта, то действия, производимые пультом будут записываться в виде правильных команд в текст программы. Названный пункт будет помечен флажком (галочкой).
Некоторые из записываемых команд окажутся избыточными, так как для них используется вывод информации, а не действия. Но их можно отредактировать, либо взять из них только нужные элементы.
Подробности использования пульта смотри меню Инфо→Язык и система КуМир.
Задачи
- Робот находится в левом верхнем углу прямоугольной области неизвестного размера, со всех сторон окруженной стенками. Посередине находится стена, в которой есть проход. Где он, точно неизвестно, но проход не примыкает к нижней стенке. Задача: написать программу, которая переведет робота в правый нижний угол. Файл среды.
- См. также ОГЭ: вопрос 20.1.
- См. также ЕГЭ: вопросы 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] Для коротенькой программы переразбор происходит мгновенно. Для очень длинной программы на не очень новом компьютере переразбор может занять несколько секунд. Зеленый сигнал светофора показывает, что переразбор закончен. Для коротких программ на светофор можно не обращать внимания.
Источник
Система подготовки обучающихся к ОГЭ по информатике на примере решения задач по алгоритмизации в среде «КУМИР»
Гребнева Татьяна Васильевна,
учитель информатики
МБОУ г. Мурманска СОШ № 33
Задание 15.1 Разработка алгоритма для учебного исполнителя «Робот»
Задание 15.1
- Традиционно заключается в разработке алгоритма для учебного исполнителя «Робот». Описание команд исполнителя и синтаксиса управляющих конструкций соответствует общепринятому школьному алгоритмическому языку, также оно дано в тексте задания.
- Формулировке задания предшествует описание команд исполнителя и синтаксиса записи алгоритмических конструкций ветвления и цикла, поэтому задание может быть выполнено даже теми школьниками, которые не знакомы с используемым синтаксисом языка, но владеют основами алгоритмизации.
- На бесконечном поле имеются стены, которые робот должен обойти, закрасить нужные клетки и не разбиться. Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера поля и любого допустимого расположения стен внутри прямоугольного поля. При исполнении алгоритма Робот не должен разрушиться.
- Учащиеся записывают алгоритм в текстовом редакторе и сохраняют в текстовом файле.
Основные ошибки при выполнении задания 15.1
- Представленные алгоритмы решения работают только в частных случаях.
- Использование цикла «n раз» вместо цикла «пока».
- Использование конструкций ветвления вместо конструкции цикла.
- Представлены линейные алгоритмы решения.
- Происходит «зацикливание» (алгоритм не завершается).
- Закрашены лишние клетки.
- Закрашена лишняя клетка / Не закрашена нужная клетка.
- Столкновение со стеной (Робот разбивается).
- Алгоритм содержит бесконечные циклы.
- Некорректное использование операторов цикла – отсутствует начало цикла (НЦ) или конец цикла (КЦ).
Проблема
Большая часть затруднений учащихся связана с недостаточностью умений смыслового чтения :
- представленные алгоритмы решения работают только при конкретных размерах коридора;
- робот закрашивает клетки, например, слева от стены, а не справа;
- алгоритм работает только для конкретной обстановки.
По-прежнему учащиеся показывают недостаточные умения в использовании конструкции цикла «ПОКА» с условием :
- путают с конструкцией ветвления «ЕСЛИ» или неверно указывают условие выхода из цикла.
Пример формулировки задания 15.1
На бесконечном поле есть горизонтальная и вертикальная стены. Правый конец горизонтальной стены соединён с нижним концом вертикальной стены. Длины стен неизвестны. В горизонтальной стене есть ровно один проход, точное место прохода и его ширина неизвестны. Робот находится в клетке, расположенной рядом с вертикальной стеной слева от её верхнего конца. На рисунке указан один из возможных способов расположения стен и Робота (Робот обозначен буквой «Р»).
Напишите для Робота алгоритм,
- закрашивающий все клетки, расположенные непосредственно выше и ниже горизонтальной стены.
- Проход должен остаться незакрашенным.
- Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок).
Важно учитывать:
- При исполнении алгоритма Робот не должен разрушиться.
- Выполнение алгоритма должно завершиться .
- Конечное расположение Робота может быть произвольным.
- Алгоритм должен решать задачу для любого допустимого расположения стен и любого расположения и размера прохода внутри стены.
- Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе.
Правильное решение:
Правильное решение:
- Любое правильное решение этой задачи обязательно должно содержать не менее 7 циклов «пока», перемещающих робота вдоль стен.
- Если такие циклы в алгоритме отсутствуют, то задание решено неверно и оценивается в 0 баллов.
Критерии оценивания:
Разбор возможных ошибок
Ошибка № 1 : ширина прохода ровно 1 клетка
За такое решение: 0 баллов .
Ошибка № 2 : цикл n раз
За такое решение: 0 баллов .
Ошибка № 3 : ветвление вместо цикла
За такое решение: 0 баллов .
Ошибка № 4 : линейный алгоритм
За такое решение: 0 баллов .
Ошибка № 5 : Задача решена, но при возвращении в исходную позицию произведена проверка препятствия сверху
За такое решение: 0 баллов .
Здесь надо помнить, что поле Робота бесконечно !
Поэтому произойдёт зацикливание последнего цикла.
Если в условии задачи не указано конечное расположение Робота, а учащийся возвращает его в исходную позицию, то это за ошибку не считается (п ри условии корректной остановки).
Ошибка № 6 : Закрашены лишние клетки
Здесь надо помнить, что по условию поле Робота бесконечно и ширина прохода может быть бесконечно большой !
Поэтому в результате увеличения ширины прохода будет закрашено более 10 клеток.
За такое решение: 0 баллов .
Ошибка № 7 : Закрашена лишняя клетка/ Не закрашена нужная клетка
Данное решение на 1 балл :
- Робот не разбивается;
- закрашено не более 10 лишних клеток;
- не закрашено не более 10 клеток, которые должны быть закрашены.
Ошибка № 8 : Столкновение со стеной
ОШИБКА ВЫПОЛНЕНИЯ:
Робот — нельзя сквозь стену ( 8061 )
За такое решение: 0 баллов .
Правильное решение:
Рекомендации по проверке задания 15.1
Задание 15.1
- Представление в задании команд исполнителя и синтаксиса управляющих конструкций соответствует общепринятому школьному алгоритмическому языку.
- Использование свободно распространяемой среды учебного исполнителя, например, среду Кумир (сайт http:// www.niisi.ru/kumir ) или другую среду с аналогичными возможностями исполнителя «Робот».
- Синтаксис команд используемой среды может отличаться от синтаксиса, описанного в условии.
- Результатом выполнения является файл, подготовленный в среде учебного исполнителя , содержащий запись алгоритма, являющегося решением задания или текстовый файл , содержащий запись алгоритма.
Рекомендации по оцениванию
- Завершает ли работу проверяемый алгоритм (то есть верно ли, что алгоритм не содержит бесконечных циклов)?
- Остается ли робот цел в результате исполнения алгоритма (то есть верно ли, что Робот не разрушается от столкновения со стеной)?
- Полностью ли Робот выполняет поставленную задачу, то есть закрашивает все требуемые клетки .
Если ответы утвердительные на все вопросы, то есть алгоритм всегда заканчивает свою роботу , Робот не разрушается при исполнении алгоритма и полностью выполняет поставленную в условии задачу, то задание оценивается в 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
Содержание
- Описания простых величин
- Описания таблиц
- Область действия описаний
- Знакомство с языком и системой КуМир путем решения задач С2
- Типы величин
- Понятие «слово»
- Ключевые слова
- Особенности имен в языке КуМир
- Вопросы для самопроверки
Перед использованием в КуМир-программе каждую величину необходимо описать, то есть задать величине статические характеристики: имя, тип и вид.
Рассмотрим способы описания простых и табличных величин.
Описания простых величин
Для описания простых величин используется команда описания, состоящая из ключевого слова необходимого типа ( цел , вещ , сим , лит , лог ), после которого следует имя (или список имен) величины. Например,
- цел длина, ширина
- лит примечание
В приведенном примере в первом случае описываются две величины целого типа длина и ширина , следующая команда описывает величину диагональ , которой присваивается вещественный тип и в последнем случае величина примечание получает литерный тип.
Описания таблиц
В описании таблиц после описания типа используется ключевое слово таб (может записываться слитно или раздельно с ключевым словом типа), затем, для каждой величины указываются размерность таблицы и диапазон изменения индексов. Например,
- вещтаб рост[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, а&в
Исключение: ключевое слово не можно использовать в Кумир-программе не более одного раза в отрицаниях логических величин, таблиц и алгоритмов функций между словами многословного имени. Например,
- лог А, пятый урок история = да
- А := не пятый урок история
- А := пятый не урок история
- А := пятый урок не история
Вопросы для самопроверки
- Какие символы относятся к словарным символам в языке Кумир?
- Что представляет собой слово в Кумире?
- Какие слова называются ключевыми?
- Какими особенностями обладает имя в языке Кумир?
Copyright © 2014-2021, Урок информатики
Все права защищены
Источник
Описания величин в языке Кумир
Перед использованием в КуМир-программе каждую величину необходимо описать, то есть задать величине статические характеристики: имя, тип и вид.
Рассмотрим способы описания простых и табличных величин.
Описания простых величин
Для описания простых величин используется команда описания, состоящая из ключевого слова необходимого типа (цел, вещ, сим, лит, лог), после которого следует имя (или список имен) величины. Например,
- цел длина, ширина
- лит примечание
В приведенном примере в первом случае описываются две величины целого типа длина и ширина , следующая команда описывает величину диагональ , которой присваивается вещественный тип и в последнем случае величина примечание получает литерный тип.
Описания таблиц
В описании таблиц после описания типа используется ключевое слово таб (может записываться слитно или раздельно с ключевым словом типа), затем, для каждой величины указываются размерность таблицы и диапазон изменения индексов. Например,
- вещтаб рост[1: 10]
- цел таб классы [1:4, 1:11]
В первой строке описывается таблица рост, состоящая из 10 элементов вещественного типа. Индексы элементов этой таблицы принимают значения от 1 до 10.
Во второй строке описывается двумерная (4 строки и 11 столбцов) таблица классы, в которой 44 элемента.
Область действия описаний
Область действия описания величины в программе (часть программы, в которой допустимо использовать данную величину) определяется способом ее описания.
Если описание величины произошло во вступлении к программе, то ее можно использовать в любой части этой программы.
Если величина описана в теле алгоритма, то ее можно использовать после места описания только в теле этого алгоритма.
Рассмотрим пример:
- цел длина, ширина
- алг
- нач
- вещ диагональ
- кон
Величины длина и ширина описаны во вступлении, поэтому их можно использовать в любой части не только основного алгоритма, но и любом другом алгоритме этой программы. Величина диагональ описана в теле алгоритма, значит, область действия ее описания только часть алгоритма после описания.