Вещественные числав Паскале

Вот ошибочная программа:

VAR a,b,y: Integer;
BEGIN
a:=10; b:=6;
y:= a / b;
WriteLn (y)
END.

Паскаль откажется выполнять эту программу, так как знает, что при делении целого на целое результат может получиться дробный, а это значит, что в ячейку y придется записывать дробное число. Но описание VAR a,b,y: Integer запрещает это делать. Вот вам еще один пример придирчивости Паскаля. Если бы мы даже вместо b:=6 написали b:=2, все равно Паскаль отказался бы делить.

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

VAR a,b:Integer;

y:Real;

BEGIN

a:=10; b:=6;

y:=a / b;

WriteLn (y)

END.

По-английски Real читается " 'риэл", переводится "вещественный". Под переменную типа Real Паскаль отводит в памяти ячейку размером в 6 байтов.

Что мы увидим на экране в результате выполния оператора WriteLn (y)? Если вы думаете, что 1.666666, то ошибаетесь. Переменные, описанные как Real, Паскаль выводит на экран в так называемом экспоненциальном формате(виде), с первого взгляда непонятном. Более подробно об этом и других форматах мы поговорим в 14.5, а пока, чтобы заставить Паскаль выводить вещественные числа в обычном, понятном виде, допишем кое-что в оператор вывода - WriteLn (y:8:3). Это значит, что мы хотим численное значение переменной y типа Real видеть на экране в привычном виде с 3 знаками после десятичной точки, а всё изображение числа не должно занимать больше 8 символов, включая целую часть, дробную часть, знак и десятичную точку. Этот оператор напечатает на экране 1.667. Здесь напечатано действительно 8 символов (три пробела, предшествующие единице, видны вам, как пустое место). Вместо 8 и 3 в операторе программист может писать любые имеющие смысл числа.

Поэкспериментируйте: (y:38:3), (y:20:10), (‘Результат равен’, y:8:3).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: