
- •Основные понятия алгоритма.
- •Алгоритм и его свойства. Понятие алгоритма
- •Свойства алгоритмов
- •Правила построения алгоритма
- •Формы записи алгоритма
- •Словесная форма записи алгоритмов
- •Графическая форма записи алгоритмов
- •Псевдокод
- •Программная форма записи алгоритма
- •Базовые алгоритмические структуры Типы базовых алгоритмических структур
- •Линейная базовая структура ("последовательность")
- •Базовая структура "ветвление".
- •Базовая структура "цикл".
- •Языки программирования и их уровни
- •Языки программирования. Машинный язык
- •Язык ассемблер
- •Языки программирования высокого уровня
- •Компоненты, образующие алгоритмический язык Отличительные особенности алгоритмических языков
- •Компиляторы и интерпретаторы
- •Преобразование алгоритма в программу
- •Три составляющие алгоритмического языка
- •Общая характеристика языка Турбо Паскаль
- •Язык программирования высокого уровня 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
- •Исполнительная часть модуля
- •Секция инициализации
- •Использование модуля в основной программе
- •Использование идентификаторов элементов модуля
Функции и процедуры
Понятие функции хорошо известно из школьного курса математики. С помощью функций задаются самые различные зависимости одних значений (значений функции) от других значений (значений аргументов). Заметим лишь, что в алгоритмических языках допускаются только такие функции, для которых заданы алгоритмы вычисления их значений. В математике такое требование не является обязательным — можно, например, использовать функцию f(x,y), значение которой равно количеству простых чисел в интервале (х, у) — даже в том случае, если мы не знаем, как именно следует вычислять значение этой функции при любых конкретных значениях аргументов х и у.
Таким образом, в алгоритмическом языке любая функция задается некоторой вычислительной процедурой, выполнение которой и дает значение функции. Программист может , ввести в употребление любые нужные ему в данной программе функции.
Наряду с функциями, предназначенными для вычисления отдельного значения, можно вводить в употребление и процедуры более общего характера, представляющие собой некоторые вполне законченные этапы решения задачи — упорядочение компонент вектора по их убыванию, сложение матриц и т.п.
Вводимые в употребление функции и процедуры должны быть определены (описаны) в разделе функций и процедур паскаль-программы. При 'Таком описании каждой функции (процедуре) дается свое имя. Сама процедура формулируется, в основном в терминах формальных параметров — идентификаторов, которые в описании процедуры представляют те заранее не фиксируемые значения или программные объекты, к которым должна применяться эта процедура. Все эти формальные параметры в явном виде перечисляются в описании процедуры или функции.
Для использования в программе какой-либо функции или процедуры достаточно указать ее имя и задать ее фактические параметры, т.е. те конкретные значения и (или) объекты, к которым должна быть применена указанная процедура или функция. Для обращения к функциям и процедурам в Турбо Паскале имеются соответствующие понятия — вызов функции и оператор процедуры.
Некоторые функции и процедуры, например элементарные функции математического анализа (sin (x), ln(х) и т.д.) или процедуры ввода/вывода используются во многих программах. Для удобства их использования, в Турбо Паскале зафиксирован некоторый набор так называемых стандартных функций и процедур, которые можно использовать в любой программе без их явного описания. Можно считать, что к началу трансляции любой паскаль-программы в соответствующий ее раздел автоматически вставляются описания всех стандартных функций и процедур, используемых в этой программе. За каждой из них в языке закреплено некоторое стандартное имя. Однако эти имена не являются зарезервированными словами, так что программист может по своему усмотрению переопределить любое из этих стандартных имен.
1.3. Синтаксис языка
Для облегчения понимания текста паскаль-программы и упрощения транслятора, язык Турбо Паскаль требует выполнения определенных правил записи текста программы, которые не находят своего отражения в синтаксисе языка. При формулировании этих правил мы будем использовать понятие "разделитель текста", понимая под этим термином пробел, конец строки и комментарий.
Пробел — это литера, не имеющая графического изображения: пробелу соответствует пустая позиция в строчке текста (на листе бумаги, бланке, экране дисплея и т.д.). Однако пробел имеет определенное представление (свой цифровой код) в машине и вводится в машину вместе с остальными литерами текста программы,
Конец строки - это управляющая литера, также не имеющая графического изображения. Дело в том, что при записи текста паскаль-программы он естественным образом разбивается на отдельные строчки — хотя бы в силу ограниченности листа бумаги, бланка или экрана дисплея, на которых фиксируется этот текст. Число возможных позиций в строчке обычно фиксировано, однако число литер в части текста, образующей очередную строчку, может быть меньше числа возможных позиций. Разбиение всего текста на отдельные строчки производится программистом по своему усмотрению. Чтобы указать, что очередная часть текста должна образовывать новую строчку, и служит управляющая литера "конец строки", которая заносится в исходный текст при его нанесении на внешние носители данных или при его непосредственном вводе в машину с помощью клавиатуры терминала. Как и в случае пробела, эта литера тоже имеет свой код, который фиксируется на внешнем носителе данных или непосредственно вводится в машину при наборе текста на клавиатуре.
Упомянутые выше правила записи текста паскаль-программы состоят в следующем.
1. Между двумя последовательными конструкциями языка, любая из которых является идентификатором, числом или служебным словом, обязательно должен находиться хотя бы один разделитель текста.
2. Разделители текста не должны встречаться внутри идентификаторов, чисел и служебных слов.
3. Кроме случаев, указанных в предыдущем пункте, между двумя последовательными основными символами языка может встречаться любое число разделителей текста и они не влияют на смысл программы (при трансляции паскаль-программы в машинную программу разделители текста в указанных здесь случаях игнорируются) .
Управляющая литера "конец строки" в тексте не задается в явном виде: переход на следующую строчку текста автоматически подразумевает наличие этой управляющей литеры.
В тех случаях, когда в тексте надо явно указать наличие пробела (это бывает существенно при записи текста вручную на обычном листе бумаги, а не на бланке), мы будем изображать его литерой " _ ", например
begin_if_ x<25_then_x :=x + 1 _else_x : =0
Сформулированные выше правила записи текста программы отвечают и на вопрос о том, где могут быть помещены комментарии. И хотя в этом отношении возможности весьма велики, обычно комментарии помещают между достаточно крупными синтаксическими единицами - описаниями, операторами и т.д.