Синтаксис алгоритмического языка это
Основные понятия алгоритмического языка
Основные компоненты алгоритмического языка
Преимущества алгоритмических языков перед машинными.
Язык ассемблера.
Язык ассемблера — это система обозначений команд, используемая для программ, записанных в машинном коде. |
Он позволяет программисту пользоваться текстовыми мнемоническими кодами, присваивать символические имена регистрам компьютера и памяти, а также задавать удобные для себя способы адресации. Кроме того, он позволяет использовать различные системы счисления (например, десятичную или шестнадцатеричную) для представления числовых констант, использовать в программе комментарии и др.
Перевод программы с языка ассемблера на машинный язык осуществляется специальной программой, которая также называется ассемблером и является простейшим транслятором.
Алгоритмические языки являются машинно-независимыми, что облегчает работу программиста и повышает надежность создаваемых программ.
Основные преимущества алгоритмических языков таковы:
· текст программы на алгоритмическом языке более понятен, чем на машинном языке;
· набор операций, применяемых в языке, определяется классом решаемых задач;
· формат операторов языка позволяет с помощью одного оператора задавать целый этап обработки данных с помощью нескольких машинных команд;
· требуемые операции задаются с помощью обыкновенных математических обозначений;
· данным в алгоритмических языках присваиваются индивидуальные имена, выбираемые программистом;
· в языке может быть применен более широкий набор типов данных по сравнению с набором машинных типов данных.
Алгоритмический язык (как и любой другой язык) образуют три составляющие: алфавит, синтаксис и семантика. |
Алфавит — это фиксированный для данного языка набор символов (т.е. «букв алфавита»), из которых должен состоять текст на этом языке.
Синтаксис — это правила построения конструкций языка, позволяющие определить правильность её написания. Точнее говоря, синтаксис языка представляет собой набор правил, устанавливающих, какие комбинации символов и ключевые слова применяются на этом языке.
Семантика определяет смысловое значение конструкций языка. Семантика устанавливает, какие последовательности действий описываются теми или иными конструкциями языка и, в конечном итоге, какой алгоритм определен данным текстом на алгоритмическом языке.
Каждое понятие алгоритмического языка подразумевает некоторую синтаксическую единицу (конструкцию) и определяемые ею свойства программных объектов или процесса обработки данных.
Понятие языка определяется во взаимодействии синтаксических и семантических правил. Синтаксические правила показывают, как образуется данное понятие из других понятий и букв алфавита, а семантические правила определяют свойства данного понятия. |
Основными понятиями в алгоритмических языках обычно являются следующие.
Имена (идентификаторы) — употpебляются для обозначения объектов пpогpаммы (пеpеменных, массивов, функций и дp.).
Опеpации определяют действия, совершаемые над данными.
· логические опеpации и, или, не;
· опеpация сцепки (иначе, «присоединения», «конкатенации») символьных значений дpуг с другом с образованием одной строки; изображается знаком «+».
Данные — те величины, обpабатываемые пpогpаммой. Имеется тpи основных вида данных: константы, пеpеменные и массивы.
· Константы — это данные, которые зафиксированы в тексте программы и не изменяются в процессе ее выполнения.
o логические да (истина) и нет (ложь);
o символьные «А», «+»и т.д.
o литеpные или текстовые «abcde», «информатика», «» (пустая строка).
· Пеpеменные – данные, которые обозначаются именами и могут изменять свои значения в ходе выполнения пpогpаммы. Пеpеменные бывают целые, вещественные, логические, символьные и литерные.
· Массив — последовательность однотипных элементов, число которых фиксировано и которым присвоено одно общее имя. Положение отдельного элемента в массиве определяется его индексами и именем масива (одним, в случае одномерного массива, или несколькими, если массив многомерный).
Выражения записываются в виде линейных последовательностей символов (без подстрочных и надстрочных символов, «многоэтажных» дробей и т.д.), что позволяет легко вводить их в компьютер с помощью клавиш клавиатуры.
Различают выражения арифметические, логические и строковые.
· Арифметические выражения служат для определения одного числового значения. Например, (1+sin(x))/2.
· Логические выражения описывают некоторые условия, которые могут удовлетворяться или не удовлетворяться. Таким образом, логическое выражение может принимать только два значения — «истина» или «ложь» (да или нет). Рассмотрим в качестве примера логическое выражение: x*x + y*y
Алгоритмические языки
Урок 13. Информатика 8 класс (ФГОС)
Конспект урока «Алгоритмические языки»
· Способы записи алгоритмов;
Алгоритмические языки – это формальные языки, специально разработанные для записи алгоритмов. Причём для каждого алгоритмического языка существуют свои особенности, это:
· Алфавит – или набор используемых символов
· Синтаксис – система правил, по которым из алфавита образуются правильные конструкции языка
· Семантика – система правил, строго определяющая смысл и способ употребления каждой конструкции языка
Существует огромное количество алгоритмических языков. В школьной информатике используются различные версии школьного (учебного) алгоритмического языка.
Рассмотрим некоторые слова из школьного алгоритмического языка. Причём необходимо запомнить, что смысл и способ употребления данных слов заданы раз и навсегда. Потому такие слова называют служебными.
Алгоритм, который записывается на алгоритмическом языке, должен иметь название.
Служебное слово алг указывает на название алгоритма;
После служебного слова дано записываются условия применимости алгоритма; после слова надо указывается цель выполнения алгоритма.
служебное слово нач указывает на начало алгоритма, здесь описывается последовательность команд;
служебным словом кон алгоритм заканчивается.
Для механической записи алгоритма все служебные слова нужно знать наизусть.
Рассмотрим правила оформления записей на алгоритмическом языке.
· Имя (название) алгоритма может быть любым.
· Служебные слова алг, нач и кон пишутся строго одно под другим, между словами нач и кон, правее пишется последовательность команд.
· Также при записи алгоритма служебные слова выделяют жирным шрифтом, а в тетради или на доске подчёркивают.
Если представить программу на школьном алгоритмическом языке в общем виде, то выглядеть она будет так:
Часть алгоритма, которая записана до служебного слова Нач называют заголовком алгоритма.
Вторую часть между служебными словами Нач и Кон называют телом алгоритма.
Рассмотрим пример. Пусть требуется перевести робота из клетки А в клетку Б.
При управлении «вручную» мы можем два раза скомандовать роботу «вправо» и один раз «вниз». Однако, если мы хотим, чтобы роботом управлял компьютер, мы должны записать эти команды в виде алгоритма на алгоритмическом языке:
Дано Робот в клетке А
Надо Робот в клетке Б
Рассмотрим ошибки, которые могут допускаться при записи алгоритма на алгоритмическом языке.
Это могут быть синтаксические ошибки (например, вместо «вниз» написали «внис»);
Или ошибки-Отказы (например, при попытке выполнить команды «вниз», «вправо», «вправо» в текущей обстановке. Робот сталкивается со стеной и не может продолжить выполнение команд).
Правила алгоритмического языка разрешают записывать несколько команд через точку с запятой.
Рассмотрим следующий пример: Пусть требуется перевести робота из начала коридора в его конец.
Путь, который должен пройти Робот, можно разбить на пять одинаковых участков.
Команды прохождения каждого участка можно сгруппировать в одну строку – это сокращает запись и делает её более понятной:
Дано Робот в начале коридора
Надо Робот в конце коридора
вверх; вверх; вправо; вниз; вниз; вправо
вверх; вверх; вправо; вниз; вниз; вправо
вверх; вверх; вправо; вниз; вниз; вправо
вверх; вверх; вправо; вниз; вниз; вправо
вверх; вверх; вправо; вниз; вниз; вправо
При записи алгоритма на алгоритмическом языке служебные слова дано и надо не обязательны и их можно пропускать. В них рекомендуется записывать утверждения, описывающие состояние среды исполнителя алгоритма. Рассмотрим пример,
В наличии имеется 9 кг муки и чашечные весы с гирькой в 200 грамм. Необходимо в 3 приёма отвесить ровно 2 кг муки для приготовления пирога.
ставим на первую чашу весов гирю весом в 200 г
высыпаем всю муку из пакета на обе чаши весов, так чтобы весы уравновесились
муку из первой чаши разделим поровну между двумя чашами
ставим на первую чашу весов двухсотграммовую гирю
берём муку из первой чаши и высыпаем на вторую чашу
весов, до тех пор, пока весы не уравновесятся
В дальнейшем если мы будем говорить про алгоритмический язык, мы будем говорить именно о школьном алгоритмическом языке.
Рассмотрим систему программирования КуМир, версия два, один, ноль, в которой рассматривается школьный алгоритмический язык. КуМир расшифровывается как Комплект Учебных Миров.
Сразу после запуска появляется стартовая страница ‹‹Начало работы››, на которой отображаются ссылки для быстрого доступа к последним файлам, практикумам, книгам справочной системы, а также крупные кнопки, дублирующие некоторые пункты меню программы.
Для начала работы с системой, необходимо создать или загрузить существующую программу, либо открыть практикум.
Главное меню системы содержит 7 основных пунктов и некоторое количество пунктов, которые могут меняться в зависимости от поставки системы. Каждому из этих пунктов соответствует своё раскрывающееся меню.
Редактор системы Кумир обеспечивает стандартные средства редактирования текстов: ввод символов в режиме вставки или замены, удаление символов, выделение / копирование / вставку / удаление фрагмента текста, отмену последних действий, поиск по тексту и т. д. Эти действия можно выполнять как в непосредственном режиме, так и с помощью меню Редактирование.
Меню Вставка содержит 2 группы действий:
Операции вставки конструкций используемого языка программирования
Операции выполнения записанных ранее последовательностей нажатий клавиш.
Элементами меню Выполнение являются действия по запуску и остановке выполнения текущей программы.
Меню Окна содержит действия отображения дополнительных окон системы ‹‹Кумир››, которые реализуются исполнителями.
Меню Практикум содержит следующие опции:
• Загрузить курс – что значит загрузить файл описания курса или тетрадь.
• Недавние тетради/курсы – открывает список недавно использовавшихся тетрадей/курсов.
• Проверить – запускает проверку заданий.
• Сохранить как … – сохраняет тетрадь.
• Вернуться к исходной – возвращает всех исполнителей к исходным обстановкам. Все пользовательские изменения в файле программы также аннулируются.
• Вернуться к проверенной – возвращает состояние исполнителей и файла программы к тому моменту, когда программа последний раз подавалась на проверку.
• Следующая обстановка – загружает следующую обстановку из тех, на которых будет производиться проверка.
• Предыдущая обстановка – загружает предыдущую обстановку из тех, на которых будет производиться проверка.
Различные исполнители системы Кумир могут иметь свои одноименные меню, которые располагаются в главном окне между меню Практикум и Информация. В данном случае открыто меню Робот.
Меню Инфо содержит элементы, вызов которых приводит к отображению информационных окон.
Сверху от редактора находится панель кнопок, которые дублируют часто используемые действия главного меню. При наведении курсора мыши на одну из этих кнопок, отображается всплывающая подсказка, содержащая название действия, и, при наличии – комбинацию клавиш, которая вызывает данное действие.
Итак, решим задачу в системе КуМир.
Исполнитель Робот существует в некоторой обстановке – прямоугольном поле, разбитом на клетки, между которыми могут стоять стены. Обстановка, в которой находится Робот, называется текущей обстановкой Робота. Кроме того, определена ещё одна обстановка Робота – стартовая обстановка. Стартовая обстановка используется при управлении Роботом из программы.
Робот может передвигаться по полю, закрашивать клетки, измерять температуру и радиацию. Робот не может проходить сквозь стены, но может проверять, есть ли рядом с ним стена. Робот не может выйти за пределы прямоугольника (по периметру стоит «забор»).
Система команд исполнителя «Робот» включает:
· 5 команд, вызывающих действия Робота (влево, вправо, вверх, вниз, закрасить);
· 10 команд проверки условий:
· 8 команд вида [слева/ справа/ сверху/ снизу] [стена/ свободно],
· 2 команды вида клетка [закрашена/ чистая];
· 2 команды измерения (температура, радиация).
Командам влево, вправо, вверх, вниз, закрасить соответствуют алгоритмы-процедуры языка КуМир. Остальным командам соответствуют алгоритмы-функции.
Обратите внимание Заголовок алгоритма уже записан.
Итак, в строке дано записано, что робот находится в клетке А. Надо чтобы робот оказался в клетке Б и закрасил отмеченные клетки.
Обратите внимание, слева, снизу и сверху у робота находится стена, значит его передвижение влево, вниз и вверх невозможно. Между служебными словами нач и кон записываем команды вправо, вправо, вправо, вправо, теперь робот оказался в отмеченной клетке, которую нужно закрасить, записываем команду закрасить, далее вниз. Снова робот находится в клетке, которую нужно закрасить. Записываем команду закрасить. Далее записываем команды влево, влево, влево, влево. Робот пришёл в клетку Б. Конец алгоритма.
Пришло время подвести итоги урока.
Алгоритмические языки – формальные языки, специально разработанные для записи алгоритмов.
Причём для каждого алгоритмического языка существуют собственные особенности: Алфавит, Синтаксис, Семантика.
Слова из школьного алгоритмического языка, смысл и способ употребления которых задан раз и навсегда называют служебными.
Также на уроке мы составили алгоритм взвешивания муки для приготовления пирога.
И познакомились с системой программирования КуМир.
Любой язык программирования изобилует разнообразными ключевыми словами, функциями или классами. Как правило, все они используют английский язык, на котором описываются методы или аргументы. В некоторых средах и вовсе встречаются просто сокращения машинных функций. Это в значительной степени затрудняло освоение разработки на начальных этапах. С целью повысить скорость понимания была создана серия специальных алгоритмических языков программирования, которые состояли из понятных и доступных слов и их сочетаний, ясных даже неподготовленному человеку.
Немного истории
Для общения с первыми компьютерами использовались языки программирования, максимально приближенные к машинному коду, состоящему из нулей и единиц. Естественно, что запомнить множество команд было очень сложной задачей. К тому же методика распределения памяти при программировании полностью возлагалась на плечи разработчика. А если он допускал небольшую ошибку, то приходилось все переделывать сначала.
Большую роль в переходе от машинного языка к более подходящему человеку сыграл язык программирования низкого уровня ассемблер. В нем использовались мнемонические значения и символы. Это упростило задачу разработчика, так как теперь из комбинаций управляющих инструкций и числовых кодов он мог более продуктивно выстраивать свои алгоритмы. Несмотря на всю свою гибкость и мощность, язык все также был сложен в освоении.
Для обучения разработке и алгоритмам в учебных заведениях началось внедрение языка программирования бейсик. Он уже содержал в себе много команд, ключевых слов, понятных обучаемому. Бейсик до сих пор используется для освоения азов программирования.
Что представляет собой алгоритм
Если уйти от сухой теории и определений, то алгоритм — это последовательность действий, направленных на решение поставленной задачи. Несмотря на всю витиеватость выражения, с этим понятием человек сталкивается повседневно. Например, чтобы попить чай, нужно выполнить следующую последовательность:
Данная последовательность весьма упрощена, однако представляет собой самый простой алгоритм.
Так же, как и человек, вычислительная машина способна выполнять определённую последовательность задач. Однако, для того чтобы она их чётко понимала, нужно учитывать, что для ЭВМ отсутствует множество очевидных для людей понятий. К тому же алгоритм должен точно описывать все необходимые действия. Для этой цели и служит алгоритмический язык, который создаёт некий мост между машиной и человеком.
Свойства и особенности алгоритмического языка
Структура реализована таким образом, что процедуры, описанные в коде, выполняются одна за другой. То есть один алгоритм — одна задача. Это похоже на создание функций или методов в языках С и Java.
Весь код строится из ключевых слов, описывающих событие или переменную.
Различия между машинными и алгоритмическими языками
Ярким представителем машинно-зависимого языка является ассемблер. Программирование на нем сводится к тому, чтобы указать транслятору особыми метками, что и куда нужно переместить или какую область данных заполнить. Так как синтаксис ассемблера больше похож на машинный, то изучать и писать на нем код довольно затруднительно. Ниже вы видите, как могут выглядеть команды для разных процессоров.
Поэтому формальный язык или алгоритмический был создан с большим количеством понятных человеку ключевых слов и имён.
Ключевые слова
Алгоритмический язык состоит из ключевых слов, которые представляют собой сокращения полного обозначения действий или переменных. Это позволяет сократить длину кода, оставляя его при этом понятным.
Список данных ключевых слов относится к заголовку и обозначению тела алгоритма. А вот так выглядят лексемы для переменных:
Дополнительные служебные слова
Следующий список слов используется для организации механизмов ветвления и циклов.
Основные структуры языка
Алгоритмический язык программирования помогает выстраивать различные структуры, которые производят вычислительные функции в удобной форме. В общем, любой язык может использовать несколько определённых механизмов и их сочетания.
Структура следования
При проектировании такого вида структуры выполнение кода происходит непосредственно строка за строкой. Общий пример можно выразить таким образом:
алг Сумма двух чисел (арг цел a, b, рез цел S)
В данном примере происходит вычисление суммы двух чисел, введённых пользователем. В начале слово «алг» показывает, что алгоритм начинается, и кратко описывает, что именно он делает. В скобках определяются аргументы, необходимые для работы программы, и переменная, которая послужит контейнером для хранения результатов. Далее идёт ключевое слово «нач», показывающее непосредственное начало выполнения выражений и процедур. Рядом с «нач» можно определить и некоторые промежуточные переменные.
В теле алгоритма ключевое слово «ввод» принимает от пользователя данные и записывает их в переменные. Затем они складываются, и их сумма присваивается S. Перед концом алгоритма результат работы программы выводится на экран посредством ключевого слова «вывод». Данная запись на алгоритмическом языке типична и для многих других сред программирования.
Структура ветвления
Ход программы не всегда должен выполняться строка за строкой. Иногда нужно определить или изменить значение некой переменной в зависимости от ситуации. Например, при условии, что х = 0, не осуществлять деление на х.
Алгоритмический язык программирования для этого использует несколько вариантов конструкций и ключевые слова «если», «то», «иначе» или «выбор». После «если» устанавливается условие, по которому будет определяться критерий перехода в другую ветвь. Например, так:
Таким образом можно менять значения переменных в зависимости от других факторов. Данный пример не полностью охватывает все возможные реализации. Поэтому дополнительно к конструкции применяется ключевое слово «иначе». Оно позволяет перейти в другую ветвь, если условие не соответствует выбранным критериям.
То есть в случае, когда х будет не равен нулю, у также обнулится вне зависимости от значения, которое он имел до этого.
Более удобным средством для осуществления множественного выбора является конструкция «выбор». Она позволяет перебрать несколько условий. При срабатывании одного из них будет выполнено указанное для него действие.
Данный пример демонстрирует зависимость переменной у от х. Программа пробегает по всем данным и сравнивает текущее значение х с указанным в условии. При нахождении соответствия выполняет следующее за ним действие. Эту конструкцию можно также комбинировать с ключевым словом «иначе» для более гибких решений, когда ни одно из условий не отработало.
Циклы
Циклы играют очень важную роль в программировании. Практически ни одна разработка не сможет обойтись без реализации этой конструкции. В общем случае циклы решают задачу выполнения однотипных действий с несколькими переменными многократно. Это удобно, например, при заполнении массивов данными по известной формуле, его сортировки или же подсчёта некоторых значений.
Ключевое слово «пока» позволяет организовать цикл, в котором определённое действие будет повторяться до тех пор, пока не удовлетворится некое условие. Например:
нц пока х 0 будет иметь значение «истина» при х, равном 1, 2, 25 или любом другом числе больше нуля. Алгоритмический язык содержит логические выражения, которые помимо стандартных математических операций могут использовать следующие ключевые слова и операторы:
Небольшая программа для алгоритмического языка
Далее будет представлен небольшой пример кода. Учебный алгоритмический язык позволяет создавать примерные муляжи реальных больших программных комплексов, решающих самые сложные задачи.
Составляющие алгоритмического языка имеют в своем составе множество ключевых слов. Первое, с чего начинается программа, это объявление об алгоритме — алг.
алг Возведение числа в квадрат ()
В скобках нужно указать аргумент, который будет представлять собой значение от пользователя и результат. Также не стоит забывать про объявление типов этих данных.
алг Возведение числа в квадрат (арг цел х, рез цел S)
Теперь машина будет знать, что взаимодействовать ей придется с переменной типа целое число, а результатом ее работы будет S.
Далее идет начало тела алгоритма, в котором можно определить промежуточные значения при необходимости.
Первое, что нужно сделать, осуществить ввод данных. Это производится с помощью ключевого слова «ввод».
Теперь непосредственно в теле алгоритма нужно описать ряд команд, с помощью которых будет реализовываться подсчёт квадратов чисел.
Алгоритмический язык, команды которого позволяют реализовать присвоение, записываются в виде :=. Тем самым в переменную S попадает значение произведения х на самого себя. Строка с выводом показывает результат на экране. Ну и завершается все это ключевым словом «кон». Полный код теперь будет выглядеть так:
алг Возведение числа в квадрат (арг цел х, рез цел S)
Вот таким простым образом реализуется алгоритм подсчёта квадрата введённого числа. Программу можно усложнить, добавив к ней сумму всех операций. И тогда она будет выглядеть так:
алг Возведение числа в квадрат и расчёт их суммы (арг цел х, рез цел S)
надо | S = 1*1 + 2*2+ … + x*x
нц для а от 1 до х
В этом варианте используется цикл, промежуточная переменная а и краткое указание к задаче в разделах «дано» и «надо». Теперь, если передать программе некое число, она возведёт его в квадрат и выведет сумму квадратов всех чисел, ему предшествующих.
Использование и развитие алгоритмических языков
Алгоритмический язык распространён в среде обучения для понимания базовых норм и правил программирования. Например, бейсик, который проходят во многих школах. Он отлично отражает все парадигмы такого термина, как императивный язык программирования, в котором все команды выполняются последовательно одна за другой.
Из-за приближённости описываемых конструкций и ключевых слов к человеческому языку писать код стало гораздо проще, нежели на полностью машинных или машинно-зависимых моделях. Семейство языков программирования алгол зашло в своем развитии дальше всех, так как его синтаксис был представлен в нескольких локализациях. Писать код можно было даже на русском языке.
В общем, развитие алгоритмических языков сильно повлияло на программирование в целом и позволило большому количеству человек стать разработчиками. Современные средства становятся все более доступны и понятны. Языки программирования высокого уровня содержат все больше функций с говорящими именами и названиями. Пределов их использованию становится все меньше. Таким образом, в будущем возможна более понятная и естественная реализация разработки.