Учебный алгоритмический язык
Уче́бный алгоритми́ческий язы́к — формальный язык, используемый для записи, реализации и изучения алгоритмов. В отличие от большинства языков программирования, не привязан к архитектуре компьютера, не содержит деталей, связанных с устройством машины.
Учебный алгоритмический язык | |
---|---|
Класс языка | страница значений в проекте Викимедиа[вд] |
Появился в | 1985 |
Автор | А. П. Ершов |
Расширение файлов |
.kum |
Испытал влияние | Лого |
При изучении информатики в школах, для изучения основ алгоритмизации применяется т. н. Ру́сский алгоритми́ческий язы́к (шко́льный алгоритми́ческий язы́к), использующий понятные школьнику слова на русском языке. Алголо-подобный алгоритмический язык с русским синтаксисом был введён в употребление академиком А. П. Ершовым в середине 1980-х годов в качестве основы для «безмашинного» курса информатики. Впервые был опубликован в учебнике «Основы информатики и вычислительной техники» в 1985 г.[1] Язык также применялся для записи алгоритмов в учебнике А. Г. Кушниренко, Г. В. Лебедева и Р. А. Свореня «Основы информатики и вычислительной техники» для 9-10 классов (1990 г. и последующие переиздания; общий тираж составил 7 млн экземпляров)[2].
Система типов
[править | править код]Обычные величины/значения:
- цел — целые числа из диапазона от −32768 до 32767 (2 байта)
- вещ — вещественные числа от −1038 до 1038 (4 байта) Например: 3.14; 0.314е1; 27e-2 = 0.27
- лог — логические переменные (да, нет) (1 байт) (да>нет)
- сим — символьные переменные (‘a’, ‘5’, ‘.’, ‘,’ …) (1 байт)
- лит — литерные (строковые) переменные (‘’, ‘мама мыла раму’) (256 байт)
Для табличных величин к обычным добавляется таб, например:
цел таб вещ таб лог таб сим таб лит таб
Описание переменных:
цел а,в,с вещ х,у
Команда присваивания:
Имя := значение; Имя := Имя2; Имя := значение выражения
Виды величин
- аргументы (арг) — описываются в заголовке алгоритма,
- результаты (рез) — описываются в заголовке алгоритма,
- значения функций (знач) — описываются указанием типа перед именем алгоритма — функции,
- локальные — описываются в теле алгоритма, между нач и кон,
- общие — описываются после строки исп исполнителя, до первой строки алг.
Программа «Привет, мир!» на школьном алгоритмическом языке выглядит следующим образом:
алг Привет, мир! нач | вывод "Привет, мир!" кон
Примеры
[править | править код]Алгоритм на русском алгоритмическом языке в общем виде записывается в форме:
алг название алгоритма (аргумент и результат) дано условия применимости алгоритма надо цель выполнения алгоритма нач описание промежуточных величин | последовательность команд (тело алгоритма) кон
В записи алгоритма ключевые слова обычно подчёркивались либо выделялись полужирным шрифтом. Для выделения логических блоков применялись отступы, а парные слова начала и конца блока соединялись вертикальной чертой.
В учебнике Кушниренко запись циклов была изменена. Если у Ершова ключевое слово нц следовало после условия цикла и означало начало тела цикла, то у Кушниренко стало обозначать начало цикла вообще. Таким образом, были искусственно объединены название цикла, условие цикла и тело цикла.
Пример вычисления суммы квадратов (Ершов):
алг Сумма квадратов (арг цел n, рез цел S) нач | цел i | ввод n | S := 0 | для i от 1 до n | нц | | S := S + i * i | кц | вывод "S = ", S кон
Пример вычисления суммы квадратов (Кушниренко):
алг Сумма квадратов (арг цел n, рез цел S) дано | n > 0 надо | S = 1*1 + 2*2 + 3*3 + … + n*n нач цел i | ввод n; S:=0 | нц для i от 1 до n | | S := S + i * i | кц | вывод "S = ", S кон
Е-практикум
[править | править код]Для подкрепления теоретического изучения программирования по алгоритмическому языку специалистами мехмата МГУ в 1985 г. был создан редактор-компилятор «Е-практикум» («Е» — в честь Ершова), позволяющий вводить, редактировать и исполнять программы на алгоритмическом языке[3].
В 1986 г. для «Е-практикума» был выпущен комплект учебных миров (исполнителей): «Робот», «Чертёжник», «Двуног», «Вездеход», которые позволяют просто вводить понятия алгоритма. «Е-практикум» был реализован на компьютерах: «Ямаха», «Корвет», «УК-НЦ» и получил широкое распространение.
Данный язык программирования постоянно дорабатывался, и описание более позднего варианта «Е-практикума» появилось в учебнике 1990 года. Система программирования «КуМир» («Комплект Учебных Миров»), поддерживающая этот учебник, была выпущена в свет предприятием «ИнфоМир» в 1990 году. Язык этой системы также называется «КуМир».
КуМир
[править | править код]В 2018 году НИИСИ РАН была выпущена версия 2.0 пакет «КуМир» для Windows и Linux. В системе используется несколько исполнителей; основные — это классические «Робот» и «Чертёжник». Пакет включён в дистрибутив ALT Linux Школьный.
Система «КуМир» разработана в НИИСИ РАН по заказу Российской академии наук и распространяется свободно на условиях лицензии GNU GPL 2.0.
В последние несколько лет школьный алгоритмический язык включается как один из предлагаемых в текстах задач ЕГЭ по информатике.
См. также
[править | править код]Примечания
[править | править код]Литература
[править | править код]- Ершов А. П. Алгоритмический язык в школьном курсе основ информатики и вычислительной техники // Микропроцессорные средства и системы. — 1985. — № 2. — С. 48—51. (недоступная ссылка) То же в архиве академика А. П. Ершова: [1].
- Ершов А. П., Монахов В. М., Бешенков С. А. и др. Основы информатики и вычислительной техники: Учебное пособие. Ч. 1. — М.: Просвещение, 1985. — С. 96.
- Варсанофьев Д. В., Кушниренко А. Г., Лебедев Г. В. E-практикум — программное обеспечение школьного курса информатики и вычислительной техники // Микропроцессорные средства и системы. — 1985. — № 3. — С. 27—32.
- Кушниренко А. Г., Лебедев Г. В., Сворень Р. А. Основы информатики и вычислительной техники: Учебное пособие для 10-11-х кл. общеобразовательных учреждений. — М.: Просвещение, 1990. — 224 с. — ISBN 5-09-002719-6. — Переиздано в 1991, 1993 и 1996 годах
Ссылки
[править | править код]- Ершов А. П. Алгоритмический язык в школьном курсе основ информатики и вычислительной техники. 07.05.1985 в архиве академика Ершова
- Система программирования КуМир для Windows и Linux