
- •Основные понятия алгоритма.
- •Алгоритм и его свойства. Понятие алгоритма
- •Свойства алгоритмов
- •Правила построения алгоритма
- •Формы записи алгоритма
- •Словесная форма записи алгоритмов
- •Графическая форма записи алгоритмов
- •Псевдокод
- •Программная форма записи алгоритма
- •Базовые алгоритмические структуры Типы базовых алгоритмических структур
- •Линейная базовая структура ("последовательность")
- •Базовая структура "ветвление".
- •Базовая структура "цикл".
- •Языки программирования и их уровни
- •Языки программирования. Машинный язык
- •Язык ассемблер
- •Языки программирования высокого уровня
- •Компоненты, образующие алгоритмический язык Отличительные особенности алгоритмических языков
- •Компиляторы и интерпретаторы
- •Преобразование алгоритма в программу
- •Три составляющие алгоритмического языка
- •Общая характеристика языка Турбо Паскаль
- •Язык программирования высокого уровня Turbo Pascal 7.0.
- •Основы языка
- •1.1. Алфавит языка
- •1.2. Составные элементы Паскаль-программы
- •Операторы
- •Идентификаторы и имена
- •Описания
- •Переменные
- •Функции и процедуры
- •1.3. Синтаксис языка
- •Структура программы на языке Паскаль
- •Тело программы
- •Классификация типов данных языка.
- •3.1. Простые типы Целые типы
- •Вещественные типы
- •Логический тип
- •Символьный тип
- •Перечисляемый тип
- •3.2. Структурированные типы Массив
- •Множество;
- •Основные конструкции языка Turbo Pascal
- •Константы
- •Переменные
- •Функции
- •Стандартные функции
- •Математические функции
- •Функции преобразования типа:
- •Функции для величин порядкового типа.
- •Функции, создаваемые пользователем
- •Знаки операций
- •Арифметические операции
- •Логические операции
- •Операции с битами информации
- •Операции отношения
- •Круглые скобки.
- •Порядок вычисления выражений
- •Операторы языка Turbo Pascal
- •Простые операторы
- •Оператор безусловного перехода (“Goto”)
- •Обращение к процедуре (функции)
- •Оператор выбора (Case)
- •Оператор цикла (Repeat)
- •Оператор цикла While;
- •Оператор цикла For;
- •Оператор обращения к записям и объектам With.
- •Процедуры и функции, определяемые пользователем
- •Характеристика подпрограмм в Turbo Pascal
- •Порядок создания и использования процедур
- •Порядок создания и использования функций
- •Механизм формальных параметров
- •Параметры-значения
- •Параметры-переменные
- •Параметры-константы
- •Параметры без типа
- •Массивы и строки открытого типа
- •Параметры-процедуры и параметры-функции
- •Использование модулей в Турбо Паскаль
- •Стандартные модули Турбо Паскаль
- •Модуль System
- •Модуль Strings
- •Модуль Crt
- •Модуль Graph
- •Модуль Dos
- •Модуль WinDos
- •Модуль Overlay
- •Исполнительная часть модуля
- •Секция инициализации
- •Использование модуля в основной программе
- •Использование идентификаторов элементов модуля
Язык ассемблер
Чтобы уйти от сухих и невыразительных машинных инструкций машинного языка, но при этом иметь возможность работать на самом низком уровне разработали машинно-ориентированные языки программирования. Представителем машинно-ориентированного языка является язык ассемблер.
Язык ассемблер – это символьная форма записи машинного языка. Его использование существенно упрощает написание машинных программ, так как каждая из команд ассемблера выражается мнемокодом и набором операндов.
Мнемокод – это служебное слово, записанное в символьной форме и указывающее, какую необходимо выполнить операцию над операндами. В ассемблере не используются цифровые коды операций, операции указываются только своими символьными названиями, которые, конечно, легче запомнить (слово "мнемонический" означает "легко запоминающийся").
Операнды – это данные, над которыми выполняются операции, заданные мнемокодом. В качестве операндов в языке ассемблер могут использоваться числа и имена переменных.
Символьная форма записи машинных команд позволяет ассемблеру избавиться от ряда недостатков, свойственных языку машинных команд. Язык становится более выразительным и понятным. Кроме того, в ассемблере сохраняются все достоинства машинного языка:
доступ ко всем ресурсам компьютера;
короткий и эффективный программный код;
программы, как правило, "быстрыми".
Вместе с тем, большинство из недостатков, связанных с аппаратно зависимым набором доступных команд, громоздкостью алгоритмов и программ, сложностью отладки больших приложений являются необъемлемой отличительной особенностью всех языков низкого уровня.
Языки программирования высокого уровня
Для устранения этих трудностей, а значит для облегчения работы программиста и повышения надежности создаваемых программ (т.е. для уменьшения вероятности допущения в ней ошибок), были созданы специальные языки для записи алгоритмов, более удобные для человека, которые получили название алгоритмические языки или языки программирования высокого уровня (по сравнению с машинным языком, который тоже является языком программирования).
Таким образом, языки высокого уровня созданы для облегчения преобразования алгоритмов в программный код. Кроме того, отличительной особенностью языков высокого уровня является то, что они максимально приближены к языку человеческого общения (исторически - английскому).
Примеры языков высокого уровня: Basic, Pascal, Fortran, C и др.
Компоненты, образующие алгоритмический язык Отличительные особенности алгоритмических языков
Основные отличия алгоритмических языков от машинных языков состоят в следующем:
— алгоритмический язык обладает гораздо большими выразительными возможностями, т.е. его алфавит (набор используемых букв, цифр и знаков) значительно шире алфавита машинного языка, что существенно повышает наглядность текста программы;
— набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается из соображений удобства формулирования алгоритмов решения задач определенного класса;
— формат предложений достаточно гибок и удобен для использования, что позволяет с помощью одного предложения задать достаточно содержательный этап обработки данных;
— требуемые операции задаются в удобном для человека виде, например с помощью общепринятых математических обозначений;
— для задания операндов данным, используемым в алгоритме, присваиваются индивидуальные имена, выбираемые программистом, и ссылка на операнды производится главным образом путем их имен;
— в языке может быть предусмотрен значительно более широкий набор типов данных по сравнению с набором машинных типов данных.
Таким образом, алгоритмический язык в значительной мере является машинно-независимым.