Алгоритмический язык против Паскаля: ключевые отличия

Если вы уже знаете Паскаль (часть 1 этого учебника) — этот урок переведёт ваши знания на язык КуМира за полчаса.

Алгоритмический язык КуМира и Паскаль очень близки по идеям, но различаются словами: где в Паскале begin/end, там в КуМире нач/кон.

Зачем сравнивать

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

Главная таблица соответствий

ПаскальКуМир
begin … endнач … кон
:=:= (одинаково!)
if … then … elseесли … то … иначе … всё
while … doнц пока … кц
for i := a to b doнц для i от a до b … кц
repeat … untilнц … кц при (аналог)
div, mod (инфиксные)div(a,b), mod(a,b) (функции)
integer, real, booleanцел, вещ, лог
char, stringсим, лит
true / falseда / нет
and / or / notи / или / не
writeln / readlnвывод … нс / ввод
var x: integer;цел x (в начале тела)

Отличие 1: всё по-русски

Самое заметное: ключевые слова русские. Это снижает порог входа для младших школьников, но требует точности — всё пишется с буквой «ё», а иначе — слитно.

Отличие 2: цикл — это «нц … кц»

В Паскале блок цикла — begin … end. В КуМире у цикла своя рамка: нц (начало цикла) и кц (конец цикла). Вид цикла указывается рядом с нц:

нц для i от 1 до 5
  вывод i, " "
кц

Сравните с Паскалем:

for i := 1 to 5 do
  write(i, ' ');

Идея одна, оформление разное.

Отличие 3: ветвление закрывается словом «всё»

В Паскале конструкция if не имеет явного «закрывающего» слова (используются begin/end при нескольких командах). В КуМире ветвление обязательно закрывается словом всё:

если a > 0
  то вывод "положительное", нс
  иначе вывод "неположительное", нс
всё

Это удобно: всё чётко показывает, где заканчивается «если». Никаких «висячих else».

Отличие 4: div и mod — функции

В Паскале пишут 17 div 5 и 17 mod 5 (между числами). В КуМире это обычные функции со скобками: div(17, 5) и mod(17, 5). Частая ошибка «паскалистов» — написать инфиксно.

Отличие 5: исполнители

У Паскаля нет встроенных Робота и Черепахи — это уникальная черта КуМира. Благодаря им алгоритмы становятся наглядными, а задание 15.1 ОГЭ вообще существует только в мире КуМира.

Один и тот же алгоритм на двух языках

«Вывести квадраты чисел от 1 до 5». КуМир:

алг
нач
  цел i
  нц для i от 1 до 5
    вывод i, " в квадрате = ", i * i, нс
  кц
кон

Запускаемый Python-эквивалент (та же логика):

for i in range(1, 6):
    print(i, "в квадрате =", i * i)

Вывод:

1 в квадрате = 1
2 в квадрате = 4
3 в квадрате = 9
4 в квадрате = 16
5 в квадрате = 25

Попробуй сам

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

Частые ошибки при переходе

  • Забыть всё в конце если.
  • Написать div/mod инфиксно, как в Паскале.
  • Использовать begin/end или английские слова по привычке.
  • Поставить точку с запятой в конце команды — в КуМире она не нужна, команды разделяются переводом строки.

Итог

  • КуМир и Паскаль — близнецы по идеям, ключевые слова в КуМире русские.
  • Цикл — нц … кц, ветвление закрывается словом всё.
  • div и mod в КуМире — функции со скобками.
  • Уникальная черта КуМира — исполнители (Робот и др.), которых нет в Паскале.
Проверьте себя
1. Каким словом закрывается ветвление «если» в КуМире?
Aконец
Bend
Cвсё
Dкц
2. Как в КуМире правильно записать остаток от деления 20 на 3?
A20 mod 3
Bmod(20, 3)
C20 % 3
Dremainder 20, 3
3. Что в КуМире соответствует паскалевскому begin … end?
Aнц … кц
Bесли … всё
Cнач … кон
Dалг … кон
Поддержать проект