Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Turbo Pascal / Stud_1_1 / LecRus / MainPart.doc
Скачиваний:
116
Добавлен:
03.03.2016
Размер:
5.03 Mб
Скачать

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

Вещественные числа - это числа с плавающей запятой. Широкое их использование характерно для инженерно-технических задач. Тем не менее процессоры 8086, 8088 и другие, на которых были построены первые ПЭВМ малой производительности, не имеют в своем составе операций над числами с плавающей запятой. Такие операции выполняются программным путем. Это означает, что транслятор включает в программу пользователя подпрограммы арифметических операций над числами с плавающей запятой. Тогда вместо выполнения, например, одной машинной команды сложения производится обращение к подпрограмме и выполняется целая группа машинных команд.

Для повышения производительности компьютера при обработке вещественных чисел к нему добавляют сопроцессор. Это небольшая плата, на которой аппаратно реализованы операции с плавающей запятой. При этом скорость выполнения таких операций увеличивается в несколько раз.

При отсутствии сопроцессора реализуется только один вещественный тип - тип real; при наличии сопроцессора реализуются также типы single, double, extended, comp. Вещественные типы отличаются друг от друга количеством разрядов, отводимых для представления мантиссы и порядка. В частности, переменная типа single имеет длину 4 байта, из них три байта - мантисса и один байт - характеристика; для переменной типа double отводится 8 байт памяти и т.д. В дальнейшем при разработке программ в качестве вещественного типа будет рассматриваться только тип real. Информация о других вещественных типах представлена в разделе «Использование сопроцессора».

Значение числа типа real в десятичном представлении может изменяться в диапазоне от до . Размер мантиссы такого числа обеспечивает получение 11 – 12 значащих десятичных цифр.

Для вещественных типов определены четыре арифметические операции:

+ сложение ;

- вычитание ;

* умножение ;

/ деление .

Результатом операций "+", "-", "*" является вещественное значение, если хотя бы один из операндов имеет вещественный тип. Операция "/" дает вещественное значение и в том случае, когда оба ее операнда относятся к целочисленным типам.

Например, 12 / 5 = 2.4 , в то время как 12 div 5 = 2 .

Стандартные функции abs(x) и sqr(x) дают вещественный результат, если их аргумент x имеет тип real. Вне зависимости от типа аргумента следующие стандартные функции всегда дают вещественный результат: sin(x), cos(x), ln(x), exp(x), arctan(x), sqrt(x) (корень квадратный).

Вещественный результат при вещественном аргументе дают также функции:

Int(x) - целая часть вещественного значения x;

Frac(x) - дробная часть вещественного значения x (Frac(x) = x - Int(x)).

Отсутствующие в Турбо Паскале функции arcsin(x), arccos(x), lg(x) могут быть определены следующим образом:

а)

Запись на Паскале:

If abs(x)=1 then

arcsin:=pi/2

Else

arcsin:=arctan(x/sqrt(1-sqr(x)));

б)

На языке Паскаль:

If x=0 then

arccos:=pi/2

Else

arccos:=arctan(sqrt(1-sqr(x))/x)+pi*byte(x<0);

В выражении byte(x<0) используется аппарат приведения типов, который будет рассмотрен позже. В данном случае

byte(x<0) = 1, если x < 0; byte(x<0) = 0, если x  0.

в) lg(x): ln(x)/ln(10).

Степенная функция для вещественного показателя степени вычисляется следующим образом:

exp(b * ln(a))

С Т Р У К Т У Р А П А С К А Л Ь - П Р О Г Р А М М Ы

Паскаль-программа состоит из заголовка и блока:

Блок

Заголовок программы

Блок содержит разделы описаний, в которых определяются все локальные по отношению к данной программе объекты, и раздел операторов, где заданы действия, которые необходимо выполнить над этими объектами.

Раздел описания

меток

Раздел описания

констант

Раздел описания

переменных

Раздел описания

типов

Раздел

операторов

Раздел описания

процедур и функций

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

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

В заголовке программы указывается имя программы:

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

Пример 1.

Program Example;

Соседние файлы в папке LecRus