__________________________________________________________
Shortint -128 .. 127 1 байт
Integer -32768 .. 32767 2 байта
Longint -2147483648 .. 2147483647 4 байта
Byte 0 .. 255 1 байт
Word 0 .. 65535 2 байта
Над целыми операндами можно выполнять следующие арифметические операции: сложение, вычитание, умножение, деление, получение остатка от деления. Знаки этих операций:
+ - * div mod
Результат арифметической операции над целыми операндами есть вели- чина целого типа. Результат выполнения операции деления целых величин есть целая часть частного. Результат выполнения операции получения остатка от деления - остаток от деления целых. Например:
17 div 2 = 8, 3 div 5 = 0.
17 mod 2 = 1, 3 mod 5 = 3.
Операции отношения, примененные к целым операндам, дают результат логического типа TRUE или FALSE ( истина или ложь ).
В языке ПАСКАЛЬ имеются следующие операции отношения: равенство =, неравенство , больше или равно >=, меньше или равно , меньше < .
К аргументам целого типа применимы следующие стандартные (встроен- ные) функции, результат выполнения которых имеет целый тип:
Abs(X), Sqr(X), Succ(X), Pred(X),
и которые определяют соответственно абсолютное значение Х, Х в квад- рате, Х+1, Х-1.
Следующая группа стандартных функций для аргумента целого типа да- ет действительный результат:
Sin(X), Cos(X), ArcTan(X), Ln(X), Exp(X), Sqrt(X).
Эти функции вычисляют синус, косинус и арктангенс угла, заданного в радианах, логарифм натуральный, экспоненту и корень квадратный со- ответственно.
Результат выполнения функции проверки целой величины на нечетность
Odd(X) имеет значение истина, если аргумент нечетный, и значение ложь, если аргумент четный:
X=5 Odd(X)=TRUE , X=4 Odd(X)=FALSE.
Для быстрой работы с целыми числами определены процедуры:
Inc(X) X:=X+1
Inc(X,N) X:=X+N
Dec(X) X:=X-1
Dec(X,N) X:=X-N
ДЕЙСТВИТЕЛЬНЫЕ типы определяет те данные, которые реализуются подмножеством действительных чисел, допустимых в данной ЭВМ.
Тип Диапазон Количество цифр Требуемая значений мантиссы память (байт)
---------------------------------------------------------------
Real 2.9e-39 .. 1.7e+38 11 6
Single 1.5e-45 .. 3.4e+38 7 4
Double 5.0e-324 .. 1.7e+308 15 8
Extended 3.4e-4932 .. 1.1e+4932 19 10
Comp -9.2e+18 .. 9.2e+18 19 8
Тип Real определен в стандартном ПАСКАЛЕ и математическим сопро- цессором не поддерживается.
Остальные действительные типы определены стандартом IEEE 457 и ре- ализованы на всех современных компьютерах.
Для их использования при наличии сопроцессора или при работе на
ЭВМ типа 80486 необходимо компилировать программу с ключом {$ N+}, а при отсутствии сопроцессора - с ключами {$N-,E+}.
Тип Comp хотя и относится к действительным типам, хранит только длинные целые значения.
Над действительными операндами можно выполнять следующие арифмети- ческие операции, дающие действительный результат:
сложение + , вычитание - , умножение * , деление / .
К величинам действительного типа применимы все операции отношения, дающие булевский результат.
Один из операндов, участвующих в этих операциях, может быть целым.
К действительным аргументам применимы функции, дающие действитель- ный результат:
Abs(X), Sqr(X), Sin(X), Cos(X), ArcTan(X), Ln(X), Exp(X),
Sqrt(X), Frac(X), Int(X), Pi.
Функция Frac(X) возвращает дробную часть X, функция Int(X) - целую часть X.
Безаргументная функция Pi возвращает значение числа Пи действи- тельного типа.
К аргументам действительного типа применимы также функции
Trunc(X) и Round(X),
дающие целый результат. Первая из них выделяет целую часть действи- тельного аргумента путем отсечения дробной части, вторая округляет аргумент до ближайшего целого.
ЛОГИЧЕСКИЙ тип (Boolean) определяет те данные, которые могут при- нимать логические значения TRUE и FALSE.
К булевским операндам применимы следующие логические операции:
not and or xor.
Логический тип определен таким образом, что FALSE < TRUE. Это поз- воляет применять к булевским операндам все операции отношения.
В ТУРБО ПАСКАЛЬ введены еще разновидности логического типа:
ByteBool, WordBool и LongBool, которые занимают в памяти ЭВМ один, два и четыре байта соответственно.
СИМВОЛЬНЫЙ тип (Char) определяет упорядоченную совокупность симво- лов, допустимых в данной ЭВМ. Значение символьной переменной или константы - это один символ из допустимого набора.
Символьная константа может записываться в тексте программы тремя способами:
-как один символ, заключенный в апострофы, например:
'A' 'a' 'Ю' 'ю';
-с помощью конструкции вида #K, где K - код соответствущего симво- ла, при этом значение K должно находиться в пределах 0..255;
-с помощью конструкции вида ^C, где C - код соответствущего управ- ляющего символа, при этом значение C должно быть на 64 больше кода управляющего символа.
К величинам символьного типа применимы все операции отношения.
Для величин символьного типа определены две функции преобразования
Ord(C) Chr(K).
Первая функция определяет порядковый номер символа С в наборе сим- волов, вторая определяет по порядковому номеру К символ, стоящий на
К-ом месте в наборе символов. Порядковый номер имеет целый тип.
К аргументам символьного типа применяются функции, которые опреде- ляют предыдущий и последующий символы:
Pred(C) Succ(C). Pred('F') = 'E' ; Succ('Y') = 'Z' .
При отсутствии предыдущего или последующего символов значение со- ответствующих функций не определено.
Для литер из интервала 'a'..'z' применима функция UpCase(C), кото- рая переводит эти литеры в верхний регистр 'A'..'Z'.
АДРЕСНЫЙ тип (Pointer) определяет переменные, которые могут содер- жать значения адресов данных или фрагментов программы. Для хранения адреса требуются два слова (4 байта), одно из них определяет сегмент, второе - смещение.
Работа с адресными переменными (указателями) будет рассмотрена позже, сейчас отметим, что для получения значения адреса какой-либо переменной введена унарная операция @.
6. К О Н С Т А Н Т Ы
Тип констант в языке ПАСКАЛЬ определяется по их виду: константы целого типа - это целые числа, не содержащие десятичной точки, конс- танты действительного типа - действительные числа, логические конс- танты - логические значения TRUE и FALSE, символьные константы - либо строки длиной в один символ, либо конструкции вида #K или ^K.
Язык ПАСКАЛЬ допускает использовать синонимы для обозначения конс- тант, в этом случае текст программы содержит раздел описания констант, например: {}
7. П Е Р Е М Е Н Н Ы Е.
И Н И Ц И А Л И З А Ц И Я П Е Р Е М Е Н Н Ы Х
Тип переменных определяется пользователем в разделе описания пере- менных:{}
В настоящее время в профессиональном программировании принято записывать имена переменных с использованием так называемой венгерс- кой нотации.
Венгерская нотация - это соглашение о наименованиях переменных и функций. Соглашение широко используется при программировании на язы- ках PASCAL, C и в среде WINDOWS.
Венгерская нотация основывается на следующих принципах:
-имена переменных и функций должны содержать префикс, описывающий их тип;
-имена переменных и функций записываются полными словами или сло- восочетаниями или их сокращениями, но так, чтобы по имени можно было понять назначение переменной или действие, выполняемое функцией.
Префиксы записываются малыми буквами, первая буква каждого слова - заглавная, префиксы и слова записываются либо слитно, либо через сим- вол _ (подчеркивание).
Для языка PASCAL могут быть рекомендованы следующие префиксы для скалярных переменных и функций:
Префикс Тип
--------------------- by Byte sh Shortint i Integer w Word l Longint r Real si Single d Double e Extended c Comp ch Char b Boolean p Pointer x,у координаты символа или точки на экране
Для величин структурированного типа могут быть использованы следу- ющие префиксы:
a Array s String sz Stringz se Set re Record f File t Text
Например:
rV, arVector[1..20], sName, iCount.
В откомпилированной программе для всех переменных отведено место в памяти, и всем переменным присвоены нулевые значения.
Для задания начальных значений переменным (инициализации перемен- ных) TURBO PASCAL позволяет присваивать начальные значения переменным одновременно с их описанием. Для этого используется конструкция
имя переменной: тип = значение;
которая должна быть размещена в разделе описания констант, например:
const rWeight: Real = 0.4;
8. В Ы Р А Ж Е Н И Я
Выражение состоит из констант, переменных, указателей функций, знаков операций и скобок. Выражение задает правило вычисления некото- рого значения. Порядок вычисления определяется старшинством (приори- тетом) содержащихся в нем операций. В языке ПАСКАЛЬ принят следующий приоритет операций:
1. унарная операция not, унарный минус -, взятие адреса @
2. операции типа умножения * / div mod and shl shr
3. операции типа сложения + - or xor
4. операции отношения = < > = in
{}
Выражения входят в состав многих операторов языка ПАСКАЛЬ, а также могут быть аргументами встроенных функций.
9. О П Е Р А Т О Р П Р И С В А И В А Н И Я
Тип переменной и тип выражения должны совпадать кроме случая, ког- да выражение относится к целому типу, а переменная - к действительно- му. При этом происходит преобразование значения выражения к действительному типу.{}
10. О П Е Р А Т О Р Ы В В О Д А
И В Ы В О Д А
Рассмотрим организацию ввода и вывода данных с терминального уст- ройства. Терминальное устройство - это устройство, с которым работает пользователь, обычно это экран (дисплей) и клавиатура.
Для ввода и вывода данных используются стандартные процедуры ввода и вывода Read и Write, оперирующие стандартными последовательными файлами
INPUT и OUTPUT.
Эти файлы разбиваются на строки переменной длины, отделяемые друг от друга признаком конца строки. Конец строки задается нажатием кла- виши ENTER.
Для ввода исходных данных используются операторы процедур ввода:
Read(A1,A2,...AK);
ReadLn(A1,A2,...AK);
ReadLn;
Первый из них реализует чтение К значений исходных данных и прис- ваивание этих значений переменным А1, А2, ..., АК. Второй оператор реализует чтение К значений исходных данных, пропуск остальных значе- ний до начала следующей строки, присваивание считанных значений пере- менным А1, А2, ..., АК. Третий оператор реализует пропуск строки ис- ходных данных.
Страницы: 1, 2, 3, 4, 5, 6, 7