Iteratorii (indecşii) colecţiilor sunt accesaţi folosind operatorul “[]” (paranteze pătrate).
Nimic fcCurbă[2].Rotunjeşte(Întreg nIndex);
Enumerare
Enumerările sunt utilizate fără operatori speciali, în cazul când este vorba de un element, sau folosind operatorul “{}” (paranteze acolade), dacă sunt mai multe elemente.
//enumerare de instrucţiuni
Dacă(condiţie)
{
rA = rB + rC; //instrucţiunea 1;
rSumă ++; //echivalent cu rSumă = rSumă +1; instrucţiunea 2;
} //Dacă
Altfel
rSumă --; //echivalent cu rSumă = rSumă – 1; instrucţiunea 1;
//enumerare de reali
Punct pMax = {1.0, 12.0, 10.0};
Algoritm
Algoritmii (aparate matematice, proceduri, rutine, funcţii, metode) se vor regăsi în două locuri, sub formă de funcţii (în cazul în care nu sunt conţinuţi într-un corp de clasă) sau metode (în cazul în care se găsesc încapsulaţi în interiorul unei clase).
Algoritmii sunt blocuri de cod care pot returna un obiect dintr-o clasă anume, sau un obiect din clasa specială Nimic, dacă nu returnează nimic (numiţi proceduri în unele limbaje).
Algoritmii sunt scrişi subliniat în culoarea roşu închis şi suplimentar trebuiesc însoţiţi de lista de obiecte care trebuiesc transmise, scrisă folosind operatorul ”()” (între paranteze rotunde). În cazul când această listă este vidă, trebuie chemată cu paranteză rotundă deschisă, urmată de paranteză închisă, pentru a face distincţia între algoritmi şi obiecte.
Algoritmii pot să aibă unii parametri iniţializaţi în momentul definiţiei, ceea ce înseamnă că următoarele chemări ale aceluiaşi algoritm EsteApropiat() sunt valide, vor fi interpretate şi vor avea ca rezultat, ca în exemplul următor:
Boolean EsteApropiat(Real r0 = 0.0, r1= 0.0, rToleranţă = 1e-10)
{
Dacă(r0 – r1 < rToleranţă SAU r1 – r0 < rToleranţă) //echivalent Abs(r1 – r0) < rTol
Întoarce(ADEVĂRAT);
Altfel
Întoarce(FALSE);
} //EsteApropiat
-
Chemare
|
Interpretare
|
Rezultat
|
EsteApropiat(10.0, 11.0, 2.0)
|
EsteApropiat(10.0, 11.0, 2.0)
|
ADEVĂRAT
|
EsteApropiat(10.0, 11.0)
|
EsteApropiat(10.0, 11.0, 1e-10)
|
FALS
|
EsteApropiat(3.0)
|
EsteApropiat(3.0, 0.0, 1e-10)
|
FALS
|
EsteApropiat(0.0, _, 0.01)
|
EsteApropiat(0.0, 0.0, 0.01)
|
ADEVĂRAT
|
EsteApropiat(_, 11.0)
|
EsteApropiat(0.0, 11.0, 1e-10)
|
FALS
|
EsteApropiat()
|
EsteApropiat(0.0, 0.0, 1e-10)
|
ADEVĂRAT
| Funcţii
Funcţiile sunt algoritmi liberi, care nu sunt încapsulaţi în interiorul vreunei clase.
NimicAnalizează();
Real Max(Real rA, Real rB);
Punct Max(Punct rA, Punct rB);
Funcţii speciale Dacă şi Dacă-Altfel
Dacă o condiţie este îndeplinită se execută prima enumerare de instrucţiuni, altfel (eventual) a doua enumerare.
Dacă(condiţie){…} [Altfel{…}]
PentruFiecare
Pentru fiecare valoare, începând cu condiţia de start, sfârşind cu condiţia de sfârşit satisfăcută şi incrementând cu condiţia de incrementare, execută o enumerare de instrucţiuni.
PentruFiecare(Condiţie de start = 1; condiţia de sfârşit = 1; condiţia de incrementare = 1) {…}.
PânăCând
Până când este satisfăcută condiţia execută o enumerare de instrucţiuni.
PânăCând(condiţie){…}
Se poate observa că PânăCând(condiţie) ~ PentruFiecare(_, condiţie, _).
Întoarce şi Întoarce(…)
Întoarce opreşte execuţia unui algoritm şi (eventual) întoarce un obiect din clasa returnată de algoritmul respectiv.
Întoarce[(obiect de tipul clasei returnate)];
Metode
Metodele sunt algoritmi specifici unui clase şi sintaxa lor este exact ca aceea de la algoritmi, cu excepţia că având acces la datele încapsulate (private, interioare unei clase), când o metodă este chemată, aceasta trebuie prefixată de numele obiectului respectiv, urmat de un operator “.” (punct).
Nimic dsPiesă.Analizează(); Real cCurbă.PuneLa(Întreg nIndex, Punct pPunct);
Dostları ilə paylaş: |