Pascal. Логический тип данных.

До сих пор мы писали линейные программы, то есть сначала выполняли первое действие, потом второе и т.д. Сегодня мы хотим поговорить с Вами о логическом типе данных.

Скажем у нас есть такая запись — x-y>10

Из этой следует условие, то есть если из x вычесть y то будет ли эта разность больше десяти. В этой записи нам нужно знать x и y — допустим x=11, а y=0, то x-y>10 -> 11-0>10 получается что условие верно — разность 11 и 0 больше 10. Об этом выражении можно сказать что оно булевое или логическое.

Название булевое произошло от имени Джорджа Буля — разработчика булевой логики. Переменная, которая может принимать одно из двух значений — true(истина) и false(ложь) — называется логической или булевой, но мы её будем называть так, как принято — логическая.

Для начала давайте рассмотрим пример простой программы:

Program logika;
uses crt;
var a, b: Boolean;
begin
clrscr;
a := true;
b := false;
write(a, ' ', b);
readln;
end.

В этой программе мы объявили две переменные логического типа — логический тип в Pascal обозначается так — Boolean.

Потом переменным присвоили логические значения — true(истина) и false(ложь), после чего вывели их через пробел. Попробуйте скопировать к себе код этой программы и скомпилировав запустить его — на экране появятся две записи через пробел — TRUE FALSE.

Попробуем немного изменить код программы — пусть переменная a будет результатом сравнения двух чисел:

Program logika;
uses crt;
var a: Boolean;
begin
clrscr;
a := 2>4;
write(a);
readln;
end.

Мы проверили — больше ли двойка чем четыре, и после выполнения программы получим результат — FALSE — что значит ложь. Также можно проверить любые другие числа, например — 10 и 5, тогда результат будет TRUE, что значит истина. Также можно сравнивать и слова, но это пока нам не нужно.

Для последнего примера мы Вам предоставим код программы, которая считывает два числа с клавиатуры и проверяет их на все возможные сравнения — то есть больше, меньше, равно, и т.д.

И выводит на экран ряд сообщений типа — TRUE или FALSE и к ним приписывает какое сравнение было произведено:

Program logika;
uses crt;
var a: Boolean;
    num1, num2: Integer;
begin
clrscr;
write('Введите через пробел два числа - ');
readln(num1, num2);
a := num1 = num2;
writeln('Первое число равно второму - ', a);
a := num1 > num2;
writeln('Первое число больше второго - ', a);
a := num1 < num2;
writeln('Первое число меньше второго - ', a);
a := num1 <> num2;
write('Первое число не равно второму - ', a);
readln;
end.

Рейтинг
( Пока оценок нет )
Загрузка ...