А. Цветкова - Информатика и информационные технологии: конспект лекций
В математике принято классифицировать переменные в соответствии с некоторыми важными характеристиками. Производится строгое разграничение между вещественными, комплексными и логическими переменными, между переменными, представляющими отдельные значения и множество значений, и т. д. При обработке данных на ЭВМ такая классификация еще более важна. В любом алгоритмическом языке каждая константа, переменная, выражение или функция бывают определенного типа.
В языке Pascal существует правило: тип явно задается в описании переменной или функции, которое предшествует их использованию. Концепция типа языка Pascal имеет следующие основные свойства:
1) любой тип данных определяет множество значений, к которому принадлежит константа, которые может принимать переменная или выражение либо вырабатывать операция или функция;
2) тип значения, задаваемого константой, переменной или выражением, можно определить по их виду или описанию;
3) каждая операция или функция требуют аргументов фиксированного типа и выдают результат фиксированного типа.
Отсюда следует, что транслятор может использовать информацию о типах для проверки вычислимости и правильности различных конструкций.
Тип определяет:
1) возможные значения переменных, констант, функций, выражений, принадлежащих к данному типу;
2) внутреннюю форму представления данных в ЭВМ;
3) операции и функции, которые могут выполняться над величинами, принадлежащими к данному типу.
Следует заметить, что обязательное описание типа приводит к избыточности в тексте программ, но такая избыточность является важным вспомогательным средством разработки программ и рассматривается как необходимое свойство современных алгоритмических языков высокого уровня.
В языке Pascal существуют скалярные и структурированные типы данных. К скалярным типам относятся стандартные типы и типы, определяемые пользователем. Стандартные типы включают целые, действительные, символьный, логические и адресный типы.
Целые типы определяют константы, переменные и функции, значения которых реализуются множеством целых чисел, допустимых в данной ЭВМ.
Действительные типы определяет те данные, которые реализуются подмножеством действительных чисел, допустимых в данной ЭВМ.
Типы, определяемые пользователем, – перечисляемый и интервальный. Структурированные типы имеют четыре разновидности: массивы, множества, записи и файлы.
Кроме перечисленных, Pascal включает еще два типа – процедурный и объектный.
Выражение языка состоит из констант, переменных, указателей функций, знаков операций и скобок. Выражение задает правило вычисления некоторого значения. Порядок вычисления определяется старшинством (приоритетом) содержащихся в нем операций. В языке Pascal принят следующий приоритет операций:
1) вычисления в круглых скобках;
2) вычисления значений функций;
3) унарные операции;
4) операции *, /, div, mod, and;
5) операции +, —, or, xor;
6) операции отношения =, <>, <, >, <=, >=.
Выражения входят в состав многих операторов языка Pascal, – также могут быть аргументами встроенных функций.
2. Стандартные процедуры и функции
Арифметические функции1. Function Abs(X);
Возвращает абсолютное значение параметра.
X – выражение вещественного или целочисленного типа.
2. Function ArcTan(X: Extended): Extended;
Возвращает арктангенс аргумента.
X – выражение вещественного или целочисленного типа.
3. Function Ехр(Х: Real): Real;
Возвращает экспоненту.
X – выражение вещественного или целочисленного типа.
4. Function Frac(X: Real): Real;
Возвращает дробную часть аргумента.
X – выражение вещественного типа. Результат – дробная часть X, т. е.
Frac (X) = X–Int (X).
5. Function Int(X: Real): Real;
Возвращает целочисленную часть аргумента.
X – выражение вещественного типа. Результат – целочисленная часть X, т. е. X, округленный к нулю.
6. Function Ln(X: Real): Real;
Возвращает натуральный логарифм (Ln е = 1) выражения X вещественного типа.
7. Function Pi: Extended;
Возвращает значение Pi, которое определено как 3.1415926535.
8. Function Sin(X: Extended): Extended;
Возвращает синус аргумента.
X – выражение вещественного типа. Sin возвращает синус угла X в радианах.
9. Function Sqr(X: Extended): Extended;
Возвращает квадрат аргумента.
X – выражение с плавающей запятой. Результат того же самого типа, что и X.
10. Function Sqrt(X: Extended): Extended;
Возвращает квадратный корень аргумента.
X – выражение с плавающей запятой. Результат – квадратный корень X.
Процедуры и функции преобразования величин1. Procedure Str(X [: Width [: Decimals]]; var S);
Преобразовывает число X в строковое представление согласно
Width и параметрам форматирования Decimals. X – выражение вещественного или целого типа. Width и Decimals – выражения целого типа. S – переменная типа String или символьный массив с нулевым окончанием, если допускается расширенный синтаксис.
2. Function Chr(X: Byte): Char;
Возвращает символ с порядковым номером X в ASCII-таблице.
3. Function High(X);
Возвращает наибольшее значение в диапазоне параметра.
4. Function Low(X);
Возвращает наименьшее значение в диапазоне параметра.
5. Function Ord(X): Longint;
Возвращает порядковое значение выражения перечислимого типа. X – выражение перечислимого типа.
6. Function Round(X: Extended): Longint;
Округляет значение вещественного типа до целого. X – выражение вещественного типа. Round возвращает значение Longint, которое является значением X, округленным до ближайшего целого числа. Если X находится точно посередине между двумя целыми числами, возвращается число с наибольшей абсолютной величиной. Если округленное значение X выходит за диапазон Longint, генерируется ошибка времени выполнения программы, которую вы можете обработать с использованием исключительной ситуации EInvalidOp.
7. Function Trunc(X: Extended): Longint;
Усекает значение вещественного типа до целого. Если округленное значение X выходит за диапазон Longint, генерируется ошибка времени выполнения программы, которую вы можете обработать с использованием исключительной ситуации EInvalidOp.
8. Procedure Val(S; var V; var Code: Integer);
Преобразовывает число из строкового значения S в числовое
представление V. S – выражение строкового типа – последовательность символов, которая формирует целое или вещественное число. Если выражение S недопустимо, индекс неверного символа сохраняется в переменной Code. В противном случае Code устанавливается в нуль.
Процедуры и функции работы с порядковыми величинами1. Procedure Dec(varX [; N: Longlnt]);
Вычитает единицу или N из переменной X. Dec(X) соответствует X:= X – 1, и Dec(X, N) соответствует X:= X – N. X – переменная перечислимого типа или типа PChar, если допускается расширенный синтаксис, и N – выражение целочисленного типа. Процедура Dec генерирует оптимальный код и особенно полезна в длительных циклах.
2. Procedure Inc(varX [; N: Longlnt]);
Прибавляет единицу или N к переменной X. X – переменная перечислимого типа или типа PChar, если допускается расширенный синтаксис, и N – выражение целочисленного типа. Inc (X) соответствует инструкции X:= X + 1, и Inc (X, N) соответствует инструкции X:= X + N. Процедура Inc генерирует оптимальный код и особенно полезна в длительных циклах.
3. Function Odd(X: Longlnt): Boolean;
Возвращает True, если X – нечетное число, и False – в противном случае.
4. Function Pred(X);
Возвращает предыдущее значение параметра. X – выражение перечислимого типа. Результат того же самого типа.
5. Function Succ(X);
Возвращает следующее значение параметра. X – выражение перечислимого типа. Результат того же самого типа.
3. Операторы языка Pascal
Условный операторФормат полного условного оператора определяется следующим образом: If В then SI else S2; где В – условие разветвления (принятия решения), логическое выражение или отношение; SI, S2 – один выполняемый оператор, простой или составной.
При выполнении условного оператора сначала вычисляется выражение В, затем анализируется его результат: если В – истинно, то выполняется оператор S1 – ветвь then, а оператор S2 пропускается; если В – ложно, то выполняется оператор S2 – ветвь else, а оператор S1 – пропускается.
Также существует сокращенная форма условного оператора. Она записывается в виде: If В then S.
Оператор выбораСтруктура оператора имеет следующий вид:
case S of
c1: insruction1;
c2: insruction2;
…
cn: insructionN;
else instruction
end;
где S – выражение порядкового типа, значение которого вычисляется;
с1, с2…., сп – константы порядкового типа, с которыми сравниваются выражения
S; instruction1,…, instructionN – операторы, из которых выполняется тот, с константой которого совпадает значение выражения S;