Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по TURBO PASCAL.doc
Скачиваний:
18
Добавлен:
04.11.2018
Размер:
1.13 Mб
Скачать
    1. Вещественные типы

Переменные этого типа могут хранить рациональные (дробные) числа с разной степенью точности. Точность зависит от выбранного типа. Всего существует 5 вещественных типов. В таблице №5 наглядно показано, какой тип какой точностью обладает и сколько ему требется памяти.

      1. Способ записи вещественных чисел

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

Например: 2.2 2.0 0.35 12.84 0.3333

Ещё раз обратите внимание, что запись 2.0 обозначает вещественную константу, а просто 2 – целую.

Вещественные числа можно ещё записывать в стандартном виде с использованием степени числа 10. Эта форма удобна для записи очень больших и очень маленьких чисел. Числа в стандартном виде записываются в таком формате:

<мантисса> ∙ 10<порядок> — в математике

<мантисса>e<порядок> — в информатике

Число состоит из двух частей: мантиссы и порядка. Например:

5,32 ∙ 106 = 5,3 ∙ 1000000 = 5 320 000,0

Здесь 5,32 – мантисса, а 6 – порядок числа.

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

5.32e6 – эта запись обозначает число, равное 5,32 ∙ 106

2.12e-5 – эта запись обозначает число, равное 2,12∙10 –5 = = 2,12 ∙ 0,00001 = 0,0000212

Мантисса числа всегда больше либо равна 1, но меньше 10 (за исключением представления числа 0,0 = 0.0e0).

Разберите ещё несколько примеров перевода чисел из обычной формы записи в стандартную. Обратите внимание на запись отрицательных чисел.

45.2 = 4.52e1

1235.0 = 1.235e3

100.0 = 1.0e2

5.0 = 5.0e0

0.03 = 3.0e-2

0.0012 = 1.2e-3

0.0 = 0.0e0

25000.0= 2.5e4

-28.17 =-2.817e1

-1.0 =-1.0e0

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

Запишите следующие числа в стандартном виде:

457.1 , 5.4201 , 45214.0 , 0.00453 , -42000.0 , 0.00005 .

Решите следующие примеры. Для этого переведите числа в обычную форму, сложите их и запишите результат в стандартном виде. В конце пункта 6.3 найдёте ответ.

  1. 2.2e1 + 3.08e2 = ?

  2. 5.53e15 + 2.34e14 = ?

  3. 2.11e-10 + 1.01e-12 = ?

  4. 1.52e10 + 2.42e-8 = ?

      1. Вывод на экран вещественных чисел

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

program Real_Writing_Demo;

var d : real;

begin

d := 575.22;

writeln (d);

end.

И вот тут начнутся неожиданности. Вместо ожидаемого «575.22» на экране появится «абракадабра»:

5.75219999999739E+0002

Однако, если внимательней присмотреться, то можно заметить, что это и в самом деле наше число, но «округленное» и записанное в стандартном виде. «Округление» происходит из-за особенности представления числа в памяти, более подробно об этом будет рассказано в следующем пункте.

Для того чтобы компьютер печатал число в более привычном для нас виде, надо сообщить ему об этом следующим образом:

writeln (d : <всего символов> : <дробная часть>);

Параметр <всего символов> показывает, сколько надо выделить символов (знакомест, позиций) экрана для вывода числа, а параметр <дробная часть> – сколько знаков после десятичной точки необходимо отобразить. Этот способ вывода называет форматированным выводом.

Если в предыдущем примере оператор вывода сделать форматированным:

writeln (d : 6 : 2);

то компьютер напечатает долгожданное

575.22

Можно ещё поэкспериментировать с этими параметрами вывода на экран вещественного числа. Только надо знать, что если вы зададите слишком маленькое значение параметра <всего символов> и число не влезет в ваше прокрустово ложе, то оно займёт больше места на экране. Если же вы выделите для числа места больше, чем ему необходимо, то слева к этому числу будет добавлены пробелы: столько, сколько не хватает длине числа до выделенного вами места. Параметр <дробная часть> можно менять как угодно, компьютер в каждом случае будет соответствующим образом округлять число. Если этот параметр будет слишком большим, то к дробной части числа компьютер добавит необходимое количество нулей. Можно также задать значение 0 – на экране напечатается только целая часть числа.

Вот несколько примеров, иллюстрирующих всё сказанное (для наглядности символ пробела здесь обозначается квадратиком □):

Таблица 6. Форматированный вывод

Оператор

Результат выполнения

Write(48024.32:10:3);

□48024.320

Write(405.39:10:3);

□□□□□405.4

Write(1024.0:10:7);

1024.0000000

Write(-869.91:5:0);

□-870

Write(0:10:1);

□□□□□□□0.0

Write(67222.4445:10:3);

□67222.445

Примечание. Форматированный вывод можно употреблять и для целых чисел. Но для них задаётся только один параметр – <всего символов>.