Notă aici gama Integer și mărimea coincide cu LongInt. De fapt, aceasta depinde de modul compilator FPC. Proiectul poate fi compilate în diferite moduri pentru a sprijini Delphi, de exemplu, sau TP (Turbo Pascal). În mod implicit, modul Object Pascal a pus. acest lucru poate fi verificată prin rularea într-un mediu Lazarus comanda meniul Project -> Opțiuni de proiect. apoi, sub opțiunile compilator pentru tratamentul selectat. In partea de sus este modul de sintaxă. Implicit este Object Pascal. dar poate fi schimbat și, dacă este necesar.
Deci, în cazul în care nu există obiect este expus Pascal sau Delphi modul. Integer are apoi o dimensiune de 32 de biți sau 4 octeți. Dacă am pus vechiul regim Turbo Pascal și Pascal gratuit. Integer va avea atunci o dimensiune de 16 biți sau 2 octeți, și va corespunde tip smallint.
De ce avem nevoie de o astfel de varietate de tipuri întregi? În zilele vechi RAM a fost destul de mic. Dacă acum am instalat pe PC-ul RAM este de 4 GB, o dată la un moment dat am avut de a face cu un procesor de calculator 486 și RAM la fel de mult ca 16 MB. și puteți să-l cred, nu a fost cel mai rău calculator. La acea vreme, programatorii au luptat pentru fiecare octet de memorie, suprascrierea și minimizarea codului, alegerea celor mai mici tipuri de date posibile. Aceasta se numește cod de optimizare. Să presupunem că aveți nevoie pentru a efectua orice ciclu de 10 de ori. Pentru a calcula ciclul de pași pe care trebuie să creați o variabilă de tip întreg. Dar de ce folosesc o variabilă Integer 4 octeți atunci când este posibil să se facă un singur octet octet. Acum, desigur, nu joacă un rol important, la fel ca înainte, dar încă, cod de optimizare - este un semn al unui programator bun este ton bun de programare. Deci, încercați să nu cheltui inutil de memorie suplimentară.
Recomandări includ aici: dacă știți că numărul este nesemnat, apoi selectați tipuri de nesemnate. Dacă știi exact ce este numărul maxim de variabile este mic, pentru a alege tipuri mai mici. Dacă nu știți ce dimensiune numărul cade în variabila, pentru a alege Integer - este un tip universal, potrivit pentru cele mai multe cazuri. Ei bine, dacă sunteți sigur că numărul este foarte mare, utilizați 4 sau chiar 8-byte tipuri.
numere reale
Ei au numit numere reale, cu o parte fracționată, iar în cazul în care partea fracționară este zero, va trebui în continuare să se precizeze. De exemplu:
Aceste numere sunt numite numere reale cu virgulă. deoarece numărul de cifre după virgulă pot fi diferite. Numerele reale sunt scrise în conformitate cu anumite reguli. În cazul în care matematica am parte fracționară separate prin virgulă, în Lazăr pentru acest punct de utilizare. Dacă specificați un număr foarte mare, puteți alege o formă prescurtată. În cazul în care matematica pentru acest număr este înmulțit cu gradul zecimal, de exemplu,
în Lazăr în loc de 10 puncte litera E (mai degrabă de exponent engleză - exponentul.):
Gradul poate fi negativ:
Tipuri de Real prea mult. În caracterizarea numerelor reale a rolului jucat nu numai de mărimea ocupată în memorie, dar, de asemenea, numărul de cifre semnificative:
Tabelul 8.2. numere reale
După cum puteți vedea, cifrele reale mult mai mult întregi, timp de procesare CPU a acestor numere este cheltuit prea mult. Prin urmare, cifrele reale ar trebui să fie aplicate numai după cum este necesar, în cazul numerelor întregi nu este suficient de clar. Nu asculta pe cei care oferă pentru toate ocaziile de a utiliza un tip de Real - și pentru întreg, cât și pentru numerele reale.
Recomandările aici sunt aceleași ca și pentru numere întregi - alege tipurile de nevoi. evidențiați în mod special de tip Moneda - a fost creat special pentru calcule financiare, astfel încât orice fel de estimări contabile este mai bine de a alege acest tip, ca cele mai exacte. Dar, de cele mai multe tip de cost real (sau dublu).
Manipulând numere întregi și reale
Întregi poate fi adăugat (+), scade (-) și înmulțit (*) unul cu celălalt. Cu divizia este mai complicată. Să presupunem că ne-am împărțit 10 3. Ia 3.33333 ..., iar acest lucru nu este un număr întreg. Prin urmare, pentru numere întregi în Pascal furnizate de divizare întreg. Operațiunea oferă diviziune întreg div, și returnează partea întreagă, îndepărtând fracționată. De exemplu, 10 împărțit la 8 va fi egal cu 1,25. Dacă aplicați diviziunea întreg. 10, cu elementul div 8 = 1. Pentru restul după o astfel de divizare, aplică operare mod. 10 Mod 8 = 2.
Aritmetică pe numere reale este chiar mai ușor, se aplică următoarele operații standard de aici. + (Adunare) - (scădere), * (înmulțire) / (diviziune).
În plus, în ansamblul său, precum și numere reale pot fi comparate între ele cu ajutorul operatorilor logici. = (Egal), <> (Nu este egal),> (mai mare) <(меньше),>= (Mai mare sau egal) <= (меньше или равно).
Este adesea necesar să se utilizeze un mare și complex expresii, care sunt utilizate împreună cu aritmetica și operatori logici. Aici principalul lucru - nu uita de priorități. Luați expresia
Ceea ce devine în r variabila. Dacă ați răspuns 11, atunci ai dreptate. Pentru a efectua prima adăugare. acestea ar trebui să fie plasate între paranteze, care au cea mai mare prioritate:
În acest caz, un număr variabil de 14 r scade.
Vă mulțumim pentru cursul minunat!
Munca independentă №2 compila modul MyCript.pas (Sistem de operare: Windows 7 x64, Lazarus 1.4 Win64) a emis o eroare în codul de asamblare
mycript.pas (54,5) Eroare: Asm: [împinge reg32] combinație de invalid opcode și operanzi
mycript.pas (95,5) Eroare: Asm: [pop reg32] combinație nevalidă de Opcode și operanzi
Am înțeles că cursul este gata pentru 32-bit sistem de operare, dar ce se întâmplă în cazul sistemelor pe 64 de biți?
Handlerele FileCreate elemente din meniu și FileOpen, precum și închiderea handler forma OnClose - în aceste trei proceduri conțin același cod
le înainte de a crea noul text>
în cazul în care începe apoi Memo1.Modified
// daca utilizatorul este de acord pentru a salva modificările:
dacă MessageDlg ( 'Save As'
„Fișierul curent a fost modificat. Salvați modificările?
mtConfirmation, [mbYes, mbNo, mbIgnore], 0) = mrYes apoi
FileSaveClick (Sender);
se încheie; // dacă
Dați-mi voie să vă întreb: nu ar fi mai bine să facă acest cod într-o procedură separată, de exemplu - sub forma unui eveniment handler OnCloseQuery? Din câte îmi amintesc de experiența Delphi, numesc această procedură în sine nu ar trebui să conducă la închiderea formularului. Acest lucru înseamnă că acesta poate fi utilizat în procedurile de curățare Memo1 și citirea dintr-un fișier. Sau în Lazăr nu poți face?