Виконавці алгоритмів та їхні системи команд

КуМир (Комплект Учебных МИРов) – система програмування, призначена для підтримки початкових курсів інформатики та програмування в середній та вищій школі. Заснована на методиці, розробленої в другій половині 1980-х років під керівництвом академіка А. П. Єршова.

Виконання програми полягає у виконанні вступу, якщо воно присутнє, а потім – першого алгоритму (він називається основним алгоритмом програми). Решта алгоритми будуть виконуватися при виклику з першого алгоритму або з інших раніше викликаних алгоритмів.

Алгоритм мовою Кумир записується в наступному вигляді:

алг ім’я алгоритма (опис_параметрів)

  дано умова_застосування_алгоритма

  надо ціль_виконання_алгоритма | синім кольором не обов’язкові поля

| вертикальна лінія позначка кометарів

нач

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

кон

Опис алгоритму складається із:

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

Ім’я буває у величин, таблиць, алгоритмів і виконавців. Ім’я – це послідовність слів, розділених пробілами. Перше слово імені не повинно починатися з цифри. Жодного слова не повинно бути ключовим словом.

Приклади імен: m, погода на завтра, листопада 7, Сьоме листопада, дом_57б.

Приклади неправильних імен:

  • 7е листопада (перше слово починається з цифри);
  • альфа-бета ([символ << мінус >>] – неприпустимий символ);
  • альфа або омега (або – ключове слово).

Примітка. Ключове слово неможна вставляти всередину багатослівних логічних імен.

 

Слово – це послідовність дозволених (словникових) символів. Словниковими символами є:

  • літери (кириличні й латинські, великі та малі);
  • цифри;
  • два спеціальних знака: @ _.

Приклади слів: бета123, 3 кг, мама, Linux, кістки, kumir @ infomir_ru.

Приклади не слів: альфа-123, ма% ма, С ++.

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

Величини, з якими працює Кумир-програма, підрозділяються на кілька типів. Величина кожного з типів може приймати свій набір значень. У мові кумира передбачені наступні типи величин:

  • цел – приймає цілі значення від -МАКСЦЕЛ-1 до МАКСЦЕЛ, де МАКСЦЕЛ = 2147483 647;
  • вещ – приймає речові значення від -МАКСВЕЩ до МАКСВЕЩ, де МАКСВЕЩ – це число, трохи менше, ніж 1.797693 × 10308;
  • лог – приймає значення так чи ні;
  • сим – значенням може бути будь-який літеральний символ;
  • лит – значенням може бути рядок літеральних символів.

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

 

Кожна величина повинна мати опис. Це може бути зроблено:

  • за допомогою оператора опису;
  • при завданні формальних параметрів алгоритму.

цел j, k, n

вещ длина, ширина

лит мой текст

Приклад оголошення табличних величин

цел таб k[0:5]

вещтаб tab[1:4, 1:12]

Тут k – лінійна таблиця, що складається з 6 елементів цілого типу. Індекси елементів приймають значення від 0 до 5. Таблиця tab – прямокутна. У ній 48 елементів – 4 рядки і 12 стовпців.

алг

нач

п := 1 | Так не можна!

цел п

п := 1 | Так можна

кон

 

Кожній базової операції відповідає свій символ. У деяких випадках доводиться застосовувати складовою символ, що складається з двох звичайних символів:

** – зведення в ступінь;

:=  – привласнити значення;

<= – менше або дорівнює;

> = – більше або дорівнює;

<> – не дорівнює.

 

У мові Кумир існує три команди контролю виконання з умовами: утв, дано, надо.

Формат виклику:

  • утв ЛОГ ВЫРАЗ
  • дано ЛОГ ВЫРАЗ
  • надо ЛОГ ВЫРАЗ

алг абс (рез вещ х)     приклад 1

дано х<=0

надо х>=0

нач

х := -х

кон

 

алг вещ кв (вещ х)        приклад 2

нач

вещ к

к := х*х

утв к>=0

знач := к

кон

 

Команды-действия

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

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

 

Команды ввод и вывод

Вывод

Формат вызова:

вывод выражение-1, … , выражение-N

или

вывод величина-файлового-типа, выражение-1, … , выражение-N

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

Если первой величиной после команды вывод является величина типа файл, то вместо вывода на экран, значения выражений будут записаны в соответсвующий файловый объект.

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

 алг

нач

цел а

а := 3

вещ б

б := 1.3

нц 5 раз

вывод а, ” “, б, “Привет!”, нс

кц

кон

Результат вывода на экран:

3 1.3Привет!

3 1.3Привет!

3 1.3Привет!

3 1.3Привет!

3 1.3Привет!

Ввод

Формат вызова:

ввод выражение-1, … , выражение-N

или

ввод величина-файлового-типа, выражение-1, … , выражение-N

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

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

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

алг

#использование нс в качестве

#парамтера команды ввод.

нач

вещ а, б

ввод а, нс, б

вывод а, нс, б

кон

 

Залишити відповідь