
- •Основные понятия алгоритма.
- •Алгоритм и его свойства. Понятие алгоритма
- •Свойства алгоритмов
- •Правила построения алгоритма
- •Формы записи алгоритма
- •Словесная форма записи алгоритмов
- •Графическая форма записи алгоритмов
- •Псевдокод
- •Программная форма записи алгоритма
- •Базовые алгоритмические структуры Типы базовых алгоритмических структур
- •Линейная базовая структура ("последовательность")
- •Базовая структура "ветвление".
- •Базовая структура "цикл".
- •Языки программирования и их уровни
- •Языки программирования. Машинный язык
- •Язык ассемблер
- •Языки программирования высокого уровня
- •Компоненты, образующие алгоритмический язык Отличительные особенности алгоритмических языков
- •Компиляторы и интерпретаторы
- •Преобразование алгоритма в программу
- •Три составляющие алгоритмического языка
- •Общая характеристика языка Турбо Паскаль
- •Язык программирования высокого уровня 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
- •Исполнительная часть модуля
- •Секция инициализации
- •Использование модуля в основной программе
- •Использование идентификаторов элементов модуля
Языки программирования. Машинный язык
Как известно, ЭВМ — это автомат, являющийся формальным исполнителем алгоритмов, поэтому для решения какой-либо задачи с помощью ЭВМ ей необходимо задать соответствующий алгоритм. Поскольку этот алгоритм предварительно надо ввести в память машины, а затем он должен интерпретироваться (т.е. восприниматься и исполняться) аппаратным путем, то этот алгоритм должен быть записан на специальном языке, понятном машине. Такой язык принято называть машинным языком (или языком машины), а запись алгоритма на таком языке называется машинной программой.
Поскольку машинные языки непосредственно управляют работой устройств, составляющих самый низший уровень детализации ЭВМ (регистры, аккумулятор, ячейки памяти и т.д.), то их принято называть языками низкого уровня. Машинные языки имеют предопределенный набор команд (инструкций машине), который зависит от типа процессора.
Недостатки машинного языка выражаются в следующем.
1. Разные типы ЭВМ могут иметь разные языки, так что программа, написанная на языке одной ЭВМ, может быть непонятна другой ЭВМ. Таким образом, каждая ЭВМ способна непосредственно выполнять только программы, записанные на ее собственном машинном языке. Поэтому говорят, что машинный язык является аппаратно зависимым.
2. Необходимость аппаратной реализации алгоритма, подлежащего выполнению, особенности элементной базы ЭВМ, вопросы их экономичности и т.д. приводят к тому, что язык машины довольно неудобен для человека. Например, любая машинная программа, в конечном счете, должна быть записана с помощью всего двух различных символов, в качестве которых обычно принимаются цифры 0 и 1, поэтому выразительные возможности машинных языков чрезвычайно бедны.
3. Каждая ЭВМ может непосредственно выполнять весьма ограниченный набор операций (называемый набором машинных команд), зависящий от ее архитектуры. В этот набор, для избежания чрезмерного усложнения, включается сравнительно небольшое число достаточно простых операций. Важно лишь, чтобы этот набор обеспечивал универсальность ЭВМ, т.е. чтобы с помощью этих операций можно было реализовать любой процесс обработки данных (хотя для решения некоторых задач ресурсов данной ЭВМ, например, емкости ее памяти, может оказаться недостаточно). Бедность набора машинных операций вынуждает программиста разрабатывать алгоритм решения интересующей его задачи до весьма высокого уровня детализации, доводя ее до планирования соответствующей последовательности машинных команд.
4. Ограниченные возможности аппаратуры приводят к тому, что каждая законченная фраза на машинном языке (называемая командой) может содержать в себе весьма ограниченный объем информации. Поэтому каждая машинная команда обычно определяет такой простейший этап вычислений, на котором выполняется единственная машинная операция. Это приводит к тому, что запись алгоритма получается весьма громоздкой.
5. Каждая машинная команда задается цифровым кодом, а ее операнды обычно задается в виде адреса, т.е. номера той ячейки памяти, которая отведена для хранения данного операнда. Эта форма записи является специфичной и неудобной для человека. Поэтому машинная программа получается очень ненаглядной и трудно понимаемой - даже в том случае, если он является автором этой программы.
Все указанные выше обстоятельства приводят к тому, что использование машинного языка влечет за собой большие трудности для человека при разработке и записи алгоритма решения интересующей его задачи. Кроме того, при использовании машинного языка имеется слишком много возможностей допущения различного рода ошибок, в том числе и таких, которые связаны не с сутью алгоритма, а со спецификой машинного языка.