В операторах if, while, repeat мы привыкли писать выражения вида a>b, i<=0, c=’крот’, 3>2, (a>b)AND(a>c) и т.п. Про каждое из этих выражений можно сказать, истинно оно в данный момент или ложно. Например, выражение 3>2 истинно всегда, а выражение i<=0 ложно в тот момент, когда i равно, скажем, 2. Такие выражения называются логическими выражениями.
Говорят, что логическое выражение 3>2 имеет значение “истина” (по-английски true - “тру”), а логическое выражение i<=0 имеет значение “ложь” (по-английски false - “фолс”).
Внутренняя идеология построения языка Паскаль требует определить новый тип переменных - логический тип Boolean. Запись VAR a:Boolean означает, что переменная a может принимать всего два значения - true и false. Так, мы можем записать a:=false.
Слова true и false являются логическими константами и их можно употреблять в логических выражениях или вместо них. Например, if a=true then... Конструкцию if (a>b)=false then... можно перевести “если неправда, что a больше b, то...”.
Значения true и false удобно применять для организации бесконечных циклов:
while true do .......
repeat ........... until false
Решим конкретный пример на этот тип.
Задача: В группе - 6 студентов. Сколько из них сдали зачет по физике?
Сначала напишем программу без использования типа Boolean. В ней единицей я обозначил зачет, нулем - незачет. Массив Zachet из 6 элементов хранит информацию о зачете.
CONST Zachet :array[1..6] of Integer =
(1,1,0,1,1,1);
VAR c,i :Integer;
BEGIN
c:=0; {c - счетчик зачетов}
for i:=1 to 6 do if zachet[i] = 1 then
c:=c+1;
WriteLn(c)
END.
Теперь напишем программу с использованием типа Boolean. В ней через true я обозначил зачет, через false - незачет.
CONST Zachet :array[1..6]
of Boolean = (true,true, false, true, true, true);
VAR c,i :Integer;
BEGIN
c:=0;
for i:=1 to 6 do if zachet[i] = true then
c:=c+1;
WriteLn(c)
END.
Отличие второй программы от первой в том, что выражение zachet[i] = true (зачет равен истина) выглядит естественнее и понятнее, чем zachet[i] = 1 (зачет равен единице, то есть колу?). В общем, чуть-чуть нагляднее.
Кстати, вполне правильно было бы написать и if zachet[i] then .... Ведь условием после слова if может стоять любое логическое выражение, имеющее значением true или false.
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.