Sunteți pe pagina 1din 5

10A - INFO

Structuri repetitive cu număr cunoscut de pași


16.03.2020– ora 17:00-17:50

RECAPITULARE STRUCTURA FOR


Structura repetitivă cu număr cunoscut de pași este reprezentată de instrucțiunea
FOR. În pseudocod: pentru -» în C++ for.

1. Formă generală:

for(int i = valoare de pornire; i <= valoare maximă; i = i + pasul)


{
Instrucțiunea 1
------------------
Instrucțiunea n
}

2. Mod de funcționare:
Pas 1 – Se egalează variabila i cu valoarea de pornire;
Pas 2 - Se verifică inegalitatea i <= valoare maximă;
Pas 3 – Dacă inegalitatea este adevărată se execută toate instrucțiunile dintre acolade
în ordine;
Pas 4 – După ultima instrucțiune (instrucțiunea n) se realizează i = i + pasul;
Pas 5 – Se repetă Pasul 2/3/4 până când inegalitatea devine falsă.

3. Exemplu:

X = 10; Y = 60; Z = 3; n = 3;
for(int i=0; i<=n; i++)
{
Z = Z + 2;
X = X + Z;
Y = Y – X;
}
X=?; Y=?; Z=?;
10A - INFO

Rezolvare
i=0
0<= 3 (A)
Z=3+2=5
X = 10 + 5 = 15
Y = 60 – 15 = 45
i=0+1=1

1<= 3 (A)
Z=5+2=7
X = 15 + 7 = 22
Y = 45 – 22 = 23
i=1+1=2

2<=3(A)
Z=7+2=9
X = 22 + 9 = 31
Y = 23 – 31 = -8
i=2+1=3

3<=3 (A)
Z = 9 + 2 = 11
X = 31 + 11 = 42
Y = -8 – 42 = - 50
i=3+1=4

4<=4(F)

X= 42, Y= -50, Z= 11.


10A - INFO

Exerciții:
1. Scrieți un program care să calculeze suma primelor n numere fără 0 unde
n este citit de la tastatură:
#include <iostream>
using namespace std;
int main()
{
int n, S=0; //inițializăm suma cu 0 care este elementul neutru al adunării
cout<<"n=";
cin>>n; //citim de la tastatură câte numere o să le adunăm

for(int i=1;i<=n;i++)
{
S = S + i;
}

cout << "Suma= " << S;


return 0;
}

2. Scrieți un program care să calculeze suma primelor n numere pare fără


0 unde n este citit de la tastatură:
Ex n=10 S = 2 + 4 + 6 + 8 + 10 + 12 + 14 + 16 + 18 + 20

#include <iostream>
using namespace std;
int main()
{
int n, S=0; //inițializăm suma cu 0 care este elementul neutru al adunării
cout<<"n=";
cin>>n; //citim de la tastatură câte numere o să le adunăm
for(int i=2;i<=2*n;i=i+2) // ATENȚIE i<=2*n
{
S = S + i;
}
10A - INFO

cout << "Suma= " << S;


return 0;
}

3. Scrieți un program care să determine câți divizori are un număr citit de


la tastatură

#include <iostream>
using namespace std;

int main()
{
int n, d=2; //d = 2 pt că toate numerele au cel puțin 2 divizori
cout<<"n= "; // plecăm din 2 și până la jumătatea numărului
cin>>n;
for(int i=2; i<=n / 2; i++) //Atenție i<=n / 2;
{
if(n % i == 0)
{
d++;
}
}
cout << "Numarul "<<n<<" are " << d << " divizori ";
return 0;
}
10A - INFO

4. Scrieți un program care să determine dacă un număr citit de la tastatură


este prim sau nu:

#include <iostream>
#include <math.h> //Se include ca sa se poata folosi radicalul
using namespace std;
int main()
{
int n;
bool prim = true; // variabila de tip logic poate fi doar TRUE sau FALSE
cout<<"Numarul este: ";
cin>>n;
for(int i=2; i<=sqrt(n); i++) //Atentie i<=sqrt(n) ->sqrt(n)= radical din n
{
if(n%i==0)
{
prim=false;
break; // Sparge instructiunea repetitiva
}
}
if(prim==true)
{
cout<<"Numarul "<<n<<" este prim";
}
else
{
cout<<"Numarul "<<n<<" NU este prim";
}

return 0;
}

Temă
- De instalat Code Blocks pe calculatoarele voastre
Tutorial de instalare: https://www.youtube.com/watch?v=3nr76AbgAlA

- De transcris programele in Code Blocks

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