Строка вне алгоритма кумир ошибка

Содержание

  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] Для коротенькой программы переразбор происходит мгновенно. Для очень длинной программы на не очень новом компьютере переразбор может занять несколько секунд. Зеленый сигнал светофора показывает, что переразбор закончен. Для коротких программ на светофор можно не обращать внимания.

Источник

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

  1. Находит в памяти
    алгоритм с указанным именем.

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

  3. Последовательно
    читает команды после строки нач
    и передает
    их исполнителю. Каждый такой приказ на
    выполнение команды называется вызовом
    этой команды.

  4. Встретив строку
    кон,
    проверяет,
    достигнута ли цель алгоритма, указанная
    в строке надо
    (см. примечание
    к п. 2).

  5. Заканчивает
    выполнение алгоритма.

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

  1. Компьютер находит
    в памяти алгоритм А1.

  2. В строке дано
    записан
    комментарий — компьютер его пропускает.

  3. Компьютер
    последовательно командует Роботу
    вправо,
    вправо, вниз
    .
    Робот
    исполняет
    эти команды.

  4. В строке надо
    помещен
    комментарий — компьютер его пропускает.

  5. Компьютер
    заканчивает выполнение алгоритма «ход
    конем».

7.6. Ошибки в алгоритмах

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

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

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

Рис. 2

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

Ошибки в алгоритме
не всегда приводят к отказам. Возможны
логические ошибки, не обнаруживаемые
компьютером ни до, ни во время выполнения
алгоритма. Так, если в алгоритме А1 мы
вместо вправо
случайно напишем влево,
то компьютер выполнит алгоритм, Робот
из клетки А
переместится в клетку В (см. рис. 2), но
никаких сообщений об ошибках мы не
получим (да и откуда компьютеру знать,
куда мы на самом деле хотели переместить
Робота!).

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

Таблица 1. Ошибки
в алгоритмах.

Смысл ошибки

Название

Пример

1

Цель не достигнута

Логическая

Робот не попал
куда надо

2

Команда не входит
в СКИ

Синтаксическая

наверх, направо

3

Авария при попытке
исполнения команды

Семантическая
(отказ)

Попытка пройти
сквозь стену

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Содержание

  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] Для коротенькой программы переразбор происходит мгновенно. Для очень длинной программы на не очень новом компьютере переразбор может занять несколько секунд. Зеленый сигнал светофора показывает, что переразбор закончен. Для коротких программ на светофор можно не обращать внимания.

Источник

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

  1. Находит в памяти
    алгоритм с указанным именем.

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

  3. Последовательно
    читает команды после строки нач
    и передает
    их исполнителю. Каждый такой приказ на
    выполнение команды называется вызовом
    этой команды.

  4. Встретив строку
    кон,
    проверяет,
    достигнута ли цель алгоритма, указанная
    в строке надо
    (см. примечание
    к п. 2).

  5. Заканчивает
    выполнение алгоритма.

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

  1. Компьютер находит
    в памяти алгоритм А1.

  2. В строке дано
    записан
    комментарий — компьютер его пропускает.

  3. Компьютер
    последовательно командует Роботу
    вправо,
    вправо, вниз
    .
    Робот
    исполняет
    эти команды.

  4. В строке надо
    помещен
    комментарий — компьютер его пропускает.

  5. Компьютер
    заканчивает выполнение алгоритма «ход
    конем».

7.6. Ошибки в алгоритмах

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

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

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

Рис. 2

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

Ошибки в алгоритме
не всегда приводят к отказам. Возможны
логические ошибки, не обнаруживаемые
компьютером ни до, ни во время выполнения
алгоритма. Так, если в алгоритме А1 мы
вместо вправо
случайно напишем влево,
то компьютер выполнит алгоритм, Робот
из клетки А
переместится в клетку В (см. рис. 2), но
никаких сообщений об ошибках мы не
получим (да и откуда компьютеру знать,
куда мы на самом деле хотели переместить
Робота!).

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

Таблица 1. Ошибки
в алгоритмах.

Смысл ошибки

Название

Пример

1

Цель не достигнута

Логическая

Робот не попал
куда надо

2

Команда не входит
в СКИ

Синтаксическая

наверх, направо

3

Авария при попытке
исполнения команды

Семантическая
(отказ)

Попытка пройти
сквозь стену

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Содержание

  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, Урок информатики
Все права защищены

Источник

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

Как в кумир исправит строка вне алгоритма

По традиции первой программой на изучаемом языке программирования становится программа вывода строки «Hello, World!». Хотя КуМир чаще всего воспринимают как среду программирования для исполнителей Робот и Чертежник, не будем отступать от общего правила, и напишем программу вывода строки приветствия, но в русском переводе.

Итак, наша задача: написать программу, которая выводит строку «Привет, Мир!».

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

Давайте разбираться. Первая строка » использовать Робот » закомментирована, на это указывает символ » | » и серый цвет шрифта.

» | » — знак комментария, т.е. строка, в начале которой стоит этот символ, не воспринимается системой программным кодом. Но только одна строка.
алг, нач, кон — служебные слова, значение которых очевидно: алгоритм, начало, конец. Они служат для оформления программы. Часть алгоритма до служебного слова нач называют заголовком, а часть между нач и кон — телом программы. Можно вспомнить, что в языке Паскаль имеется похожая структура, а именно
program
.
begin
.
end.
Называем программу «первая_программа» и вводим между нач и кон следующую строку вывод «Привет, мир!»
Все, программа написана, можно ее запустить, что мы и делаем, после чего видим следующее:

Давайте разберем все детально. Как видите из рисунка, название программы выделяется синим цветом. Интересно, что система КуМир лояльно отнеслась к тому, что наше название состоит из двух слов. Однако, настоятельно рекомендую называть программу одним словом. Если хотите иметь название из двух или более слов, то ставьте между этими словами знак подчеркивания, т.е. «_». Другие языки программирования не допускают в названии программ пробелов.

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

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

О первой («Выполнить непрерывно») мы уже сказали. Следующаяя служит для запуска программы без показа на полях. Третья из «запускаемых» конопок — ШАГ, т.е. при нажатии на нее выполняется одна строка программы. И последняя «Выполнить до конца алгоритма» служит для того, чтобы в любой момент при пошаговом выполнении, заставить выполняться программу до конца.

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

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

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

В КуМире используются несколько типов данных:

  • цел — принимает целые значения от -2147483647 до 2147483647
  • вещ — принимает вещественные значения между −21023 и 21023
  • лог — принимает значения да или нет (внутреннее представление – да=1, нет=0)
  • сим — значением может быть любой литеральный символ (практически любой символ)
  • лит — значением может быть строка литеральных символов

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

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

После выполнения этой команды система предлагает ответить на вопрос «Как тебя зовут?». Выполнение программы остановлено до тех пор, пока пользователь не введет литерную строку (свое имя) и не нажмет Enter. Обратите внимание, что после знака вопроса в строке стоит пробел. Если его не будет, то после знака вопроса и введенным именем пробела не будет. Хотя это не играет особой роли, но старайтесь писать программы так, чтобы результаты выводились в правильном виде.

Ввод строки с именем организуется командой ввод . После нажатия на Enter введенная строка будет значением переменной имя . После этого формируется строка, которая выводится в окно вывода. Если говорить подробно, то это выглядит так: выводится «Привет » (с пробелом в конце), после чего выводится значение переменной имя , а затем и «!». Обратите внимание, что между константами и переменными стоят запятые. В конце строки стоит нс (новая строка). На следующей строке выводится сообщение «А я — система КуМир». Общий вид показан на рисунке.

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

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

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

Задание : Если вы еще не устали, то предлагаем опытным путем разобраться в вопросе о соединении строк, т.к. конкатенации. Каким образом можно соединить две или более строки.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ТИПЫ ВЕЛИЧИН ИСПОЛЬЗУЕМЫХ В ПРОГРАММЕ Типы величин Как пишутся в программе Целые Пример описания цел Вещественные 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 ):

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

  • тело цикла

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

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

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

-80%

KumirL

Здесь описаны основные возможности системы КуМир (часть 1) и языка Кумир (часть 2). Знания этих возможностей достаточно для того, чтобы пройти тестирование. Полное описание возможностей системы КуМир приведено в файле system.pdf, языка КуМир – в файле manual.pdf; файлы находятся в каталоге KumirKumirHelp поставки системы КуМир. Полное описание доступно и из меню Инфо->«Язык и система Кумир» самой системы.

Часть 1. Система Кумир

1 Окно системы Кумир Окно системы Кумир выглядит так:

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

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

программы (слева) и область построчных сообщений (справа). Область по-

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

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

Окно можно свернуть-развернуть, сжать-растянуть, передвинуть и т. п.

2. Состояния системы Кумир

У системы Кумир есть четыре возможных состояния:

· РЕДАКТИРОВАНИЕ: происходит подготовка программы, выполнения нет.

· ВЫПОЛНЕНИЕ: происходит выполнение программы, редактирование текста программы запрещено.

· АНАЛИЗ результатов: выполнение завершено, однако все сообщения программы доступны для наблюдения и анализа; по любому действию в области программы, система переходит в состояние РЕДАКТИРОВАНИЕ, а сообщения сбрасываются. Система приходит в состояние АНАЛИЗ после окончания выполнения программы (нормального или аварийного).

· ПАУЗА: выполнение программы приостановлено, но может быть продолжено; редактирование текста программы запрещено. В состояние ПАУЗА система переходит в случае остановки во время выполнения (при вызове встроенной функции «пауза» или после очередного шага при выполнении программы по шагам), см. рис.2.

Рис.2 Окно системы КуМир в состоянии ПАУЗА

3. Главное меню Системы КуМир.

Меню «Программа» содержит следующие пункты:

Эти пункты имеют стандартный для современных оконных систем смысл и обеспечивают работу с файлами, в которых хранятся Кумирпрограммы, эти файлы имеют расширение .kum.

Меню «Редактирование» содержит следующие строки:

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

Команда «Закомментировать» добавляет знак комментария | в начало каждой выделенной (хотя бы частично) строки. Команда «Раскомментировать» удаляет знак комментария из начала каждой выделенной строки. Если в начале выделенной строки не было знака комментария, то содержимое этой строки не меняется. Для команд «Закомментировать» и «Раскомментировать» предусмотрены инструментальные клавиши.

Для того, чтобы набрать знак комментария при кириллической раскладке можно набрать аккорд Alt+!.

С помощью этого меню в текст программы можно вставлять заготовки основных алгоритмических конструкций.

Меню «Выполнение» содержит следующие строки:

· Выполнить непрерывно – начинает (при состоянии системы РЕДАКТИРОВАНИЕ или АНАЛИЗ) или продолжает (при состоянии системы ПАУЗА) выполнение программы. Программа выполняется

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

· «Непрерывно без показа на полях» – аналогично «Выполнить непре-

рывно» — но без вывода на поля вычисляемых значений величин и условий.

· «ШАГ» – Выполняет один ШАГ программы и переходит в режим ПАУЗА. Выполнение команды вызова алгоритма-процедуры трактует как один «ШАГ» . При запуске в состоянии РЕДАКТИРОВАНИЕ и АНАЛИЗ останавливается перед выполнением алг-строки основного алгоритма. Строка, которая будет выполняться, выделяется цветом.

· «шаг» – аналогично команде «ШАГ» . Отличие состоит в обработке команды алгоритма-процедуры и вычислении значения алгорит- ма-функции (если они есть в основной программе). В этих случаях очередным шагом будет выполнение строки-заголовка вспомогательного алгоритма. В дальнейшем команда «шаг» или «ШАГ» приведет к выполнению очередной команды внутри выполняемого вспомогательного алгоритма.

· «До конца алгоритма» – допускается использование только в состоянии ПАУЗА. Программа выполняется непрерывно, но останавливается на первой встретившейся строке кон (как будто перед ней стоит вызов функции пауза).

· «Прервать» – прерывает выполнение программы. Допускается ис-

пользование только в состояниях ВЫПОЛНЕНИЕ и ПАУЗА.

Для всех этих пунктов предусмотрены аккорды и инструментальные кнопки.

Меню «Инфо» содержит следующие строки:

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

«Алгоритмы» – список доступных алгоритмов (включая алгоритмы пользователя).

«Ключевые слова» – список ключевых слов языка КуМир.

«Язык и система КуМир» – полное описание языка КуМир и системы КуМир;

4. Использование области ввода-вывода В начале выполнения программы в поле ввода вывода выводится стро-

ка-заголовок вида (см. рис.3):

> 16:39:48 — Новая программа* — Начало выполнения

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

Команды исполнителя робот

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

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

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

Начать работу со стандартным Исполнителем Робот можно перейдя по ссылке. Прочитать подробнее о работе с исполнителем можно на странице «Исполнитель робот».

Команды, перемещающие робота

Для перемещения робота служат четыре команды.

ВВЕРХ

ВЛЕВО

ВПРАВО

Команды проверки

СЛЕВА СВОБОДНО

СПРАВА СВОБОДНО

СВЕРХУ СВОБОДНО

СНИЗУ СВОБОДНО

Цикл «ПОКА»

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

Рассмотрим следующее задание:

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

Простейшим вариантом цикла является цикл с условием, который описывается с помощью трех ключевых слов:

Ключевое слово «ПОКА» ставится сразу после «НЦ». После «ПОКА» используется одна из команд проверки, описанных выше.

В нашем случае мы дадим задание роботу, чтобы он проверял в цикле, свободно ли место справа от него. Внутри циклической конструкции мы зададим всего одну команду — «вперед». Цикл будет выполняться пока условие «справа свободно» будет истинным. Когда робот дойдет до стены, цикл остановится.

Данную конструкцию можно написать и в одну строчку:

Логические операции

«НЕ», стоящее перед командой проверкой, меняет её значение на противоположное. Если результат команды проверки истинен, то стоящая перед ней «НЕ» поменяет результат на ложный, и наоборот.

«НЕ» следует ставить перед командой проверкой, но не внутри нее. Например, «справа не свободно» будет неправильным написанием, а «не справа свободно» — правильным.

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

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

Круглые скобки

Закрашивание клеток

ЗАКРАСИТЬ

Условие

ЕСЛИ . ТО . ВСЕ

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

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

Мы можем двигаться вверх пока сверху свободно и красить клетки, но вот красить клетку возле прохода в стене нам не надо. Создадим условие, чтобы красить только те клетки, которые находятся возле вертикальной стены. Напишем программу, в которой внутри цикла используем наше условие. В конце программы поставим еще одну команду «закрасить», чтобы закрасить клетку, в которой остановится робот.

Вложенные конструкции

Алгоритмические конструкции могут быть вложенными друг в друга. В предыдущем примере мы рассмотрели условие, вложенное в цикл.

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

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

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

Содержание

  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, Урок информатики
Все права защищены

Источник

Как в кумир исправит строка вне алгоритма

По традиции первой программой на изучаемом языке программирования становится программа вывода строки «Hello, World!». Хотя КуМир чаще всего воспринимают как среду программирования для исполнителей Робот и Чертежник, не будем отступать от общего правила, и напишем программу вывода строки приветствия, но в русском переводе.

Итак, наша задача: написать программу, которая выводит строку «Привет, Мир!».

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

Давайте разбираться. Первая строка » использовать Робот » закомментирована, на это указывает символ » | » и серый цвет шрифта.

» | » — знак комментария, т.е. строка, в начале которой стоит этот символ, не воспринимается системой программным кодом. Но только одна строка.
алг, нач, кон — служебные слова, значение которых очевидно: алгоритм, начало, конец. Они служат для оформления программы. Часть алгоритма до служебного слова нач называют заголовком, а часть между нач и кон — телом программы. Можно вспомнить, что в языке Паскаль имеется похожая структура, а именно
program
.
begin
.
end.
Называем программу «первая_программа» и вводим между нач и кон следующую строку вывод «Привет, мир!»
Все, программа написана, можно ее запустить, что мы и делаем, после чего видим следующее:

Давайте разберем все детально. Как видите из рисунка, название программы выделяется синим цветом. Интересно, что система КуМир лояльно отнеслась к тому, что наше название состоит из двух слов. Однако, настоятельно рекомендую называть программу одним словом. Если хотите иметь название из двух или более слов, то ставьте между этими словами знак подчеркивания, т.е. «_». Другие языки программирования не допускают в названии программ пробелов.

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

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

О первой («Выполнить непрерывно») мы уже сказали. Следующаяя служит для запуска программы без показа на полях. Третья из «запускаемых» конопок — ШАГ, т.е. при нажатии на нее выполняется одна строка программы. И последняя «Выполнить до конца алгоритма» служит для того, чтобы в любой момент при пошаговом выполнении, заставить выполняться программу до конца.

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

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

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

В КуМире используются несколько типов данных:

  • цел — принимает целые значения от -2147483647 до 2147483647
  • вещ — принимает вещественные значения между −21023 и 21023
  • лог — принимает значения да или нет (внутреннее представление – да=1, нет=0)
  • сим — значением может быть любой литеральный символ (практически любой символ)
  • лит — значением может быть строка литеральных символов

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

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

После выполнения этой команды система предлагает ответить на вопрос «Как тебя зовут?». Выполнение программы остановлено до тех пор, пока пользователь не введет литерную строку (свое имя) и не нажмет Enter. Обратите внимание, что после знака вопроса в строке стоит пробел. Если его не будет, то после знака вопроса и введенным именем пробела не будет. Хотя это не играет особой роли, но старайтесь писать программы так, чтобы результаты выводились в правильном виде.

Ввод строки с именем организуется командой ввод . После нажатия на Enter введенная строка будет значением переменной имя . После этого формируется строка, которая выводится в окно вывода. Если говорить подробно, то это выглядит так: выводится «Привет » (с пробелом в конце), после чего выводится значение переменной имя , а затем и «!». Обратите внимание, что между константами и переменными стоят запятые. В конце строки стоит нс (новая строка). На следующей строке выводится сообщение «А я — система КуМир». Общий вид показан на рисунке.

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

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

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

Задание : Если вы еще не устали, то предлагаем опытным путем разобраться в вопросе о соединении строк, т.к. конкатенации. Каким образом можно соединить две или более строки.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ТИПЫ ВЕЛИЧИН ИСПОЛЬЗУЕМЫХ В ПРОГРАММЕ Типы величин Как пишутся в программе Целые Пример описания цел Вещественные 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 ):

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

  • тело цикла

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

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

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

-80%

KumirL

Здесь описаны основные возможности системы КуМир (часть 1) и языка Кумир (часть 2). Знания этих возможностей достаточно для того, чтобы пройти тестирование. Полное описание возможностей системы КуМир приведено в файле system.pdf, языка КуМир – в файле manual.pdf; файлы находятся в каталоге KumirKumirHelp поставки системы КуМир. Полное описание доступно и из меню Инфо->«Язык и система Кумир» самой системы.

Часть 1. Система Кумир

1 Окно системы Кумир Окно системы Кумир выглядит так:

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

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

программы (слева) и область построчных сообщений (справа). Область по-

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

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

Окно можно свернуть-развернуть, сжать-растянуть, передвинуть и т. п.

2. Состояния системы Кумир

У системы Кумир есть четыре возможных состояния:

· РЕДАКТИРОВАНИЕ: происходит подготовка программы, выполнения нет.

· ВЫПОЛНЕНИЕ: происходит выполнение программы, редактирование текста программы запрещено.

· АНАЛИЗ результатов: выполнение завершено, однако все сообщения программы доступны для наблюдения и анализа; по любому действию в области программы, система переходит в состояние РЕДАКТИРОВАНИЕ, а сообщения сбрасываются. Система приходит в состояние АНАЛИЗ после окончания выполнения программы (нормального или аварийного).

· ПАУЗА: выполнение программы приостановлено, но может быть продолжено; редактирование текста программы запрещено. В состояние ПАУЗА система переходит в случае остановки во время выполнения (при вызове встроенной функции «пауза» или после очередного шага при выполнении программы по шагам), см. рис.2.

Рис.2 Окно системы КуМир в состоянии ПАУЗА

3. Главное меню Системы КуМир.

Меню «Программа» содержит следующие пункты:

Эти пункты имеют стандартный для современных оконных систем смысл и обеспечивают работу с файлами, в которых хранятся Кумирпрограммы, эти файлы имеют расширение .kum.

Меню «Редактирование» содержит следующие строки:

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

Команда «Закомментировать» добавляет знак комментария | в начало каждой выделенной (хотя бы частично) строки. Команда «Раскомментировать» удаляет знак комментария из начала каждой выделенной строки. Если в начале выделенной строки не было знака комментария, то содержимое этой строки не меняется. Для команд «Закомментировать» и «Раскомментировать» предусмотрены инструментальные клавиши.

Для того, чтобы набрать знак комментария при кириллической раскладке можно набрать аккорд Alt+!.

С помощью этого меню в текст программы можно вставлять заготовки основных алгоритмических конструкций.

Меню «Выполнение» содержит следующие строки:

· Выполнить непрерывно – начинает (при состоянии системы РЕДАКТИРОВАНИЕ или АНАЛИЗ) или продолжает (при состоянии системы ПАУЗА) выполнение программы. Программа выполняется

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

· «Непрерывно без показа на полях» – аналогично «Выполнить непре-

рывно» — но без вывода на поля вычисляемых значений величин и условий.

· «ШАГ» – Выполняет один ШАГ программы и переходит в режим ПАУЗА. Выполнение команды вызова алгоритма-процедуры трактует как один «ШАГ» . При запуске в состоянии РЕДАКТИРОВАНИЕ и АНАЛИЗ останавливается перед выполнением алг-строки основного алгоритма. Строка, которая будет выполняться, выделяется цветом.

· «шаг» – аналогично команде «ШАГ» . Отличие состоит в обработке команды алгоритма-процедуры и вычислении значения алгорит- ма-функции (если они есть в основной программе). В этих случаях очередным шагом будет выполнение строки-заголовка вспомогательного алгоритма. В дальнейшем команда «шаг» или «ШАГ» приведет к выполнению очередной команды внутри выполняемого вспомогательного алгоритма.

· «До конца алгоритма» – допускается использование только в состоянии ПАУЗА. Программа выполняется непрерывно, но останавливается на первой встретившейся строке кон (как будто перед ней стоит вызов функции пауза).

· «Прервать» – прерывает выполнение программы. Допускается ис-

пользование только в состояниях ВЫПОЛНЕНИЕ и ПАУЗА.

Для всех этих пунктов предусмотрены аккорды и инструментальные кнопки.

Меню «Инфо» содержит следующие строки:

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

«Алгоритмы» – список доступных алгоритмов (включая алгоритмы пользователя).

«Ключевые слова» – список ключевых слов языка КуМир.

«Язык и система КуМир» – полное описание языка КуМир и системы КуМир;

4. Использование области ввода-вывода В начале выполнения программы в поле ввода вывода выводится стро-

ка-заголовок вида (см. рис.3):

> 16:39:48 — Новая программа* — Начало выполнения

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

Команды исполнителя робот

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

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

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

Начать работу со стандартным Исполнителем Робот можно перейдя по ссылке. Прочитать подробнее о работе с исполнителем можно на странице «Исполнитель робот».

Команды, перемещающие робота

Для перемещения робота служат четыре команды.

ВВЕРХ

ВЛЕВО

ВПРАВО

Команды проверки

СЛЕВА СВОБОДНО

СПРАВА СВОБОДНО

СВЕРХУ СВОБОДНО

СНИЗУ СВОБОДНО

Цикл «ПОКА»

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

Рассмотрим следующее задание:

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

Простейшим вариантом цикла является цикл с условием, который описывается с помощью трех ключевых слов:

Ключевое слово «ПОКА» ставится сразу после «НЦ». После «ПОКА» используется одна из команд проверки, описанных выше.

В нашем случае мы дадим задание роботу, чтобы он проверял в цикле, свободно ли место справа от него. Внутри циклической конструкции мы зададим всего одну команду — «вперед». Цикл будет выполняться пока условие «справа свободно» будет истинным. Когда робот дойдет до стены, цикл остановится.

Данную конструкцию можно написать и в одну строчку:

Логические операции

«НЕ», стоящее перед командой проверкой, меняет её значение на противоположное. Если результат команды проверки истинен, то стоящая перед ней «НЕ» поменяет результат на ложный, и наоборот.

«НЕ» следует ставить перед командой проверкой, но не внутри нее. Например, «справа не свободно» будет неправильным написанием, а «не справа свободно» — правильным.

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

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

Круглые скобки

Закрашивание клеток

ЗАКРАСИТЬ

Условие

ЕСЛИ . ТО . ВСЕ

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

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

Мы можем двигаться вверх пока сверху свободно и красить клетки, но вот красить клетку возле прохода в стене нам не надо. Создадим условие, чтобы красить только те клетки, которые находятся возле вертикальной стены. Напишем программу, в которой внутри цикла используем наше условие. В конце программы поставим еще одну команду «закрасить», чтобы закрасить клетку, в которой остановится робот.

Вложенные конструкции

Алгоритмические конструкции могут быть вложенными друг в друга. В предыдущем примере мы рассмотрели условие, вложенное в цикл.

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

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

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

Понравилась статья? Поделить с друзьями:
  • Субару ошибка p1491
  • Стройка была прекращена не успев начаться ошибка
  • Субару импреза ошибка р0171
  • Субару ошибка p1242
  • Строить планы на будущее ошибка