Delphi pentru incepatori
In acest tutorial, vă voi spune despre structura și aplicarea procedurilor și funcțiilor în limba de programare Pascal / Delphi.
Proceduri - un cod de proiectare, care permit crearea în cod, unele rutine care execută anumite sarcini în mod independent de restul codului. Să considerăm un exemplu simplu:
[Cc lang = 'delphi'] Procedura shownumbers (n: integer);
var i: integer;
începe
pentru i: = 1 la n do
showmessage (inttostr (i));
se încheie;
showsimplemessages procedură;
începe
showmessage ( 'Acesta este un mesaj simplu 1!');
showmessage ( 'Acesta este un mesaj simplu 2!');
se încheie;
Procedura TForm1.OnCreate (Expeditor: TObject);
începe
shownumbers (5);
showsimplemessages;
end; [/ cc]
Atâta timp cât noi nu învață sintaxa, în primul rând înțelegem principiul procedurilor de lucru. După cum ați observat, probabil, toate evenimentele (de exemplu, aceeași OnCreate) a prezentat proceduri. În primul rând, vom examina conținutul de tratare a evenimentelor, de a crea o formă Form1 (sau, mai degrabă putem spune - conținutul «procedura TForm1.OnCreate (Expeditor: TObject)» procedură). In cadrul acestei proceduri, vom vedea «shownumbers (5);“ și «showsimplemessages;» - aceasta este procedurile de provocare care sunt mai mari decât procedura «TForm1.OnCreate (Expeditor: TObject)». După cum probabil deja realizat, în scopul de a determina procedura actuală, trebuie mai întâi să specificați numele său, și apoi în paranteze pentru a lista parametrii săi. Dacă parametrul este una, doar suficient pentru a indica valoarea sa. De asemenea, procedurile nu pot avea parametri. În acest caz, parantezele pot fi omise. Precizați parametrii ei înșiși au nevoie în clasa respectivă. De exemplu, variabilele string «șir» trebuie să fie specificate în ghilimele „“.
Acum analizează sintaxa procedurii în sine. Chiar la începutul procedurii este cuvântul cheie «procedură». Apoi specificați numele procedurii, urmat de parametrii din paranteze. Indicat le transferă prin „virgulă“. Mai multe variabile de același tip într-un rând, puteți specifica o virgulă. În cuvinte, este destul de dificil de înțeles, așa că aici este un exemplu:
[Cc lang = »delphi»] Procedura de exemplu (a, b, c: integer; d: string; e: real; x1, y1: string); [/ cc]
[Avertisment] Este foarte important atunci când scrierea de cod pentru a ține seama de faptul că procedura în sine ar trebui să fie mai mare în codul decât locul în care este o provocare! În caz contrar, poate apărea o eroare legată de faptul că procedura este pur și simplu nu a fost găsit. [/ Avertizare]
[Notă] Orice procedură poate apela orice altă procedură, dar numai în cazul în care procedura numita este superioară apelarea procedurilor sale. [/ Notă]
[Notă] în cadrul procedurii poate avea acces la variabilele globale și schimba valorile lor. [/ Notă]
Sper că principiul procedurilor am explicat suficient. Acum, ia în considerare funcția. Funcția - este, în esență aceleași proceduri, dar funcțiile pot returna un rezultat, și anume, orice valoare. Principiu, dispozitivul poate fi foarte ușor de înțeles cu un exemplu simplu:
[Cc lang = 'delphi'] Funcția calc (a, b, c: integer; d: string): integer;
începe
Rezultatul: = lungime (d);
inc (a, 5);
dec (b, 2);
inc (rezultat, a + b-c);
se încheie;
Procedura TForm1.OnCreate (Expeditor: TObject);
var a: întreg;
începe
a: = calc (1,2,3, 'testare');
showmessage ( 'rezultat funcție este egal cu' + inttostr (a));
end; [/ cc]
De altfel, în acest exemplu, analizăm două proceduri noi și un nou unul pentru funcționați deja prevăzută în Pascal / Delphi. Aceste proceduri - «inc (a; număr întreg; b: integer)» și «dec (a: integer; b: integer)». Primul se numește creștere și crește numărul întreg «a» la unitățile „B“. A doua procedură se numește decrement, și face destul de incrementul operație inversă, și anume, reducerea numărului de întreg «a» la «b» unități. Dacă variabila «b» nu specificați o valoare, în loc de «b» unitate va fi utilizată în mod automat. Astfel, «inc (a);» - la fel ca și «inc (a, 1)“. Ca «b» pot acționa ca numere negative, care conduc la operația de inversiune, adică «Inc (a, -3);» - la fel ca și «dec (a, 3)“. Procedura de incrementare și decrementare este mai convenabil de a folosi și funcționează relativ mai repede decât atribuirea «a: = a + 1;“.
[Notă] Funcția «lungime (s: string): integer» contorizează numărul de caractere din șir s și returnează o variabilă întreagă [/ notă].
În lecțiile care urmează, vă voi arăta o nouă funcție sau o procedură, voi indica titlul său este de ajuns, care descrie toate numele, tipuri, variabile, și, desigur, numele funcției sau a procedurii, din moment ce sintaxa acestor titluri care le-am discutat deja cu voi în această lecție.
Toate caracteristicile sunt prezente este rezervat sub numele de «rezultat» variabile care stochează un rezultat al funcției, și anume, valoarea sa. În interiorul codului funcția necesară pentru efectuarea de atribuire «rezultat» valori variabile, care ar trebui să returneze o funcție. Type «rezultat» indicat după transferarea parametrilor variabili (după paranteza de închidere și colon), așa cum se arată în exemplul. In interiorul functiei de cod, noi, ca și în procedura poate efectua orice operațiuni asupra parametrilor, precum și pe un «rezultat» variabil. La fel ca în procedura în parametrii funcției opționale. Apoi, s-ar putea arăta astfel:
[Cc lang = 'delphi'] Funcția de exemplu: string;
începe
Rezultatul: = „funcție simplă“;
end; [/ cc]
Un apel funcție este realizată prin alocarea, așa cum se arată în exemplul. Parametrii sunt specificate în același mod ca și în procedură.
În continuare, voi oferi câteva observații cu privire la lucrul cu funcțiile și procedurile:
[Notă] Funcțiile și procedurile se pot provoca. Această tehnică de programare numit recurenței și sunt cel mai frecvent utilizate în punerea în aplicare a oricărui algoritm. [/ Notă]
[Notă] Numele proceduri și funcții pot conține numai litere, cifre și caractere de subliniere. [/ Notă]
[Notă] Funcțiile și procedurile cu diferențe în parametrii considerați total diferit și independent unul de altul, chiar dacă au același nume. În cazul în care există două funcții sau proceduri cu același nume, dar cu diferiți parametri atunci când apelați unul dintre aceste proceduri sau funcții vor fi utilizate în mod automat cel care se potrivește parametrilor (în funcție de tipul și cantitatea). [/ Notă]