Тарифы Услуги Сим-карты

Что значит записать на алгоритмическом языке. Алгоритмический язык. Команды школьного языка программирования АЯ

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

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

Алголо-подобный алгоритмический язык с русским синтаксисом был введён в употребление академиком А. П. Ершовым в середине 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 .

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

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

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

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

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

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

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

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

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

Псевдокоды – это полуформализованные описания алгоритмов на условном алгоритмическом языке , включающие как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и другое.

Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов.

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

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

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

алг название алгоритма (аргументы и результаты)

дано условия применимости алгоритма

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

нач описание промежуточных величин

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

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

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

Примеры предложений алг :

алг Объем и площадь цилиндра (арг вещ R, H, рез вещ V, S)

алг Корни КвУр (арг вещ а, b, c, рез вещ x1, x2, рез лит t)

алг Исключить элемент (арг цел N, арг рез вещ таб А)

алг Диагональ (арг цел N, арг цел таб A, рез лит Otvet)

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

алг Замена (арг лит Str1, Str2, арг рез лит Text)

дано | длины подстрок Str1 и Str2 совпадают

надо | всюду в строке Text подстрока Str1 заменена на Str2

алг Число максимумов (арг цел N, арг вещ таб A, рез цел K)

дано | N>0

надо | К - число максимальных элементов в таблице А

алг Сопротивление (арг вещ R1, R2, арг цел N, рез вещ R)

дано | N>5, R1>0, R2>0

надо | R - сопротивление схемы

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

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

алг (алгоритм) сим (символьный) дано для да

арг (аргумент) лит (литерный) надо от нет

рез (результат) лог (логический) если до при

нач (начало) таб(таблица) то знач выбор

кон (конец) нц (начало цикла) иначе и ввод

цел (целый) кц (конец цикла) все или вывод

вещ (вещественный) длин (длина) пока не утв

Основные команды:

1. Команда присваивания. Служит для вычисления выражений и присваивания их значений переменным. Общий вид: А:= В , где знак ":=" означает команду заменить прежнее значение переменной, стоящей в левой части, на вычисленное значение выражения, стоящего в правой части.

Например: a:= (b+c) * sin(Pi/4); i:= i+1.

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

ввод имена переменных (ввод данных с клавиатуры)

вывод имена переменных, выражения, тексты. (вывод данных на экран)

Команды ветвления.

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

Структура ветвление существует в четырех основных вариантах:

1. Командаесли - то;

если условие

то действия

2. Командаесли - то - иначе;

если условие

то действия 1

иначе действия 2

3. Командавыбор;

Выбор

при условие 1: действия 1

при условие 2: действия 2

. . . . . . . . . . . .

при условие N: действия N

4. Командавыбор - иначе.

Выбор

при условие 1: действия 1

при условие 2: действия 2

. . . . . . . . . . . .

при условие N: действия N

иначе действия N+1

Команды цикла.

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

Для организации циклов существуют две команды:

1. Цикл типа Пока - Предписывает выполнять тело цикла до тех пор, пока выполняется условие, записанное после слова пока .

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

тело цикла

(последовательность действий)

кц

2. Цикл типа Для - Предписывает выполнять тело цикла для всех значений некоторой переменной (параметра цикла) в заданном диапазоне.

нц для i от i1 до i2

тело цикла

(последовательность действий)

кц

ЯЗЫКИ ПРОГРАММИРОВАНИЯ

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

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

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

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

  • Уровень языка - характеризуется сложностью задач, решаемых с помощью этого языка.
  • Мощность языка - характеризуется количеством и многообразием задач, алгоритмы решения которых можно записать, используя этот язык.
  • Надежность - язык должен обеспечивать минимум ошибок при написа­нии программ. Более того, язык должен быть таким, чтобы неправильные программы было трудно писать.
  • Удобочитаемост ь - легкость восприятия программ человеком. Это харак­теристика важна при коллективной работе, когда несколько человек работают с одними и теми же текстами программ.
  • Полнота - характеризует способность описать класс задач в некоторой предметной области.
  • Гибкость - характеризует легкость выражения необходимых действий.

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

  • машинные;
  • машинно-оpиентиpованные (ассемблеpы);
  • машинно-независимые (языки высокого уровня).

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

Языки высокого уровня делятся на:

  • процедурные (алгоритмические) (Basic, Pascal, C и др.), которые предназначены для однозначного описания алгоритмов; для решения задачи процедурные языки требуют в той или иной форме явно записать процедуру ее решения;
  • логические (Prolog, Lisp и др.) , которые ориентированы не на разработку алгоритма решения задачи, а на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания;
  • объектно-ориентированные (Object Pascal, C++, Java и др.), в основе которых лежит понятие объекта, сочетающего в себе данные и действия над нами. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути описывает часть мира, относящуюся к этой задаче. Описание действительности в форме системы взаимодействующих объектов естественнее, чем в форме взаимодействующих процедур.

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

§ анализ;

§ проектирование;

§ программирование;

§ тестирование и отладка;

§ эксплуатация.

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

  • Первое поколение: Машинные языки. Появились в середине 40-х годов XX века.
  • Второе поколение: Ассемблеры. Фактически это те же машинные языки, но более красиво "обернутые". Появились в конце 50-х годов XX века
  • Третье поколение: Процедурные языки. Появились в начале 60-х годов XX века. К этому поколению относят универсальные языки высокого уровня, с помощью которых можно решать задачи из любых областей (например, Algol-60).
  • Четвертое поколение: Языки поддержки сложных структур данных (напри­мер, SQL). Появились в конце 60-х годов XX века.
  • Пятое поколение: Языки искусственного интеллекта (например, Prolog). Появились в начале 70-х годов XX века.
  • Шестое поколение: Языки нейронных сетей (самообучающиеся языки). Исследовательские работы в этой области начались в середине 80-х годов XX века.

ЗАКЛЮЧЕНИЕ

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

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

Немного истории

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

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

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

С созданием первого алгоритмического языка программирования — алгола - дело освоения алгоритмов значительно ускорилось.

Что представляет собой алгоритм

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

  1. Поставить чайник на плиту.
  2. Дождаться его закипания.
  3. Налить кипяток в воду.
  4. Опустить чайный пакет в чашку.
  5. Добавить необходимое количество сахара, молока или мёда.

Данная последовательность весьма упрощена, однако представляет собой самый простой алгоритм.

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

Свойства и особенности алгоритмического языка

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

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

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

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

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

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

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

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

  • Алг . С этого ключевого слова начинается любой алгоритм. В нем описывается название и в скобках указывается, какие аргументы он принимает для вычисления, и что должно получиться в результате.
  • Арг . Обозначает аргументы алгоритма. Отражает тип и название значения, которое будет использован в коде.
  • Рез . Данное ключевое слово служит для обозначения типа и имени переменной, в которую будет необходимо поместить результат вычисления.
  • Нач. Означает непосредственное начало выполнения алгоритма. Длится до ключевого слова кон. Весь промежуток от "нач" до "кон" называется телом текущего алгоритма.
  • Кон. Сообщает о том, что выполнение алгоритма окончено.
  • Дано . Говорит о некоторых особенностях и нюансах использования алгоритма или об ограничениях. Например, здесь можно указать, что длины сравниваемых строк должны быть одинаковыми. Использование ключевого слова "дано" необязательно.
  • Надо . Более подробное описание того, что должно получиться в результате выполнения алгоритма. Так же, как и "дано", может опускаться, но для построения более понятного и подробного кода его использование рекомендуется.

Список данных ключевых слов относится к заголовку и обозначению тела алгоритма. А вот так выглядят лексемы для переменных:

  • Цел . Тип переменной целых чисел. Диапазон их должен варьироваться от -32768 до 32767.
  • Вещ . Вещественные числа. Например, с экспонентой или дробной частью.
  • Лог . Это ключевое слово означает, что будет использована переменная логического типа, способная принимать только "да" или "нет".
  • Сим. Сюда входят значения с одиночными символами, например, «а», «3».
  • Лит . Строковые переменные, которые могут содержать целые текстовые строки.
  • Таб . Обозначает таблицу с данными определённого типа. Представляет собой аналог массива из других языков программирования.

Дополнительные служебные слова

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

  • Для . Применяется для перебора всех значений определённого диапазона. Используется для циклов, т. е. непрерывного выполнения каких-либо процедур с данными.
  • От и до . Указывает, какой именно диапазон значений нужно перебрать в цикле типа "для".
  • Пока . Также служит для перебора нескольких значений. Используется для работы до тех пор, пока не выполнится определённое условие.
  • Нц и кц . "Нц" в алгоритмическом языке означает начало тела цикла, а "кц" - конец. Между этими двумя ключевыми словами встраиваются необходимые для вычисления процедуры.
  • Если. С помощью этого слова реализуется структура ветвления. Таким образом можно определить ход программы в нужном направлении, учитывая условия.
  • То, иначе . Два слова, работающих в паре с "если". Также выстраивают механизм ветвления.
  • Выбор . Удобный инструмент для осуществления ветвления из нескольких значений одного типа. Работает в паре с ключевым словом "при" и "иначе".
  • Все . Означает окончание механизма ветвления.
  • Ввод . Данное ключевое слово позволяет пользователю вводить значения переменных в ходе работы программы для их последующей обработки.
  • Вывод. Производит вывод данных на экран.

Основные структуры языка

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

Структура следования

При проектировании такого вида структуры выполнение кода происходит непосредственно строка за строкой. Общий пример можно выразить таким образом:

алг Сумма двух чисел (арг цел a, b, рез цел S)

вывод «S = », S

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

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

Структура ветвления

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

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

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

иначе у = 0

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

Более удобным средством для осуществления множественного выбора является конструкция "выбор". Она позволяет перебрать несколько условий. При срабатывании одного из них будет выполнено указанное для него действие.

при х = 0: у = 0

при х = 1: у = 1

при х = 2: у = 2

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

Циклы

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

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

нц пока х <= 3

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

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

Синтаксис его выглядит так:

нц для х от 1 до 3

Служебные слова "от" и "до" показывают диапазон значений, которые необходимо перебрать. Таким образом в первой итерации х = 1, в результате прохода у приобретёт также значение 1. Дальше управление опять перейдёт в начало, и х теперь будет равен 2, соответственно, у станет 3.

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

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

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

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

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

Логические выражения

Логические выражения отражают, удовлетворяет ли некая операция условию. Например, х > 0 будет иметь значение "истина" при х, равном 1, 2, 25 или любом другом числе больше нуля. Алгоритмический язык содержит логические выражения, которые помимо стандартных математических операций могут использовать следующие ключевые слова и операторы:

  • И. Означает, что выражения, между которыми находится ключевое слово, должны удовлетворять определённому условию: (х>0) и (у>0);
  • Или . Одно из выражений может не удовлетворять условию, например, (х>0) или (у>0);
  • Не . «Переворачивает» логическое значение выражения. Например, такая конструкция не (х>0), означает, что х все же должен быть не больше нуля.

Также присутствуют операторы сравнения - <, >, =, которые могут сочетаться, создавая выражения типа больше или равно.

Небольшая программа для алгоритмического языка

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

Составляющие алгоритмического языка имеют в своем составе множество ключевых слов. Первое, с чего начинается программа, это объявление об алгоритме — алг.

алг Возведение числа в квадрат ()

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

Теперь машина будет знать, что взаимодействовать ей придется с переменной типа целое число, а результатом ее работы будет S.

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

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

вывод «S = », S

Алгоритмический язык, команды которого позволяют реализовать присвоение, записываются в виде:=. Тем самым в переменную S попадает значение произведения х на самого себя. Строка с выводом показывает результат на экране. Ну и завершается все это ключевым словом "кон". Полный код теперь будет выглядеть так:

алг Возведение числа в квадрат (арг цел х, рез цел S)

вывод «S = », S

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

алг Возведение числа в квадрат и расчёт их суммы (арг цел х, рез цел S)

дано | х > 0

надо | S = 1*1 + 2*2+ … + x*x

нач цел а

ввод х; S:=0

нц для а от 1 до х

вывод «S = », S

В этом варианте используется цикл, промежуточная переменная а и краткое указание к задаче в разделах "дано" и "надо". Теперь, если передать программе некое число, она возведёт его в квадрат и выведет сумму квадратов всех чисел, ему предшествующих.

Использование и развитие алгоритмических языков

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

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

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

Алгоритмический язык – это система обозначений и правил для единообразной и точной записи алгоритмов и их исполнения. Алгоритмический язык - это средство для записи алгорит­мов в аналитическом виде, про­межуточном между записью ал­горитма на естественном (чело­веческом) языке и записью на языке ЭВМ (языке программиро­вания).

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

Как и каждый язык, алгоритмический язык имеет свой словарь. Основу этого словаря составляют слова, употребляемые для записи команд, входящих в систему команд исполнителя того или иного алгоритма. Такие команды называют просты­ми командами. В алгоритмическом языке используют слова, смысл и способ упот­ребления которых задан раз и навсегда. Эти слова называютслужебными. Исполь­зование служебных слов делает запись алгоритма более наглядной, а форму пред­ставления различных алгоритмов – единообразной.

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

АЛГ – название алгоритма

серия команд алгоритма

Например, алгоритм, определяющий движение исполнителя-робота, может иметь вид:

АЛГ – в_склад

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

Очень часто при составлении алгоритмов возникает необходимость использования в качестве вспомогательного одного и того же алгоритма, который к тому же может быть весьма сложным и громоздким. Было бы нерационально, начиная работу, каждый раз заново составлять и запоминать такой алгоритм для его последующего использования. Поэтому в практике широко используют так называемые встроенные (или стандартные) вспомогательные алгоритмы, т.е. такие алгоритмы, которые постоянно имеются в распоряжении исполнителя. Обращение к таким алгоритмам осуществляется так же, как и к «обычным» вспомогательным алгоритмам. У испол­нителя-робота встроенным вспомогательным алгоритмом может быть перемещение в склад из любой точки рабочего поля; у исполнителя-языка программирования Бейсик – это, например, встроенный алгоритм «SIN».

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

АЛГ – движение

движение

Алгоритмы, при исполнении которых порядок следования команд определяется в зависимости от результатов проверки некоторых условий, называютразветвляющи­мися. Для их описания в алгоритмическом языке используют специальную составную команду – командуветвления. Применительно к исполнителю-роботу условием может быть проверка нахождения робота у края рабочего поля (край/не_край); проверка наличия объекта в текущей клетке (есть/нет) и некоторые другие:

ЕСЛИ условие ЕСЛИ условие ЕСЛИ край

ТО серия1 ТО серия ТО вправо

ИНАЧЕ серия2 ВСЕ ИНАЧЕ вперед

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

ПРИ условие 1: серия 1

ПРИ условие 2: серия 2

ПРИ условие N: серия N

ИНАЧЕ серия N+1

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

ПОКА условие НЦ

серия ДО условие