Учебный алгоритмический язык. Алгоритм

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

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

Алголо-подобный алгоритмический язык с русским синтаксисом был введён в употребление академиком А. П. Ершовым в середине 1980-х годов, в качестве основы для «безмашинного» курса информатики.

Основные служебные слова алгоритмического языка

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

  • алг (алгоритм)
  • арг (аргумент)
  • рез (результат)
  • нач (начало) — начало алгоритма
  • кон (конец) — конец алгоритма
  • дано — исходные данные в произвольной форме
  • надо — цель алгоритма

Типы данных:

  • цел (целый)
  • вещ (вещественный)
  • сим (символьный)
  • лит (литера) — строка
  • лог (логический)
  • таб (таблица) — для обозначения массива
  • длин (длина) — количество элементов массива

Обозначение условий

  • если
  • иначе
  • выбор
  • знач

Обозначение циклов

  • нц (начало цикла)
  • кц (конец цикла)
  • пока

Логические функции и значения для составления выражений

Ввод-вывод

  • ввод
  • вывод

Общий вид алгоритма

1
2
3
4
5
6

алг название алгоритма (аргументы и результаты)
| дано условия применимости алгоритма
| надо цель выполнения алгоритма
нач описание промежуточных величин
| последовательность команд (тело алгоритма)
кон

Часть алгоритма от слова алг до слова нач называется заголовком , а часть, заключенная между словами нач и кон - телом алгоритма .

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

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

Основные алгоритмические структуры

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

| если условие
| | то действия
| всё

Полная развилка

1
2
3
4
5

| если условие
| | то действия 1
| | иначе действия 2
| всё

Ветвление

1
2
3
4
5
6
7
8

| выбор параметр
| | при знач значение 1
| | | действия 1
| | при знач значение 2
| | | действия 2
| | иначе
| | | действия по умолчанию
| всё

Цикл с предусловием

| нц пока условие
| | действия
| кц

Цикл с постусловием

Школьный алгоритмический язык

Алгоритми́ческий язык (также русский алгоритмический язык, РАЯ ) - язык программирования , используемый для записи и изучения алгоритмов . При изучении информатики в школах для изучения основ алгоритмизации применяется т. н. школьный алгоритмический язык (учебный алгоритмический язык ), использующий понятные школьнику слова на русском языке. В отличие от большинства языков программирования, алгоритмический язык не привязан к архитектуре компьютера , не содержит деталей, связанных с устройством машины.

Примеры

Алгоритм на алгоритмическом языке в общем виде записывается в форме:

алг название алгоритма (аргументы и результаты) дано условия применимости алгоритма надо цель выполнения алгоритма нач описание промежуточных величин | последовательность команд (тело алгоритма) кон

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

Пример вычисления суммы квадратов:

алг Сумма квадратов (арг цел 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 г. был создан редактор-компилятор «Е-практикум» («Е» - в честь Ершова), позволяющий вводить, редактировать и исполнять программы на алгоритмическом языке.

В 1986 г. для «Е-практикума» был выпущен комплект учебных миров (исполнителей): «Робот», «Чертежник»», «Двуног», «Вездеход», которые позволяют просто вводить понятия алгоритма. «Е-практикум» был реализован на компьютерах: Ямаха , Корвет , УКНЦ и получил широкое распространение.

Данный язык программирования постоянно дорабатывался и описание более позднего варианта «Е-практикума» появилось в учебнике 1990 года. Система программирования «КуМир» («Комплект Учебных Миров»), поддерживающая этот учебник, была выпущена в свет предприятием «ИнфоМир» в 1990 году. Язык этой системы также называется «КуМир».

В 1995 году «КуМир» был рекомендован Министерством образования РФ в качестве основного учебного материала по курсу «Основы информатики и вычислительной техники» на основе учебника А. Г. Кушниренко, Г.В.Лебедева и Р.А.Свореня. .

Критика

Однако, следует заметить, что алгоритмический язык при отсутствии деталей, связывающих его с архитектурой компьютера напрямую, тем не менее, относясь к Алголо -подобным языкам, неявно обучает школьников опираться на фон-неймановскую архитектуру машин. (Архитектура фон Неймана является практической реализацией более ранней идеи, имеющей название Машина Тьюринга . Кроме идеи Тьюринга существуют и другие идеи. Популярнейшая из них имеет название Лямбда-исчисление : над ней работал Алонзо Чёрч. Лисп-машина - это архитектура, которая основывается на Лямбда-исчислении.)

Ссылки

  • А. П. Ершов. Алгоритмический язык в школьном курсе основ информатики и вычислительной техники. 07.05.1985
  • Форум по русским языкам программирования и средств разработки

Wikimedia Foundation . 2010 .

Смотреть что такое "Школьный алгоритмический язык" в других словарях:

    Алгоритмический язык формальный язык, используемый для записи, реализации или изучения алгоритмов. Всякий язык программирования является алгоритмическим языком, но не всякий алгоритмический язык пригоден для использования в качестве языка… … Википедия

    У этого термина существуют и другие значения, см. Алгоритмический язык. Учебный алгоритмический язык формальный язык, используемый для записи, реализации и изучения алгоритмов. В отличие от большинства языков программирования, не привязан к … Википедия

    У этого термина существуют и другие значения, см. Дракон (значения). Пример блок схемы алгоритма на языке ДРАКОН дракон схемы ДРАКОН (Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность) визуальный… … Википедия

    Учебный язык программирования язык программирования, предназначенный для обучения. В качестве таковых разрабатывались такие языки как BASIC и Паскаль. Из разработанного для обучения языка ABC вырос Python. Популярным языком,… … Википедия

    Эта статья предлагается к удалению. Пояснение причин и соответствующее обсуждение вы можете найти на странице Википедия:К удалению/28 сентября 2012. Пока процесс обсуждения не завершён, статью мож … Википедия

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

    У этого термина существуют и другие значения, см. Кумир. КуМир … Википедия

    Edumandriva … Википедия

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

Книги

  • Программирование на алгоритмическом языке КуМир под редакцией А Г Кушниренко , Анеликова Л., Гусева О.. Данное пособие предназначено учителям и учащимся для поддержки начальных курсов информатики и программирования в средней, старшей и высшей школе. . В нем рассматриваются основные этапы и…

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

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

Первым алгоритмическим языком стал Fortran , созданный в 1957г. специалистами фирмы IBM под руководством Джона Бекуса. Сейчас существует большое множество алгоритмических языков: Pascal, C, Algol, PL1, Basic, Lisp, Prolog и многие другие.

Алгоритмические языки и ассемблеры относятся к языками символьного кодирования, т.е. к языкам, которые оперируют не машинными кодами, а условными символьными обозначениями, поэтому программы, составленные на этих языках, не могут быть непосредственно выполнены на компьютере. Чтобы такая программа заработала, ее текст нужно преобразовать в машинные коды. Для этого существуют специальные программы-переводчики (трансляторы). Различают 2 вида трансляторов- компилятор и интерпретатор. Компилятор транслирует программу сразу целиком, и лишь после этого возможно ее выполнение. Интерпретатор - это более простой транслятор, он последовательно транслирует операторы программы и так же по частям ее выполняет.

21) Структура программы на языке С/C++.

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


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

  • если функция не должна возвращать значение, указывается тип void:
  • тело функции является блоком и, следовательно, заключается в фигурные скобки;
  • функции не могут быть вложенными;
  • каждый оператор заканчивается точкой с запятой (кроме составного оператора).

Пример структуры программы, содержащей функции main, fl и f2:

Программа может состоять из нескольких модулей (исходных файлов).

Несколько замечаний о вводе/выводе в C++

В языке С++ нет встроенных средств ввода/вывода - он осуществляется с помощью функций, типов и объектов, содержащихся в стандартных библиотеках. Используется два способа: функции, унаследованные из языка С, и объекты С++.

Основные функции ввода/вывода в стиле С:

int scanf (const char* format, ...) // ввод
int printf(const char* format, ...) // вывод

Они выполняют форматированный ввод и вывод произвольного количества величин в соответствии со строкой формата format. Строка формата содержит символы, которые при выводе копируются в поток (на экран) или запрашиваются из потока (с клавиатуры) при вводе, и спецификации преобразования, начинающиеся со знака %, которые при вводе и выводе заменяются конкретными величинами.

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

#include
int main() {
int i;
printf("Введите целое число\п");
scanf("%d", &i);
printf("Вы ввели число %d, спасибо!", i);
return 0;
}

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

Третья строка - описание переменной целого типа с именем i.

Функция printf в четвертой строке выводит приглашение «Введите целое число» и переходит на новую строку в соответствии с управляющей последовательностью \n. Функция scanf заносит введенное с клавиатуры целое число в переменную i (знак & означает операцию получения адреса), а следующий оператор выводит на экран указанную в нем строку, заменив спецификацию преобразова-
ния на значение этого числа.

А вот как выглядит та же программа с использованием библиотеки классов С++:

#include
int main() {
int i;
cout << "Введите целое число\n "; cin >> i;
cout << "Вы ввели число " << i << ", спасибо!";
return 0;
}

Заголовочный файлсодержит описание набора классов для управления вводом/выводом. В нем определены стандартные объекты-потоки cin для ввода с клавиатуры и cout для вывода на экран, а также операции помещения в поток < < и чтения из потока >>.

22) Алфавит и идентификаторы в языке С/C++.

АЛФАВИТ
прописные и строчные латинские буквы и знак подчеркивания;
арабские цифры от 0 до 9;
пробельные символы: пробел, символы табуляции, символы перехода на но­ вую строку.
специальные знаки:

Из символов алфавита формируются лексемы языка:
идентификаторы;
ключевые (зарезервированные) слова;
знаки операций;
константы;
разделители (скобки, точка, запятая, пробельные символы).

ИДЕНТИФИКАТОРЫ
В идентификаторе могут использоваться латинские буквы, цифры и знак подчеркивания;
Прописные и строчные буквы различаются;
Первым символом идентификатора может быть буква или знак подчеркивания, но не цифра;
Пробелы внутри имен не допускаются;
Длина идентификатора по стандарту не ограничена, но некоторые компиляторы и компоновщики налагают на нее ограничения;
Идентификатор не должен совпадать с ключевыми словами;
Не рекомендуется начинать идентификаторы с символа подчеркивания (могут совпасть с именами системных функций или переменных);
На идентификаторы, используемые для определения внешних переменных;
Есть ограничения компоновщика (использование различных компоновщиков или версий компоновщика накладывает разные требования на имена внешних переменных).

Ключевые слова С++

23) Целые типы данных в языке С/C++.

Целый тип данных предназначен для представления в памяти компьютера обычных целых чисел. Основным и наиболее употребительным целым типом является тип int . Гораздо реже используют его разновидности: short (короткое целое) и long (длинное целое). Также к целым типам относится тип char (символьный). Кроме того, при необходимости можно использовать и тип long long (длинное-предлинное!), который хотя и не определён стандартом, но поддерживается многими компиляторами C++. По-умолчанию все целые типы являются знаковыми , т.е. старший бит в таких числах определяет знак числа: 0 - число положительное, 1 - число отрицательное. Кроме знаковых чисел на C++ можно использовать беззнаковые . В этом случае все разряды участвуют в формировании целого числа. При описании беззнаковыхцелыхпеременных добавляется слово unsigned (без знака).

Сводная таблица знаковых целых типов данных:

Тип данных Размер, байт Диапазон значений
char -128 ... 127
short -32768 ... 32767
int -2147483648 ... 2147483647
long -2147483648 ... 2147483647
long long -9223372036854775808 ... 9223372036854775807

Сводная таблица беззнаковых целых типов данных:

Тип данных Размер, байт Диапазон значений
unsigned char 0 ... 255
unsigned short 0 ... 65535
unsigned int (можно просто unsigned) 0 ... 4294967295
unsigned long 0 ... 4294967295
unsigned long long 0 ... 18446744073709551615

Запоминать предельные значения, особенно для 4-х или 8-ми байтовых целых, вряд ли стоит, достаточно знать хотя бы какого порядка могут быть эти значения, например, тип int - приблизительно 2·10 9 .

На практике рекомендуется везде использовать основной целый тип, т.е. int . Дело в том, что данные основного целого типа практически всегда обрабатываются быстрее, чем данные других целых типов. Короткие типы (char , short ) подойдут для хранения больших массивов чисел с целью экономии памяти при условии, что значения элементов не выходят за предельные для этих типов. Длинные типы необходимы в ситуации, когда не достаточно типа int .

24) Вещественные типы данных в языке С/C++.

Особенностью вещественных (действительных) чисел является то, что в памяти компьютера они практически всегда хранятся приближенно, а при выполнении арифметических операций над такими данными накапливается вычислительная погрешность.

Имеется три вещественных типа данных: float , double и long double . Основным считается тип double . Так, все математические функции по-умолчанию работают именно с типом double . В таблице ниже приведены основные характеристики вещественных типов:

Тип long double в настоящее время, как правило, совпадает с типом double и на практике обычно не применяется. При использовании старых 16-ти разрядных компиляторов данные типа long double имеют размер 10 байт и обеспечивают точность до 19 десятичных цифр.

Рекомендуется везде использовать только тип double . Работа с ним всегда ведётся быстрее, меньше вероятность заметной потери точности при большом количестве вычислений. Тип float может пригодиться только для хранения больших массивов при условии, что для решения поставленной задачи будет достаточно этого типа.

25) Символьный тип данных в языке С/C++.

В стандарте C++ нет типа данных, который можно было бы считать действительно символьным. Для представления символьной информации есть два типа данных, пригодных для этой цели, - это типы char и wchar_t , хотя оба эти типа по сути своей вообще-то являются целыми типами. Например, можно взять символ "A" и поделить его на число 2. Кстати, а что получится? Подсказка: символ пробела. Для «нормальных» символьных типов, например, в Паскале или C#, арифметические операции для символов запрещены.

Тип char используется для представления символов в соответствии с системой кодировки ASCII (American Standard Code for Information Interchange - Американский стандартный код обмена информации). Это семибитный код, его достаточно для кодировки 128 различных символов с кодами от 0 до 127. Символы с кодами от 128 до 255 используются для кодирования национальных шрифтов, символов псевдографики и др.

Тип wchar_t предназначен для работы с набором символов, для кодировки которых недостаточно 1 байта, например, Unicode. Размер типа wchar_t обычно равен 2 байтам. Если в программе необходимо использовать строковые константы типа wchar_t , то их записывают с префиксом L , например, L"Слово".

26) Оператор присваивания и пустой оператор в языке С/C++

Оператор присваивания - это самый употребительный оператор. Его назначение - присвоить новое значение какой-либо переменной. В C++ имеется три формы этого оператора.

1)Простой оператор присваивания записывается так:

переменная = выражение;

Данный оператор работает следующим образом: вначале вычисляется выражение, записанное справа от символа операции = (равно), затем полученный результат присваивается переменной, стоящей слева от знака = . Тип результата должен совпадать с типом переменной, записанной слева, или быть к нему приводимым.

Слева от знака = может быть только переменная, справа же можно записать и константу, и переменную и вообще выражение любой сложности.

Пример операторов

y=x+3*r;

s=sin(x);

2)Множественное присваивание - в таком операторе последовательно справа налево нескольким переменным присваивается одно и то же значение, например:

a=b=c=1;

Так можно сразу определить, к примеру, что в равностороннем треугольнике все стороны равны одному и тому же числу 1. Приведенный выше оператор эквивалентен последовательному выполнению трёх операторов:

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

3)Присваивание с одновременным выполнением какой-либо операции в общем виде записывается так:

переменная знак_операции = выражение;

и равносильно записи

переменная = переменная знак_операции выражение ;

Например, оператор:

s += 5; // 1-й вариант

делает то же самое, что и оператор

s = s + 5; // 2-й вариант

а именно: взять старое значение из переменной s , прибавить к нему число 5 и полученное значение снова записать в переменную s .

Как видим, запись 1-го варианта короче записи 2-го варианта, да и выполняется быстрее, так как в 1-м варианте адрес переменной s вычисляется 1 раз, а во 2-м варианте - дважды.

Пустой оператор

Пустой оператор - это оператор, который ничего не выполняет. Зачем нужен «бесполезный» оператор?

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

Пустой оператор - это одиночный символ ; (точка с запятой), например:

c=a+b; ;

Здесь первый символ ; (точка с запятой) завершает оператор присваивания, а второй символ как раз и даёт нам пустой оператор. В данной ситуации пустой оператор совсем не нужен (но и не является синтаксической ошибкой!), приведен только для пояснения. Более «разумные» примеры использования пустого оператора будут приведены позже в соответствующих темах.

27) Арифметические операции в языке С/C++.

Это наиболее часто используемые операции. Их смысл близок к тому, каким он известен из курса математики. Итак, перечислим их:

Приоритет операций сложения и вычитания ниже, чем умножения, деления и вычисления остатка. Для изменения порядка вычисления используют круглые скобки, например для умножения на 2 суммы двух чисел A и B можно написать:

Далее. Как видно из полученных результатов, в C++ один знак / означает две разные операции. Если один или оба операнда - вещественные, то выполняется обычное деление, если оба операнда - целые, то выполняется деление нацело и результат будет целого типа. Использование этой операции требует повышенной внимательности, например, если запрограммировать вычисление математического выражения

буквально, т.е. так:

1/3*sin(2*X)

то результат вне зависимости от значения X всегда будет равен нулю, так как выражение 1/3 означает деление нацело. Для решения проблемы достаточно один из операндов сделать вещественным

1.0/3*sin(2*X)

Операция вычисления остатка (% ) применима только для целочисленных операндов.

Смена знака . Унарная операция «- » означает смену знака. Как видно из общей таблицы всех операций, она имеет очень высокий приоритет - выше, чем, к примеру, у операции умножение. Поэтому в выражении

вначале выполняется смена знака для A , а затем умножение -A на B .

Для парности имеется и операция унарный плюс , т.е. можно написать

Для каких целей это использовать? Сложно сказать. Но такая возможность есть.

Более интересны, и главное, очень употребительны операции автоувеличения и автоуменьшения.

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

Изучение в школе

Зачастую в школах изучается алгоритмический язык, наиболее известный как учебный. Он получил масштабное распространение благодаря тому, что в нем используются максимально понятные любому ученику слова. Подобный язык с синтаксисом на русском был введен давно, а именно в середине 1980-х годов. Его применяли для того, чтобы дать основу школьникам и преподавать им без компьютера курс информатики. Опубликован данный язык был в 1985 году в одном из учебников. Также его перепечатали несколько раз и для специальных книг, которые предназначались для обучения в 9 и 10 классах. Общий тираж издания составил 7 млн экземпляров.

Последовательность записи алгоритма

Прежде всего необходимо записать буквосочетание АЛГ. Далее следует название алгоритма. Затем после НАЧ нужно описать серию команд. Оператор КОН означает конец программы.

Описание алгоритма на алгоритмическом языке:

АЛГ Компания

НАЧ

поворот на 90 градусов влево

КОН

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

Составление алгоритмов

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

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

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

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

Алгоритмы, которые имеют определенный порядок следования команд, постоянно могут меняться в зависимости от результатов выполнения специальных частей программы. Такие системы называются разветвляющимися. Для того чтобы их создать, необходимо использовать специальную команду ветвления. Она имеет сокращенную и полную схему написания. Нередко встречаются циклические алгоритмы, которые выполняют особые команды по несколько раз.

E-практикум

Для того чтобы усовершенствовать изучение теории по грамматическому языку, профессионалы мехмата МГУ в 1985 году создали специальный компилятор. Он получил название "E-практикум". С его помощью можно было вводить, изменять и выполнять программы. На следующий год был выпущен определенный комплект исполнителей. Речь идет о «Роботе», «Чертежнике», «Двуногом», «Вездеходе». Это позволило просто и с легкостью реализовывать алгоритмы. Данный компилятор получил огромное распространение, был использован на некоторых компьютерах. Довольно долгое время этот язык программирования дорабатывался и изменялся. В 1990 году его более поздний вариант появился в учебнике.

Кумир

Сейчас школьный алгоритмический язык переживает свое второе рождение, после того как был разработан специальный пакет «Кумир» для Windows и Linux. Система функционирует с несколькими исполнителями. Классическими среди них являются «Робот», «Чертежник». Этот же пакет входит в установочный файл Linux «Школьный». Данная система разработана была специально по заказу Российской Академии наук. Она распространяется бесплатно и свободно. Последние несколько лет описываемый язык активно предлагают использовать в ЕГЭ как один из

Назначение языка

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

Различия машинного и алгоритмического языков

Наиболее известным представителем машинно-зависимых языков является "Ассемблер". Во время программирования на нем человек должен ясно указать транслятору благодаря специальным операторам, какие ячейки памяти следует заполнить или перенести. Так как синтаксис "Ассемблера" максимально приближен к компьютерной форме записи, то и изучать его довольно сложно. Именно поэтому алгоритмический язык преподается в школе, а также в начале обучения программированию на первом курсе высшего учебного заведения.

Стандартные функции

Алгоритмический язык имеет специальные стандартные функции, которые получили статус «встроенных». Именно благодаря им можно с легкостью написать многие операции с числами и выражениями, не выполняя рутинных записей. Программа на алгоритмическом языке довольно проста. Штатные функции могут позволить вычислить квадратный корень, логарифмы, модуль и так далее. Наиболее популярными встроенными методами являются следующие:

  • абсолютный модуль abs(X);
  • корень квадратный sqrt(X);
  • натуральный и ln(X), lg(X);
  • минимум и максимум min (X,Y), max (X, Y);
  • тригонометрические функции sin(X), cos(X), tg(X), ctg(X).

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