..

Сайт города Попасная.
 

 

 

Интернет издания:

ПОПАСНЯНСКАЯ ПРАВДА

 



 

 

 

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

Переменные логического типа могут принимать одно из двух противоположных значений: true или false, - то есть "истина" или "ложь". В стандарте языка логические переменные объявляются идентификатором типа Boolean. Логической переменной можно присвоить результат сравнения двух переменных, например, в операторе присваивания logical:=numb<0 выполняется сравнение значения переменной numb, которая должна быть объявлена как переменная одного из числовых типов, с нулем; если переменная numb отрицательна, то logical будет присвоено значение true, иначе - false. Рассмотрим программу, определяющую, какое число введено - положительное или отрицательное.

Программа 2.5.

Var numb: Integer;
logical;Boolean;
Begin
Writeln('Введите число');
Readln(numb);
logical:=numb<0;
Writeln('Введенное число отрицательное - ', logical);
End.

Если мы введем число 5, то программа выведет сообщение "Введенное число отрицательное - FALSE". To есть утверждение, что введенное число отрицательное - ложно. На экран при этом выводится непосредственное значение логической переменной - FALSE, причем обязательно заглавными буквами. Сравнивать значения порядковых и вещественных типов можно с помощью следующих шести операций:

<
Меньше
>
Больше
<=
Меньше или равно
>=
больше или равно
=
Равно
<>
не равно

Результатом выполнения любой операции сравнения является значение логического типа. К самим переменным логического типа применяются 4 операции:

Not
Отрицание
Or
Или
And
И
Хог
Исключающее или

Операция not заменяет значение логической переменной противоположным. Она применяется к одному операнду типа Boolean, например следующим образом: 11:= Not Logical; причем между именем операции и идентификатором переменной обязательно должен быть пробел. Остальные операции являются двухоперандными, их удобно определять в виде таблиц. Ниже приведены результаты выполнения..:

..операции х or у:

Or
y=True
y=False
X=True
True
True
x=False
True
False

..операции And:

And
y=True
y=False
X=True
True
False
x=False
False
False

..операции Хоr:

Хоr
y=True
y=False
X=True
False
True
x=False
True
False

Задать значение логической переменной можно с помощью оператора присваивания как результат выполнения операции сравнения, а также непосредственно. В TurboPascal определены две константы True и False, которые можно использовать в программе. Допустимым является, например, такой оператор присваивания: logical:=True. Однако в отличие от переменных целого и вещественного типов, переменные логического типа не допускается использовать в списке процедуры ввода. Таким образом, логическим переменным можно задать значения только в тексте программы. Логическая переменная занимает 1 байт. Если она принимает значение False, то в соответствующем ей байте памяти записывается 0, True соответствует 1. Числовые значения можно получить с помощью функции Ord. В операторе присваивания Number:=Ord(Logical) вычисляется числовой эквивалент значения логической переменной Logical и полученное значение записывается в переменную Number одного из целочисленных типов. В TurboPascal определено 4 логических типа данных.

Таблица 2.7. Логические типы данных

Идентификатор типа
Размер в байтах
Boolean
1
ByteBool
1
WordBool
2
LongBool
4

В области памяти, соответствующие этим переменным, можно записывать числа, диапазон изменения которых определяется отведенным для данной переменной числом байтов. Для всех указанных в таблице типов значение True соответствует отличному от 0 числу, однако, функция Ord для значения True в любом случае возвращает 1, за исключением использования идентификатора типа Boolean. В этом случае возвращается само число.

2.6. Символьный тип данных

Значительная часть используемых программ предназначена не для выполнения расчетов, а для работы с текстом, примером может служить любой текстовый редактор. Обрабатываемыми данными в этих программах являются предложения, слова, буквы и знаки. Для работы с отдельными символами в TurboPascal используются переменные символьного типа, объявляемые идентификатором типа Char. Для каждой переменной символьного типа отводится один байт оперативной памяти, в который записывается число, называемое кодом символа. Поскольку всего в один байт можно записать 256 различных чисел, символьная переменная может принимать одно из 256 значений. Код символа можно определить с помощью функции Ord. Составим программу, вводящую символ и вычисляющую его код.

Программа 2.6.

Var cod: Byte; sym: Char;Begin
Writeln('Введите символ');
Readln(sym);
cod:=ord(sym);
Writeln('Kofl введенного символа = ', cod); End.

Значение для символьной переменной можно вводить с клавиатуры или присваивать непосредственно в программе. Для этого следует использовать символьную константу. Например, присвоить переменной sym значение символа "А" можно с помощью оператора присваивания sym:='A', в котором буква записывается между двух знаков "апостроф". Сам символ «апостроф» указывается удвоенным символом: sym:= "". Значения символьных переменных можно сравнивать с помощью всех 6 операций сравнения, введенных ранее. Символ считается больше другого, если значение кода этого символа больше. Коды символов определены стандартом ASCII (American Standard Code for Information Interchange). Таблица, в которой приведены коды всех символов, формируется программно в разделе, посвященном обращению по непосредственным адресам памяти. Не все символы можно ввести с клавиатуры или задать в тексте программы в указанной выше форме символьной константы. Для того чтобы получить любой символ типа Char, можно использовать функцию Chr, возвращающую символ по его коду. Например, символ, имеющий код 2, определяется как Chr(2). Можно также применить другую форму символьной константы, которая записывается в виде кода символа, которому предшествует знак "#". Так, для записи в переменную sym цифры "О" можно использовать любой из приведенных операторов присваивания:
sym:='O';
sym:=#48;
sym:=Chr(48);

Следует учитывать, что некоторые из символов являются управляющими. Например, вывод символа с кодом 10 при помощи процедуры Write приводит к переходу на следующую строку.

Задания:

1. Определите значения логического выражения Sym1<Sym2, в котором Sym1 и Sym2 - переменные символьного типа, принимающие значения:
a) Sym1='f; Sym2='s';
b) Sym1='g'; Sym2='w';
2. Составьте программу, определяющую значение логического выражения предыдущей задачи для любых двух введенных символов. Указание: для ввода значений символьных переменных используйте процедуру Readln.
3. Составьте программу, обеспечивающую ввод числа в диапазоне от 40 до 255 в формате Byte и вывод на экран символа с этим кодом и символьной константы вида #число.

2.7. Классификация простых типов данных

Рассмотренные в этом разделе типы называются простыми. Простые типы данных делятся на порядковые и вещественные типы. К вещественным типам относятся Real, Single, Double, Extended и Соmр. К порядковым типам относятся все целые типы: Shortlnt, Integer, Longlnt, Byte, Word, логические типы Boolean, ByteBool, WordBool, Long-Bool, символьный тип Char и еще два типа: тип-диапазон и перечисляемый тип. Тип-диапазон определяется как подмножество значений порядкового типа. При его определении указываются границы диапазона, в котором могут принимать значения переменные этого типа, разделяемые двумя символами "точка". Например, если переменная должна принимать значения только заглавных букв латинского алфавита, то ее можно определить через тип диапазон. Для этого сначала в программе определяется новый идентификатор типа:
Type BigLt='A'..'Z';
Объявление новых типов производится в разделе описаний. Предназначенная для этого часть раздела начинается с зарезервированного слова Туре (Тип), после которого указывается идентификатор нового типа. Мы назвали его BigLt. Затем после знака "равно" указывается начало диапазона, две точки подряд и конец диапазона. Переменные введенного типа объявляются как обычно. Для этого используется введенный идентификатор типа:
Var syml,sym2:BigLt;
в результате чего sym1 и sym2 являются переменными типа диапазон. Они принимают только те значения, которые указаны при объявлении типа. Перечисляемый тип определяется списком идентификаторов значений. Переменные этого типа могут принимать только одно из значений, указанных при его определении.

Например:

Программа 2.7.

Type PcComponent=(Processor, Memory, MotherBoard, HDD);
Var Name:PcComponent;
Begin
Name:=Processor; Writeln(Ord(name));
End.

Значения переменных перечисляемого типа можно сравнивать, причем сравнение выполняется по порядковым номерам значений, а нумерация автоматически выполняется в порядке их указания в разделе описаний. К этим переменным применима функция Ord, которая возвращает порядковый номер значения в списке, указанном при определении типа. Нумерация в списке значений начинается с нуля, поэтому в приведенной выше программе на экран будет выведен 0. Вводить значения этих переменных с клавиатуры и выводить на экран запрещается. Практически всеми особенностями перечисляемого типа обладает тип Boolean. Отличие состоит лишь в том, что значения логических переменных могут быть выведены на экран.

Задания:

1. Определите значения следующих логических выражений:
('А' = 'а') ;
('A'>'Z') Or 'a' < 'b');
2. Определите, что выведет на экран следующая программа:
Type OrderType=(First, Second, Third); Var NumbrOrderType;
N:Byte; Begin
Numb:=First;
N:=Ord(Numb);
Write(N); End.

2.8. Константы

В программе на языке Pascal допускается использование идентификаторов для констант всех простых типов. Константы в этих случаях объявляются в разделе описаний после зарезервированного слова Const. Например, в строке:
Const n=10; m=2304;
объявлены две целые константы n и m. Константе n присвоено значение 10, а константе m - значение 2304. Константы используются так же, как и переменные, с одним лишь отличием: в разделе операторов запрещается изменять их значения. В разделе описаний можно задать переменной начальное значение. Для этого необходимо объявить ее как типизированную константу, указав после имени константы идентификатор типа. Объявим введенные выше константы n и m как типизированные константы:
Const n:Byte=10; m:Integer=234;
Для констант и типизированных переменных целого типа значение можно указывать как в десятичной, так и в шестнадцатеричной системе счисления. Если значение константы записывается в шестнадцатеричной системе счисления, то перед первой цифрой должен быть указан знак "$", например:
Const nl6=$la;
Примеры записи констант простых типов приведены в таблице 2.8.

Таблица 2.8. Константы простых типов.

Тип константы
Пример записи
Целый
15, $е
Вещественный
1.5, 0.0018, 1.8Е-03
Символьный
'F','*', #14
Логический
True, False

Примечание: при использовании записи символьной константы в виде #число, число определяет значение кода символа.

Задания:

1. Определите, какие из приведенных ниже констант неправильно объявлены:
Const
N=12;
М=12,7;
К=5.88е-05;
L=36.1e-123;
2. Найдите ошибку в приведенном фрагменте программы, содержащем описания констант:
Const
A=12,
D=3;
Re=12.3;
Sym='N';

 
Popasnaya.com.ua Web-Source 2003 - 2004 / babelyuk jr / All Rights Reserved