structuri repetitive (1)

20
Structuri repetitive O structura repetitiva este o secventa de cod ce permite realizarea repetata a aceleiasi operatii de un anumit numar de ori. O structura repetitiva este definita de 2 elemente: operatia care este executata si conditia de oprire a executiei. O structura repetitiva reprezinta o bucla de operatii.Numarul finit de repetari(sau iteratii) este asigurat de prezenta unei conditii.Aceasta conditie trebuie sa contina cel putin un element variabil care va fi

Upload: lenutza-ionascu

Post on 07-Dec-2014

137 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: Structuri Repetitive (1)

Structuri repetitive

O structura repetitiva este o secventa de cod ce permite realizarea repetata a aceleiasi operatii de un anumit numar de ori. O structura repetitiva este definita de 2 elemente: operatia care este executata si conditia de oprire a executiei.

O structura repetitiva reprezinta o bucla de operatii.Numarul finit de repetari(sau iteratii) este asigurat de prezenta unei conditii.Aceasta conditie trebuie sa contina cel putin un element variabil care va fi modificat de blocul de operatii, asigurandu-se astfel iesirea din bucla.

Aceste structuri repetitive pot fi de mai multe feluri:

Page 2: Structuri Repetitive (1)

I. Structuri repetitive cu un numar necunoscut de pasi conditionata anterior

II. Structuri repetitive cu un numar necunoscut de pasi conditionata posterior

III. Structuri repetitive cu numar cunoscut de pasi

Page 3: Structuri Repetitive (1)
Page 4: Structuri Repetitive (1)

I. Structuri repetitive cu un numare necunoscut de pasi conditionata anterior

A1)Prezentare:

cat timp conditie bloc secventa de operatii sfarsit blocsfarsit cat timp

Pasul 1:Se testeaza conditia.Daca este indeplinita conditia, se continua cu pasul 2, daca nu, se iese din bucla si se continua algoritmul cu prima operatie a structurii urmatoare.

Page 5: Structuri Repetitive (1)

Pasul 2:Se executa operatia sau blocul de operatii din care este formata structura repetitiva si se reia pasul 1.

A2)Reprezentare:

Page 6: Structuri Repetitive (1)

Deoarece verificarea conditiei precede executia blocului de operatii, daca prima nota introdusa este 11, blocul de operatii nu se executa niciodata, n ramanand 0.Pentru a nu executa o impartire la 0, se testeaza valoarea lui n inainte de a calcula media.

Page 7: Structuri Repetitive (1)

II. Structuri repetitive cu un numar necunoscut de pasi conditionata posterior

Reprezentarea algoritmului:repeta secventa de operatiipana cand conditie

Exemplu:Calcularea mediei Inceput s←0 n←0citeste notarepeta n←n+1 s←s+nota citeste notapana cand nota=11m←s/nafiseaza msfarsit Se tasteaza urmatoarele note:9, 8.50, 8.66, 10, 7, 11

Page 8: Structuri Repetitive (1)

Mecanismul de functionare:Pasul 1:Se executa operatia sau blocul de operatii din care este formata structura repetitiva.Pasul 2:Se testeaza conditia.Daca este indeplinita conditia, se iese din bucla si se continua cu prima operatie a urmatoarei structuri.Daca nu, se reia Pasul 1.

Page 9: Structuri Repetitive (1)

III. Structuri repetitive cu numar cunoscut de pasi

Pentru a numara de cate ori trebuie repetata o operatie sau un bloc de operatii, e nevoie de o variabila numita contor.Contorul, functioneaza pe principiul inregistrarii prin numarare al executiei blocului de operatii.Numaratoarea creste de la o valoare initiala si creste cu un pas de crestere pana la valoarea finala.Pasul de crestere are implicit valoarea unu.

1) Reprezentare:

pentru contor, executa bloc secventa de operatii sfarsit blocsfarsit pentru

Page 10: Structuri Repetitive (1)

Mecanismul de functionare:Pasul 1:Se atribuie contorului valoarea initiala.Pasul 2:Se testeaza daca valoarea contorului este mai mica sau egala cu valoarea finala.Daca da, se continua cu Pasul 3, daca nu se continua cu prima operatie din structura ce urmeaza structurii repetitive.Pasul 3: Se executa operatia sau blocul de operatii din care este formata structura repetitiva.Pasul 4:Se mareste contorul cu Pasul 1 si se reia Pasul 2.

Probleme rezolvate:

Page 11: Structuri Repetitive (1)

1. Se citeste un numar n, iar apoi se citesc n numere. Sa se zica daca exista macar un numar care sa aiba exact 3 cifre de 0

#include<iostream.h>

exact3nenule(int numar){int c_nenule=0;while(numar > 0){if((numar % 10)>0)c_nenule = c_nenule + 1;numar = numar / 10;}return c_nenule;}

main(){int n, numar, i=1;bool exista = false;cout<<"Introduceti numarul de valori pe care le veti introduce: ";cin>>n;while(i<=n){cout<<"Introduceti un numar: ";cin>>numar;if(exact3nenule(numar)==3)exista = true;i=i+1;}if(exista == true)cout<<"Exista un numar cu exact 3 cifre nenule!";else cout<<"Nu exista un numar cu exact 3 cifre nenule!";getch();}2. Se citeste un numar. Sa se calculeze suma cifrelor acestuia pana cand ajunge o singura cifra.

Code:

#include<iostream.h>#include<conio.h>

suma_cifre(long numar){int suma=0;while(numar > 0){suma = suma + numar % 10;numar = numar / 10;}return suma;}

main(){long numar;cout<<"Introduceti un numar natural: ";cin>>numar;while (numar > 9){

Page 12: Structuri Repetitive (1)

numar = suma_cifre(numar);}cout<<"Cifra de control este "<<numar;getch();}

3.Se introduce un numar. Sa se afiseze cifra minima si cifra maxima prezente in numar.

Code:

#include<iostream.h>#include<conio.h>

main(){long numar, minim=9, maxim=0, cifra;cout<<"Introduceti un numar: ";cin>>numar;do{if(numar == 0){goto end;}cifra = numar % 10;if (cifra > maxim){maxim = cifra;}if(cifra < minim){minim = cifra;}numar = numar / 10;} while (1);end:cout<<"Cifra maxima este "<<maxim<<" iar cea minima este "<<minim;getch();}

Page 13: Structuri Repetitive (1)

4.Se introduc 2 numere, a si b si un numar k. Sa se spuna daca fractia a/b poate fi simplificat prin k.

Code:

#include<iostream.h>#include<conio.h>main(){int a,b,k;cout<<"Introduceti primul numar: ";cin>>a;cout<<"Introduceti al doilea numar: ";cin>>b;cout<<"Introduceti numarul cu care doriti sa vedeti daca se simplifica fractia : ";cin>>k;if(a%k == 0 && b%k==0){cout<<"Fractia se poate simplifica prin numarul "<<k;}else{cout<<"Fractia nu se poate simplifica prin numarul "<<k;}getch();}

5.Se introduce un numar n, iar apoi se citesc n numere de la tastatura. Sa se afiseze valoare minima si cea maxima citita.

Code:

#include<iostream.h>#include<conio.h>

max(int numar, int max){if(numar>max)max=numar;return max;}

min(int numar, int min){if(numar < min)min=numar;return min;}

main(){unsigned int n, numar, maxim=0, minim,i=1;cout<<"Introduceti numarul de valori ce vor fi citite : ";cin>>n;while(i<=n){cout<<"Introduceti un numar: ";cin>>numar;maxim = max(numar, maxim);if(i==1)minim=maxim;

Page 14: Structuri Repetitive (1)

minim = min(numar, minim);i++;}cout<<"Numarul maxim introdus este "<<maxim<<endl;cout<<"Numarul minim introdus este "<<minim<<endl;getch();}

6.Se introduce un numar. Sa se afiseze rasturnatul acestuia.

Code:

#include<iostream.h>#include<conio.h>main(){unsigned long numar, numar2=0;int cifra;cout<<"introduceti un numar: ";cin>>numar;while(numar>0){cifra = numar % 10;numar2 = numar2 * 10 + cifra;numar = numar / 10;}cout<<numar2;getch();}

7.Se introduce un numar. Sa se afiseze daca e sau nu palindrom (numarul este egal cu rasturnatul lui).

Code:

#include<iostream.h>#include<conio.h>

main(){long numar, numar_invers, numar_salvat;cout<<"Introduceti un numar: ";cin>>numar;numar_salvat = numar;while(numar>0){numar_invers = numar_invers * 10 + numar % 10;numar = numar / 10;}

Page 15: Structuri Repetitive (1)

if(numar_salvat==numar_invers){cout<<"Numarul este palidrom!";}elsecout<<"Numarul nu este palidrom!";getch();}

8. Se introduc 2 numere. Sa se afiseze produsul acestora.

Code:

#include<iostream.h>#include<conio.h>main(){int a, b;long produs;cout<<"Introduceti primul numar: ";cin>>a;cout<<"Introduceti al doilea numar: ";cin>>b;produs = a * b;cout<<"Produsul lor este: "<<produs;getch();}

Page 16: Structuri Repetitive (1)

Aplicatii:

1. Sa se determine suma primelor 10 numere naturale 2. Sa se determine suma primelor 100 numere

naturale 3. Sa se determine suma primelor n numere naturale 4. Sa se determine suma primelor n numere pare 5. Sa se determine suma primelor n numere impare 6. Sa se determine suma patratelor primelor n numere 7. Sa se determine suma cuburilor primelor n numere 8. Sa se determine produsul primelor n numere

naturale 9. Sa se calculeze media aritmetica a n numere 10. Sa se calculeze suma inverselor primelor n

numere naturale