Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Основные правила написания программ




1. В одной строке может быть несколько команд. Рекомендуется не более одной команды в строке. Перенос команды допускается в любом месте, в котором может находиться пробел. Перенос идентификатора и константы не допускается. Символы «:=«означают присвоение значения.

2. Комментарии заключаются в ограничители: фигурные скобки «{}» или пару символов «(* «и «*) «. Комментарии могут располагаться всюду, где допустимо использование пробела. Текст комментария в фигурных скобках не может начинаться с символа «$». Допускается одновремен­ная вложенность комментариев с различными ограничителями. Текст, расположенный в конце строки после символов «//», является тоже комментарием.

3. После каждой команды ставится символ «точка с запятой» со следую­щими исключениями: не ставится после слов Label, Type, Const, Var, Begin, While, Repeat, Do, Then и не указывается перед Until, Else.

4. Рекомендуется делать левосторонние отступы для выделения уровней вложенности команды.

5. Все используемые типы, переменные, константы, функции, про­це­ду­ры должны быть объявлены до их первого использования.

6. При ссылках на идентификаторы в различных модулях или объектах имена этих модулей или объектов предшествуют идентифика­тору и разделяются точкой (Unit3.FactProdaga или Form2.Label1.Caption).

Справочная служба

В затруднительных ситуациях пользователь может оперативно воспользоваться справочной службой, которая выведет информацию о нужном элементе программы.

Существует три способа обращения к справочной службе из окна редактора программ:

F1 ‑ получение контекстно‑зависимой справки по текущему элементу, на который указывает курсор;

Ctrl+J ‑ включение в программу заготовки команды или функции;

использование меню Help.

Во многих справках содержится пример использования иденти­фи­катора, который можно перенести в программу, выделить, cкопировать в буфер (^C) и восстановить из буфера (^V).

Типы данных

Константы

Константы ‑ это объекты, не меняющие свое значение. Могут использоваться следующие типы констант:

целые числа ‑ записываются со знаком или без него по общим пра­вилам (например, 21);

вещественные числа записываются со знаком или без него по обыч­ным правилам с использованием десятичной точки (например, 15.16);

шестнадцатеричное число ‑ состоит из шестнадцатеричных цифр, начиная со знака доллара ($).

Логическая константа это либо слово False (ложь), либо слово True (истина).

Символьная константа любой символ, заключенный в апост­рофы: ‘Z’ ‑ символ Z. Если необходимо записать апостроф, то он уд­ва­ивается: ‘’’’ ‑ символ апостроф.

Строковая константа ‑ любая последовательность символов (кро­ме символа CR ‑ возврат каретки), заключенная в апострофы. Апост­роф внутри строковой константы удваивается. Строку можно составить из ко­дов символов, которые указываются после знака «#».

Пример. #7’Ошибка!’#13’Нажмите любую клавишу’#7

Датная константа - задается в виде ‘дд.мм.гг чч:мм:сс’.

Пример перевода датной константы в дату функцией StrToDateTime Var d:TdateTime; Begin d:=StrToDateTime(’07.05.99 12:14’) End

Конструктор множества ‑список элементов множества, заклю­ченный в квадратные скобки ([1,2,3,4..7,17]).

Константные выражения (именованные константы, симво­ли­чес­кие имена) указываются в разделе констант Const в виде выражений, которые будут подставлены в текст программы перед ее компиляцией вместо констант (Const Procent=100*Fact/Plan).

... Zproc=Procent; //равнозначно Zproc=100*Fact/Plan;

Встроенные в Delphi именованные константы не требуют сво­его объявления в разделе Const. Использование именованных констант упро­щает коррек­ти­ров­ку исходного текста при изменении константного выражения и повышает наглядность исходного текста программы.

Именованные константы с кодами клавиш: F1 ‑ F10 (VK_F1 ‑ VK_F10), пробел (VK_SPACE), BackSpace (VK_BACK), Tab (VK_TAB), Enter (VK_RETURN), Shift (VK_SHIFT), Ctrl (VK_CONTROL), Capslock (VK_CAPITAL), Esc (VK_ESCAPE), Insert (VK_INSERT),PageUp (VK_PRIOR), PageUp (VK_NEXT), End (VK_END), Home (VK_HOME), ← (VK_LEFT), ↑ (VK_UP), → (VK_RIGHT), ↓ (VK_DOWN), Delete (VK_DELETE), PrintScreen (VK_SNAPSHOT), ScrollLock (VK_SCROLL), Pause (VK_PAUSE), NumLock (VK_NUMLOCK).

Переменные

Тип это множество принимаемых значений переменной. Типы дан­ных можно разделить на встроенные и определяемые пользователем в разделе типов Type в виде: <имя типа пользователя>=<описание типа>.

Переменные это объекты, изменяющие свои значения при выпол­не­нии программы. Все переменные должны быть объявлены в разделе Var в виде: <список переменных через запятую>: <тип>.

Переменные, объявленные вне процедур и функций, являются глобаль­ными (внешними) и ими можно пользоваться во всех процедурах и функциях программы. Глобальным переменным можно присваивать первоначальное значение при их объявлении (Var Nds: Real=0.23;).

Переменные, которые объявлены в процедурах и функциях, являют­ся локальными, и при окончании работы процедуры или функции они автоматически удаляются из памяти.

Переменные константы могут использоваться только в области видимости. Область видимости локальной переменной распространяется на все вложенные подпрограммы; объявленные в этих подпрограммах од­но­именные переменные заслоняют эту область. Если одноименная пере­менная объявлена во вложенной подпрограмме, то будет исполь­зоваться эта переменная в данной подпрограмме, а не переменная из внеш­ней программы. Если одноименная переменная не объявлена во вложенной подпрограмме, то будет использоваться одноименная глобальная или ло­кальная переменная из внешней программы. Идентификатор пользователя отменяет одноименную стандартную функцию или процедуру.

Типизированные константы представляют собой переменные в разделе программы Const, которые получают первоначальное значение при объявлении. Типизированную константу нельзя использовать в качестве значения при объявлении других констант или границ интервального типа.

Пример: Const Nds: Real=0.23; Regkoef: Integer=15.

Если включена директива компилятора { $J+ }, то значения типи­зи­ро­ван­ных констант можно изменять при выполнении программы, иначе ({$J‑}) - нет.

Простые типы данных

Целые типы

Название Длина в байтах Диапазон
Byte   0, 255
ShortInt   ‑128, 127
Word   0, 65535
SmallInt   ‑32768, 32767
Longword   0, 4294967295
Cardinal   0, 4294967295 (максимальная скорость)
Integer   ‑2147483648, 2147483647 (максимальная скорость)
LongInt   ‑2147483648, 2147483647
Int64   ‑(2 в степени 63), (2 в степени 63) -118 значное число

Вещественные типы

Название Длина в байтах Значащие цифры Диапазон десятичного порядка
Single   7‑8 ‑45,38
Real48   11‑12 ‑39,38 (минимальная скорость)
Real   15‑16 ‑342, 308 (максимальная скорость)
Double   15‑16 ‑342, 308 (максимальная точность)
Currency   19‑20 ‑/+922337203685477.5807 (деньги)
Comp   19‑20 Аналогичен Int64, лучше использовать Int64
Extended   19‑20 ‑4951, 4932

Логические типы

Название Длина в байтах Значения
Boolean   False, True (основной тип)
ByteBool   False, True
WordBool   False, True
LongBool   False, True

Отличия в этих типах поясним на примерах:

Boolean: False<True, Ord(True)=1. Другие типы: False<>True, Ord(True)<>0.

Символьные типы

Название Длина в байтах Значения
ANSIChar   Один 8‑битовый символ ANSI
WideChar   Один 16‑битовый символ Unicode
Char   Эквивалентен ANSIChar, но в будущем это может быть изменено (основной тип)

Unicode является современной международной унифицированной системой кодирования символов. Символ в системе кодирования Unicode за­нимает в памяти одно слово из двух байтов и имеет 65536 различных зна­чений, которые закреплены специальной международной комиссией по Uncode за кодами символов всех языков мира, что решает проблему од­нов­ременного использования в программах, в документах и в файлах раз­лич­ных национальных языков мира.

1.1.3.5. Тип дата ‑ время (TDateTime)

Тип подобен типу Currency; в целой части хранится дата, в дробной части - время. Разность дат дает число дней между датами, при сложении или вычитании числа из даты получается новая дата.

Пример:

Var A: String; T: TdateTime; //объявление переменной T типа дата ‑ время

A:=DateTimeToStr(Date+10); T:=Time+StrToDateTime(‘2:45’)

Перечисляемые типы

Перечисляемый тип задается перечислением тех значений, которые он может получить.

Type <имя типа>=(<значение1>,[<значение2>]...)

Каждому значению соответствует порядковый номер этого значения в списке значений (отчет начинается с нуля).

Пример. Перечисляемый тип с сокращенными названиями месяцев.

Type TypeMonth=(jan,feb,mar,apr,may,jun,jul,aug,sep, oct, nov, dec);

Var Month: TypeMonth;....

If Month=aug Then Label1.Capion:= ‘Хорошо бы поехать к морю!’

Переменную перечисляемого типа можно определить сразу в разделе пе­ремен­ных, без предварительного описания перечисляемого типа (Var TypeMonth: (jan,feb,mar,apr,may,jun,jul,aug, sep, oct, nov, dec).

Интервальные типы

Type <имя типа>=< мин. значение> .. <макс. значение>;

Пример. type dni=1..31; var rd, vd: dni;

Переменную интервального типа можно определить сразу в разделе переменных без предварительного описания интервального типа:

var dni: 1 .. 31; god: 1900 .. 2000

Порядковые типы

Порядковыми типами называют целые, логические, символьные, перечисляемые, интервальные типы.

Для порядковых типов имеются функции:

Ord(i) ‑ порядковый номер аргумента (запрещен аргумент типа Int64).

Pred(i)/Succ(i) ‑ предшествующее/следующее значение для аргумента.

High(i)/Low(i) ‑ максимальное/ минимальное значение аргумента.

Inc(i)/Dec(i ‑ увеличение/уменьшение i на единицу (инкремент/декремент).

Пример. Две группы по три эквивалентных оператора:

Inc(i); i:=Succ(i); i:=i+1; Dec(i); i:=Pred(i); i:=i‑1;

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...