Documente Academic
Documente Profesional
Documente Cultură
}
Ca si in cazul instructiunii if (daca) invatate in lectia anterioara, in loc
de conditiese pot pune verificari de egalitati sau inegalitati intre
expresii ce pot contine valori, variabile si operatori. De fapt,
instructiunea while seamana mult cu instructiunea if.
Singura diferenta dintre instructiunea scrisa mai sus (adica: while
(conditie) {//instructiuni }) si instructiunea if (conditie) {//instructiuni
} este aceea ca daca conditia conditie este adevarata, in cazul
instructiunii if blocul de instructiuni se executa o singura data, in vreme
ce in cazul instructiunii while acesta se poate executa de mai multe
ori, atata timp cat conditia conditie ramane adevarata (sau, altfel spus,
pana cand conditia conditie nu mai este adevarata).
Scrisa in limbaj natural, instructiunea while de mai sus s-ar traduce in
cat timp conditia este adevarata, executa instructiunile scrise intre
acolade.
Evident, daca in blocul de instructiuni scrise intre acolade nu exista
nimic care sa afecteze conditia, atunci (in cazul in care aceasta a fost
initial adevarata) ea va ramane mereu adevarata, ceea ce inseamna
ca blocul de instructiuni se va repeta la nesfarsit. In mod normal, insa,
conditia testata contine o variabila a carei valoare se va modifica pe
parcursul executarii blocului de intructiuni.
Haide sa vedem un exemplu. Sa zicem ca dorim sa aprindem linia de
jos (adica linia cu y egal cu 1) din ecranul nostru de 1010 puncte.
Bineinteles, putem face asta cu urmatorul program (asa cum am vazut
inca din prima lectie):
Aprinde(1, 1);
Aprinde(2, 1);
Aprinde(3, 1);
Aprinde(4, 1);
Aprinde(5, 1);
Aprinde(6, 1);
Aprinde(7, 1);
Aprinde(8, 1);
Aprinde(9, 1);
Aprinde(10, 1);
In regula, dar mai simplu nu se poate?
Ba da. Sa observam, mai intai, ca x-ul transmis instructiunii Aprinde(x,
y) variaza de la 1 la 10, in vreme ce y-ul ramane constant (si egal cu
1). Ce-ar fi, atunci, sa luam o variabila (pe care o putem numi chiar x)
cu ajutorul careia sa parcurgem intreaga gama de valori 1, 2, 3, ,
10. Putem face asta cu urmatorul pogram:
var x = 1;
while (x <= 10)
{
Aprinde(x, 1);
x = x+1;
}
Hai sa vedem pas cu pas ce face programul acesta:
- 1) Mai intai defineste o variabila numita x, si o initializeaza cu
valoarea 1.
- 2) Urmeaza apoi instructiunea cat timp x este mai mic sau egal cu
10
{
if ( (x % 2) == 1)
{
Aprinde(x, 2);
}
x = x+1;
}
Testeaza-l si pe acesta, te rog. Merge, nu? (Ce-ar fi sa-l modifici astfel
incat pe linia 3 sa se aprinda beculetele situate pe coloane pare?)
Iata ca deja am ajuns sa scriem programe serioase. Probabil ca un
neinitiat s-ar uita la programul anterior ca la un text in chineza scris cu
litere arabe. Insa daca ai urmarit cu atentie cele trei lectii anterioare, ai
vazut ca lucrurile nu sunt nici pe departe atat de complicate pe cat
par, ci totul este perfect logic.
Propun sa incheiem lectia aceasta cu un exemplu ceva mai complicat.
Sa zicem ca am dori sa aprindem toate punctele de pe ecranul de
1010 puncte.
Ce ar trebui sa facem, deci? Bineinteles, am putea sa punem 100 de
instructiuni de tip Aprinde(x, y). Sau am putea sa observam ca de fapt
tot ce trebuie sa facem este sa avem doua variabile (numite, de
exemplu, chiar x si y) cu ajutorul carora sa apelam Aprinde(x, y). Si ar
mai trebui sa observam si ca variabila xtrebuie sa parcurga toate
valorile de la 1 la 10 pentru fiecare valoare a variabilei y(care, la
randul ei, ar trebui sa parcurga toate valorile de la 1 la 10).
Aceasta inseamna ca ne vom puteam folosi de primul program de mai
sus (cel care aprindea toate punctele de pe linia cu y egal cu 1),
numai ca in blocul de insctructiuni din acel while nu vom
Facebook22
ANTERIORUL:
U R M AT O R U L :
Trackbacks
1. apasa butonul potrivit :igotopia says:
19/08/2013 at 4:07 AM