Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Полное вычисление логических выражений

End.

Begin

Var

Type

Тип pChar

End.

Begin

Var

Type

End.

Begin

Var

Type

pInteger = ^integer;

ppInteger = ^pInteger;

pppInteger = ^ppInteger;

p_i: ^integer; // Аналогично p_i: pInteger;

p_b: ^boolean;

p_c: ^char;

p: pointer;

c: char;

b: boolean;

i: integer;

Writeln('sizeof(p)=', sizeof(p));

Writeln('sizeof(b)=', sizeof(b));

Writeln('sizeof(i)=', sizeof(i));

Writeln('sizeof(c)=', sizeof(c));

Readln;

b:=false;

Writeln(b);

p_b:= @b; // p_i:= @b;

p:= p_b;

p_i:= p;

p_i^:= 7;

Writeln(b);

 

c:='A';

Writeln(c); { 'A' }

p_c:= @c;

p:= p_c;

p_i:= p;

p_i^:= p_i^ + 7;

Writeln(c); { 'H' }

 

Readln;

 

program P0802;

DateTime = record // Delphi: TDateTime

Year, Month, Day, Hour, Min, Sec: word;

end;

MyRec = record

N: longint;

FIO: string [40];

BirthDate: DateTime;

end;

pMyRec: ^MyRec;

z: MyRec;

pMyRec:=nil;

pMyRec:= @z;

 

pMyRec^.N:= 1;

 

z.N:= 1;

 

pMyRec^.BirthDate.Year:= 1999;

Замечание. ­ Подробный разговор об указателях будет продолжен позже.


 

Фактически:

pChar = ^Char;

 

Тип pChar предназначен для работы со строковыми данными в формате “Zero Terminated Strings” («Строки с нулевой концовкой»). Указатель типа pChar содержит адрес «первого» байта (символа) строки. Правда, нумерацию символов принято начинать не с единицы, а с нуля. Признаком конца строки служит символ с кодом 0 (#0). Последним символом строки будет тот, сразу после которого расположен символ #0.

Строки “Zero Terminated Strings” имеют и другое название:

ASCIIZ–строки.


Пример

 

mC: array[0..11] of char;

 

mC[0]:= ‘N’; mC[1]:= ‘o’; mC[2]:= ‘v’; mC[3]:= ‘e’; mC[4]:= ‘m’;

mC[5]:= ‘b’; mC[6]:= ‘e’; mC[7]:= ‘r’;

mC[8]:= #0; // mC[8]:= Chr(0);

 

StrPCopy(mC, ‘November’);

 

 


Процедура StrDispose

procedure StrDispose(SP: PChar);

Удаляет из динамической памяти строку. Строка размещается в динамической памяти функцией StrNew.

SP – удаляемая строка.

Если SP = nil, процедура ничего не выполняет.

 

Функция StrCat

function StrCat(Dest, Source: PChar): PChar;

Присоединяет к концу строки Dest строку Source. Результат – объединенная строка. Размер полученной строки не контролируется. Dest – первая строка; Source – вторая строка.

 

Функция StrComp

function StrComp(SPl, SP2: PChar): Integer;

Сравнивает две строки (символы сравниваются слева направо своими кодами). Результат меньше нуля, если первая строка меньше второй, равен нулю, если строки равны, и больше нуля, если первая строка больше второй.

 

Функция StrCopy

function StrCopy(Dest, Source: PChar): PChar;

Копирует строку Source в строку Dest. Возвращает в качестве результата новую строку Dest.

Source – копируемая строка;

Dest – строка для копирования.

Размер полученной строки не контролируется.

 

Функция, StrECopy

function StrECopy(Dest, Source: PChar): PChar; Копирует строку Source в строку Dest. Возвращает в качестве результата указатель на последний (нулевой) элемент строки.

Source – копируемая строка;

Dest – строка для копирования.

Размер полученной строки не контролируется.

 


Функция StrEnd

function StrEnd(SP: PChar): PChar;

Получает указатель на конец строки SP (на завершающий нулевой элемент).

SP – исходная строка.

 

Функция StrlComp

function StrLComp(SPl, SP2: PChar): PChar;

Сравнивает строки SPl и SP2 без различия между прописными и строчными латинскими буквами. Результат такой же, что и у функции StrComp.

SPl, SP2 – сравниваемые строки.

 


Функция StrLCat

function StrLCat(Dest,Source: PChar; MaxLen: Word): PChar;

Добавляет в конец строки Dest MaxLen символов строки Source. Если размер

строки Source меньше MaxLen, копируется фактическое количество символов. В

качестве результата возвращает объединенную строку.

Dest – первая строка;

Source – копируемая строка;

MaxLen – число копируемых символов.

Размер полученной строки не контролируется.

 

Функция StrLComp

function StrLComp(SPl, SP2: PChar; MaxLen: Word): PChar;

Сравнивает MaxLen первых символов строк SPl и SP2. Если размер строк меньше MaxLen, сравнивается фактическое количество символов. Результат такой же, что и у функции StrComp.

SPl, SP2 – сравниваемые строки;

MaxLen – число сравниваемых символов.

 

Функция StrLCopy

function StrLCopy(Dest, Source; PChar; MaxLen: Word): PChar;

Копирует MaxLen символов строки Source в строку Desi. Если размер строки Source меньше MaxLen, копируется фактическое число символов. Результат – скопированная строка.

Dest – строка для копирования;

Source – колируемая строка;

MaxLen – число копируемых символов.

Размер полученной строки не контролируется.

 

Функция StrLen

function StrLen(SP: PChar): Word;

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

SP – исследуемая строка.

 


Функция StrLIComp

function StrLIComp(SPl, SP2: PChar; MaxLen: Word): PChar;

Сравнивает MaxLen первых символов строк SPl и SP2 без различия между прописными и строчными латинскими буквами. Если размер строк меньше MaxLen, сравнивается фактическое число символов. Результат такой же, что и у функции StrComp.

SPl,SP2 – сравниваемые строки;

MaxLen – число сравниваемых символов.

 

Функция StrLower

function StrLower(SP: PChar): PChar;

Преобразует в строке SP прописные латинские буквы в строчные. Результат –преобразованная строка.

SP – преобразуемая строка.

 


Функция StrMove

function StrMove(Dest, Source: PChar; Count: Word): PChar;

Копирует Count символов строки Source в строку Dest, даже если это число больше размера строки Source. Результат – скопированная строка.

Dest – первая строка;

Source – вторая строка. Размер полученной строки не контролируется.

 

Функция StrNew

function StrNew(SP: PChar): PChar;

Создает в динамической области копию строки SP. Результат – указатель на новую строку. Удаляется строка процедурой StrDispose.

SP – копируемая строка.

 

Функция StrPas

function StrPas(SP: PChar): string;

Преобразует ASCIIZ–строку в строку типа string. Результат – преобразованная строка.

SP – исходная строка.

 

Функция StrPCopy

function StrPCopy(Dest: PChar; Source: string): PChar; Преобразует строку Source типа string в ASCHZ–строку Dest. Результат – указатель на преобразованную строку.

Source – преобразуемая строка;

Dest – преобразованная строка.

Размер полученной строки не контролируется.

 

Функция StrPos

function StrPos(SPl, SP2: PChar): PChar;

Ищет первое вхождение строки SP2 в строку SPl. Результат – указатель на первое вхождение строки SP2 в строку SPl – либо nil, если такого вхождения нет.

SPl – строка, в которой ищется вхождение строки SP2;

SP2 – искомая строка.

 


Функция StrRScan

function StrRScan(SP: PChar; Chr: Char): PChar;

Ищет последнее вхождение символа Chr в строку SP. Результат – указатель на найденный символ либо nil, если такого символа нет.

SP – строка, где ищется символ;

Chr – искомый символ.

 

Функция StrScan

function StrScan(SP: PChar; Chr: Char): PChar;

Ищет первое вхождение символа Chr в строку SP Результат – указатель на найденный символ либо nil, если такого символа нет.

SP – строка, где ищется символ;

Chr – искомый символ.

 


Функция StrUpper

function StrUpper(SP: PChar): PChar;

Преобразует в строке SP строчные латинские буквы в прописные. Результат – преобразованная строка.

SP – преобразуемая строка.


Ключи компиляции (директивы компилятора)

 

Ключ компиляции задает режим компиляции программы. Этот режим управляет синтаксическими требованиями к исходному тексту программы, а также поведением откомпилированного кода программы.

 

Ключ является глобальным, если в модуле он может присутствовать только в одном месте – в начале модуля. Режим, задаваемый глобальным ключом, действует на весь модуль.

Ключ является локальным, если в модуле он может присутствовать во многих местах. Режим, задаваемый локальным ключом, действует на тот участок кода, который предшествует прямо противоположному ключу.

 

 


Выравнивание полей записей и классов

{$A + }, {$A-}, {$A1}, {$A2}, {$A4}, or {$A8}

или

{$ALIGN ON}, {$ALIGN OFF}, {$ALIGN 1}, {$ALIGN 2}, {$ALIGN 4},

or {$ALIGN 8}

По умолчанию:

{$A8}

или

{$ALIGN 8}

Зона действия: Локальный

 


{$B + } or {$B-}

или

{$BOOLEVAL ON} or {$BOOLEVAL OFF}

По умолчанию:

{$B-}

или

{$BOOLEVAL OFF}

Зона действия: Локальный

 


Пример

 

x:= 3;

{$B-}

<== предыдущая лекция | следующая лекция ==>
Стандартные процедуры для работы с текстовыми файлами | Процедуры и функции для работы со строками string
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 355; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.035 сек.