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

2.7 Основные вычислительные структуры в Паскале

Основные типы языка: целые, вещественные, символьный, булевский.

Целые типы

Эта группа типов обозначает множества целых чисел в различных диапазонах.

Тип integer (целый).

Диапазон: -32768…32767.

Размер памяти: 2 байта (16 двоичных разрядов).

Над целыми значениями допустимы следующие операции:

а) арифметические бинарные (два операнда):

  • сложение (знак операции +);

  • умножение (знак операции *);

  • вычитание (знак операции - );

  • деление (знак операции /);

  • деление нацело с отбрасыванием целой части (знак операции div);

  • взятие остатка от целочисленного деления (знак операции mod);

б) арифметическая унарная (одноместная) операция −

изменение знака (знак операции - );

в) операции сравнения:

  • равно (=);

  • не равно (<>);

  • больше (>);

  • больше или равно (>=);

  • меньше (<);

  • меньше или равно (<=);

г) стандартные функции (в обычной функциональной записи):

  • абсолютная величина (пример, abs(-4)=4);

  • квадрат (пример, sqr(6)=36);

д) функция odd(<целое>) (odd - нечетный) - проверяет аргумент на нечетность.

Результат операции деления принадлежит вещественному типу, результаты операций сравнения и функции odd − булевский тип, все остальные операции выдают целый тип.

Примеры операции div:

6 div 4 =1;

-7 div -2 = 3;

34 div -45 = 0.

Операция m mod n применяется только при n>0:

6 mod 4 =2;

-6 mod 4 =-2.

В таблице 2.2 перечислены остальные целые типы в Паскале.

Таблица 2.2

Идентификатор

Описание типа

Множество допустимых значений

Shortint

8-битный целый со знаком

- 128…127

Longint

32-битный целый со знаком

- 2147483648...2147483647

Byte

8-битный целый без знака

0…255

Word

16-битный целый без знака

0…65535

Вещественные типы

Обозначают множества вещественных чисел в различных диапазонах.

Тип real (вещественный).

Диапазон значений: 2.9 ⋅ 10-39..1.7 ⋅ 1038.

Число цифр мантиссы: 11 - 12.

Размер памяти - 6 байт.

Вещественные значения могут изображаться в форме с фиксированной точкой и в форме с плавающей точкой. В первом случае целая и дробная части вещественного числа отделяются друг от друга символом «.» (точка). Обе эти части должны обязательно присутствовать, например,

17.384

0.5

Следующие примеры демонстрируют неправильные формы записи чисел:

.3 (правильно 0.3)

10. (правильно 10.0)

Вещественное число в форме с плавающей точкой записывается как пара вида <мантисса> E <порядок>.

Такое обозначение понимается как «мантисса, умноженная на 10 в степени, равном порядку». Например, 7E - 2 означает 7 ⋅ 10-2, 12.25E+6 или 12.25E6 оба обозначают 12.25 ⋅ 106. Мантисса представляется в виде целого числа или как вещественное с фиксированной точкой. Порядок обозначается целым числом; допускаются как положительные, так и отрицательные значения порядка.

Над вещественными значениями допустимы следующие операции:

  • арифметические операции (сложение, умножение, вычитание, деление, изменение знака) − операнды могут быть или оба вещественными, или один из них целым, а другой вещественным; результат всегда вещественный;

  • операции сравнения − результат булевский;

  • стандартные функции:

    • sqrt(x) (квадратный корень);

    • sin(x) (синус);

    • cos(x) (косинус);

    • arctan(x) (арктангенс);

    • ln(x) (натуральный логарифм);

    • exp(x) (экспонента).

Для этих функций аргумент может быть вещественным или целым, результат - всегда вещественный;

    • abs(x) (абсолютная величина числа);

    • sqr(x) (квадрат) - тип результата совпадает с типом аргумента;

  • операции округления:

    • trunc(x)−

x - вещественное, результат - целая часть числа х, дробная часть отбрасывается и не округляется,trunc(5.2)=5, trunc(-5.8)=-5;

    • round(x)−

x - вещественное, результат - округленное целое, round(x)=trunc(x+0.5) при x>=0, round(x)=trunc(x - 0.5) при x<0.

В таблице 2.3 перечислены остальные вещественные типы в Паскале.

Таблица 2.3

Идентификатор

Описание типа

Диапазон

Single

4-байтовый вещественный с ординарной точностью, 7-8 значащих цифр

- 3.4 ⋅ 1038… - 1.5 ⋅ 10 - 45,

1.5 ⋅ 10 - 45…3.4 ⋅ 1038

Double

8-байтовый вещественный с двойной точностью, 15-16 значащих цифр

- 1.7 ⋅ 10308… - 5.0 ⋅ 10 - 324,

5.0 ⋅ 10 - 324… 1.7 ⋅ 10308

Extended

10-байтовый вещественный с повышенной точностью, 19-20 значащих цифр

- 1.1 ⋅ 104932… - 1.9 ⋅ 10 - 4951,

1.9 ⋅ 10 - 4951 …1.1 ⋅ 104932

Comp

8-байтовый сложный тип

- 263…263 - 1(только целые значения)

Символьный (литерный) тип

Стандартное имя типа char (character).

Значениями этого типа являются элементы набора литер, определяемого реализацией языка. В Турбо-Паскале символы составляют множество ASCII (American Standard Code for Information Interchange) - 256 символов. Множество ASCII содержит заглавные и строчные латинские буквы, цифры; может содержать русские буквы. Некоторые символы не имеют изображения (например, «конец строки»).

Размер памяти, занятый символом, - 1 байт.

Множество символов упорядочено.

Функция ord(c) (0<= ord(c) <= 255) дает порядковый номер литеры c.

Функция chr(i) дает литеру (значение типа char) с порядковым номером 0<=i<=255.

ord(chr(i))=i

chr(ord(c))=c

Функция pred(c) (ord(c)>0) дает предыдущую литеру.

Функция succ(c) (ord(c)<255) дает последующую литеру.

pred(c)=chr(ord(c)-1)

succ(c)=chr(ord(c)+1)

Графическое представление символа (за исключением символов, не имеющих графического представления) - соответствующий знак в кавычках (апострофах) '+', 'y', '.', 'л', '"'. Символ, не имеющий графического представления, можно задать с помощью записи #<порядковый номер символа>, например, #7 − гудок.

Цифры '0','1',...,'9' имеют подряд идущие порядковые номера. Малые латинские буквы 'a','b',...,'z' имеют подряд идущие номера. Большие латинские буквы 'A','B',...,'Z' имеют подряд идущие порядковые номера.

Операции сравнения над символами такие же, как для чисел. Результат - булевский (логический) тип. Эти операции над символами эквивалентны сравнениям порядковых номеров символов.

Булевский (логический) тип

Стандартное имя типа - boolean.

Используется для представлений значений двузначной логики: true (истина), false (ложь).

Размер памяти для значений - 1 байт.

Логический тип упорядочен: true > false.

ord(false)=0

ord(true)=1

pred(true)=false

succ(false)=true

Используются операции сравнения, например, true<false = false.

Логические операции

Аргументы (операнды) - булевский тип, результат - булевский тип.

Служебные слова: and, or, not.

Операции and и or - бинарные коммутативные и ассоциативные:

  • x and y - логическое умножение (логическое "и") или конъюнкция - значение true тогда и только тогда, когда оба операнда - true;

  • x or y - логическое сложение (логическое "или") или дизъюнкция - значение false тогда и только тогда, когда оба операнда false.

  • Операция not x - унарная операция - логическое отрицание: not true = false, not false = true