În pseudocod, aceeași secvență de program se scrie astfel:
<instrucțiunea_1>
<instrucțiunea_2>
....
<instrucțiunea_n>
Există, deci, un număr oarecare (n) de instrucțiuni, care se execută una dupa alta, în ordinea în care sunt scrise în program.
Toate exemplele de programe date în capitolele și secțiunile
anterioare au structura secvențială.
În această schemă logică, Condiție este o expresie booleană. Executarea acestui fragment de program decurge astfel: se verifică mai întâi dacă este satisfăcută condiția. Dacă ea este satisfăcută, deci expresia Condiție are valoarea true, se execută Instrucțiunea 1, iar în caz contrar se execută Instrucțiunea 2.
In pseudocod, acest fragment de program se scrie astfel:
Dacă <condiție>
atunci <instrucțiunea_1>
altfel <instrucțiunea_2>
Sfarșit_dacă
În unele convenții de pseudocod, în loc de Instrucțiunea_1 și Instructiunea_2 pot fi puse secvențe de instrucțiuni.
Se observă că există o asemănare între instrucțiunea alternativă și expresia condițională. În ambele cazuri se
verifică dacă este satisfacută o condiție și - în funcție de rezultatul
obtinut - se alege una din două variante posibile. Deosebirea este
următoarea:
- în cazul expresiei condiționale se alege una din cele două expresii
conținute în aceasta, iar rezultatul obținut este valoarea
expresiei astfel alese;
- în cazul structurii de control alternative se alege una
din cele doua instrucțiuni conținute în această structură;
instrucțiunea astfel aleasă este executată, iar rezultatul obținut este efectul
(lateral) produs de executarea acestei instrucțiuni.
Executarea acestei structuri are loc astfel:
1. se evaluează expresia booleană care reprezintă Condiția;
2. dacă valoarea acestei expresii este true,
deci condiția este satisfacută, se merge pe ramura DA și se executaă
instrucțiunea din corpul ciclului, după care se trece la punctul 1;
3. altfel (deci dacă condiția nu este satisfacută) se merge
pe ramura NU și se iese din ciclu.
Se observă, deci, că se va executa instrucțiunea în mod repetat, cât timp este satisfăcută condiția. În pseudocod, această structură de control se programează astfel:
cât_timp <condiție> execută
<instrucțiune>
sfârșit_ciclu
În unele versiuni de pseudocod, în loc de o singură <instrucțiune> se poate pune o secvență de instrucțiuni.
Deși, din punct de vedere al teoriei programării structurate, ciclul cu test inițial este suficient ca structură repetitivă, în multe limbaje de programare (inclusiv Java), din motive de comoditate a programării se admite și o a doua formă de astfel de structură, numită ciclu cu test final. Schema logică a acestui ciclu este dată în figura 4.
Se observă că, în această schemă logică, executarea instrucțiunii se repetă, ca și în cazul ciclului precedent, cât timp este satisfacută condiția.
Deosebirea dintre cele două forme de cicluri este că, în ciclul cu test inițial, condiția este evaluată înainte de a se executa instrucțiunea din corpul ciclului, în timp ce în ciclul cu test final evaluarea condiției se face după ce instrucțiunea a fost deja executată. Aceasta este o deosebire importantă, deoarece, în cazul ciclului cu test initial, este posibil ca instrucțiunea să nu se execute niciodată (dacă chiar de la prima evaluare condiția nu este satisfacută), în timp ce la ciclul cu test final instrucțiunea din corpul ciclului va fi executată cel puțin o dată. Așa dar, ciclul cu test final poate fi înlocuit prin unul echivalent cu test inițial, dar nu și invers. Iată dece, în teoria programării structurate, ciclul cu test inițial este considerat ca structură de control fundamentală, în timp ce cel cu test final este o structură de control admisă, dar nu fundamentală.
În pseudocod, ciclul cu test final reprezentat prin schema logică din figura 4 se scrie sub forma generală:
execută
<instrucțiune>
cât_timp <condiție>
În unele limbaje (de exemplu în Pascal) pentru ciclul cu test final se adoptă o schemă logică în care singura deosebire față de cea din figura 4 este doar prin faptul că cele două ramuri DA și NU iși schimbă locurile între ele, ceeace în pseudocod se scrie sub forma:
execută
<instrucțiune>
până_când <condiție>
În acest caz, instrucțiunea din corpul ciclului se va repeta cât timp NU este satisfacuta condiția, deci până când se va constata pentru prima oară că ea este satisfăcută.
În ambele cazuri, în unele variante de pseudocod instrucțiunea din corpul ciclului poate fi înlocuită printr-o secvența de instrucțiuni. Dacă se are în vedere utilizarea limbajului Java, utilizarea unei secvențe nu este necesară, deoarece ea se poate înlocui printr-o singură instrucțiune compusă, așa cum se va arăta ulterior.
Din examinarea structurilor de control prezentate în acest capitol, putem constata o proprietate importantă: schemele logice ale tuturor structurilor de control admise de metoda progrămarii structurate au fiecare un singur punct de intrare și un singur punct de ieșire. Datorită acestei proprietăți, ele pot fi folosite la elaborarea unor programe complexe prin tehnica rafinărilor succesive, așa cum se va arăta în secțiunea următoare.