Материал: Мансуров. Основы программирования в среде Lazarus. 2010

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Глава 2 Введение в язык программирования Pascal

____________________________________________________________________

Как уже отмечалось, в операторах write и writeln можно использо-

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

writeln('Квадрат числа (b + b)= ', sqr(b + b));

2.1.17Операции с вещественными числами (тип real).

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

program real_numbers; {$mode objfpc}{$H+} uses

CRT, FileUtil; var

a, b, c: real; begin

a:= 17.3; b:= 3.4; c:= a * b;

writeln(UTF8ToConsole('Умножение вещественных чисел c = '), c);

c:= a / b;

writeln(UTF8ToConsole('Деление вещественных чисел c = '), c);

c:= a + b;

writeln(UTF8ToConsole('Сложение вещественных чисел c = '), c);

c:= a - b;

writeln(UTF8ToConsole('Вычитание вещественных чисел c = '), c); writeln(UTF8ToConsole('Нажмите любую клавишу'));

readkey;

end.

101

2.1 Основные элементы языка

____________________________________________________________________

2.1.18 Форматирование вывода

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

вание для указания ширины поля вывода. Вид оператора вывода в этом случае будет таким:

write(переменная_1:w:d, … переменная_n:w:d);

writeln(переменная_1:w:d, … переменная_n:w:d);

где w – общая ширина поля вывода, d – количество знаков после запя-

той, т.е. дробной части числа. w и d должны быть константами или выраже-

ниями целого типа. Для того чтобы общая ширина поля вывода определялась автоматически, указывайте w = 0. Например:

writeln('a * b = ', c:0:2);

В этом случае на экран будет выведено

a * b = 58.82

вместо

a * b = 5.882000000000000Е+001

2.1.19 Одновременное использование вещественных и целых чисел.

В программе могут встречаться переменные разных типов:

program int_real; {$mode objfpc}{$H+} uses

CRT, FileUtil; var

102

Глава 2 Введение в язык программирования Pascal

____________________________________________________________________

n, k: integer;

a, b: real;

begin

a:= 3.6;

n:= 4;

b:= n;

writeln(UTF8ToConsole('Вещественная переменная b= '), b);

n:= trunc(a);

writeln(UTF8ToConsole('Операция truncate n= '), n);

k:= round(a);

writeln(UTF8ToConsole('Операция round k= '), k); writeln(UTF8ToConsole('Нажмите любую клавишу'));

readkey;

end.

В программе мы видим запись b:= n; где вещественной переменной b

присваивается значение целой переменной n. Кроме того, в таких записях как b:= n + 4.6; или b:= 3 * 7.2 + n; встречаются вещественные и це-

лые числа, стоящие в правой части выражения. Такие записи разрешены. Ком-

пилятор автоматически преобразует выражение в правой части оператора при-

сваивания к вещественному типу. И наоборот, присвоение вещественных зна-

чений целым переменным просто запрещены. Т.е. если написать оператор при-

сваивания

n:= 3.14;

компилятор выдаст ошибку.

Для этого используются стандартные функции trunc и round. С помо-

щью функции trunc производится преобразование вещественного числа в целое путем отбрасывания всех цифр, стоящих после десятичной точки (trun-

103

2.1 Основные элементы языка

____________________________________________________________________

cate – усекать), round – позволяет преобразовать вещественное число в це-

лое путем округления (round – округлять).

2.1.20 Другие стандартные функции с вещественными аргументами

 

 

 

Таблица 2.2

Функция

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

 

 

x2

sqr(x)

 

 

 

sqrt(x)

 

x

 

 

sin x

sin(x)

 

cos x

cos(x)

arctgx

arctan(x)

ln x

ln(x)

ex

exp(x)

Еще раз напоминаю, что аргументом функции (т.е. то, что стоит в скобках)

может быть выражение. Например,

s:= sin(a + b * 2 / 5.2 - sqr(a));

2.1.21 Булевы переменные

Булевы переменные (логические переменные) – это переменные, имеющие

только два значения false (ложь) и true (истина). Над булевыми пере-

менными определены логические операции not (логическое отрицание, "НЕ"), and (логическое "И"), or (логическое "ИЛИ"), xor (исключающее "ИЛИ").

Кроме того, определены следующие операции отношения:

=

равно,

<> не равно,

<

меньше,

> больше

104

Глава 2 Введение в язык программирования Pascal

____________________________________________________________________

<= меньше или равно, >= больше или равно

Результатом этих операций отношения являются логические false или

true.

Рассмотрим следующее выражение:

x > 3

В зависимости от значения x это выражение будет либо истинным

( true), либо ложным (false).

Пример.

program logic; {$mode objfpc}{$H+} uses

CRT, FileUtil; var

x: integer; flag: boolean;

begin x:= 4;

flag:= x > 3; writeln('flag = ', flag); flag:= x < 3; writeln('flag = ', flag);

writeln(UTF8ToConsole('Нажмите любую клавишу')); readkey;

end.

Допускается размещать справа и слева от знаков отношений арифметиче-

ские выражения: x + 6.5 < x + 5 такие выражения называются логически-

ми или булевыми выражениями.

105

Смотрите также:

11 Горм +
113
14
1433
1511
1632
199
204
2N4264RE
3773