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