Sunteți pe pagina 1din 5

Limbajul de programare C/C++

Structura unui program C/C++


#include <iostream> //pentru citire-scriere de la /la consola
using namespace std;
//declarari de variabile globale
//definitii functii utilizator
int main()
{ //declarari variabile locale
//instructiuni care implementeaza algoritmul de rezovare al problemei
return 0;
}

//includerea fișierelor header cu functii predefinite utilizate in program


#include <iostream> //pentru citire-scriere de la /la consola
//declararea constantelor simbolice
using namespace std;
//declarari de variabile globale
//definiții funcții utilizator
int main()
{
//declarari variabile locale
//instructiuni care implementeaza algoritmul de rezovare al problemei
return 0;
}

//.... comentariu pana la sfarsitul liniei curente


/* .... */ comentariu pe mai multe linii

Structura liniară poate conține instrucțiuni de


În limbajul C++ (exemple)
declarații int a, b=3; float c ;
scriere cout << “a=” ;
citire cin >> a ;
atribuire a=b+5;
instrucțiunea compusă Grupare de instrucțiuni cuprinse între
{}
instrucțiunea vidă conține numai simbolul ;

În cadrul expresiilor logice, pot să apară operatori relaționali


și operatori logici
operatori relaționali operatori logici
== egalitate && și logic
!= diferit ¦¦ sau logic
< mai mic ! negație logică
<= mai mic sau egal
> mai mare
>= mai mare sau egal

Tabele de adevăr
&& - și logic ¦¦ - sau logic ! – negație logică
a b a && b a b a ¦¦ b a !a
1 1 1 1 1 1 1 0
1 0 0 1 0 1 0 1
0 1 0 0 1 1
0 0 0 0 0 0
Structura alternativă
Instrucțiunea if este cea mai utilizată structură alternativă.

Forma 1(simplificată) Forma 2


if ( expresie logică ) if ( expresie logică )
Secvență instrucțiuniA Secvență instrucțiuniA
else
Secvență instrucțiuniB
Modul de execuție
Pas 1: Se evaluează Pas 1: Se evaluează
expresie logică, expresie logică,
Pas 2: dacă valoarea Pas 2: dacă valoarea expresiei
expresiei logice este logice este diferită de zero
diferită de zero (Adevărat) se execută
(Adevărat) se execută Secvență instrucțiuniA
Secvență instrucțiuniA altfel se execută
Pas 3: se continuă cu Secvență instrucțiuniB
instrucțiunea următoare Pas 3: se continuă cu
instrucțiunii alternative instrucțiunea următoare
if (se iese din if ) instrucțiunii alternative if (se
iese din if )

Structurile repetitive
Structurile repetitive, numite și cicluri sau bucle, au rolul
de a executa repetitiv o instrucțiune (sau un grup de instrucțiuni
– instrucțiune compusă) care formează corpul structurii
repetitive.
În limbajul C++ sunt următoarele structuri repetitive:
while – structură repetitivă cu număr necunoscut de pași și
test inițial
do while – structură repetitivă cu număr necunoscut de pași și
test final
for –structură repetitivă cu număr cunoscut de pași

while
Forma Modul de execuție
while(expresie) Pas 1: se evaluează expresie
{ Secvență Pas 2: ┌ dacă expresie e nenulă (adevărată)
instrucțiuni │ • Se execută Secvență instrucțiuni
} │ • Se reia de la Pas 1
└ altfel se termină (se iese) structura
repetitivă și se execută instrucțiunea
de după while

do while
Forma Modul de execuție
do Pas 1: se execută Secvență instrucțiuni
{ Secvență Pas 2: se evaluează expresie
instrucțiuni Pas 3: ┌ dacă expresie e nenulă (adevărată)
} │ Se reia de la Pas 1
while (expresie); └ altfel se termină (se iese) structura
repetitivă și se continuă cu
executarea instrucțiunii de după
while

for
Forma Modul de execuție
for (instr1; expresie; instr3) Pas 1: se execută instr1
Secvență instrucțiuni Pas 2: se evaluează expresie
Pas 3: ┌ dacă expresie e nenulă (adevărată)
│ • Se execută Secvența instrucțiuni
│ • Se execută instr3
│ • Se reia de la Pas 2
└ altfel expresie e nulă (falsă), se
termină (se iese) structura
repetitivă și se continuă
executarea instrucțiunii de după
for
Tablou unidimensional. Operații cu șiruri de valori:
citire, afişare, parcurgere
Un tablou unidimensional (numit de multe ori vector) este o mulțime de valori
(elemente) de același tip și care sunt ordonate în funcție de o poziție a lor în
cadrul acestuia, numită și indicele valorii respective. Fiecărui tablou
unidimensional i se atribuie un nume.
Numim dimensiune a unui tablou unidimensional numărul maxim de elemente
ale sale.
Indicii elementelor unui tablou unidimensional încep de la 0, iar indicele
ultimului element al tabloului are valoarea <Dimensiune> -1
Exemple:
- un tablou unidimensional cu 7 elemente are indicii de la 0 la 6;

Valoare
element 5 6 23 78 123 3 54
număr de
indice 0 1 2 3 4 5 6

Observație.
Un tablou unidimensional care are n elemente are indicii de la 0 la n-1.

Declararea unui tablou unidimensional


Sintaxa în C++ pentru declararea unui tablou unidimensional este:
Tip_date nume[dimensiune];

Exemplu:
int a[56]; //declararea unui tablou unidimensional de 56 de numere întregi
float b[10]; //declararea unui tablou unidimensional de 10 numere reale
În cadrul unei declarații se pot inițializa elementele tabloului cu diferite
valori. Sintaxa este:
Tip_date nume[dimensiune]={val_0, …, val_n-1};

Exemplu:
int v[3]={3,2,4}; //declararea unui tablou cu 3 elemente numere întregi, toate
//elementele sunt inițializate cu valori
int b[]={5,6,7}; //dimensiunea tabloului nu este precizată, compilatorul o
//determină numărând elementele din lista de valori (în acest
// caz, dimensiunea este 3)
int c[4]={1,2}; //sunt inițializate primele două valori ale elementelor tabloului,
//celelalte elemente sunt inițializate cu 0

Referirea unui element al unui tablou unidimensional


Accesarea (referirea) unui element al unui tablou unidimensional se face prin
precizarea indicelui său (a poziției sale), astfel:
nume[indice];
Parantezele pătrate [ ] sunt operatorul de indexare care are prioritate
maximă.

Exemple:
v[5] este elementul cu indicele 5 al tabloului cu numele v
v[i] este elementul cu indicele i al tabloului cu numele v

Introducerea elementelor unui șir de valori


(citirea elementelor șirului)
int v[100], n, i; //declararea variabilelor
cout<<"n="; cin>>n; //introducerea numarului de elemente din sir
for (i=0; i<=n-1; i++) //introducerea succesiva a elementelor
{ cout<<"v["<<i<<"]="; cin>>v[i];
}

int v[100], a, i=0; //declararea variabilelor


do //se executa cat timp valoarea introdusa nu este 0
{ cin>>a; //citirea valorii
if (a != 0) {v[i]=a; i++;} //daca valoarea nu este 0, se introduce in tablou
} while (a != 0);

int v[100], a=1, i=0; //declararea variabilelor


while (a != 0) //se executa cat timp valoarea introdusa nu este 0
{ cin>>a; //citirea valorii
if (a !=0) {v[i]=a; i++;} //daca valoarea nu este 0, //se introduce in tablou
}
Parcurgerea elementelor unui șir de valori
Numim parcurgerea unui tablou unidimensional accesarea/referirea
elementelor sale, unul câte unul, într-o anumită ordine dorită.
Elementele unui tablou pot fi parcurse:
1 de la stânga la dreapta, adică începând cu primul indice și terminând cu cel
mai mare indice din tablou (indicii în ordine crescătoare);
2 de la dreapta la stânga, adică începând cu cel mai mare indice și terminând
cu primul indice (indicii în ordine descrescătoare).

Parcurgere de la stânga la dreapta :


for (i=0; i<=n-1; i++)
v[i]=0;

Parcurgere de la dreapta la stânga :


for (i=n-1; i>=0; i--)
v[i]=0;

Afișarea elementelor unui șir de valori


Afișare de la stânga la dreapta
for (i=0; i<=n-1; i++)
cout<<v[i]<<" ";

Afișare de la dreapta la stânga


for (i=n-1; i>=0; i--)
cout<<v[i] ]<<" ";

Afișarea elementelor unui șir de valori transformate după


o regulă dată
Se citește un șir a de n numere întregi, unde 1 ≤ n ≤ 250.
Afișați pătratele valorilor elementelor șirului a.
Exemplu:
Intrare: n=5, 3 6 2 8 11 Ieșire: 9 36 4 64 121

#include <iostream>
using namespace std;
int main()
{ int a[250], n, i; //definirea variabilelor
cout<<"n="; cin>>n; //introducerea numărului de elemente
for (i=0; i<=n-1; i++) //citirea secvențiala a elementelor tabloului
cin>>a[i];
for (i=0; i<=n-1; i++) //afișarea secvențiala a șirului pătratelor valorilor
cout<<a[i]*a[i]<<" ";
return 0;
}

Sarcini de lucru:
Realizați proiecte în aplicația CodeBlocks pentru rezolvarea
următoarelor probleme:

Problema 1.
Se citește un șir a de n numere întregi, unde 1 ≤ n ≤ 250.
Afișați de la stânga la dreapta elementele șirului a.
Exemplu:
Intrare: n=5, 3 6 2 8 11 Ieșire: 3 6 2 8 11

#include <iostream>
using namespace std;
int main()
{ int a[250], n, i; //definirea variabilelor
cout<<"n="; cin>>n; //introducerea numărului de elemente
for (i=0; i<=n-1; i++) //citirea secvențiala a elementelor tabloului
{ cout<<"a["<<i<<"]=";
cin>>a[i];
}
for (i=0; i<=n-1; i++) //afișarea secvențiala a elementelor tabloului
cout<<a[i]<<" ";
return 0;
}
Problema 2.
Se citește un șir a de n numere întregi, unde 1 ≤ n ≤ 250.
Afișați de la dreapta la stânga elementele șirului a.
Exemplu:
Intrare: n=5, 3 6 2 8 11 Ieșire: 11 8 2 6 3

#include <iostream>
using namespace std;
int main()
{ int a[250], n, i; //definirea variabilelor
cout<<"n="; cin>>n; //introducerea numărului de elemente
for (i=n-1; i>=0; i--) //citirea secvențiala a elementelor tabloului
{ cout<<"a["<<i<<"]=";
cin>>a[i];
}
for (i=0; i<=n-1; i++) //afișarea secvențiala a elementelor tabloului
cout<<a[i]<<" ";
return 0;
}

Problema 3.
Se citește un șir a de n numere întregi, unde 1 ≤ n ≤ 250.
Afișați pătratele valorilor elementelor șirului a.
Exemplu:
Intrare: n=5, 3 6 2 8 11 Ieșire: 9 36 4 64 121

#include <iostream>
using namespace std;
int main()
{ int a[250], n, i; //definirea variabilelor
cout<<"n="; cin>>n; //introducerea numărului de elemente
for (i=0; i<=n-1; i++) //citirea secvențiala a elementelor tabloului
{ cout<<"a["<<i<<"]=";
cin>>a[i];
}
for (i=0; i<=n-1; i++) //afișarea secvențiala a șirului pătratelor valorilor
cout<<a[i]*a[i]<<" ";
return 0;
}

Exersați
TEMA pentru data viitoare:
SCRIEȚI pe caiet ENUNȚUL și rezolvarea următoarelor
probleme în limbajul de programare C++

Problema 1. Scrieți secvențele de cod pentru introducerea


valorilor unui tablou unidimensional cu n elemente numere
întregi, unde 1 ≤ n ≤ 100, utilizând structura repetitivă
condiționată anterior și apoi pe cea condiționată posterior.

Problema 2. Scrieți un program care să citească un șir de numere


naturale pozitive până la introducerea lui 0 și apoi să afișeze
elementele acestuia, de la dreapta la stânga, din 2 în 2. Șirul
poate să aibă maximum 300 de numere.
Exemplu: Intrare: 5 2 7 3 1 0 Ieșire: 1 7 5

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