Search Header Logo
Instructiunea do-while in C++

Instructiunea do-while in C++

Assessment

Presentation

Computers

9th Grade

Practice Problem

Hard

Created by

Laurentiu Lambrinoc

Used 4+ times

FREE Resource

7 Slides • 5 Questions

1

Instructiunea do-while in C++

Slide image

2

Sintaxa

do

{

<intructiune 1>

<intructiune 2>

...

<intructiune n>

}

while(<conditie>);


Instructiunile 1...n sunt executate una dupa alta. Apoi se trece la verificarea conditiei. Daca aceasta este adevarata, se reia executarea intructiunilor.

3

Multiple Choice

Alege varianta corecta!

1

do

i=i+1;

cout<<i;

while (i<=10);

2

do

{

i=i+1;

cout<<i;

}

while (i<=10)

3

do

{

i=i+1;

cout<<i;

}

while (i<=10);

4

do

{

i=i+1;

cout<<i;

}

while i<=10;

4

Sa analizam secventa:

...

int n = 10;

do

{

cout << n << ',';

n=n-1;

}

while (n>0) ;

...

Variabila n este initializata cu valoarea 10. Se executa intstructiunile cout<<n<<' ,'; respectiv n=n-1; in urma carora se afiseaza 10, iar n devine 9. Se trece la evaluarea conditiei n>0, care este adevarata si se reia executarea instructiunilor. La pasul urmator se va afisa 9, iar n va deveni 8. Conditia este true si se reia, in mod repetat, afisandu-se 8, 7, 6, 5, 4, 3, 2, 1. Dupa afisarea valorii 1, n va deveni 0, iar conditia n>0 este falsa, deci nu se mai reia executarea instructiunilor de mai sus.

5

Multiple Choice

Câte atribuiri se execută în secvența de mai jos, dacă n şi p sunt variabile de tip întreg?


n=279;

do

{

n=n-100;

}

while (n>=100);

1

1

2

2

3

0

4

3

6

Multiple Choice

Care varianta reprezinta transcrierea in C++ a algorimtului de mai jos?


citește a

repeta

scrie a;

a=a-2;

pana cand a<=1

1

cin>>a;

do{

cout<<a;

a=a-2; }

while(a>1);

2

cin>>a;

do{

cout<<a;

a=a-2; }

while(a<=1);

3

cin>>a;

do{

cout<<a;

a=a-2; }

until(a>1);

4

cin>>a;

repeat{

cout<<a;

a=a-2; }

while(a>1);

7

Algoritmul lui Euclid

Scris in conditionare posterioara, aceasta are urmatoarea forma:

...

do

{

r=a%b;

a=b;

b=r;

}

while(r!=0);

cout<<b;

...

Se observa ca algoritmul ruleaza pana cand variabila r, ce retine restul impartirii celor 2 numere, devine 0, spre deosebire de varianta cu condtionare anterioara, in care atat b, cat si r, retineau la final valoarea cmmdc-ului.

8

Suma cifrelor unui numar

Scris in conditionare posterioara, aceasta are urmatoarea forma:

...

cin>>n;

s=0;

do

{

s=s+n%10;

n=n/10;

}

while(n>0);

cout<<s;

...

Observam ca instructiunile care formeaza algoritmul sunt identice, mai putin instructiunea repetitiva.

9

Contraexemplu

Sa analizam exemplul urmator!

cin>>n;

i=1;

s=0;

do

{

s=s+i;

i=i+1;

}

while(i<=n);


Ce determina algoritmul, pentru cazul general?


Ce se intampla daca pentru n se citeste o valoare negativa?

10

Multiple Choice

Cu ce inlocuim punctele de suspensie in secventa de mai jos pentru a obtine suma divizorilor proprii ai variabilei n?

cin>>n;

i=2;

s=0;

do

{

if(...) s=s+i;

i=i+1;

}

while(i<n);

1

i % n == 0

2

n % i == 0

3

n / i = 0

4

n % i = 0

11

Concluzii

Instructiunea do-while este echivalenta cu instructiunea while.


Este necesar sa observam, insa, ca setul de instructiuni se executa cel putin o data, inainte de a se verifica conditia de continuare, ceea ce poate crea anumite rezultate distorsionate.


Instructiunea do-while, desi are conditie finala, nu este echivalenta structurii repeta-pana cand, folosita in pseudocod, expresiile conditionale fiind complementare. Do-while reia executia daca conditia este adevarata, repeta-pana cand opreste executia cand aceasta este adevarata.

12

Fill in the Blank

Analizati secventa de program de mai jos si precizati ce va afisa daca pentru n am introduce valoarea 554361!

...

s=0;

cin>>n;

do

{

c=n%10;

if(c%2==0) s=s+c;

n=n/10;

}

while(n!=0);

cout<<s;

...

Instructiunea do-while in C++

Slide image

Show answer

Auto Play

Slide 1 / 12

SLIDE