Jump to content

[C++]Structurile repetitive


AIM Katzuno Valoare
 Share

Recommended Posts

Nivel: Incepator

 

Daca, intr-un algoritm, se repeta o secventa de operatii atunci trebuie utilizata o structura repetitiva.

 

Structurile repetitive se impart in trei categorii:

1) Structuri repetitive cu numar cunoscut de pasi sau cu contor: for

2) Structuri repetitive cu test initial, numite si structuri repetitive cu conditie: while

3) Structuri repetitive cu test final: do...while

Pe parcursul acestui tutorial voi explica fiecare structura repetitiva in parte, intr-un mod cat mai usor de inteles.

 

1) Structuri repetitive cu numar cunoscut de pasi: for

Functia "for" are mai multe utilizari, cel mai des in parcurgere si citire.(unii ar putea grupa doar in parcurgere, dar eu cred ca este mai usor de inteles grupandu-le separat)

Structura:

 

for (expresie1;expresie2;expresie3)

 

expresie1 este initializarea variabilei de tip contor

expresia2 este limita pana cand se va executa expresia 3 sau mai usor spus, conditia de continuare.

expresia3 este modificare contorului, cum se schimba acesta dupa fiecare executare.

 

EXEMPLU:

 

for (i=1;i<=n;i++)//unde n este un numar citit de la tastatura

-In acest caz contorul nostru este i

- i=1 este expresia1, initializarea variabilei de tip contor.

- i<=n este expresia2, anume conditia de continuare. In cazul nostru contorul i va creste pana acesta va ajunge egal cu n

- i++ este expresia3, anume modificarea contorului, dupa fiecare executare i-ul se va incrementa, crescand din 1 in 1

 

EXEMPLU PROBLEMA CARE FOLOSESTE STRUCTURA REPETITIVA FOR:

-Sa se citeasca si sa se afiseze un vector:

#include <iostream>

using namespace std;
 
int main()  {
int v[101], n, i;
cout<<"Numarul de elemente ale vectorului: ";
cin>>n;
for (i=1;i<=n;i++)  
cin>>v[i];
for (i=1;i<=n;i++)
cout<<"v[i]"<<" \t";  //\t este echivalentul TAB-ului
}

Pentru a executa mai multe secvente in for, se folosesc parantezele acolade, { }

EXEMPLU: Citirea unui vector cu afisarea "V[1]=", "V[2]="..."V[n]="

for (i=1;i<=n;i++) {
cout<<"v["<<i<<"]=";
cin>>v[i];
}
2) Structuri repetitive cu test initial, numite si structuri repetitive cu conditie: while
 
In cazul in care o secventa de operatii se repeta cat timp este indeplinita o conditie, atunci se foloseste structura repetitive cu test initial, while.
OBSERVATII: Evaluarea conditiei precede executarea secventei de operatii.
 
Structura pseudocod:
 
cat timp(conditie)
executa secventa de operatii;
 
STRUCTURA C++:

while(conditie)
Secventa de operatii;

EXEMPLU:

while (n!=0)
n=n/10;

In cazul acesta (n!=0) este conditia iar n=n/10 este secventa de operatii executata. La fel ca la for, cand se executa mai multe secvente de operatii se folosesc parantezele acolade { }.
EXEMPLU:
while (n!=0) {
c=n%10;
n=n/10;
}
EXEMPLU PROBLEMA CARE FOLOSESTE STRUCTURA REPETITIVA WHILE:
-Sa se determine cifrele unui numar n citit de la tastatura, afisandu-se de la coada la cap.
 

#include <iostream>
using namespace std;
 
int main() {
int n, c;
cout << "Numarul n=";
cin >> n;
while (n != 0) {
c = n % 10;
n = n / 10;
cout << c << "\t"; 
}
return 0;
}

 
Vom lua un exemplu ca sa intelegeti ce face acest algoritm inainte de al compila:
Daca n=5678 atunci se va afisa 8  7  6  5.
 
3) Structuri repetitive cu test final: do...while
In cazul in care o secventa de operatii se repeta PANA CAND este indeplinita o conditie, atunci se foloseste structura repetitive do...while.
 
OBSERVATII:
-Evaluarea conditei se face dupa executia secventei de operatii si determina repetarea secventei sau iesirea din structură.
-Se foloseste cand numarul de repetitii este nedefinit.
-Intai se executa secventa de instructiuni (cel putin o data) si apoi se testeaza
-Daca valoarea conditiei este adevarata se revina la pasul 1
-Daca valoarea conditiei este falsa se continua algoritmul cu instructiune urmatoare(de dupa punct si virgula "  ;  ")
 
STRUCTURA:
do {
Secventa de operatii;
} while(conditie);
 
EXEMPLU:

do
{c=a%10;
a=a/10;
}while(a!=0)
Determina cfirele numarului a.
 
OBSERVATII: Unele structuri repetitive cu test final do...while se pot transforma usor in structuri repetitive cu test initial de tip while.
 
EXEMPLU PROBLEMA CARE FOLOSESTE STRUCTURA REPETITIVA DO...WHILE:

#include<iostream>
using namespace std;
 
int main()  {
int n, min = 9, c;//am initializat min cu 9, deoarece nu exista CIFRA mai mare decat 9
cout << "n=";
cin >> n;
do  {
c = n % 10;
if (c < min)
min = c;//CEL DIN STANGA IA VALOAREA CELUI DIN DREAPTA
n = n / 10;
} while (n != 0);
cout << "Cifra minima a numarului este: "<<min<<endl;
return 0;
}

Daca aveti intrebari, nelamuriri sau ati sesizat greseli ortografice va rog sa le puneti, adaugand un reply la acest topic, iar eu voi raspunde / voi corecta.

EDIT: SCUZATI FUNDALUL PE CARE A IESIT, DAR AM UITAT SA INCHID UN

 SI TOT SCRISUL A FOST CITIT DREPT COD, IAR ACUM NU MAI POT MODIFICA.
Edited by pH Katzuno
Link to comment
Share on other sites

Pentru activitatea din aceasta categorie iti ofer un +! Te asteptam cu alte topicuri. Poate cine stie, te vei alatura staffului intr-o buna zi.

Edited by Blaze
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.