Algoritmi legati de utilizarea instructiunilor While si Do...While

 

Cuprins:

 

Instrucţiunea While

este o structură ciclică cu test iniţial

Sintaxa:

while(<expresie>)
instr1;

La întâlnirea acestei instrucţiuni, se evaluează expresie. Dacă aceasta are valoarea TRUE (diferită de ZERO), se execută instrucţiunea instr1. Se reevaluează valoarea expresie-i. Dacă ea este tot 1, se repetă instrucţiune, etc. Astfel, instrucţiunea (corpul ciclului) se repetă atât timp cât expresie are valoarea de adevăr TRUE.
În momentul în care <expresie> are  valoarea de adevăr FALSE (egală cu ZERO), se iese din ciclu şi se trece la următoarea instrucţiune din afara buclei while.
În cazul în care la prima evaluare a expresiei, aceasta are valoarea de adevăr FALSE, corpul instrucţiunii whilenu va fi executat niciodată.
instr1 din corpul ciclului while poate fi compusă (un bloc).

Instrucţiunea/instrucţiunile din corpul ciclului while trebuie să modifice valoarea expresiei, altfel va fi un „ciclu infinit”.

 

whileCitTast

rezWhileCitTast

 

whileCitFis

 

 

whileCitFis.in

3 -5 2 4 2

rezWhileCitFis

 

whileCifNum

rezWhileCifNum

 

 

Up Home Structura Site Algoritmi elementari

 

 

Instrucţiunea Do...While

Sintaxa:

do  instr1;
while(<expresie>)

 

Funcţionarea:

            Se execută instrucţiunea instr1 sau blocul de instrucţiuni. Se evaluează apoi <expresie>. Dacă aceasta are valoarea TRUE, se execută din nou instr1, altfel se iese din buclă. Se testează din nou valoarea expresiei. Se repetă execuţia  instrucţiunii instr1 atâta cât timp valoarea expresiei este TRUE. În cazul instrucţiunii do while, corpul ciclului se execută cel puţin o dată.

 

whileDoWhile

rezWhileDoWhile

 

 

instrucţiunea Break

forţează ieşirea din interiorul unei bucle, fără a se mai ţine seama de condiţia de menţinere în buclă. Instrucţiunile situate în corpul buclei după instrucţiunea break nu vor mai fi executate.

 

instrucţiunea Continue

duce la ignorarea instrucţiunilor din buclă, situate după aceasta, şi testarea din nou a expresiei de menţinere în buclă. În cazul buclelor for, se realizează şi evaluarea celei de a treia expresii , responsabilă cu incrementarea contorilor.

 

 

 

 

Scheme uzuale de rezolvare


scheme rezolvare



Suma condiţionată


Suma Conditionta



Schema generală de lucru cu cifrele unui număr


Lucrul cu cifrele unui numar



EXEMPLE DE ALGORITMI

 

A. Algoritmul lui Euclid cu scaderi repetate

whileEuclidScaderi

rezWhileEuclidScader

O variantă on-line poate fi experimentată la euclidScaderi sau la euclidScaderi

 

Up Home Structura Site Algoritmi elementari

 

B. Algoritmul lui Euclid cu impartiri repetate

whileEuclidImpartiri

rezWhileEuclidImpartiri

O variantă on-line poate fi experimentată la euclidImpartiri sau la euclidImpartiri

Up Home Structura Site Algoritmi elementari

 

C. Constructii numar din cifrele constituente

 

whilem1m2

rezWhilem1m2

O variantă on-line poate fi experimentată la xxx sau la whilem1m2

 

Up Home Structura Site Algoritmi elementari

 

 

D. Palindrom

 

whilePalindrom

rezWhilePalindrom1

rezWhilePalindrom1

O variantă on-line poate fi experimentată la whilePalindrom sau la WhilePalindrom

 

Echivalenta FOR While

Echiv IF While.png

Rez Echiv IF While.png

O variantă on-line poate fi experimentată la xxx sau la Echiv IF While

 

REZ Echiv IF While.png

Up Home Structura Site Algoritmi elementari

 

 

 

 

PROBLEME PROPUSE

  1. Se citesc de la tastatură numere întregi, până când se introduce numărul zero. Să se afişeze numărul de valori citite, media aritmetică a valorilor care nu sunt divizibile cu 3, valoarea minima citită şi al câtelea număr introdus are această valoare (dacă mai multe dintre numerele introduse aveau această valoare, se afişează numărul de ordine al primei apariţii)
  2. Aplicând faptul că n%10 reprezintă ultima cifră a unui număr natural n, iar operaţia n=n/10 realizează “scurtarea” cu o cifră a lui n, să se afişeze pe monitor cifrele constitutive ale unui număr natural n, introdus de la tastatură
  3. Se citeşte de la tastatură un număr natural n.  Să se afişeze suma cifrelor lui n care sunt divizibile cu 3
  4. De câte ori apare o cifră c în numărul n?

 

Up Home Structura Site Algoritmi elementari