Делфи език. Променливи, константи и техните типове. Урок за Delphi Типове данни Турбо Delphi Целочислени и реални типове данни

Сега нека обсъдим типовете данни на Delphi, които програмистът използва, когато пише програма. Всяка програма на Delphi може да съдържа много видове данни:

  • цели и дробни числа,
  • символи,
  • символни низове,
  • логически стойности.

Езиковата библиотека на Delphi включва 7 целочислени типа данни: Shortint, Smallint, Longint, Int64, Byte, Word, Longword, чиито характеристики са дадени в таблицата по-долу.

В допълнение, поддръжката на езика Delphi включва 6 различни реални типа (Real68, Single, Double, Extended, Comp, Currency), които се различават един от друг, преди всичко, в диапазона от приемливи стойности, по броя на значимите цифри, в броя на байтовете, които са необходими за съхраняване на някои данни в паметта на компютъра (характеристиките на реалните типове са дадени по-долу). Езиковата библиотека на Delphi включва и най-универсалния реален тип - тип Real, който е еквивалентен на Double.

Тип символ на Delphi

В допълнение към числовите типове, Delphi има два типа знаци:

Тип Ансичар- символи с ANSI кодиране, им се присвояват номера от 0 до 255;

Тип Widechar- символи с Unicode кодиране, им се присвояват номера от 0 до 65535.

Тип низ Delphi

Тип низ в Delphi се обозначава с идентификатора на низ. Delphi предоставя три типа низове:

Тип къса струна- присъщ на низове, статично разположени в паметта на компютъра, чиято дължина варира в диапазона от 0 до 255 знака;

Тип дълга струна- този тип се притежава от низове, динамично разпределени в паметта на компютъра с дължина, ограничена само от количеството свободна памет;

Тип WideStringе тип данни, използван за съхраняване на необходимата последователност от международни знаци, като цели изречения. Всеки знак в WideString е символ на Unicode. За разлика от Shortstring, WideString е указател, който се отнася до променливи.

Данните в компютъра могат да се разглеждат като клетки на паметта, които имат свои собствени имена (идентификатори). Всички данни в програмата са включени Делфи езиктрябва да бъдат описани преди първата им употреба. И компилаторът гарантира, че те се използват в програмата в съответствие с това описание, което избягва грешки.

Всяка стойност в Delphiможе да бъде постоянен или променлив. Името му (идентификатор) може да се състои от комбинация от латински букви, цифри и долна черта и да започва не с число. В този случай случаят на знаците няма значение.

Мястото на описанието на данните в програмата е навънлогически блокове начало/край... В модула преди ключовата дума изпълнениеима блок за описание:

вар
Форма1: TForm1;

Именно тук, като се започне от следващия ред, е удобно да се декларира глобаленпроменливи и константи. Както можете да видите, един (Form1) вече съществува!

Команда за обявяване променливи v Делфи език:

вариме на променлива : тип_променлива ;

дума вар- ключ. Името може да бъде произволен идентификатор, ако не е описано по-рано и не е една от ключовите или запазени думи Делфи език... Ако трябва да опишете няколко променливи от един и същи тип, те са изброени, разделени със запетая:

варА, Б, В : цяло число;

Ако няколко описания следват едно друго, тогава ключовата дума варвъзможно е да не се посочва отново:

варА, Б : цяло число;
C, D : низ;

Постояннаколичеството се нарича по друг начин постоянен... Разбира се, програмата може да използва директно числа и низове: 3.1415 или "Това е значението на пи", но понякога е по-удобно да ги присвоите към идентификатор. Описанието на константите е подобно на описанието на променливите, но се използва ключовата дума const, името на идентификатора е последвано от типа, след това знака за равенство и неговата стойност. Освен това е позволено да не се посочва типът на константата:

constпи = 3.1415 ;
ZnakPi : Низ ="Това е значението на пи";

Между другото, константата Пивграден в Delphi, тоест, за да се използва номерът в Delphi 3,1415... в изчисленията просто трябва да зададете вградената константа Питип променлива Истинскиили просто използвайте директно в изрази.

Сега е време да научите за типовете данни, използвани в Delphi... На първо място, това са низове и числа.

Чрез низе поредица от знаци, затворени в единични кавички:
"това е текстов низ"Ако текстът трябва да съдържа самия знак за цитат, той трябва да се повтори два пъти:
"това" "е символ с единична кавичка"Низът може да бъде празен и да не съдържа знаци. След това се състои от две кавички, следващи една друга без интервал. Естествено, низът може да се състои само от интервали.
Най-популярният тип низ е низ... Въведете низ низможе да съдържа променлив брой знаци до 2 GB. Ако трябва да ограничите размера на низа до фиксирана стойност, след ключовата дума низв квадратни скоби има число, което определя броя на знаците в реда: низ... Работата с низове на Delphi е описана по-подробно по-долу.
Един знак е от тип Charи се записва като знак в единични кавички: "а"... Има знаци, които не могат да се покажат на екрана, например знак за край на реда (равен на # 13), символ за подаване на ред (равен на # 10). Такива знаци се записват като техен цифров код (кодиран ANSI), предшестван от знака # ... Например, #0 .
И накрая, има така наречените низове с нулев край. Преброяването на знаците в такива редове започва от нула и завършва със знак с код 0 (#0 ). Такива струни са от тип PChar.

Числаима цялаи дробна.
Следващата таблица изброява стандартните типове цели числа и съответните им диапазони от валидни стойности.

Дробните числа имат дробна част, разделена с десетична запетая. Използването на символа е разрешено д(или Е), последвано от число, което показва, че лявата страна трябва да се умножи по 10 на подходящата степен: 5e25- пет пъти десет на двадесет и пета степен.
По-долу са стандартните дробни типове и съответните им диапазони. Повечето типове имат диапазон от положителни стойности, но подобен диапазон от отрицателни стойности и число 0 .

Следващият тип данни е булев булевсъстояща се само от две стойности: Вярно(Истината) и Невярно(Лъжа). При което Вярно> Невярно.

Сега, като използвате компоненти, техните свойства и събития, като въвеждате свои собствени променливи, можете да проектирате програми, съдържащи изчисления. Остава да разберем как да се покаже изчислената стойност.
Тук не говоря за конзолни програми! И в нормалните Windows приложения с прозорец тази стойност трябва да бъде поставена в някакъв компонент, който има свойствата Текстили Надпис... Това са например компоненти като Етикети редактиране, а самият формуляр има свойството Надпис, където можете също да покажете информация. В Delphi обаче информацията обикновено трябва да бъде трансформирана, преди да бъде изведена. Тъй като присвояването е възможно само между променливи от един и същи тип, тогава такава програма (не се опитвайте да я изпълните):

вар A, B, C: цяло число;
започнете
A: = 5;
B: = 10;
C: = A + B;
Етикет1.Надпис: = C;
край;

Ще хвърли грешка, тъй като свойството Надписима текст Тип низи използваните променливи са цифрови Целочислен тип... Следователно трябва да преобразувате стойността на променливата ° Скъм тип текст. За това има вградена функция IntToStr... Редът в нашата "програма", който е причинил грешката, трябва да изглежда така:

Label1.Caption: = IntToStr (C);

Такава програма, освен че показва номера 15 , не е способен на нищо. Трябва да се научим как да въвеждаме други числа в програмата. Ние използваме компоненти редактиране... Въведените номера ще се съдържат в имота Тексттези компоненти. Поставете два компонента върху формата редактиране, един компонент Етикети бутона Бутон, като щракнете върху който ще извършим изчисления. В компоненти Редактиране1и Редактиране 2ще въведем числа за сумиране. За да преминете към редактора на кодове, щракнете двукратно върху нашия бутон Button1. Ще влезем директно в шаблона за манипулатора за натискане на бутони, формиран за нас от средата на Delphi, директно между операторите започнетеи край... Нека напишем прост код като този:

процедура TForm1.Button1Click (Подател: TObject);
вар A, B, C: цяло число; // Не забравяйте декларациите на променливи
започнете
// Начало на кода:
A: = Редактиране1.Текст;
B: = Редактиране2.Текст;
C: = A + B;
Label1.Caption: = IntToStr (C);
// Край на кода
край;

Когато се опитвате да изпълните този код, Delphi ще покаже грешки поради подобна причина - променливи Аи Бимат цифрови Целочислен типи имота Текст- текст Тип низ... Вградената функция ще ви помогне да коригирате грешки StrToIntкойто извършва обратното преобразуване - текст в цяло число. Оператори за присвояване на променливи Аи Бтрябва да изглежда така:

A: = StrToInt (Edit1.Text);
B: = StrToInt (Edit2.Text);

В този случай променливите А, Б, Вбяха използвани за яснота. Можете да се справите с един ред:

Label1.Caption: = IntToStr (StrToInt (Edit1.Text) + StrToInt (Edit2.Text));

По същия начин има функции за преобразуване към и от низ реални плаващи числа ( Поплавък ing English) запетая от тип Истински... За да конвертирате в низ - FloatToStr, обратно - StrToFloat.
Често резултатите от изчисленията са от типа Delphi Истински, имат дълга "опашка" от цифри след десетичната запетая. Когато се показва такава променлива в текстова форма, е необходимо да се ограничи броят на цифрите след десетичната запетая. Как може да се направи това също е описано в Tutorial Delphi

Текстът на програмата Delphi се формира с помощта на букви, цифри и специални знаци. Буквите са главни и малки букви на латинската азбука и символът за долно черта: a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z _ _ Стандартните цифри са представени от 6 арабски символи 0 3 * 4 * 8 . :; "() () @ # $ & ^ се използват главно като знаци аритметични операции, разделители, разделители и др. Съставните символи се образуват от специални знаци: =. ... (..) (* *) //: = Те служат по-специално за посочване на операции като "не е равно", "по-голямо от или равно на", указване на диапазони от стойности, коментиране на програма и т.н. Азбука

Едно и също число може да бъде записано по много различни начини, например: 15 (цяло число) 15. 0 (реално с фиксирана точка) 1,5 E 01 (реално с плаваща запетая) $ F (шестнадесетично) Delphi има способността да използва всички начини записи, но най-често те използват цели и реални числа. Целите числа се състоят само от цифри и знак + или -. Ако знакът е пропуснат и числото не е 0, то се счита за положително, например: 0 (0 се интерпретира като цяло число) 17 (положително цяло число) -39 (отрицателно цяло число) Типове числови данни

Реалните числа съдържат цели и дробни части, разделени с точка: 0. 0 (0 се интерпретира като реално число) 133. 5 (положително реално число) -0. 7 (отрицателно реално число) Реалните числа могат да бъдат представени в две форми: фиксирана и плаваща запетая. Формата с фиксирана точка е същата като обикновената нотация за числа: 27800 (точката в края на числото е пропусната) 3. 14 Формата с плаваща запетая (експоненциална форма) се използва при работа с много големи или много малки числа. В тази форма числото пред E се умножава по 10 на степен след E: 7,13 E + 14 (7,13 x 1014) 1,7 E-5 (1,7 x 10 -5) 3,14 E 00 (3,14 x 100 = 3,14) Числото пред E се нарича мантиса, а числото след E се нарича ред. Числови типове данни

С помощта на коментари можете да обясните логиката на вашата програма. Коментарът се пропуска от компилатора и може да бъде намерен навсякъде в програмата. Коментарите са: (Всеки текст в къдрави скоби) (* Всеки текст в скоби със звездички *) // Всеки текст от двойна наклонена черта до края на ред Ако знаците (или (* са непосредствено последвани от знак за долар $, тогава текстът в скоби не е коментар, а директива на компилатора. Примери за такива директиви: ($ ОПТИМИЗАЦИЯ ВКЛЮЧЕНО) ($ ПРЕДУПРЕЖДЕНИЯ ВКЛЮЧЕНО) ($ RANGECHECKS OFF) Коментари

Програмата винаги обработва някои данни по време на своето изпълнение. Данните могат да бъдат цели и дробни числа, символи, низове, масиви, набори и т.н. Така че компютърът е просто машина, за която данните са поредица от нули и единици, той трябва абсолютно да „знае“ как да ги интерпретира. Поради тази причина всички данни в езика Delphi се подразделят на типове. Типът данни показва какви стойности приемат данните и какви операции могат да се извършват върху тях. Всеки тип данни съответства на определено количество памет, която е необходима за поместване на данните. Например, Delphi има тип данни Byte. Данните от този тип приемат стойности в целочисления диапазон от 0 до 255, могат да участват в операции на събиране, изваждане, умножение, деление и да заемат 1 байт памет. Типове данни

Всички типове данни в езика Delphi могат да бъдат класифицирани по следния начин: прости типове данни. Те от своя страна се подразделят на редовни и реални типове данни. Поредните типове включват цяло число, символ, булев, изброен и други типове; временен тип данни. Служи за представяне на стойности за дата и час; низови типове данни. Използва се за представяне на поредици от знаци, като текст; съставни типове данни. Създаден на базата на всички останали видове. Те включват масиви, набори, записи, файлове, класове и препратки към класове; процедурни типове данни. Позволява манипулиране на процедури и функции като програмни данни; типове данни за указател. Тези видове данни съхраняват адреси на други данни (списъци, дървета и т.н.); тип данни с непостоянен тип стойност. Служи за представяне на стойности, чийто вид не е известен предварително; с негова помощ е лесно да се организира работа със списък от различни видове стойности; Класификация на типа данни

Помислете за формата на описание на променливи, константи и типове. Описание на видовете: тип =; Описание на константите: Const: =; Описание на променливите: Var:; Формуляр за описание на данни

Пример за писане на константи: const Delphi. Език = "Object Pascal"; Kylix. Език = Delphi. Език; Ярд = 914,4; Стъпка = 304,8; Секунди. В Минута = 60; Секунди. В Час = Секунди. В Минута * 60; // Задаване на константата секунди. В Ден = секунди. В Час * 24; // като израз Когато декларирате константа, можете да посочите нейния тип: Const Percent: Double = 0. 15; Файл. Име: string = "HELP. TXT"; Такива константи се наричат ​​типизирани; основната им цел е да декларират постоянни стойности на съставни типове данни. Описание на константите

В допълнение към стандартните типове данни, езикът Delphi поддържа типове, дефинирани от програмиста. Нов тип данни се дефинира с помощта на запазената дума за типа, последвана от идентификатор на типа, знак за равенство и описание. Например, можете да дефинирате нов тип: тип TUnicode = Wide. Char; TFloat = двойно; TDirection = (Север, Юг, Изток, Запад); Лесно е да се види, че идентификаторите на новите типове в примера започват с главна буква T (първата буква на типа на думата). Този тип конвенция за програмисти се приема от разработчиците. Delphi средино не е строго. Въпреки това препоръчваме да се придържате към него, тъй като прави изходния код на програмата по-лесен за четене. Описание на видовете

Диапазон от тип цели числа Shortint Smallint цяло число Longint Cardinal Int 64 байта дума Дълга дума -128. ... 127 със знак 8-битов -32768. ... 32767 подписан 16-битов -2147483648. ... 2147483647 знак. 32-битов 0.. 4294967295 неподписан 64-битов -263. ... 263 -1 със знак 64 -бит 0.. 255 неподписан 8-битов 0.. 65535 неподписан 16-битов 0.. 4294967295 неподписан 32-битов формат Прости типове данни

диапазон на стойностите на типа Real 48 Single Double Extended 5.0 x 10 -324. ... 1,7 x 10308 15 -16 2,9 x 10 -39. ... 1,7 x 1038 11 -12 1,5 x 10 -45. ... 3,4 x 1038 7 -8 5,0 x 10 -324. ... 1,7 x 10308 15 -16 3,6 x 10 -4951. ... 1,1 x 104932 19-20 цифри Comp - 9223372036854775808.. 9223372036854775807 19– 20 Валута - 922337203685477.5808.. 922337203685477.5807 19–20 Реални типове байтове 8 6 4 8 10 8 8

Типовете знаци се използват за описване на данни, чиято стойност е буква, число, препинателен знак и други символи. Има два основни типа символни данни: Ansi. Char и Wide. Char. Те отговарят на две различни системи за кодиране на знаци. Анси данни. Char заема един байт памет и кодира един от 256 възможни знака в разширения ANSI кодов набор, докато данните от тип Wide. Символът заема два байта памет и кодира един от 65536 знака от кодовата таблица на Unicode. Кодовата таблица на Unicode е стандарт за кодиране на двоен байт. Първите 256 знака от Unicode таблицата съвпадат с ANSI таблицата, така че Ansi. Char може да се разглежда като подмножество на Wide. Тип знак символ

Основни типове данни: Тип данни Размер на паметта (байтове) Ansi. Char 1 Wide. Char 2 Общ тип данни: Тип данни Размер на паметта (байтове) Char 1 (но може да бъде еквивалентен на широк) Булев тип данни Var good_file: boolean; Булеви типове данни Байт. Бул, Word. Bool и Long. Bool беше въведен в езика Delphi специално за съвместимост с други езици, по-специално с езиците C и C ++. Всички булеви типове данни са съвместими един с друг. Символен и булев тип данни

Пример. Описание на константа и променлива от символен тип. const ch_p = 'a'; // символни константи ch_l: char = 'f'; ch_k: широк. Char = '5'; var ch_l: char; // символна променлива В програмата стойностите на променливи и константи от символни типове са затворени в апострофи (да не се бъркат с кавички!), например: Symbol: = "A"; // На символа се присвоява буквата A Пример за символни типове данни

Низовете са динамичен масив от знаци. Низ - дължина не повече от 256 знака. Широка. Низ - дължина над 256 знака. Информацията се счита за низ, ако е затворена в единични кавички: „Mary It Bread“ е низ „Mary It Bread“ не е низ. Пример. Дефинирайте константа и променлива от типа низ. Const С_wether = 'Студено е ...'; Var s 1: C_wether; s 2: низ; Тип данни низ

Изброен тип. Изброен тип данни е списък от стойности, които променлива от този тип може да приеме. Всяка стойност е свързана с идентификатор, използван в програмата, за да посочи тази стойност. Пример. тип TColors = (червен, бял, син); TМесец = (юни, февруари, март, април, май, юни, юли, август, септември, октомври, ноември, декември); TDirection = (Север, Юг, Изток, Запад); var Месец: TMonth; Посока: TDirection; начало Посока: = Север; край. Изброен тип данни

Всъщност зад идентификаторите на изброените стойности има целочислени константи. По подразбиране първата константа е 0, втората е 1 и т. н. Възможно е изрично да се присвоят стойности на идентификатора на типа TSize. Единица = (Байт = 1, Килобайт = 1024 * Байт, Мегабайт = Килобайт * 1024, Гигабайт = Мегабайт * 1024); Максималната мощност на изброен тип е 65536 стойности, следователно, всъщност, изброен тип дефинира определено подмножество на думата от целочислен тип и може да се разглежда като компактна декларация на група от целочислени константи със стойности 0, 1, и т.н.

Интервални типове данни Интервалният тип данни се определя от две константи, които ограничават диапазона от стойности за променливи от този тип. И двете константи трябва да са от един от стандартните редови типове (не реални или низови). Пример: въведете TDigit = 0.. 9; цифра = "0". ... "9"; копай 2 = 48.. 57; var Цифра: TDigit; месец: 1.. 12; начална цифра: = 5; Цифра: = 10; // Грешка! Извън обхвата Край; Интервал или диапазон от тип.

Разликата между този начин за създаване на тип и обичайния (без тип на думата) ще се появи при изучаване на масиви, записи и класове. Нека скочим напред и да дадем пример: type TType 1 = масив от цяло число; TType 2 = тип TType 1; var A: TType 1; B: TTтип 2; начало B: = A; // Грешка! край. В примера променливите A и B са несъвместими една с друга поради типа на думата в описанието на типа TType 2. Ако променливите A и B принадлежат към прости типове данни, тогава операторът за присвояване ще работи. Специални типове данни

Масивът е съставен тип данни, който се състои от фиксиран брой елементи от един и същи тип. Фразата масив на се използва за описание на масив. След думата масив в квадратни скоби се изписват границите на масива, а след думата на - типът на елементите на масива: Тип TStates = масив от низ; TCoordinates = масив от цяло число; const Координати: TCoordinates = (10, 20, 5); (3 цели числа) var Състояния: TStates; (50 низа) Символи: масив от Char; (81 знака – без дефиниция на тип) За достъп до отделен елемент от масива трябва да посочите неговия индекс в квадратни скоби, например Символи: = ‘ё’; Моля, имайте предвид, че инициализацията на елементите на масива се извършва в скоби, разделени със запетаи. масиви

Декларираните по-горе масиви са едномерни, тъй като имат само един индекс. Едномерните масиви обикновено се използват за представяне на линейна последователност от елементи. Ако при описването на масив са посочени два индекса, масивът се нарича двумерен, ако n индекса са n-мерни. Двумерните масиви се използват за представяне на таблици, а n-мерните се използват за представяне на пространства. Ето пример за деклариране на таблица с 5 колони и 20 реда: var Table: масив от масив на Double; Същото може да се напише и в по-компактна форма: var Table: array of Double; За достъп до един елемент от многоизмерен масив, трябва да посочите стойността на всеки индекс, например Таблица или, в по-компактна нотация, Многоизмерни масиви Таблица

Пример. Описание на двуизмерен динамичен масив от байтови елементи в променливата сon. var сon: масив от байтове; Пример. Многомерни масиви. var Mbon: масив от байтове; // четириизмерен Тип Tmy_mas = масив от байтове; // тип - двуизмерен масив var Mbon 1: масив от Tmy_mas; // четириизмерен (двуизмерен масив от двуизмерни масиви) C: масив от Real; // триизмерен динамичен масив Mbon - елемент от масива Мbon Mbon 1 - елемент от масива Мbon 1 С - // първи елемент от динамичния масив Примери за динамични масиви

Наборът е съставен тип данни за представяне на колекция от някои елементи като цяло. Диапазонът от стойности на даден набор е набор от всички възможни подмножества, съставени от неговите елементи. Всички елементи на набор трябва да са от еднобайтов порядков тип - базов тип. За да се опише тип за множествено число, се използва фразата set of, след което се изписва основният тип на набора: тип TLetters = набор от "A". ... "Z"; var букви: TLetters; Символи: набор от Char; В изразите стойностите на елементите на набора са посочени в квадратни скоби:,, ["A", "B", "C"]. Ако множеството няма елементи, то се нарича празно:. Пример: const гласни: TLetters = ["A", "E", "I", "O", "U"]; Начални букви: = ["A", "B", "C"]; Символи: =; (празен набор) Край. Броят на елементите в набор се нарича мощност. Кардиналността на набор в езика Delphi не може да надвишава 256. Набори

Src = "https: //site/presentation/20070619_133096976/image-25.jpg" alt = "(! LANG: Когато работите с набори, можете да използвате релационни операции (=,,> =, Когато работите с набори, можете използвайте релационни операции ( =,> =,). Две множества се считат за равни, ако се състоят от едни и същи елементи. Редът на елементите в сравняваните множества няма значение. Две множества A и B се считат за неравни, ако се различават по кардиналност или в стойност, въпреки че израз Резултат True = True = True = True Членство операции (> =, = B е равно на True, ако всички елементи от набор B се съдържат в набор A. Израз A

Операция в. Използва се за проверка дали даден елемент принадлежи към определен набор. Обикновено се използва в условни изрази. 5 in = Вярно 5 in = False Операцията в действие ви позволява ефективно и визуално да извършвате сложни проверки на състоянието, понякога замествайки десетки други операции. Например, твърдението if (X = 1) или (X = 2) или (X = 3) или (X = 5) или (X = 7) след това може да бъде заменено с по-кратко: ако X в тогава The in операцията понякога се записва с отрицание: X не е в S. Такова вписване е погрешно, тъй като две операции следват една след друга. Правилната нотация е: не (X в S). Операцията по влизане в

Съюз на множества (+). Обединението на двете множества е третото множество, съдържащо елементите на двете множества. + = + = Задаване на пресичане (*). Пресечната точка на две множества е третото множество, което съдържа елементи, които са включени в двата набора едновременно. * = * = Разлика от набори (-). Разликата между два набора е третият набор, който съдържа елементи от първия набор, които не са включени във втория набор. - = - = Две стандартни процедури, Include и Exclude, са въведени в езика Delphi, които са предназначени да работят с набори. Процедурата Include (S, I) включва елемент I в набора S. Процедурата Exclude (S, I) изключва елемента I от набора S. Те дублират операцията - / + с единствената разлика, че работят с един елемент и го направи по-ефективно. Съюз, пресичане, разлика

Хареса ли ви статията? Сподели го
До горе