КАТЕГОРИИ: Архитектура-(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-}
Дата добавления: 2014-01-04; Просмотров: 381; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |