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