După primii paşi vedem acum un bloc nou în schemele logice, care ne dă aripi pentru tot felul de cazuri. Este vorba de blocul de evaluare sau blocul condiţional. Este un romb, după cum puteţi vedea mai jos (în capăt de tot, dreapta). Acest bloc nu afirmă că a este mai mare decât 5 ci întreabă, evaluează, şi în funcţie de răspuns (care nu poate fi decât adevărat sau fals) continuă execuţia pe o “ramură” sau alta. [O precizare: toată terminologia pe care o folosesc e din amintirile mele de acum vreo 20 de ani. Dacă undeva se mai predau azi scheme logice, ar putea fi mici diferenţe.]
Şi să luăm un caz banal: împărţirea a două numere. În articolul anterior am văzut cum se face suma a două numere – banal. La împărţire e bine totuşi să ne asigurăm că nu împărţim la zero. Schema logică o puteţi vedea aici sau mai jos. Observăm că în blocul condiţional verificăm dacă b nu cumva e zero. Am folosit pentru conceptul de diferit semnul <>. Apoi avem cele două ramuri: pe da (b e diferit de zero, se poate face împărţirea) calculăm rezultatul şi îl afişăm; pe nu dăm un mesaj că nu se poate o astfel de împărţire.
Să mai vedem un exemplu simplu: se dă un număr – să se spună dacă se divide exact la trei sau nu. Pentru aceasta vom folosi un alt operator: %. Când spunem a%b ne referim la restul împărţirii lui a la b. Astfel, restul împărţirii lui 7 la 3 este 1; restul împărţirii lui 12 la 3 este 0. Aha! Dacă restul împărţirii lui a la b este zero, atunci b îl divide pe a. Drept urmare avem o nouă schemă logică aici sau mai jos.
Urmează tema pentru acasă, nu? Ca în celălalt articol, un click pe link vă duce la soluţie: încercaţi să desenaţi schema logică Dvs înainte de a vedea soluţia.
- aflaţi maximul dintre două numere
- aflaţi maximul dintre trei numere (mda… aici chiar se complică puţin lucrurile)
- să se verifice dacă produsul a două numere este peste 100
La maximul dintre trei numere nu se poate afisa care este maximul, deoarece variabila m nu este declarata (eventual, la final m:=max; citeste m).