Логический тип данных. Использование в программе. Операции сравнения. Логические операции. Побитовые операции с целыми числами. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Логический тип данных. Использование в программе. Операции сравнения. Логические операции. Побитовые операции с целыми числами.



Логические данные

Помимо чисел, символов и строк, в Паскале имеется тип данных Boolean, в диапазон

значений которого входят всего две величины: True (истина, да) и False (ложь, нет).

Их нельзя использовать в выражениях в качестве числовых или символьных величин.

'J ЗАМЕЧАНИЕ Значение False считается меньше, чем эначени! True.

Размеры переменных булевых типов:

Тип Размер
Boolean 1 байт
ByteBool 1 байт
WordBool 2 байт (объем Word)
LongBool 4 байт (объем Longint)

 

Логические выражения

Для манипулирования логическими величинами True и False в Паскале имеются

четыре операции.

Таблица 1.4. Логические операции в Паскале

Обозначение операции в Паскале Назначение

And Логическое И. Результат равен True, если оба операнда

равны True, в противном случае результат равен False

Or Логическое ИЛИ. Результат равен True, если хотя бы

один из операндов равен True, в противном случае

результат равен False

Хог Исключающее ИЛИ. Результат равен True, если операнды

не равны друг Другу, в противном случае результат

равен False

Not Отрицание. Имеет только один операнд, указываемый

справа. Результат равен True, если значение операнда

равно False, в противном случае результат равен False

Операция not имеет наивысший приоритет, операция and — более низкий, опера-

ции or и хог имеют самый низкий приоритет среди логических операций.

Как и В случае с арифметическими выражениями, порядок вычисления логиче-

ского выражения можно менять с помощью круглых скобок.

X or Y

not One

{al or Ы} and (al or cl)

Операции сравнения (возвращают лог рез-т и могут комбинироваться логическими операциями)надо брать в скобки при включении в логические выражения.

Правильно:

(A>0) or (A<10)

 

Битовые выражения

В Паскале имеется возможность выполнять операции над отдельными битами числа

(которое представлено в машинном коде программы в виде одного или нескольких

байтов). Если типы (длины) операндов битовых операций отличаются, то результат

имеет тип, соответствующий типу данных самой короткой длины (в байтах).

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

парным битам каждого операнда.

Таблица 1.5. Битовые операции в Паскале

Обозначение операции в Паскале Назначение

And Битовое И. Бит результата равен 1,если оба бита

операндов равны 1, в противном случае итоговый бит

равен О

Or Битовое ИЛИ. Бит результата равен 1, если хотя бы один

из битов каждого операнда равен 1, в противном случае

итоговый бит равен О

Хог Битовое исключающее ИЛИ. Бит результата равен 1, если

соответствующие биты операндов не равны друг другу, в

противном случае итоговый бит равен О

Not Битовое отрицание. Операция имеет один операнд,

указываемый справа. Бит результата равен 1, если бит

операнда равен 0, в противном случае итоговый бит

равен О

Shi Битовый сдвиг влево (младшие, правые биты заполняются

нулями). Левый операнд побитно сдвигается влево на

число битов, заданное правым операндом

Shr Битовый сдвиг вправо (старшие, левые биты заполняются

нулями). Левый операнд побитно сдвигается вправо на

число битов, заданное правым операндом

Операция not имеет наивысший приоритет, операции and, shl и shr — более низкий,

операции or и хог имеют приоритет, самый низкий среди битовых операций.

Примеры выполнения битовых операций:

Выражение 11110000 and 10111101 имеет значение 10110000

Выражение 11110000 or 10111101 имеет значение 11111101

Выражение 11110000 хог 10111101 имеет значение 01001101

Выражение not 11110000 имеет значение 00001111

Выражение 00001111 shl 2 имеет значение 00111100

Выражение 11101111 shr 3 имеет значение 00011101

Переменные и константы в Delphi, в том числе, константы сложных типов. Синтаксис объявления, использование, размещение в памяти.

Переменные

Во время работы программы данные в ней могут храниться в неизменном виде,

как константы (тогда они указываются в тексте программы явно), или же они запи-

сываются и обрабатываются как переменные. Переменные можно рассматривать

как ячейки памяти компьютера, имеющие свои имена (идентификаторы). Содер-

жимое переменных может многократно меняться. Каждая переменная имеет тип,

определяющий, какого рода данные в ней хранятся. Паскаль не допускает исполь-

зования переменных с неопределенным типом и не разрешает записывать в пере-

менную одного типа данные другого типа.

Для того чтобы переменную можно было использовать в программе, ее предвари-

тельно надо объявить (декларировать, описать).

Команда описания переменных в Паскале записывается так:

var имя-переменной: тип-переменной;

Слово var — ключевое. В качестве имени переменной выступает любой допустимый

идентификатор, если он не был описан ранее и не является зарезервированным

словом, а в качестве типа — одно из названий допустимых типов.

var X007: integer;

var Pi: real;

Если несколько описаний переменных следуют друг за другом, то ключевое слово

var можно повторно не указывать.

var X007: integer,-

Pi: real;

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

ются через запятую, и эти переменные будут иметь одинаковый тип:

var А, В, X, Count, Delta2: string;

Константы

В некоторых случая бывает удобно вместо явного указания конкретных значений

(чисел или строк) использовать константы — фиксированные значения, для

которых определено имя. Константы отличаются от переменных тем, что не могут

менять свои значения. Они предназначены только для удобства программиста.

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

нии некоторой функции, а пороговое значение точности используется в исходном

тексте программы в разных местах. Чтобы не пришлось для изменения этого зна-

чения выполнять трудоемкий поиск и замену конкретного числа во всем тексте

программы, правильнее описать порог один раз как константу и в дальнейшем обра-

щаться к нему только по имени. Тогда при необходимости внести изменение доста-

точно будет поменять всего одну строчку в программе.

Константы описываются способом, напоминающим описание переменных, только

вместо ключевого слова var применяется ключевое слово const, а тип можно указы-

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

const PI = 3.14,-

Е: Real = 2.87;

Сложные структуры данных

В Паскале допускается произвольное комбинирование структур данных и неогра-

ниченное создание новых типов на основе определенных ранее. В частности, раз-

решено описывать массивы структур:

type MyReс =

record

Кг integer;

S: String;

end;

MyArr = array [1..10] of MyRec;

var A: MyArr;

К переменной А теперь можно обращаться так:

А [ 5 ].Ы: = 1;

А[10].S:= '333';

или так:

with A[l] do

begin

N:= 0;

. S: = ";

end;

Сначала происходит выделение элемента массива, а затем — выделение элемента

записи.

Возможен и противоположный подход.

type MyArr = array [1..10] of integer;

MyRec =

Record

Определение собственных типов данных 5 1

А: МуАгг;

Ss string;

end;

var R: MyRec;

К переменной R разрешается обращаться так:

R. A [ 5 ]:= 1;

Уровней вложения структур в массивы и наоборот может быть сколько угодно.

Например, допускается следующая запись:

А 1 [ 2 ] - А 2. А З [ 5 ]. А 4. А 5. А б [ 1, 2, 8 8 ] - А 7



Поделиться:


Последнее изменение этой страницы: 2017-02-21; просмотров: 292; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.61.223 (0.021 с.)