Expresii și operatori Delphi

Expresii ale Delphi

În programele Delphi,
  • expresii matematice
  • expresii logice
  • șir de expresii
Ei bine și alții.

Expresiile matematice

În expresiile matematice se utilizează operații de asignare:.





plus +. scădere -. multiplicare *. divizare /. diviziune intreg div. restul de mod. Atunci când se utilizează aceste operațiuni, se acordă prioritate implementării lor, deoarece în programarea Delphi, ca și în matematica normală, expresiile sunt executate în ordine și cu prioritate luate în considerare. Operațiile de multiplicare și de divizare au o prioritate mai mare decât operațiile de adăugare și scădere.






Aceasta este rezultatul exprimării

nu va fi egal cu 1, ca în cazul executării secvențiale, dar 6.2.

Dacă vrem să obținem execuția secvențială, atunci este necesar să aplicăm paranteze (), care separă operațiile care trebuie îndeplinite mai întâi. Parantezele pot fi imbricate între ele de nenumărate ori:

Acum X va fi 1.

Pe lângă cele patru operații matematice din Delphi, există multe funcții matematice, cum ar fi, de exemplu, tigometrice, logaritmice etc. Acestea devin disponibile în program după adăugarea la secțiunea Interface sections of the Math module. Descrierea acestora poate fi găsită și în modulul Math.pas (puteți găsi utilizând căutarea Windows). Multe dintre ele pot fi implementate pe cont propriu, dar funcțiile încorporate vor funcționa probabil mai repede și mai bine. scrisă în limba de asamblare.

Expresii logice

Expresiile logice sunt executate pe operandi de tip logic, adica cu tipul Boolean Delphi. Ele sunt folosite în principal în operatorii condiționali.

Operatorii Delphi

Pentru a crea aplicații care implementează logica algoritmică complexă, aveți nevoie de instrumente pentru a gestiona progresul programului: schimbarea ordinii de execuție a operatorilor în funcție de diferite condiții și organizarea eficientă a lucrărilor de fragmente repetate frecvent. Se demonstrează matematic că orice algoritm poate fi codificat folosind
  • un operator de atribuire
  • o declarație condiționată
  • operatorul ciclului
Cu operatorul de atribuire ": =" am întâlnit deja în lecția Delphi 2. Funcționează după cum urmează. Variabila din partea stângă a operatorului devine egală cu valoarea din dreapta. Tipurile acestor cantități trebuie să coincidă. În expresia din dreapta, se poate folosi și o variabilă din stânga. Din punct de vedere matematic, acest lucru este greșit, dar în programare aceasta înseamnă că valoarea inițială este luată din memoria celulei, se fac calcule și rezultatul este scris în aceeași locație de memorie, ștergând valoarea anterioară. exemplu:

La începutul fragmentului, variabila A este de 3, iar la sfârșitul -25.

Operatorul condiționat vă permite să modificați ordinea de execuție a operatorilor în funcție de îndeplinirea unei anumite condiții. Iată cum este scris:

dacă condiția atunci acționează altfel alternativă;

Cuvintele dacă (dacă), apoi (apoi), altfel (altfel) sunt rezervate. Acțiunea și altceva alternativa sunt orice afirmații Delphi sau câteva afirmații închise în arcuțele logice de început / sfârșit. sau apel de subrutină. Dacă condiția este adevărată, atunci acțiunea este executată. dacă este falsă, atunci este îndeplinită o alternativă.
O condiție este o expresie logică. El compară valorile expresiilor (inclusiv și cele logice), apelurile funcțiilor care returnează valori de tip Boolean. și combinarea acestor valori utilizând operații logice:

Operațiile logice pot fi combinate cu ajutorul pachetelor:
și (logic AND)
sau (OR logică)
xor (exclusiv OR)
Pentru anumite tipuri de date există operațiuni suplimentare. De exemplu, pentru seturi, operatorul din. care verifică dacă o valoare este inclusă în set. De exemplu:
X: = [2, 4, 5, 7, 8, 10];
Expresia 2 din X este adevărată (este adevărată);
Expresia 6 în X este falsă (falsă);

Logică non-negare


Rezultatul operației logice ȘI este adevărat. dacă ambii operanzi sunt adevărați.
Rezultatul operației logice OR este adevărat. dacă cel puțin unul dintre operanzi este adevărat.
Rezultatul operației exclusive OR este adevărat. Dacă operanzii nu sunt egali unul cu celălalt.


Operatorii buclă vă permit să organizați o repetare a aceleiași secvențe de acțiuni. În Delphi, există trei operatori care vă permit să faceți acest lucru:
  • Operatorul "simplu" de buclă
  • declarație de buclă condițională
  • operatorul de repetare condiționată

O declarație de buclă simplă este utilizată atunci când se cunoaște numărul de repetări ale unui ciclu. Este scris astfel:
pentru contor: = expresie-1expresie-2
faceți acțiunea;
Un contor este o variabilă care trebuie declarată înainte de blocul logic în care este localizată instrucțiunea de buclă, iar tipul acesteia trebuie să aparțină uneia dintre tipurile enumerate, de obicei, Integer.
Expresia-1 și expresia-2 pot fi fie constante, fie identificatoare, fie apeluri de funcții.
Acțiune - una sau mai multe declarații Delphi. Dacă acesta este un grup de operatori, atunci acestea trebuie să fie închise în coarde logice de început / sfârșit.
La începutul operării operatorului, variabila contor devine valoarea expresiei-1. Dacă valoarea contra este mai mică sau egală cu valoarea expresiei-2. atunci operatorii care intră în acțiune sunt executați. Acesta este un singur ciclu. Apoi, variabila contor ia o valoare urmând cea curentă și începe un nou ciclu, adică o comparație între contor și expresia-2. executarea acțiunii. și așa mai departe, până când valoarea contravalorii depășește valoarea expresiei-2.
Este posibilă lucrarea operatorului buclă, în care variabila de contra nu va crește, ci va scădea. În acest caz, cuvântul cheie este înlocuit cu downto:
pentru contor: = expression-1 downto expression-2 do action;
În consecință, expresia-1 trebuie să fie mai mare sau egală cu expresia-2.

O declarație condiționată de buclă este convenabilă pentru a fi utilizată atunci când numărul de repetări nu este cunoscut în prealabil:
în timp ce condiția face
corpul ciclului;
Această bucla va fi executată atâta timp cât condiția este adevărată (o expresie booleană care returnează o valoare booleană). Dacă această expresie este falsă simultan. corpul bucla nu va fi executat o singură dată.
Este necesar să se monitorizeze îndeaproape scrierea condiției și controlul sfârșitului ciclului, deoarece, ca urmare a erorii, buclă în timp ce se va repeta un număr infinit de ori, ceea ce va duce la programul "agățat" și "suspendat".

Operatorul de repetare condiționată execută mai întâi corpul bucla. și apoi verifică starea:
repeta
corp al ciclului
până la condiție;
Astfel, această opțiune buclă asigură că corpul buclă este executat cel puțin o dată. Aceasta va fi executată până când condiția devine adevărată (adică adevărată). Merită menționat faptul că aceasta este singura declarație Delphi. în care corpul bucla nu este obligatoriu să fie închis în coardele logice de început / sfârșit. Începutul și sfârșitul corpului ciclului sunt determinate de repetarea cuvintelor cheie și până la.

Împreună cu operatorii ciclului sunt folosite comenzi speciale:
  • ciclu de întrerupere comandă
  • ciclu de instruire continuă
Comanda de întrerupere a buclă este utilizată dacă, în timpul executării operatorilor de carcasă de buclă, este necesară oprirea acesteia. Iată comanda:
Break;
La executare, controlul este transferat primului operator urmând operatorul buclă.
Comanda de continuare a buclă permite ca buclă să continue imediat, sărind peste toți operatorii rămași în corpul bucla, adică începând următoarea iterație. Iată comanda:
Continuă;

În mod corect, merită să vorbim despre un alt operator, care vă permite să schimbați secvența programului. Acesta este operatorul de salt:
trebuie să etichetați;
Ca etichetă, se poate utiliza orice identificator sau număr valabil în intervalul de la 0 la 9999. Eticheta trebuie mai întâi declarată în secțiunea de declarație a variabilei, dar cu ajutorul cuvântului var. și eticheta de cuvinte cheie:
eticheta etichetei;
sau
eticheta cu etichete;

Puteți merge atât în ​​sus, cât și în sus până la program. Colonul separă eticheta de operatorul la care se face tranziția. Exemplu de utilizare a instrucțiunii jump:

Din acest exemplu este clar că operatorul se termină; programul final nu va fi executat niciodată, adică programul va rămâne blocat. De aceea, în general, utilizarea unui operator de salt este un stil de programare proastă. și fără utilizarea sa este destul de posibil de a face cu utilizarea declarațiilor condiționale și operatori buclă. Singurul caz în care se poate justifica utilizarea instrucțiunii goo este ieșirea mai multor bucle imbricate, care altfel necesită utilizarea mai multor instrucțiuni Break.

Sortarea agregatelor este o sarcină tipică în care se utilizează buclele. Există multe metode pentru sortarea matricelor. În exemplul considerat, matricea este sortată după metoda "bubble". În modul manual al programului, puteți vedea cum cresc numerele până la matrice, cum ar fi un balon pop-up, iar acest nume de metodă devine ușor de înțeles.

tip Point = Record // Declare type: Write
n, cifră: Integer; // numărul și valoarea: numere întregi
se încheie;
var
Form1: TForm1;
tab: matrice [1..20] din punct; // Creați o matrice de înregistrări de tip Point

procedura TForm1.FormCreate (expeditor: TObject);
începe
StringGrid1.Cells [0, 0]: = 'Număr'; // Inițializați coloanele din tabel
StringGrid1.Cells [1, 0]: = 'Valoare';
se încheie;

procedura TForm1.Button1Click (expeditor: TObject);
var i: Integer;
începe
Randomizează; // Inițializați procedura "aleatorie"
Pentru i: = 1 la StringGrid1.RowCount-1 face
începe
fila [i] .n: = i; // Alocați numerele de serie celulelor matricei
fila [i] .digit: = Random (100); // Alocați valorile aleatoare celulelor matricei de la 0 la 100
StringGrid1.Cells [0, i]: = IntToStr (i) + '.'; // Numărul tabelului
StringGrid1.Cells [1, i]: = IntToStr (fila [i] .digit); // Suprascrieți valorile din tabel
se încheie;
se încheie;

procedura TForm1.Button3Click (expeditor: TObject);
începe
Application.Terminate; // Sfârșitul procedurii de program
se încheie;

Expresii și operatori Delphi

Există posibilitatea de a îmbunătăți ușor procedura de sortare, ceea ce va accelera cu aproximativ un sfert. Problema este că după fiecare ciclu completat cel mai mare element încă nesortat se deplasează la locul său în partea de jos a mesei. Adică, următorul ciclu k nu mai poate vedea ultimele elemente k. Pentru a implementa acest lucru, trebuie să introduceți o variabilă - un contor de ciclu și să o eliminați din variabila buclă. În același timp, aceleași 100.000 de articole sunt sortate în 24 de secunde! Implementarea acestei opțiuni este oferită cititorului, având în vedere simplitatea sa extremă.







Articole similare

Trimiteți-le prietenilor: