internetul Windows. Android

Variabile numerice și tipuri de date. Delphi Tipuri de date și lucrul cu tipul de date Delphi Delphi

Folosind tipuri de date, programatorul specifică compilatorul, cum să stocați informații în program. Când declarați variabila, trebuie să specificați tipul său. Unele tipuri sunt deja definite în limba, celălalt programator trebuie să fie întrebat. În limbile de programare anterioară, a fost permis un număr limitat de tipuri de date și Pascal. Sa dovedit a fi una dintre primele limbi care permit definiția în programul de noi tipuri.

Tipurile de date definite de utilizator sunt de obicei setate în definițiile sau modulul de calitate a programului (unitate), dar acest lucru se poate face în cadrul procedurilor sau funcțiilor. Anunțurile de tip sunt valabile în limitele acelui bloc în care sunt postate. În afara acestui bloc, este imposibil să se facă referire la astfel de tipuri. În interior, aceștia înlocuiesc toate tipurile externe cu același nume. Tipurile de date anunțate pot fi utilizate oriunde în domeniul vizibilității lor; Este interzisă doar referirea la tipul specificat (aici, totuși, există o excepție privind indicațiile).

Tipurile de anunțuri din Pascal sunt pentru un compilator ceva de genul schemelor pe care trebuie să le amintească în cazul în care se întâlnește brusc legătura cu unul sau altul în program. În sine, anunțul de tip nu contribuie la program.

În ceea ce privește anunțurile VAR, acestea au stabilit compilatorul unor acțiuni legate de tipurile anunțate anterior. Tipul de limite variabile atât valorile, cât și operațiile care pot fi efectuate cu aceste valori.

Definițiile tipurilor și variabilelor pot fi plasate în mai multe locuri ale componentelor programului. Ele arată după cum urmează.

tip
Typel \u003d Definiții de tip; // Noile tipuri de date sunt definite în secțiunea "Tip". Fiecare nou unul
// tip atribuit un nume, atunci este determinat prin deja
// Tipuri existente.
Type2 \u003d Type__Definition2; // într-o singură secțiune "Tip" puteți declara mai multe tipuri.
// definiția cea mai simplă a tipului constă în tipul de nume,
Type3 \u003d The Typel; // a definit mai devreme.
// noile variabile sunt anunțate în
VAR // secțiunea "var". Fiecare nou
Var1: definiții de tip; // variabila a atribuit mai întâi numele, și apoi - tip (bazat pe
// tipuri definite anterior).
Var2, var3: tipul de definiție4; // Într-o secțiune "var" puteți declara mai multe variabile.
// Câteva variabile pot fi atribuite același tip.
Var4: taiel; // Programul este mai ușor de citit dacă variabilele sunt atribuite
// Tipuri existente.

Obiectul Pascal Sintaxe vă permite să construiți simultan tipuri și definirea variabilelor excepțional de complexe. Cu toate acestea, definiția tipurilor în secțiunile de tip ale anumitor blocuri face posibilă utilizarea acestor tipuri în diferite părți ale programului. Tipurile noi sunt determinate din tipurile de următoarele categorii.

  • Tipuri simple pentru stocarea informațiilor sub formă de numere și alte valori "ordonate".
  • Tipuri de șir pentru stocarea secvențelor de caractere.
  • Tipuri structurale pentru depozitarea simultană a informațiilor de diferite tipuri.
  • Tipuri de puncte pentru accesul indirect la variabilele de tipuri specificate.
  • Tipuri de procedură de apel la procedurile și funcțiile considerate ca variabile.
  • Tipuri de variante pentru depozitare într-o singură dată variabilă de diferite tipuri.

De obicei, identificatorii de tip sunt utilizați numai atunci când definiți noi tipuri sau declarații de variabile. Există totuși mai multe funcții în care numele tipului pot fi utilizate ca parte a operatorului executat. De exemplu, funcția de dimensiune (t) returnează numărul de octeți ocupați de variabila T.

Dimensiunea funcției este foarte importantă pentru scriere programe eficiente. Mulți dintre cei definiți în tipul de obiecte Pascal au o structură foarte complexă și pot fi în memorie destul de mult spațiu. În acest caz, elementele acestor tipuri sunt create mai mult pentru prezentarea valorilor într-o anumită ordine logică și nu pentru a ocupa un loc în memorie. Caracteristica SizeOof elimină programatorul de necesitatea de a calcula cantitatea de date în astfel de cazuri.

Tipuri de date simple

Tipuri ordinale
Tipuri întregi
Tipuri simbolice
Tipuri booleene
Tipuri enumerate
Tipurile subadiapanului
Tipuri valide

Orice tip de date existent, indiferent cât de dificil pare la prima vedere, este componentele simple pe care procesorul le poate manipula. În Object Pascal, aceste tipuri de date simple sunt împărțite în două grupe: ordinul, reprezentând date din diferite volume pe care procesorul le poate manipula și valabil cu ușurință, reprezentând valori matematice aproximative. Separarea tipurilor la ordin și valabil este oarecum condiționată. În același mod, datele simple ar putea fi împărțite în numere și nu numere. Cu toate acestea, în obiectul limbajului Pascal, datele ordonate și valide sunt interpretate în mod diferit, iar această separare este chiar utilă.

Tipuri ordinale

Dintre tipurile simple ale acestor secvențe sunt cele mai simple. În aceste tipuri, informațiile sunt prezentate sub formă de elemente individuale. Relația dintre elementele individuale și reprezentarea lor de memorie determină relația naturală dintre aceste elemente. Prin urmare, ordinele de nume.

Obiectul Pascal definește trei grupe de tipuri de secvențe și două tipuri definite de utilizator. Grupurile sunt tipuri întregi, simbolice și booleene. Tipurile de secvențe definite de utilizator sunt listele și sub-benzi.

Toate valorile oricărui tip de secvență formează o secvență ordonată, iar valoarea unei variabile a unui tip de secvență este determinată de locul său în această secvență. Cu excepția tipurilor variabile alete, ale cărei valori pot fi atât pozitive, cât și negative, primul element al oricărui tip de secvență are un număr 0, al doilea element - numărul 1, etc. Numărul de secvență al întregii valori este egal cu cea mai mare valoare. Raportul de comandă determină comună pentru aceste tipuri de secvențe de intervenții chirurgicale. Unele funcții standard de acest tip sunt încorporate în Object Pascal. Acestea sunt prezentate în tabel. 1.1.

Pentru toate tipurile de secvențe din Object Pascal, există o operație de tip de tip pentru a transforma întreaga valoare la valorile tipurilor de secvențe corespunzătoare. Dacă t este numele tipului de secvență și x este o expresie întregă, atunci t (x) care rotește valoarea lui T cu numărul de secvență X.

Tabelul 1.1. Operațiuni privind tipurile ordinale

Operațiune

Descriere

Valoarea minimă a tipului ordinal t

Valoarea maximă a tipului secvențial

Numărul de secvență al valorii de expresie a tipului de secvență. Pentru o expresie întreagă, este pur și simplu sensul său. Pentru restul tipurilor ordinale de ordinale, reprezentarea fizică a rezultatului expresiei este interpretată ca un număr întreg. Valoarea de returnare aparține întotdeauna uneia dintre toate tipurile

Anterior în valoarea comenzii. Pentru întreaga expresie echivalentă cu X-1

Apoi, în valoare de comandă. Pentru expresiile întregi echivalente cu X + 1

Reduce valoarea variabilei la 1. Echivalent cu V: \u003d pred (v)

Crește valoarea variabilei cu 1. Echivalent cu V: \u003d succ (v)

Tipuri întregi

În tipurile de tipuri variabile, informațiile sunt reprezentate ca numere întregi, adică. Numerele care nu au o parte fracționată. Anumite tipuri definite în obiectul Pascal sunt împărțite în fizice (fundamentale) și logice (generale). La programare este mai convenabil să utilizați numere întregi logice care stabilesc cantitatea de variabile în funcție de tipul de microprocesor și de mediul de funcționare astfel încât să se realizeze eficiența maximă. Tipurile de integrare fizice trebuie aplicate numai în cazurile în care gama de valori și variabila de volum fizic sunt în primul rând importante. Obiectul Pascal definește următoarele tipuri.

Întreg
Redus.
Smallint.
Lentă.
Byte.
Cuvânt.
Cardinal.

Vă rugăm să rețineți că unul dintre aceste tipuri este numit Integer (Integer). Acesta poate duce uneori la confuzie, dar putem evita cu ușurință acest lucru, aplicând termenul întreg până în grup, un număr întreg - la un tip specific determinat în program cuvânt cheie.. Variabilele tipurilor întregi fizice au diferite valori, în funcție de numărul de octeți de memorie pe care îl ocupă (care este egal cu valoarea returnată de dimensiunea funcției pentru acest tip). Intervalele de valori pentru toate tipurile fizice sunt enumerate în tabel. 1.2.

Tabelul 1.2.Tipuri întregi fizice

Semnificație

Formatul fizic

8 biți, cu un semn

16 biți, cu un semn

2 147 483 648-2 147 483 647

32 de biți, cu un semn

8 biți, fără semn

16 biți, fără semn

Intervalele de valori și formate ale tipurilor întregi fizice nu depind de microprocesorul și de sistemul de operare în care se efectuează programul. Ei nu se schimbă (sau cel puțin nu trebuie să se schimbe) cu o schimbare în implementarea sau versiunea Obiect Pascal.

Intervalele de valori ale tipurilor logice (întreg și cardinal) sunt determinate într-un mod complet diferit. După cum se poate vedea din masă. 1.3, acestea nu sunt legate de intervalele de tipuri fizice relevante. Rețineți că Delphi implicit este setat la o vizualizare pe 32 de biți.

Tabelul 1.3.Tipuri logice întregi

Gama de valori

Formatul fizic

16 biți, cu un semn (smalint)

2 147 483 648-2 147 483 647

32 de biți, cu un semn (lenjerie)

16 biți, nici un semn (cuvânt)

32 de biți, fără semne (lentă)

Toate operațiunile definite pentru tipurile ordinale sunt efectuate pe toate datele, dar este încă mai convenabil să funcționeze cu numere ca și cu numerele și nu cu "tipuri de secvențe non-secvențiale". La fel ca numerele "vii", datele tipurilor întregi pot fi pliate (+), deduce (-) și multiplicați (*). Cu toate acestea, unele operațiuni și funcții aplicate datelor tipurilor întregi au un sens ușor diferit.

Tipuri simbolice

Semnificația datelor simbolice este evidentă când sunt afișate pe ecran sau pe imprimantă. Cu toate acestea, definiția unui tip de simbol poate depinde de ce să implice sub semnul cuvântului. De obicei, tipurile de date simbolice setați circuitul de interacțiune între diferite volume și altele metoda standard Codificarea / decodificarea pentru partajarea informațiilor simbolice. În limba clasică Pascal, nu este specificată nicio schemă, iar în implementările specifice sa folosit că fiecare poate folosi fiecare.

În implementările limbii Pascal pentru primele microprocesoare, o schemă pe 7 biți, numită ASCII (Standard American Cod pentru INFORMAȚII INFORMAȚII - Codul standard american pentru informații despre Exchange). Această schemă este încă răspândită, dar informațiile sunt stocate, de regulă, în secțiunile de memorie pe 8 biți. Un bit suplimentar dublează numărul de reprezentări posibile de caractere, dar implementarea setului extins simboluri ASCII. Adesea sunt departe de standard. Această versiune a Delphi definește un set de caractere pe 8 biți, cunoscut sub numele de ANSI avansat (Extended) (Institutul Național de Standarde Americane - Institutul Național American de Standarde). Fie că, așa cum poate, schema simbolică trebuie percepută ca sistemul de operare o percepe. Pentru fereastră sisteme de operare Microsoft este o schemă ANSI, care include un număr limitat de semne internaționale destinate. În dorința de a aplica un set mai amplu de semne internaționale. Întreaga lume a computerului se desfășoară într-o schemă de 16 biți numită Unicode, în care primele 256 de caractere coincid cu caracterele definite în schema ANSI.

Pentru compatibilitatea cu toate aceste vizualizări în Object Pascal, sunt definite două tipuri de simboluri fizice și o logică.

Tipurile fizice sunt enumerate mai jos.

Tipurile simbolice de cuvinte duble (32 de biți) lipsesc.

Tipul de simbol logic este numit char. În limbajul clasic Pascal Char, singurul tip de caracter. Delphi Char corespunde întotdeauna tipului fizic de date Ansichar. În programatorii americani, asocierea simbolică cu o singură celulă de memorie cu o singură acoperire a înrădăcinat de mulți ani atât de mult încât să poarte adesea pur și simplu că pot fi utilizate alte scheme de codificare. Cu toate acestea, discuțiile privind internaționalizarea programelor pe Internet și World Wide Web pot schimba semnificativ atitudinea lor față de problema datelor simbolice. aplica tip logic. Char, ar trebui să fie implementat pentru alte microprocesoare și sisteme de operare în care CHAR poate fi definit ca unic. Atunci când scrieți programe care pot gestiona liniile de orice dimensiune, pentru a specifica această dimensiune, se recomandă aplicarea funcției de dimensiune fără a le specifica constantă. Funcția ORD (C), unde C este orice variabilă de tip de caractere, returnează o valoare întregă la care simbolul S este prezentat în memorie.

Tipuri booleene

Într-o etapă timpurie de formare, programatorii stăpânesc conceptul de un pic, cele două state care pot fi folosite pentru a înregistra informații despre orice reprezentând unul dintre cele două. Un pic poate desemna 0 sau 1, da sau nu, pornit sau oprit, partea de sus sau de jos, stați sau mergeți. În Object Pascal, informații despre orice lucru care poate fi reprezentat ca adevăr (adevărat) sau fals (fals) este stocat în variabile booleene. Tipurile totale de Chere și sunt prezentate în tabel. 1.4.

Tabelul 1.4.Dimensiunile variabilelor de tipuri booleene

2 octeți (cuvânt de volum)

4 octeți (volum de lungă durată)

Prin analogie cu tipurile integrate și simbolice, împărțite în fizice și logice, este normal să presupunem că bytebool, WordBool și LongBool - tipuri fizice, booleene - logice. Dar, în acest caz, nu este așa. Toate cele patru tipuri sunt diferite. Pentru obiectul Pascal, tipul boolean este preferat, restul sunt definite pentru compatibilitatea cu alte limbi de programare și sisteme de operare.

O variabile de tip boolean poate fi atribuită numai valorilor adevărate (adevăr) și false. Variabilele Byteboool, WordBool și LongBool pot primi, de asemenea, alte valori de secvență, interconectate, de obicei, la fel de false în cazul zero și adevărat - cu orice valoare nonzero.

Tipuri enumerate

Tipul de tip enum \u003d (prima valoare, valoarea2, valoarea3, ultima valoare);

În mod tipic, aceste tipuri de liste conțin valori discrete, care nu sunt numere și nume. Tipul boolean este cel mai simplu tip listat în Object Pascal. Variabilele booleene pot lua două valori exprimate prin nume reale și false, iar tipul în sine este definit în Object Pascal ca și cum ar fi declarat după cum urmează:

Tip boolean \u003d (fals, adevărat);

Folosind tipul boolean în obiectul Pascal, comparațiile sunt efectuate, majoritatea tipurilor de tipuri sunt pur și simplu liste de nume sau identificatori unici rezervați cu un scop specific. De exemplu, puteți crea un tip de MyColor (culoarea mea) cu valorile Myred, Mygreen și MyBlue (roșu, verde, albastru meu). Acest lucru se face destul de simplu:

Type MyColor \u003d (Myred, Mygreen, Myblue);

Această linie a anunțat patru identificatori noi: MyColor, Myred, Mygreen și Myblue. Identificatorul MyColor este marcat de tipul de secvență, prin urmare, în sintaxa Pascal Object, acest identificator poate fi utilizat oriunde sunt permise tipurile enumerate. Restul celor trei identificatori sunt valori de tip MyColor. Cum ar fi simbolicul I. tipuri booleene Ascultarea nu sunt numere, iar utilizarea lor ca numerele nu are sens. Cu toate acestea, tipurile enumerate sunt ordinale, astfel încât valorile oricărui tip sunt comandate. Identificatorii din listă sunt atribuite numere de secvență numere secvențiale. Prenul este atribuit numărul de secvență 0, al doilea - 1 etc.

Tipurile subadiapanului

Variabilele tipului de sub-bandă conțin informații corespunzătoare unei anumite intervale de apelare a valorilor tipului sursă, reprezentând orice tip de secvență, cu excepția Subiadipanului. Sintaxa definiției tipului de sub-bandă are forma următoare:

Tipul de subandă Tip \u003d Valoare redusă ... Valoare mare;

Variabilele sub-bandă păstrează toate caracteristicile tipului sursei. Singura diferență este că variabila sub-bandă poate fi atribuită numai valorilor incluse în sub-banda specificată. Controlul asupra acestei condiții este dat de comanda de verificare a intervalului.

Necesitatea de a defini în mod explicit tipul de sub-bandă apare rar, dar toți programatorii folosesc implicit acest design la determinarea matricei. Este sub forma unui design sub-bandă că se stabilește schema de numerotare a elementelor matricei.

Tipuri valide

În tipurile valide variabile, conține numere constând din părți întregi și fracționare. Obiectul Pascal are șase tipuri valide. Toate tipurile pot reprezenta numărul 0, cu toate acestea, ele diferă în pragul (minim pozitiv) și valori maximecare pot fi reprezentate, precum și acuratețea (numărul de cifre semnificative) și volumul. Tipurile reale sunt descrise în tabel. 1.5.

Tabelul 1.5. Tipuri valide.

Tipurile întregi reprezintă numere întregi, adică. Numere a căror fracțiune este zero. Diferența dintre două întregi inegale nu poate fi mai mică de una. Se datorează acestui lucru că întregi sunt folosite pentru a desemna valori discrete, indiferent dacă obiectele reale au orice atitudine față de numere. Tipurile reale sunt concepute pentru a reprezenta numere care pot avea o parte fracțională, astfel încât acestea sunt utile pentru prezentarea valorilor care pot fi destul de aproape, aproape continuu.

Notă, aproape aproape. În ciuda numelui valabil, variabilele acestor tipuri diferă de numerele valide matematice. În Object Pascal, un tip valid este un subset de numere valide matematice care pot fi reprezentate într-un punct plutitor și un număr fix de numere. Pentru programatorii ininte, situația este exacerbată de faptul că în formatele standard IEEE (Institutul de Engineers Electric și Electronic - Institutul de Ingineri Electrici și Coperți electrici) utilizat în programele Delphi și, în general, în majoritatea programelor Windows, este posibil pentru a reprezenta cu exactitate numai numerele cu un număr fix. Bit în partea fracțională. În mod surprinzător, un număr atât de simplu, cum ar fi 0,1, este scris într-un format IEEE extins, cu o anumită eroare, chiar dacă este foarte mică. Din acest motiv, o reprezentare a punctelor plutitoare este oarecum incomodă pentru programele în care se păstrează un număr fix de decalaje zecimale de valori numerice. Acest lucru se aplică programelor care lucrează cu bani "vii".

Pentru a rezolva parțial această problemă în Object Pascal, sunt definite două formate cu virgulă fixă. Tipul COMP (computațional - computing) conține numai întregi în intervalul de la -2 63 + 1 la 2 63 -1, care corespunde aproximativ la intervalul de la -9,2x10 18 până la 9,2x10 18. Atunci când operațiunile de programare cu moneda americană, dezvoltatorii trebuie, de obicei, să caute un mod natural de scriere a sumelor de bani, în care o întreagă parte a numărului determină numărul de dolari, cenți fracționari. Dacă se înregistrează astfel de valori tipul variabil Comp va trebui să le reprezinte ca un număr întreg de cenți. În acest caz, ar trebui să multiplicați valoarea la 100 pentru a circula cenți la dolari și apoi împărțiți la 100 pentru a obține din nou cenți.

Aceste preocupări pot fi evitate dacă utilizați tipul de monedă. În acest caz, sarcina de selectare a scalei va lua compilatorul. Din punct de vedere fizic, valorile valutare sunt înregistrate în memoria aceluiași volum ca Comp, însă întregi, compilatorul nu uită să împartă valoarea cu 10.000 (nu 100!) Pentru ao aduce în linie cu semnul monetar și multiplicați cu 10.000 înainte de a scrie în memorie. Aceasta oferă o precizie absolută de patru semne zecimale zecimale.

Variabile numerice și tipuri de date

Sistemul de programare Delphi este un instrument modern și foarte puternic pentru a crea programe. În aceasta, puteți să vă asigurați că studiați capacitățile elementare ale editorului acestui sistem. Lucrul într-un astfel de editor nu este dificil, și adesea pur și simplu oferă utilizatorului o plăcere la varietatea capacităților dvs. Programele create în Delphi sunt destul de eficiente și vă permit să utilizați toată puterea tehnologiei de calcul.

Unul dintre cele mai importante obstacole este volumul memorie cu acces aleator și viteza computerului. Programul trebuie întotdeauna să se gândească la modul de reducere a necesității unui program în memorie. O modalitate de a rezolva această problemă este limitarea numărului de variabile utilizate în program sau reducerea dimensiunii celulelor de memorie pentru stocare.

Știți deja cum sunt declarate variabilele întregului și real. În plus față de aceste variabile în sistemul Delphi există mai multe tipuri de date. Ele diferă unul de celălalt decât mărimea memoriei necesare pentru depozitarea lor și, în consecință, gama de numere care pot fi stocate în aceste variabile. Astfel, programatorul poate alege tipul numeric necesar și poate utiliza rațional memoria. Deci, care sunt tipurile de date.

Tipuri de date

Orice date, adică Constantele, variabilele, proprietățile, valorile funcțiilor sau expresiilor din Delphi sunt caracterizate de tipurile lor. Tipul determină setul de valori admise pe care le poate avea unul sau alt obiect, precum și multe operații admise care se aplică acestuia. În plus, tipul definește, de asemenea, formatul reprezentării interne a datelor în memoria PC.

Delphi. Caracterizată printr-o structură de tip de date extinsă:

Vom lua în considerare cu dvs. atât de departe doar tipuri simple.

Tipuri ordinale

Tipurile ordinale se caracterizează prin faptul că fiecare dintre ele are un număr finit de valori posibile. Aceste valori pot fi comandate într-un anumit mod (de aici și numele tipurilor) și, prin urmare, cu fiecare dintre ele puteți compara un număr întreg - numărul de secvență al valorii.

Tipurile de secvențe includ numere întregi, logice, simboluri, listate și gamă de tipuri. La oricare dintre ele, funcția ORD (X) este aplicabilă, care returnează numărul secvenței valorilor expresiei X.

Tipuri întregi

Nume

Lungime, octet

Gama de valori

Cardinal.

0. .. 2 147 483 647

Byte.

0...255

Redus.

128...+127

Smallint.

32 768...+32 767

Cuvânt.

0...65 535

Întreg

Lentă.

2 147 483 648...+2 147 483 647

Int64.

9*10 18 . ..+9*10 18

Cuword.

0. . .4 294 967 295

Tipurile de cuvinte lungi și INT64 sunt introduse pentru prima dată în versiunea 4, iar tipurile de mici și cardinale lipsesc în Delphi 1. Introduceți tipul pentru această versiune durează 2 octeți și are o serie de valori de la -32768 la +32767, adică coincide cu Smallint .

Proceduri și funcții standard aplicabile tipurilor întregi

Recurs

Tipul de rezultate

act

aBS (x)

Returnează modulul x

cHR (B)

Char.

Returnează un simbol pentru codul său

dec (vx [, i])

Reduce valoarea VX la I și în absența I - cu 1

inc (vx [, i])

Crește valoarea VX la I și în absența I-It 1

Hi (w)

Byte.

Returnează arcul de argumentare senior

Buna eu)

De asemenea

Returnează al treilea octet

Lo (i)

Returnează argumentul tânărului

Lo (w)

De asemenea

ciudat (l)

Boolean.

Returnează adevărat dacă un argument este un număr impar

Random (W)

Ca parametrul

Returnează un număr pseudo-aleatoriu, distribuit uniform în intervalul 0 ... (W-L)

sqr (x)

Returnează pătratul argumentului

swap (i)

Întreg

Schimbări în locurile octeți în cuvânt

sWAP (W)

Cuvânt.

De asemenea

De asemenea, în plus față de operațiunile aritmetice cunoscute, există încă două: div și mod.

d IV. - Diviziunea numerelor întregi cu gunoiul părții fracționate. De exemplu:

un div b dacă a \u003d 10 și b \u003d 3, atunci rezultatul este de 3.

mod. - restul diviziunii numerelor întregi. De exemplu:

un mod B. dacă a \u003d 10 și b \u003d 3, atunci rezultatul este 1

Reprezentarea numerelor întregi

În imaginea numerelor întregi există semne și numere (semnul + + nu se poate indica). Se presupune că un sistem numeric zecimal, totuși, puteți utiliza hexazecimal. În acest caz, înainte de numărul ar trebui să puneți un semn de $.

Gama de tip

Toate tipurile întregi se referă la așa-numitele tipuri de secvențe enumerate sau de secvențe. În orice tip de secvență, puteți selecta un subset de valori în care sunt incluse toate valorile tipului sursei. Tipul de gamă este setat în anunțurile de tip prin specificarea valorilor minime și maxime separate de două puncte. Anunțurile de tip sunt întotdeauna pornite de cuvântul de serviciu de tip. De exemplu:

Tip PIR \u003d [1..2006];

Tipul listat.

Tipul de tip este setat de enumerarea valorilor pe care le poate primi. Fiecare valoare este menționată ca un anumit identificator și este localizat în lista încadrată de paranteze rotunde, de exemplu:

MISTCOLORS \u003d (roșu, alb, albastru);

Tipul de simbol

Valorile tipului simbolic sunt setul de toate caracterele PC-ului. Fiecare caracter este atribuit unui număr întreg în intervalul de ... 255. Acest număr servește drept codul reprezentării interne a simbolului, acesta returnează funcția ORD.

Pentru o codificare în Windows, se utilizează un cod ANSI (numit Institutul Național Național Național - Institutul American de Standardizare, care a sugerat acest cod). Prima jumătate a caracterelor PC cu coduri 0 ... 127 corespunde tabelului 7.3. A doua jumătate a simbolurilor cu coduri 128 ... 255 se schimbă pentru diferite fonturi. Standard Windows Fonts Arial Cyr, Curier nou Cyr și Times New Roman. Pentru a reprezenta simbolurile chirilice (fără litere "E" și "E"), utilizați ultimele 64 de coduri (de la 192 la 256): "A" "..." i "sunt codificate de valorile lui 192..223 , "A" ... "I" - 224 ... 255. Caracterele "e" și "e" au, respectiv, coduri 168 și 184.

Simbol care codifică în conformitate cu standardul ANSI

Codul

Simbol

Codul.

Simbol

Codul.

Simbol

Codul

Simbol

Zona

Et.

F.

-

/

DC 4.

F.

Simboluri cu coduri 0 ... 31 aparțin codurilor de service. Dacă aceste coduri sunt utilizate în textul simbolic al programului, ele sunt considerate spații.

Aplicațiile de tip Char sunt relații aplicabile, precum și funcții încorporate:

CHR (B) - funcția de tip car; Convertește expresia în tipul octetului în simbol și o returnează la valoarea sa;

Upcase (CH) - funcție de tip car; Returnează o literă de capital dacă CH este o literă latină mică, altfel simbolul însuși returnează caracterul sursă pentru chirilică).

Tipuri de tipuri reale

Spre deosebire de tipurile ordinale, ale căror valori sunt întotdeauna comparate cu o serie de numere întregi și, prin urmare, sunt absolut precise precis, valorile tipurilor reale determină un număr arbitrar numai cu o precizie finită în funcție de formatul intern al numărului real.

Tipuri de tipuri reale

Lungime, octet

Nume

Numărul de cifre de semnificație

Gama de valori

8

4

8

10

8

8

Real

Singur

Dubla.

Extins

Comp.

Valută.

15…16

7…8

15…16

19…20

19…20

19…20

5.0 * 10E-324 ... 1.7 * 10E308

1.5 * 10E-45 ... 3.4 * 10E38

5.0 * 10E324 ... 1.7 * 10E308

3.4 * 10-4951 ... 1.1 * 10E4932

2e63 ... + 2E63-1

+/-922 337 203 685477,5807

În versiunile anterioare ale Delphi 1 ... 3 tip real ocupat 6 octeți și a avut o serie de valori de la 2, 9 * 10-39 la 1,7 * 10 38. Versiunile 4 și 5 Acest tip sunt echivalente cu tipul dublu. Dacă este necesar (pentru scopuri de compatibilitate), utilizați realitatea cu 6-BAIE, trebuie să specificați Directiva privind compilatorul (Sativpatily ON).

După cum se poate vedea din tabelul anterior. Numărul total Delphi. Este nevoie de la 4 la 10 octeți adiacenți și are următoarea structură în memoria PC:

S.

E.

M.

Aici este un semn de descărcare; e - partea exponențială; conține ordine binară; M - Numărul Mantissa.

Mantissa M are o lungime de 23 (pentru unică) la 63 (pentru prelungiri) deversari binare, care asigură o precizie de 7 ... 8 pentru unică și 19 ... 20 pentru cifre zecimale extinse. Punctul zecimal (virgulă) se înțelege înainte de evacuarea stângă (senior) a Mantissa, dar sub acțiunile cu numărul, poziția sa este deplasată în stânga sau la dreapta, în conformitate cu ordinea binară a numărului stocat în partea exponențială , astfel încât acțiunile pe numere reale sunt numite un aritmetic de punct plutitor (virgulă).

Rețineți că coprocesorul aritmetic procesează întotdeauna numerele din formatul extins, iar alte trei tipuri reale în acest caz sunt obținute prin trunchierea simplă a rezultatelor la dimensiunile dorite și sunt utilizate în principal pentru a salva memoria.

Funcțiile matematice încorporate prezentate în tabelul următor pot fi utilizate pentru a lucra cu date reale furnizate în fila următoare. În acest tabel, real înseamnă orice tip real, număr întreg - orice tip.

Funcții matematice standard Delphi.

Recurs

Tipul parametrului

Tipul de rezultate

Notă

aBS (x)

Real, întreg

Tipul argumentului real

Modulul de argument

N \u003d 3.141592653 ...

Arctan (x)

Arcthancence (valoare în radiani)

cos (x)

La același lucru<<

La același lucru<<

Cosine, unghi în radiani

exp (x)

Expozant

frac (x)

Parte fracționată a numărului

int (x)

Partea intreg a numărului

ln (x)

Logaritmul natural

Aleatoriu

Numărul pseudo-aleator, distribuit uniform în intervalul 0 ...

Random.fx)

Întreg

Întreg

Pseudo-aleatoriu Integer, uniform distribuit în intervalul 0 ... (X-1)

Randomize.

Inițierea generatorului de numere pseudo-aleatoare

păcat (x)

Real

Real

Sinus, unghiul în radiani

sqr (x)

La același lucru

La același lucru

Pătrat argument

sQRT (X)

Rădăcină pătrată

Notă Generatorul Pseudo al numerelor aleatorii este o funcție care necesită un număr întreg numit Basic, modificări, descărcările sale în funcție de un algoritm specific și oferă un număr nou. În același timp, noul număr devine de bază în următoarea manipulare a funcțiilor; etc. (deoarece algoritmul procedurii nu se schimbă: În timpul activității sale, numerele sunt numite pseudo-aleator.) În modulul sistemului de sistem, care este disponibil în mod automat pentru orice program, numărul de bază este stocat într-o variabilă numită Randseek Și are întotdeauna o valoare inițială de 0. Aceasta înseamnă că, cu un acces serial la aleator în diferite programe (sau cu mai multe runde de un program), una și aceeași secvență de numere pseudo-aleatoare vor cădea întotdeauna.

Reprezentarea numerelor reale

Numerele reale conțin în punctul de imagine și / sau indicatorul (simbolul E sau E), de exemplu:

X \u003d -0,5;

Y \u003d 1,34;

Z \u003d -1 E -5;

W \u003d 7,5 E +15;

Funcțiile de conversie a tipului de date

Rundă (X. ) - rotunjirea numărului real la cel mai apropiat întreg. Argumentul funcției este valoarea tipului real, iar rezultatul este rotunjit la cea mai apropiată valoare integrată a tipului de lentă. Dacă rezultatul trece peste gama de valori de lungă durată, atunci va apărea o eroare la executarea programului.

Trunc (x. ) - obținerea întregii părți a numărului real. Tipul de rezultat - Longint. Dacă rezultatul trece peste gama de valori de lungă durată, atunci va apărea o eroare la executarea programului.

Tipul de timp

Tipul de timp este determinat de identificatorul standard TDateTime și este proiectat pentru stocarea și data simultană și data. În reprezentarea internă, aceasta ocupă 8 octeți și ca moneda este un număr real cu o parte fracționată fixă: în întreaga parte a datei data depozitată în timpul fracționat. Data este definită ca numărul de zile din 30 decembrie 1899 și ora - ca parte a trecutului de zi de la 0 ore, astfel încât valoarea de 36444,837 corespunde datei 10.10.1999 și ora 20:05. Numărul de zile poate fi negativ, cu toate acestea, valorile sunt mai mici -693594 (corespunde datei 00.00.0000 de la nașterea lui Hristos) sunt ignorate de funcțiile de conversie a datelor la tipul de șir.

Aceleași operațiuni sunt definite mai sus tipul de tdatetime ca numere reale, iar constantele și variabilele întregului și a tipurilor reale pot participa la expresiile de acest tip.

Subprogramele enumerate în tabelul următor sunt utilizate pentru a lucra cu data și ora.

Subprograme pentru a lucra cu data și ora

Funcţie. Data: tdatetime;

Funcţie. Datetostr (D: Tdatetime): Şir;

Funcţie. DatetimeTostr (D: Tdatetime): Şir;

Funcţie. FormatDateTime (Format: Şir;

Valoare (tdatetime): Şir;

Funcţie. Acum: tdatetime;

Funcţie. Timp: tdatetime;

Funcţie. TimeTostrft (TDateTime): String;

Returnează data curentă

Convertiți data în șirul de caractere

Convertește data și ora în șirul de caractere

Convertește o dată și ora din parametrul de valoare din șirul de caractere, în conformitate cu specificațiile parametrilor formatului (vezi explicațiile din clauza 7.3.)

Returnează data și ora curente

Returnează ora curentă

Convertește timpul la rând

Tipurile de date încorporate în limba Delphi includ tipuri de numere întregi, valabile, simboluri, șiruri, pointeri, booleani.

Tipuri ordinale. Tipurile de comandă (ordinale) sunt numite pe cele în care sunt comandate valorile și pentru fiecare dintre ele puteți specifica valorile precedente și ulterioare.

Tipuri structurale. Tipurile structurale includ seturi, matrice, intrări, fișiere, clase, interfețe.

Tipuri de date. În tipurile de tipuri variabile, informațiile sunt reprezentate ca numere întregi, adică. Numerele care nu au o parte fracționată.

Tabelul 1 Operații privind tipurile ordinale

Operațiune

Descriere

Valoarea minimă a tipului ordinal t

Valoarea maximă a tipului secvențial

Numărul de secvență al valorii de expresie a tipului de secvență. Pentru o expresie întreagă, este pur și simplu sensul său. Pentru restul tipurilor ordinale de ordinale, reprezentarea fizică a rezultatului expresiei este interpretată ca un număr întreg. Valoarea de returnare aparține întotdeauna uneia dintre toate tipurile

Anterior în valoarea comenzii. Pentru întreaga expresie echivalentă cu X-1

Apoi, în valoare de comandă. Pentru expresiile întregi echivalente cu X + 1

Reduce valoarea variabilei la 1. Echivalent cu V: \u003d pred (v)

Crește valoarea variabilei cu 1. Echivalent cu V: \u003d succ (v)

masa 2

Gama de valori

2147483648 -- 2147483647

8 biți, neschimbați

16 biți, nesfârșiți

32 de biți, neschimbați

Există, de asemenea, un tip cum ar fi Integer, care este echivalent cu tipul de lungă durată. Gama sa de la -2147483648 la 21474836478. Este nevoie de 4 octeți în Pämyat. Rețelele sunt întregi și cardinale, deci în majoritatea cazurilor este de dorit să se utilizeze aceste tipuri.

Toate operațiile definite pentru tipurile de secvențe sunt efectuate mai sus toate datele. Operațiuni pe toate tipurile:

Tabelul 3.

Tipuri de date valabile. În tipurile valide variabile, conține numere constând din părți întregi și fracționare.

Tabelul 4.

Principala furnizare de performanță maximă este tipul real, care este în prezent echivalent cu tipul dublu.

Tabelul 5 Funcții de tipuri valide

Valoare returnată

Valoare absolută x.

Arcthancence H.

Cosinul X (X este exprimat în radiani și nu în grade)

Funcția exponențială de la x

Partea fracțională X.

Întreaga parte x. În ciuda numelui, returnează o valoare validă (semicolon plutitoare), adică Doar stabilește zero în partea fracțională

Logaritmul natural de la x

Numărul PI (3.1416 ...)

Cea mai apropiată K x este întreg. Returnează valoarea întregului tip. Condiția "cea mai apropiată de x" nu funcționează dacă valorile superioare și inferioare sunt echidistante (de exemplu, dacă partea fracțională este exact 0,5). În aceste cazuri, Delphi schimbă soluția la sistemul de operare. În mod obișnuit, procesoarele Intel rezolvă această problemă în conformitate cu recomandarea IEEE rotunjită către cel mai apropiat chiar întreg. Uneori această abordare se numește "rotunjirea bancherului"

Pătrat x, adică X * X.

Rădăcină pătrată de la x

Întreaga parte x. În contrast cu int întoarcerea

Tipuri de date simbolice. Tipurile simbolice sunt concepute pentru a stoca un caracter.

Tabelul 6.

Booleans Tipuri de date. Variabilele tipurilor de date booleene reprezintă valori logice, de exemplu, adevărate (adevăr) și false.

Tabelul 7 Dimensiuni de tipuri booleene

2 octeți (cuvânt de volum)

4 octeți (volum de lungă durată)

O matrice este o structură de date, care este un set de variabile de același tip care au un nume comun. Arrays sunt utilizate convenabil pentru stocarea uniformă în natură, cum ar fi tabelele și listele.

Anunțarea masivei.

O matrice, ca orice variabilă de program, trebuie declarată înainte de a utiliza anunțurile variabile. În general, instruirea declarației matricei aliniază după cum urmează:

Nume: [Nizhny_index..pine_index] de tip

unde: numele este numele matricei;

array este un cuvânt rezervat Delphi, care denotă că numele anunțat este numele matricei;

nizhny_index și Superior_index - Constantele medii care determină intervalul de modificare a indicelui elementelor de matrice și implicit, numărul de elemente (mărimea) matricei;

tipul de tip de elemente de matrice.

Ce nu scrie în cărți în conformitate cu Delphi Grigoriev A. B.

3.2.2. Tipuri de Delphi.

În Delphi există patru tipuri reale: single, duble, extinse și reale. Formatul lor general este același (figura 3.1, a).

Un semn este întotdeauna un pic. Este zero pentru numere pozitive și o unitate de negativă. În ceea ce privește dimensiunea mantisului și a expozanților, este în ele o distincție între tipuri.

Înainte de a trece la numere specifice, luați în considerare în detaliu tipul real, făcând o mică excursie la acest lucru. Real este tipul standard de limbă Pascal, care a fost prezent inițial acolo. Când a fost creat Pascal, procesatorii nu au avut încă suport încorporat pentru numere reale, astfel încât toate operațiile cu tip real sunt reduse la operațiunile cu numere întregi. În consecință, dimensiunea câmpurilor din tipul real a fost selectată pentru a optimiza aceste operațiuni.

a) Vedere generală a numărului real

b) reprezentarea binară a numărului de un singur tip

Smochin. 3.1. Stocarea unui număr real în memorie

Intel 8086/88 Microprocesor și opțiunile sale îmbunătățite - 80286 și 80386 - de asemenea, nu au avut suport hardware pentru numere reale. Dar sistemele pe baza acestor procesoare au avut posibilitatea de a conecta așa-numitul coprocesor. Acest microcircuit a lucrat cu memorie prin anvelopele principale de procesoare și a oferit suport hardware pentru numere reale. În sistemele de mână de mijloc, cuibul coprocesorului a fost de obicei gol, deoarece a redus prețul (desigur, introduceți coprocesorul nu a existat nici o problemă). Pentru fiecare procesor central, au fost produse coprocacerii lor, marcați Intel 8087, 80287 și, respectiv, 80387. Au existat chiar coprocesoare produse de alte firme. Au lucrat mai repede decât coprocesele Intel, dar au apărut pe piață mai târziu. Tipul numerelor reale susținute de coprocesoare nu coincide cu real. Acesta este determinat de standardul IEEE (Institutul de Ingineri Electrici și Electronică).

Pentru a oferi suport de tip IEEE în sistemele sale, Borland intră în Turbo Pascal Tips single, dublu și extins. Extended este principalul tip de coprocesor, un singur și dublu este obținut de la ea o trunchiere foarte simplă. Sistemul comenzilor coprocesorului vă permite să lucrați cu aceste tipuri: când încărcați numărul de tip unic sau dublu la registrul intern al co-procesorului, acesta din urmă le convertește la extins. Dimpotrivă, la descărcarea numerelor acestor tipuri din registru în memorie, coprocesorul le va face o taxă la dimensiunea dorită. Operațiunile interne sunt întotdeauna executate cu tipul de date extins (cu toate acestea, această regulă are o excepție pe care ne vom concentra mai târziu, după o examinare detaliată a formatului diferitelor tipuri). Single și dublu vă permit să salvați memoria. Nici unul dintre ele nu coincide și cu tipul real. În sistemele cu coprocessori, tipurile noi sunt procesate semnificativ (de 2-3 ori) mai repede decât real (acest lucru se bazează pe faptul că tipul real după transformarea corespunzătoare este, de asemenea, procesată de coprocesor; dacă comparăm prelucrarea tipului extins Pe mașină cu un coprocesor și real pe mașină fără coprocesor, atunci pe operațiuni individuale au obținut diferența de viteză la aproximativ 100 de ori). Pentru programele cu aceste tipuri pot fi efectuate în sisteme fără coprocesor, este posibil să le conectați un emulator de software coprocessor. Prelucrarea acestor tipuri de emulator a fost mai lentă decât procesarea reală.

Pornind de la cea de-a 486-a serii Intel ia un curs privind integrarea procesorului și coprocesorul în același cip. Procentajul căsătoriei în chipsuri este prea mare, deci Intel merge la viclenie: dacă jetoanele au căsătorie numai în partea coprocesorului, atunci jumperii blocând coprocesorul și cipul sunt arse pe acest cristal, iar microcircuitul este vândut ca un 80486SX Procesor, care nu are coprocesor încorporat (spre deosebire de versiunea completă, numită 80486DX). Au existat, de asemenea, situații inverse atunci când coprocesorul de daune nu au avut, dar procesorul a fost inoperabil. Astfel de chipsuri s-au transformat într-un "Coprocesor 80487". Dar acest lucru este din domeniul exotic și, potrivit informațiilor noastre, acest coprocesor nu a ajuns în Rusia.

Procesorul Pentium din toate opțiunile proprii a avut o unitate de calcul încorporată încorporată (unitate de punct flloating FPU) și un coprocesor separat nu a avut nevoie de ea. Astfel, cu sosirea acestui procesor, tipul real a rămas doar pentru compatibilitatea înapoi, iar tipurile de unică, dublu și extins au fost publicate. Începând cu Delphi 4, tipul real devine sinonim cu un tip dublu, iar vechiul tip de 6 octeți primește numele real48.

Notă

Există o directivă de compilator ($ RealCompatibility Off), când este activată (în mod implicit, este dezactivată) Real devine sinonim cu real48, nu dublu.

Dimensiunile câmpurilor pentru diferite tipuri reale sunt indicate în tabelul. 3.1.

Tabelul 3.1. Dimensiunile câmpului în tipuri reale

Un fel Tip de dimensiune, octeți Mantissa dimensiune, biți Dimensiune expozant, biți
Singur 4 23 8
Dubla. 8 52 11
Extins 10 64 15
Real 6 40 7

Alți parametri ai tipurilor reale, cum ar fi intervalul și precizia, pot fi găsite în ajutorul Delphi.

Din carte, limba de programare cu # 2005 și platform.net 2.0. de Troelsen Andrew.

Tipurile caracterizate prin valori, tipuri de referință și operator de atribuire citiți acum următoarea metodă principală () și ia în considerare rezultatele prezentate în fig. 3.12. STICOLULUI VOID (CONSLE.WRITININE ("*** Tipuri caracterizate prin tipuri de valoare / referință ***"); Console.Writeline (-\u003e Crearea P1 "); MyPoint

Din sfaturile cărților de pe Delphi. Versiunea 1.0.6. Autor Ozers Valentin.

Tipurile caracterizate prin valori și conținând tipuri de referință acum că simțiți diferența dintre tipurile caracterizate de valoare și tipurile de referință, să luăm în considerare un exemplu mai complex. Să presupunem că există următorul tip de referință (clasa),

Din cartea Soluții Internet de la Dr. Bob Autor Svort Bob.

Tipuri caracterizate prin valori și tipuri de referință: note finale pentru a finaliza discuția despre acest subiect, învățați tabelul de informații. 3.8, care oferă un scurt rezumat al diferențelor principale dintre tipurile caracterizate de valoarea și tipurile de referință. Tabelul

Din cartelul Delphi. Trucuri și efecte Autor Chirtik Alexander Anatolyevich.

Din carte algoritmii fundamentali și structurile de date din Delphi Autor Baknell Julian M.

1.3.3. Delphi și CGI în acest capitol Clientul către server. Pe partea clientului

Din cartea din lume interbază. Arhitectura, administrarea și dezvoltarea aplicațiilor bazei de date în Interbase / Firebird / Yaffil Autor Kovyzin Alexey Nikolaevich.

2.1.1. Delphi și HTML Dezvoltatorii principal de instrument sunt Delphi și vom scrie expertul HTML HTML Delphi în acest capitol. Delphi vă permite să vă conectați la aproape baza de date a oricărui format. Folosind BDE la Paradox și DBase, cu ODBC, de exemplu, accesul și utilizarea legăturilor SQL către tipul DBMS mare

Din cartea Delphi Virtual Biblioteca de autor

9.3. Folosind Ole în Delphi, ca multe medii de programare moderne, Delphi susține capacitatea de a dezvolta automat aplicațiile care operează cu diferite servicii sau servere. Pentru o înțelegere mai profundă a principiilor cererii,

Din descrierea cărții Pascalabc.net Autor Colectiv Roughard.

Tipuri de matrice din Delphi în Delphi Există trei tipuri de matrice susținute de limbă. Primul este o matrice standard care este declarată utilizând cuvântul cheie al matricei. Cel de-al doilea tip a fost introdus pentru prima dată în Delphi 4 ca imitație a ceea ce a fost cu mult timp în urmă, disponibil în Visual Basic, - dinamic

Din cartea de programare a cărții ABC Pascal Autor Flori Alexander Stanislavich.

Tipul tipurilor de date către tipurile reale (ele sunt numite și tipurile de numere de puncte plutitoare) includ plutire și precizie dublă. Urmați imediat cititorul de la utilizarea tipului de flotor - acuratețea acestuia este insuficientă pentru stocarea celor mai multe valori fracționate. În special ne.

Din cartea autorului

Întrebări despre Delphi 2.0 Ce este nou în Delphi 2.0 Comparând cu Delphi 1.0? Versiunea Delphi 1.0 a fost lansată în februarie 1995 a devenit primul instrument Windows care combină compilatorul de optimizare, mecanismele de dezvoltare vizuală cu două căi și o arhitectură de prelucrare a bazei de date scalabile.

Din cartea autorului

Ce este nou în Delphi 2.0 comparând cu Delphi 1.0? Versiunea Delphi 1.0 a fost lansată în februarie 1995 a devenit primul instrument Windows care combină compilatorul de optimizare, mecanismele de dezvoltare vizuală cu două căi și o arhitectură de prelucrare a bazei de date scalabile. Astăzi sute de ani

Din cartea autorului

Din cartea autorului

Din cartea autorului

Tipurile reale de mai jos sunt un tabel de tipuri reale, care conține dimensiunea lor, numărul de cifre semnificative și gama valorilor valide: dimensiunea tipului, octeți Numărul de semnificație Gama de valori Real 8 15-16 -1,8? 10308 .. 1.8 ? 10308 Double 8 15-16 -1,8 10308 ..

Textul programului din Delphi este format folosind litere, numere și caractere speciale. Scrisorile sunt simboluri majuscule și litere mici ale alfabetului latin și simbolul de subliniere: abcdefghijklmkl x yzabcducuw x yzabcdefghijklnopqrs tuvwxyz _ Numerele sunt reprezentate de forma standard arabă de înregistrare: 0 1 2 3 4 5 6 7 8 9 Caractere speciale + - * / \u003d ,. :; "() () () @ # $ & ^ este utilizat în principal ca semne de operații aritmetice, separatoare, limitatoare etc. din caractere speciale, simbolurile compuse sunt formate: \u003d .. (*) (* *) //: \u003d ei Serviți, în special, să denotăm operațiuni, cum ar fi "nu egale", "mai mare sau egal", specificând intervale de valori, program de comentare etc. alfabet

Același număr poate fi înregistrat printr-o varietate de moduri, de exemplu: 15 (întreg) 15. 0 (Real cu un punct fix) 1. 5 E 01 (punct de plutire substanțial) $ F (hexazecimal) în limba Delphi este posibil Pentru a aplica toate intrările de metode, dar cel mai adesea folosesc numere întregi și reale. Integiile constau doar din numere și semne + sau -. Dacă semnul este omis și numărul nu este egal cu 0, atunci este considerat ca un pozitiv, de exemplu: 0 (0 interpretat ca integer) 17 (Integer pozitiv) -39 (Integer negativ) Tipuri de date numerice

Numerele reale conțin o parte întregi și fracționată, separată de un punct: 0. 0 (0 interpretat ca un număr real) 133. 5 (număr real pozitiv) -0. 7 (număr real negativ) Numerele reale pot fi reprezentate în două forme: cu un punct fix și plutitor. Formularul cu un punct fix coincide cu înregistrarea obișnuită a numerelor: 27800 (punctul de la sfârșitul numărului este omis) 3. 14 Punct plutitor (formular exponențial) este utilizat atunci când lucrați cu numere foarte mari sau foarte mici. În această formă, numărul cu care se află e se înmulțește cu 10 la gradul indicat după 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 \u003d 3. 14) Numărul care se confruntă cu litera E este numit Mantissa și numărul după litera E este obișnuită. Tipuri de date numerice

Cu ajutorul comentariilor, puteți explica logica activității programului dvs. Comentariul este trecut de compilator și poate fi în orice loc al programului. Comentariul este: (orice text în paranteze curbate) (* orice text în paranteze cu asteriscuri *) // orice text de la o linie dublă înclinată până la capătul liniei dacă simbolurile (sau (* merge imediat la dolarul $, atunci Textul din paranteze nu este considerat de comentarii și o directivă de compilator. Exemple de astfel de directive: ($ optimizarea ON) ($ Avertismente ON) ($ Rangechecks off) Comentarii

Programul din procesul de execuție procesează întotdeauna datele Kakelibo. Datele pot fi numere întregi și fracționare, simboluri, șiruri, matrice, seturi etc., astfel încât calculatorul este doar o mașină pentru care datele sunt o secvență de zerouri și unități, trebuie absolut "știți", cum să le interpretăm. Din acest motiv, toate datele din limba Delphi sunt împărțite în tipuri. Tipul de date indică valori ale datelor și care pot fi efectuate operațiuni cu acestea. Fiecare tip de date corespunde unei anumite cantități de memorie care este necesară pentru plasarea datelor. De exemplu, în limba Delphi există un tip de date de byte. Datele de acest tip ia valorile în intervalul întregi de la 0 la 255, pot participa la operațiunile de adăugare, scădere, multiplicare, divizare și ocupă 1 octet de memorie. Tipuri de date

Toate tipurile de date din Delphi pot fi clasificate după cum urmează: Tipuri de date simple. Ele, la rândul lor, sunt împărțite în tipuri ordinale și reale de date. Tipurile ordinale includ tipuri întregi, simbolice, booleene, enumerate etc.; Tip de date temporar. Servește la reprezentarea valorilor datei și timpului; String Tipuri de date. Serviți pentru a reprezenta secvențe de la caractere, cum ar fi textul; Tipuri de date compozite. Forma pe baza tuturor celorlalte tipuri. Acestea includ matrice, seturi, înregistrări, fișiere, clase și referințe la clase; Tipuri de date procedurale. Permiteți manipularea procedurilor și funcțiilor ca date ale programului; Indicarea tipurilor de date. Aceste tipuri sunt stocate adresele altor date (liste, copaci etc.); Tip de date cu valori nepermanente. Servește la reprezentarea valorilor al căror tip nu este cunoscut în avans; Cu aceasta, este ușor să lucrați cu o listă de valori diversificate; Clasificarea tipurilor de date

Luați în considerare forma descrierii variabilelor, a constantelor și a tipurilor. Descrierea tipurilor: Tip \u003d; Descriere Constant: const: \u003d; Descrierea variabilelor: VAR :; Formularul descrierii datelor

Un exemplu de scriere a unei constante: Const Delphi. Limba \u003d "Obiect Pascal"; Kylix. Limba \u003d Delphi. Limba; Yard \u003d 914. 4; Piciorul \u003d 304. 8; Secunde. În. Minute \u003d 60; Secunde. În. Oră \u003d secunde. În. Minut * 60; // Setați constanta secundelor. În. Zi \u003d secunde. În. Ora * 24; // ca expresie atunci când declarați o constantă, puteți specifica tipul său: const procent: dublu \u003d 0. 15; Fişier. Nume: String \u003d "Ajutor. Txt"; Astfel de constante sunt numite tipărite; Scopul lor principal este de a declara valorile constante ale tipurilor de date compozite. Descriere constantă

În plus față de tipurile de date standard, limbajul Delphi suportă tipurile definite de programator. Noul tip de date este determinat utilizând tipul rezervat de tip, urmat de identificatorul de tip, un semn de egalitate și descriere. De exemplu, puteți defini un tip nou: TIP TUNICODE \u003d WIDE. ; Tfloat \u003d dublu; Tdirection \u003d (Nord, Sud, East, Vest); Este ușor de observat că identificatorii de noi tipuri în exemplul încep cu o literă de capital t (prima literă a tipului de cuvânt). Un astfel de acord privind tipurile de programator este adoptat de dezvoltatorii mediului Delphi, dar nu este strict. Cu toate acestea, îl recomandăm să adere la, deoarece contribuie la percepția mai ușoară a codului sursă al programului. Descrierea tipurilor

Întregul tip de rază de rază de redus de lamerint Integer Longint Cardinal Int 64 Byte Cuvânt cuword -128. . 127 semn 8-biți -32768. . 32767 semn 16 -BIT -2147483648. . 2147483647 semn. 32-biți 0 .. 4294967295, dacă nu semnați 64 -BIT -263. . 263 -1 semn 64 -bit 0 .. 255 Niciun semn 8 -bit 0 .. 65535 Nici un semn 16 -bit 0 .. 4294967295 Nici un semn 32-Format Format Simple Tipuri de date

Tipul de valori. Real 48 unic dublu extins 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 DIGIT COMP - 9223372036854775808. 9223372036854775807 19-20 Valută - 922337203685477. 5808. 922337203685477. 5807 19- 20 Tipuri reale Byte 8 6 4 8 10 8 8

Tipurile simbolice sunt folosite pentru a descrie datele, a căror valoare este litera, cifra, semnul de punctuație și alte caractere. Există două tipuri de date fundamentale de simboluri: ANSI. Char și larg. Char. Acestea corespund unor sisteme de codificare a simbolurilor diferite. ANSI tip de date. Char ocupă o octet de memorie și codifică unul din cele 256 de caractere posibile ale tabelului de cod extins ANSI, în timp ce date largi. Char ocupă două octeți de memorie și codifică unul dintre simbolurile de tabel de cod Unicode 65536. Tabelul de cod Unicode este un standard de codificare a simbolului cu două octeți. Primele 256 de simboluri ale mesei Unicode corespund tabelului ANSI, astfel încât tipul de date ANSI. Char poate fi văzută ca un subset de lățime. Char Tip simbol

Tipuri de date fundamentale: Capacitate de memorie tip de date (Byte) ANSI. Char 1 larg. Char 2 Tipul de date General: Tipul de date Memorie (octeți) Char 1 (dar poate deveni echivalent cu o lățime de date logică Tip var Good_file: Boolean; Byte de date Boolean Byte. Bool, cuvânt. Bol și lung. Bool a fost introdus în limba Delphi în mod specific pentru compatibilitatea cu alte limbi, în special cu limbile C și C ++. Toate tipurile de date booleene sunt compatibile între ele. Tipul de date simbolic și logic

Exemplu. Descrierea tipului de simbol constant și variabil. Const ch_p \u003d 'a'; // constante simbolice ch_l: char \u003d 'f'; Ch_k: lățime. Char \u003d '5'; Var ch_l: char; // variabila simbolică în valorile programului variabilelor și constante de tipuri de caractere sunt încheiate în apostrofe (nu pentru a fi confundate cu citatele!), De exemplu: Simbol: \u003d "A"; // simbolul este atribuit litera un exemplu de tipuri de date simbolice

Rândurile sunt o gamă dinamică de caractere. Șir - lungimea nu mai mult de 256 de caractere. Wide. Șir - lungimea mai mare de 256 de caractere. Informațiile sunt considerate un șir dacă este închisă în citate simple: "Maria IT Pâine" - șirul "Mary It" nu este un exemplu de șir. Determinați constanta și variabila unui tip de șir. Const s_weether \u003d "rece ..."; Var s 1: c_wether; S 2: șir; Tipul de date de la șir

Tip enumerate. Tipul de date afișat este o listă de valori care pot primi o variabilă de acest tip. Fiecare valoare este atribuită identificatorului utilizat în program pentru a specifica această valoare. Exemplu. Tip Tcolors \u003d (roșu, alb, albastru); Tmonth \u003d (JNU, Feb, Mar, aprilie, mai, Jun, Jul, Agu, Sep, Oct, Nov, DEC); Tdirection \u003d (Nord, Sud, East, Vest); VAR LUNĂ: Tmonth; Direcția: TDIRECTION; Începeți direcția: \u003d Nord; Sfârșit. Tipul de date enumerate

De fapt, identificatorii valorilor tipului enumerat sunt constante întregi. În mod implicit, prima constantă este 0, a doua este 1, etc. Este posibil să atribuiți în mod explicit valoarea identificatorului de tip Tsize. Unitate \u003d (Byte \u003d 1, Kilobyte \u003d 1024 * Byte, Megabyte \u003d Kilobyte * 1024, Gigabyte \u003d Megabyte * 1024); Puterea maximă a tipului listat este de 65536 de valori, deci de fapt tipul listat specifică un subset al întregului tip de cuvânt și poate fi considerat un anunț compact al grupului de constante întregi cu valorile de 0, 1, etc.

Tipurile de date interval Tipul de date intervalului este stabilit de două constante care limitează gama de valori pentru variabilele de acest tip. Ambele constante ar trebui să aparțină uneia dintre tipurile de secvențe standard (dar nu reale și nu șir). Exemplu: Tip TDIGIT \u003d 0 .. nouă; DIGIT \u003d "0". . "nouă"; Dig 2 \u003d 48 .. 57; VAR DIGIT: TDIGIT; Luna: 1 .. 12; Începeți cifra: \u003d 5; DIGIT: \u003d 10; // eroare! Ieșiți din limitele domeniului de sfârșit; Interval sau interval de tip.

Diferența dintre acest mod de a crea un tip și comun (fără tip de cuvânt) se va manifesta atunci când studiază matricele, înregistrările și clasele. Găsește înainte și dați un exemplu: Tipul TTYPE 1 \u003d Gama de integrați; Ttype 2 \u003d tip ttype 1; VAR A: TTYPE 1; B: TTYPE 2; Începe B: \u003d A; // eroare! Sfârșit. În exemplu, variabilele A și B sunt incompatibile între ele datorită tipului de cuvânt din descrierea tipului TTYPE 2. Dacă variabilele A și B aparțin tipurilor de date simple, operatorul de atribuire va funcționa. Tipuri de date speciale

O matrice este un tip de date compozit format dintr-un număr fix de elemente de același tip. Pentru a descrie matricea, matricea de frază este proiectată. După matricea cuvântului în paranteze pătrate, limitele matricei sunt scrise și după cuvântul elementelor matricei: tip tstates \u003d gama de șir; Tcoordinați \u003d o serie de integer; CONST Coordonate: Tcoordinate \u003d (10, 20, 5); (3 numere întregi) Var afirmă: tstates; (50 corzi) Simboluri: Gama de caractere; (81 caractere - fără definiție de tip) Pentru a accesa un element de matrice separat, trebuie să specificați indexul său în paranteze pătrate, de exemplu simboluri: \u003d 'ё'; Rețineți că inițializarea elementelor matricei apare în paranteze prin virgulă. Arrays.

Arrasele declarate mai sus sunt unidimensionale, deoarece există un singur indice. Măsurile unidimensionale sunt de obicei folosite pentru a reprezenta o secvență liniară de elemente. Dacă, atunci când descrieți matricea, se specifică două indice, matricea este numită indici bidimensionali dacă n sunt n-dimensionali. Arrays bidimensională sunt folosite pentru a prezenta tabelul și n-dimensional - pentru a reprezenta spații. Iată un exemplu de anunțuri de masă constând din 5 coloane și 20 de linii: Tabelul Var: Gama de matrice de dublu; Același lucru poate fi înregistrat într-un formular mai compact: VAR Table: Gama dublă; Pentru a accesa elementul separat al matricei multidimensionale, trebuie să specificați valoarea fiecărui index, de exemplu, tabel sau în mai multe compacte de intrare multidimensională

Exemplu. Descrierea gamei dinamice bidimensionale de elemente ale tipului de octet în variabila con. Var fiul: o serie de octeți; Exemplu. Matrice multidimensionale. VAR MBON: Gama de octeți; // tipul patru-dimensional Ty_mas \u003d o serie de octeți; // Tip - Array Dilimimensional Var Mon 1: Array of tmy_mas; // patru dimensiuni (gama bidimensională de matrice bidimensionale) c: gama reală; // matrice de Mbon dinamic tridimensional - element al elementului de matrice Mbon Mon 1 - elementul Monului 1 C - // primul element al exemplelor dinamice de matrice dinamice

Setul este un tip de date compozit pentru a reprezenta un set de elemente ca întreg. Gama de valori setate este un set de toate tipurile de subseturi compuse din elementele sale. Toate elementele setului ar trebui să aparțină unui tip de ordine cu un singur octet - tipul de bază. Pentru a descrie tipul multiplu, fraza este utilizată set de, după care se înregistrează tipul de set de bază: TLETTERS TIP \u003d set de "A". . "Z"; Var litere: Tleters; Simboluri: set de caractere; În expresii, valorile elementelor setului sunt indicate în paranteze pătrate: ,, ["A", "B", "C"]. Dacă setul nu are elemente, se numește goală :. Exemplu: Const vocale: Tletters \u003d ["A", "E", "I", "U"]; Începeți literele: \u003d ["A", "B", "C"]; Simboluri: \u003d; (set gol). Numărul de elemente ale setului este numit putere. Puterea setului în limba Delphi nu poate depăși 256. Seturi

Src \u003d "https: //syt/presentation/20070619_133096976/image-25.jpg" ALT \u003d "(! Lang: Când lucrați cu seturi, utilizarea relațiilor (\u003d ,,,\u003e \u003d atunci când lucrați cu seturi este permisă să Utilizați operațiunile de relație (\u003d,\u003e \u003d,). Două seturi sunt considerate egale dacă constau din aceleași elemente. Ordinea elementelor din seturi comparate nu are valori. Două seturi A și B sunt considerate egale dacă acestea diferă în putere sau prin valoare, deși un element ar fi un rezultat al adevăratei \u003d true \u003d true \u003d accesorii adevărate (\u003e \u003d, \u003d b este adevărat dacă toate elementele setului B sunt conținute într-un set A. Expresie A

Operațiune în. Folosit pentru a verifica elementul aparținând setului specificat. De obicei aplicate în operatori condiționați. 5 IN \u003d TRUE 5 IN \u003d FALSE Funcționarea vă permite să efectuați în mod eficient și în mod clar teste complexe de condiții, înlocuind zeci de alte operații. De exemplu, operatorul dacă (x \u003d 1) sau (x \u003d 2) sau (x \u003d 3) sau (x \u003d 5) sau (x \u003d 7) poate fi înlocuit cu un număr mai scurt: dacă x în timpul operației în Uneori încearcă să înregistreze cu negarea: X nu în S. Această intrare este eronată, deoarece două operații urmează la rând. Intrarea corectă este: Nu (X in S). Funcționarea în.

Combinând seturi (+). Combinația a două seturi este a treia set care conține elementele de ambele seturi. + \u003d + \u003d Intersecția seturilor (*). Intersecția a două seturi este a treia set, care conține elemente care sunt incluse simultan în ambele seturi. * \u003d * \u003d Setați diferențele (-). Diferența dintre două seturi este al treilea set, care conține elementele primului set, care nu sunt incluse în al doilea set. - \u003d - \u003d În limba Delphi, două proceduri standard includ includ și exclude, care sunt concepute pentru a lucra cu seturi. Procedura include (S, I) include în elementul SET I. Procedura de excludere (S, I) exclude de la elementul SET I. Acestea duplică operația - / + cu singura diferență pe care o lucrează cu un element și face mai eficient. Asociație, Intersecție, Diferența