Instructiunea do while, instructiunea for

Exista trei instructiuni (structuri) repetitive folosite in toate limbajele:

  • instructiunea repetitiva cu test initial CAT TIMP (WHILE) (se foloseste cand numarul de repetitii este nedefinit)
  • instructiunea repetitiva cu test final REPETA-PANA CAND (DO WHILE sau REPEAT) (se foloseste cand numarul de repetitii este nedefinit)
  • instructiunea repetitiva cu un numar cunoscut de pasi PENTRU (FOR) (se foloseste cand numarul de repetitii este cunoscut – un numar fix de ori.)

Instructiunea DO – WHILE

Sintaxa: do { instructiuni} while (conditie) ;

Efect:

  1. se executa secventa de instructiuni
  2. se evalueaza conditia
  3. daca valoarea conditiei este adevarata se revine la pasul 1
  4. daca valoarea conditiei este falsa se continua cu instructiunea de dupa punct si virgula

Observatii:

  • do-while se mai numeste instructiune cu test final sau conditionata posterior
  • observati ca intai se executa secventa de instructiuni (macar o data) si apoi se testeaza
  • succesiunea de operatii este instructiune, test, instructiune, test, ….. test, instructiune, test.

Exemplu:

O problema la care putem folosi DO-WHILE este prelucrarea cifrelor unui numar natural/intreg. Cifrele vor fi prelucrate pe rand, de la sfarsitul numarului catre inceput, de fiecare data taind ultima cifra (deja prelucrata). Algoritmul se reia pana cand nu mai sunt cifre in numar, adica valoarea N ajunge la valoarea zero.

Sesizati ca orice numar are o ultima cifra, motiv pentru care intai prelucrez  si tai , si apoi verific daca mai sunt cifre de prelucrat.

Scheletul algoritmului ar fi:

cin>>n;
do { //prelucrarea ultimei cifre
      ..............;
      // tai ultima cifra
     n=n/10;
    } while (n!=0);

Observatii: puteti determina intai ultima cifra (int uc=n%10; )  si apoi sa prelucrati variabila uc

Probleme. fie N un numar natural.

  1. Cate cifre are N?
  2. Care este suma cifrelor lui N?
  3. Care este cea mai mare cifra din numar? (valoarea maxima). Analog minima.
  4. Sa se determine prima cifra a numarului N.
  5. De cate ori apare o cifra data C, in numarul N?
  6. Sa se genereze “oglinditul” numarului N. (daca N=1987 atunci oglinditul va fi 7891)
  7. Folosind problema de mai sus, stabiliti daca numarul N este palindrom.

 

Instructiunea FOR

14FEB

Exista trei instructiuni (structuri) repetitive folosite in toate limbajele:

  • instructiunea repetitiva cu test initial CAT TIMP (WHILE) (se foloseste cand numarul de repetitii este nedefinit)
  • instructiunea repetitiva cu test final REPETA-PANA CAND (DO WHILE sau REPEAT) (se foloseste cand numarul de repetitii este nedefinit)
  • instructiunea repetitiva cu un numar cunoscut de pasi PENTRU (FOR) (se foloseste cand numarul de repetitii este cunoscut – un numar fix de ori.)

Sintaxa:

  • FOR(initializare; test final; pasul urmator) instructiune;
  • for (i=A; i<=B; i++) {secventa de repetat}
  • for (i=1; i<=n; i++) {secventa de repetat}

Efect:

  • pentru fiecare valoare a contorului i intre expresia initiala si expresia finala se executa instructiunea;

Exemplufor (i=1; i<=n; i++) cout<<” Nu ma prinzi!”;

  • pentru fiecare valoarea a variabilei i, de la 1 la N, se afiseaza ” Nu ma prinzi!”; de N ori
  • daca secventa ce trebuie repetata contine mai multe instructiuni, acestea se vor grupa cu acolade

Observatii:

  • instructiunea este “ceruta” daca descrierea algorimului spune “de la valoarea X la valoarea Y”, “pentru primele X valori”, “de X ori” etc.
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s