Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
программирование на паскале2.doc
Скачиваний:
145
Добавлен:
31.03.2015
Размер:
935.94 Кб
Скачать

1.2.3. Правила записи констант

Мы рассмотрим простейшие9правила записи явных констант.Целая десятичная константа- это последовательность десятичных цифр, например, 12678909. Последовательность шестнадцатеричных цифр (0, 1, ..., 9,A,B,C,D,E,F), перед которой записан символ доллара $, представляет собойцелую шестнадцатеричнуюконстанту; например, $FF- шестнадцатеричное представление числа 255. Соответствующие отрицательные значения получаются в результате применения унарной операции минус (-), см. п.1.2.5.

Простейшие правила записи вещественных констант состоят в следующем: разделителем между целой и дробной частью числа является точка; можно использовать показатель десятичного порядка Е (большую или малую латинскую букву). Пример вещественных констант: 100.01, 3.44Е3 (значение 3.44*103), 1.0 Е-2 (значение 0.01).

Для представления числовых констант в памяти компьютера выбирается подходящий тип в соответствии с таблицами 1-4. Естественно, при этом следует выбирать минимальный диапазон и минимальное число значащих цифр. Такой выбор не только уменьшает память и время работы программы, но и повышает ее надежность, так как компилятор может обеспечить контроль над значениями переменных (чтобы они находились в указанных границах).

Символьная константа- это соответствующий символ клавиатуры, заключенный в апострофы. Примеры: 'a', '5', '?'. Другой способ задания констант - в виде #код, например, #32 –пробел, #90 букваZ.

Уже при написании простейших программ при записи операторов вывода (а иногда и ввода) нам потребуется понятие строковой константы.Это последовательность символов, заключенная в одинарные кавычки (апострофы). Например: ‘Введите исходные данные'.

Логические константы обозначаются следующим образом: false – ложь, true - истина

1.2.4. Описание переменных и именованных констант в Паскале

Пока мы рассматриваем данные, занимающие одну ячейку памяти. Такие данные называются простыми. Простые переменные описываются в разделе переменных после слова Varс помощью инструкций вида:

Var список_имен_переменных: тип;

Слово список при описании фрагментов алгоритмического языка обычно означает, что элементы списка перечисляются через запятую. Инструкции в Паскале разделяются точкой с запятой (обратите внимание на этот знак в конце описания).

Пример описания:

Var a, b:real; n,i, j,k:integer;

Именованные константы описываются в разделе констант после ключевого слова Constс помощью инструкций вида:

Constимя_константы=значение константы;

Здесь ключевое слово const показывает, что определяемое данное имеет постоянное значение, т. е. доступно только для чтения. Тип константы определяется по ее значению.

Общепринятый (обязательный для стандартной версии Паскаля, но необязательный в реализациях) порядок следования разделов такой: сначала идет раздел констант, потом раздел переменных. В Паскале требуется, чтобы все используемые имена (в том числе переменные и константы) были описаны.

1.2.5. Выражения

Выражения в Паскале, как и в других алгоритмических языках, различаются по типу (в зависимости от участвующих в выражении операндов и операций) и бывают арифметическими (числовыми), логическими (булевскими), символьными. Напомним очевидное определение: выражение - это операнды, соединенные знаками операций. Тип операндов должны быть согласован с операциями, используемыми в выражении. Операнд - это либо константа, либо переменная (простая или с индексами), либо указатель функции, либо выражение, заключенное в скобки. Особенность логических операндов состоит в том, что логическим операндом может быть и соотношение.

Правила записи выражений в различных алгоритмических языках отличаются допустимым набором операций, их обозначениями, приоритетом выполнения. В алгоритмическом языке Паскаль имеются следующие операции:

Арифметические: * (умножение), div (деление нацело), mod (остаток от целочисленного деления), / (деление), + (сложение), - (вычитание).

Логические: NOT (отрицание), OR (дизъюнкция), AND (конъюнкция).

Соотношения: = (равно), <> (неравно), < (меньше), > (больше), <= (меньше или равно), >= (больше или равно), IN(вхождение в множество).

Операции DIVиMOD, естественно, применимы только к целым операндам.

Действия выполняются слева направо с учетом следующих приоритетов (перечислены в порядке убывания):

1) NOT;

2) мультипликативные операции: *, /, div, mod, AND;

3) aддитивные операции: +, -, OR;

4) соотношения: =, <>, <, >, <=, >=, IN.

Программистам, привыкшим к СИ и Фортрану, следует быть внимательными: приоритеты отличны от принятых в этих языках.

Например, в паскалевском выражении

(a>0.1) AND (b<0)

скобки обязательны: при их отсутствии первой будет выполняться операция AND, что логически неверно. Заметим, что компилятор при этом выдаст сообщение о несоответствии типа операндов (0.1 и b) типу операции AND.

Смешивать типы операндов допустимо лишь для арифметических выражений (один операнд типа integer, другой - типаreal). Тип результата в этом случае определяется следующим образом: операции *, +, - при целых операндах дают целый результат; если хотя бы один операнд вещественный, то эти операции дают вещественный результат. Операция / дает вещественный результат при любых операндах (в отличии от СИ и Фортрана).

В таблице 5 приведены некоторые часто используемые стандартные функции Паскаля.

Таблица 5. Некоторые встроенные функции Паскаля

Обозначение Паскаля

Смысл (математическое обозначение)

Тип аргумента

Тип результата

abs(x)

abs(x)

числовой

совпадает с типом аргумента

arctan(x)

arctg(x)

вещественный

вещественный

cos(x)

cos(x)

вещественный

вещественный

exp(x)

ex

вещественный

вещественный

ln (x)

ln x

вещественный

вещественный

sin (x)

sin x

вещественный

вещественный

sqr(x)

x2

числовой

совпадает с типом аргумента

sqrt(x)

вещественный

вещественный

round(x)

преобразование из вещественного в целое с округлением

вещественный

целый

trunc(x)

преобразование из вещественного в целое с отбрасыванием дробной части

вещественный

целый

odd(x)

целый

булевский

ord(x)

номер х в последовательности значений порядкового типа10

любой порядковый

целый

succ(x)

следующее значение порядкового типа

любой порядковый

совпадает с типом аргумента

pred(x)

предыдущее значение порядкового типа

любой порядковый

совпадает с типом аргумента