Sunteți pe pagina 1din 6

Created by Simpo PDF Creator Pro (unregistered version)

http://www.simpopdf.com
Implementarea structurilor de control

Unitatea de învăţare nr. 9

IMPLEMENTAREA STRUCTURILOR REPETITIVE (CICLICE)

Cuprins Pagina

Obiectivele unităţii de învăţare nr. 9 2

9.1 Implementarea structurilor ciclice cu test final 2

9.2 Exemple 3

9.3. Facilităţi de întrerupere a unei secvenţe 3

Test de autoevaluare 4

Lucrare de verificare – unitatea de învăţare nr. 9 4

Răspunsuri şi comentarii la întrebările din testele de autoevaluare 5

Recapitulare 6

Bibliografie – unitatea de învăţare nr. 6 6

1
Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii
Created by Simpo PDF Creator Pro (unregistered version)
http://www.simpopdf.com
Implementarea structurilor de control

OBIECTIVELE unităţii de învăţare nr. 9

Principalele obiective ale Unităţii de învăţare nr. 9 sunt:

· Înţelegerea utilizării structurilor fundamentale pe


care se bazează programarea structurată
· Familiarizarea cu utilizarea structurilor repetitive
· Recunoaşterea situațiilor când se folosește un
anumit tip de structură repetitivă
· Aplicarea cu succes a operațiilor studiate în
rezolvarea problemelor

9.1. Implementarea structurilor ciclice cu număr finit de pași

q Instrucţiunea for
În majoritatea limbajelor de programare de nivel înalt, instrucţiunea for
implementează structura ciclică cu număr cunoscut de paşi. În limbajul C instrucţiunea
for poate fi utilizată într-un mod mult mai flexibil.
Sintaxa:
for (expresie1; expresie2; expresie3)
instructiune;
Nu este obligatorie prezenţa expresiilor, ci doar a instrucţiunilor vide.

for ( ; expresie2; ) sau: for ( ; ; ) instructiune;


instructiune;

instructiune;
Instrucţiunea for poate fi înlocuită și cu instrucțiunea repetitivă cu test inițial, astfel:
expresie1;
while (expresie2) { instructiune;
expresie3; }

2
Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii
Created by Simpo PDF Creator Pro (unregistered version)
http://www.simpopdf.com
Implementarea structurilor de control

9.2. Exemple:

1. Se citeşte un număr natural n, apoi se citesc n numere reale. Aflaţi suma lor.

#include <iostream.h>
#include <conio.h>
void main(){ int n,i;
float x, s=0;
cout<<"dati n"; cin>>n;
for (i=1;i<=n;i++) {cout<<"dati x"; cin>>x; s=s+x;}
cout<<"suma este "<<s;
getch();}

2. Se citeşte un număr natural n. Calculaţi suma s=1+2+3+…+n.

#include <iostream.h>
#include <conio.h>
void main(){ int n,i;
long int s=0;
cout<<"dati n"; cin>>n;
for (i=1;i<=n;i++) s=s+i;
cout<<"suma numerelor de la 1 la "<<n<<" este "<<s;
getch();}

3. Se citeşte un număr natural n.


1 1 1
Calculaţi suma s = 1 + 2 + 2 + ... + 2 .
2 3 n

#include <iostream.h>
#include <conio.h>
void main(){ int n,i;
float s=0;
cout<<"dati n"; cin>>n;
for (i=1;i<=n;i++) s=s+ (float) 1/(i*i);
cout<<"suma este "<<s;
getch();}

9.3. FACILITĂŢI DE ÎNTRERUPERE A UNEI SECVENŢE

Pentru o mai mare flexibilitate (tratarea excepţiilor care pot apare în procesul de
prelucrare), în limbajul C se utilizează instrucţiunile break şi continue. Ambele

3
Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii
Created by Simpo PDF Creator Pro (unregistered version)
http://www.simpopdf.com
Implementarea structurilor de control

instrucţiuni sunt utilizate în instrucţiunile ciclice. În plus, instrucţiunea break poate fi


folosită în instrucţiunea switch.
q Instrucţiunea break

Se folosește pentru ieșirea forțată din instrucțiunile ciclice, dar și în cadrul


instrucțiunii switch. Fără a se mai testa valoarea expresiei (condiţia) care determină
repetarea corpului instrucţiunii ciclice, se continuă execuţia cu instructiunea care
urmează instructiunii ciclice. Astfel, se întrerupe repetarea corpului instrucţiunii ciclice,
indiferent de valoarea condiţiei de test.
În cadrul instrucţiunii switch, în situaţia în care s-a ajuns la o valoare a unei expresiei
constante egală cu cea a expresiei aritmetice, se execută instrucţiunea
corespunzătoare acelei ramuri. Dacă se întâlneşte instrucţiunea break, parcurgerea
este întreruptă (nu se mai compară valoarea expresiei aritmetice cu următoarele
constante), deci se va trece la execuţia primei instrucţiuni de după switch. Dacă nu este
întâlnit break, parcurgerea continuă. Instrucţiunea break cauzează deci, ieşirea
imediată din switch.

q Instrucţiunea continue
Întâlnirea instrucţiunii continue determină ignorarea instrucţiunilor care o urmează în
corpul instrucţiunii ciclice şi reluarea execuţiei cu testarea valorii expresiei care
determină repetarea sau nu a corpului ciclului.

Test de autoevaluare 9

1. Se citeşte un număr natural n. Aflaţi produsul


p=n!=1x2x3x…xn

2. Se citeşte un număr natural n. Afişaţi divizorii acestuia.

Lucrare de verificare la Unitatea de învăţare nr. 9


1. Se citește un număr natural, n. Aflați divizorii primi ai
acestuia:
#include <iostream.h>
#include<iostream.h>
void main( )
{ unsigned int n,i ;
for (i=2; i<=n; i++) {
prim=1;
for (k=2; k<=i/2; k++)

4
Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii

xy ==( x(+x y +)2 y ) 2


Created by Simpo PDF Creator Pro (unregistered version)
http://www.simpopdf.com
Implementarea structurilor de control

if (i%k==0) prim=0;
if (prim) cout<<i<<” ”; }
ghetch( ); }

2. Se citeşte un număr natural n. Calculaţi suma


1 1 1
s = 1+ + + ... +
2 ×3 3× 4 n × (n + 1)
#include <iostream.h>
#include <conio.h>
void main( ) { int n,i;
float s=0;
cout<<"dati n"; cin>>n;
for (i=1;i<=n;i++) s=s+ (float) 1/(i*(i+1));
cout<<"suma este "<<s;
getch( ); }
3. Să se găsească toate numerele de două cifre care satisfac
relaţia:

#include <iostream.h>
#include <math.h>
#include <conio.h>
void main( ) { int x,y;
for (x=1; x<=9; x++)
for (y=0; y<=9; y++)
if (10*x+y==pow((x+y),2))
cout<<10*x+y<<endl;
getch( ); }

Răspunsuri şi comentarii la întrebările din testele de


autoevaluare
1. #include <iostream.h>
#include <conio.h>
void main( ){ int n,i, p=1;
cout<<"dati n"; cin>>n;
for (i=1;i<=n;i++) p=p*i;
cout<<"factorial de "<<n<< “este “<<p;
getch(); }

2. #include <iostream.h>
#include <conio.h>
void main ( ) { int n,i ;

5
Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii
Created by Simpo PDF Creator Pro (unregistered version)
http://www.simpopdf.com
Implementarea structurilor de control

cout<<"dati n"; cin>>n;


cout<<"divizorii lui "<<n<< “sunt: “;
for (i=1;i<=n;i++) if (n%i==0) cout<<i<<” “;
getch( );}

Recapitulare
Instrucţiunea for implementează structura repetitivă cu număr finit
de pași
Sintaxa:
for (expresie1; expresie2; expresie3)
instructiune;
expresie1 reprezintă expresia de inițializare
expresie2 reprezintă expresia de continuare
expresie3 reprezintă expresia de reinițializare
În limbajul C / C++, întreruperea unei secvențe se realizează cu
instrucțiunile break şi continue.

Bibliografie

6
Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii

S-ar putea să vă placă și