info cls a9a-pe scurt
TRANSCRIPT
[size="4"]Introducerea in limbajul C++[/size]
In limbajul C++ lucram cu mai multe tipuri de date:
1. Date de tip int (numere intregi, ca de ex. -5, -3, 1, 2, 3, 25, 665, 12345)
2. Date de tip unsigned int (numere intregi fara semn inainte, asadar naturale)
3. Date de tip float (numere reale cu maxim 4 cifre dupa virgula, ca de ex. -5.2 , -3.5, 1.2, 52.6, 32.423, -234.4)
4. Date de tip unsigned float (numere reale cu maxim 4 cifre dupa virgula si fara semn inainte, asadar naturale)
5. Date de tip double (numere reale cu maxim 15 cifre dupa virgula, de ex, 251.241251251261, -123.4215166272)
Obs: double se foloseste intotdeauna singur... nu exista unsigned double, float double etc...
6. Date de tip short sau long:
-Ambele se folosesc deobicei cu signed si unsigned pentru a avea urmatoarele valori:
signed short: Valori intre -32767 si 32767
unsigned short: Valori intre 0 si 65535
signed long: Valori intre -2147483647 si 2147483647
7. Date de tip char (siruri de caractere, ca de ex. "Studiez informatica", "I got a viruS")
Obs: Sirurile pot avea intre 0 si 255 de caractere.
Operatorii limbajului C++
I. Operatori aritmetici
II. Operatori relationali
III. Operatori logici.
Si vor mai veni si alti mai tarziu pe parcursul acestui tutorial.
[size="4"]I. Operatori aritmetici [/size]
1. Operatorul adunare, +
int a=5,b=7;
a+b asadar 5+7;
2. Operatorul diferenta, -
int a=5;
float d=3.34;
a-d asadar 5-3.34;
3. Operatorul inmultire, *
int a=5,b=7,c=3;
a*b*c asadar 5*7*3;
4. Operatorul impartire, /
int a=5,c=3;
float b=7;
a/c asadar 5/3=1 De ce 1 si nu 1.6666? Deoarece a si c sunt variabile de tip intreg (adica numere naturale)
b/c asadar 7/3=2.3333 Aici avem o variabila float si o variabila int, asadar rezultatul va fi cu virgula.
5. Operatorul pentru restul impartirii a doua numere intregi, %
int x=11,z=3;
x%z asadar 11%3=2 3 merge in 11 de 3 ori... si ramane rest 2.
[size="4"]II. Operatori relationali
[/size]
-Sunt folositi pentru a stabili daca relatia intre doua variabile este adevarata
1. Operatorul egalitate, ==
int a=7,b=2;
(a==b)=0 Asadar fals!
2. Operatorul diferit, !
int a=7,b=2;
(a!=b)=1 Asadar adevarat! (a este diferit de b)
3. Operatorul mai mare, >
int a=7,b=2;
a>b =1 Asadar adevarat!
4. Operatorul mai mare sau egal, >=
int a=7,b=2,c=2
a>=b =1
b>=c =1 Ambele sunt adevarate.
5. Operatorul mai mic, <
int a=7,b=2;
a<b =0 Fals.
6. Operatorul mai mic sau egal, <=
int a=7,b=2,c=2;
a<=b =1
c<=b =1 Ambele sunt adevarate.
Haideti sa va arat cateva exemple de exercitii cu operatorii relationali:
A.Code: (Select All)int a=2,b=5,c=3,d=0;
(a!=b)>=(d==c)
a este diferit de b, asadar 1; iar d nu este egal cu c, asadar 0
1>=0
Rezultat final 1, relatia de mai sus este adevarata;
B.Code: (Select All)int a=1,b=2,c=1,d=3;
(a!=c)>((d-b)<=c)
a nu este diferit de c, asadar 0; iar d-b, 3-2 este mai mic sau egal cu c , asadar 1
0>1
Rezultat final 0, relatia de mai sus este falsa;
[size="4"]
III. Operatori logici[/size]
-au valoarea logica doar 0 sau 1, in functie de valoarea de adevar.
1. Operatorul de negatie NOT, !
a | !a
1 | 0 Diferitul lui a=1, este 0.
0 | 1 Diferitul lui a=0, este 1.
2. Operatorul SI sau AND, &&
a | b | a&&b
1 | 1 | 1
0 | 0 | 0
1 | 0 | 0
0 | 1 | 0
a=1 SI b=1 rezulta valoarea de adevar 1
a=0 SI b=0 rezulta valoarea de fals, 0 (offtopic: rezulta valoarea de fals... suna aiurea, e corect macar?)
a=1 SI b=0 rezulta valoarea de fals, 0
a=0 SI b=1 rezulta valoarea de fals, 0
3. Operatorul SAU sau OR, ||
a | b | a||b
1 | 1 | 1
0 | 0 | 0
1 | 0 | 1
0 | 1 | 1
a=1 SI b=1 rezulta valoarea de adevar 1.
a=0 SI b=0 rezulta valoarea de fals 0.
a=1 SI b=0 rezulta valoarea de adevar 1.
a=0 SI b=1 rezulta valoarea de adevar 1.
[size="4"]Structura programelor[/size]
Code: (Select All)#include<iostream.h> //Am folosit comanda #include , pt a include baza de date iostream.h
void main() {
//Partea de declarat a variabilelor
//Opratiile cu variabilele respective
}
Partea de declarat a variabilelor:
Code: (Select All)int a=3,b,c;
float d;
Partea de citire a variabilelor:
Code: (Select All)
int n;
cout<<"Mesajul in care dau o valoare variabilei n de la tastatura:" cin>>n;
Operatiile cu variabilele respective si partea de afisare a rezultatelor finale:
Code: (Select All)int rezultat
a+b+c+d=rezultat;
cout<<"Rezultatul final al sumei celor 4 variabile este:"<<rezultat<<endl;
Ce am scris mai sus se mai poate scrie si asa:
cout<<"Rezultatul final al sumei celor 4 variabile este:"<<a+b+c+d<<endl;
Code: (Select All)#include<iostream.h>
void main()
{
int a=3,b,c;
float d;
cout<<"b=";
cin>>b;
cout<<"c=";
cin>>c;
cout<<"d=";
cin>>d;
int rezultat;
rezultat=a+b+c+d;
cout<<"Rezultatul sumei celor 4 variabile este:"<<rezultat<<endl;
}
1. Operatorul de negatie, ~
a | ~a
1 | 0
0 | 1
2. Operatorul SI (AND), &
a | b | a&b
1 | 1 | 1
0 | 0 | 0
1 | 0 | 0
0 | 1 | 0
3. Operatorul SAU (ori), |
a | b | a|b
1 | 1 | 1
0 | 0 | 0
1 | 0 | 1
0 | 1 | 1
4. Operatorul SAU-Exclusiv, ^
a | b | a^b
1 | 1 | 0
0 | 0 | 0
1 | 0 | 1
0 | 1 | 1
Daca valorile nu sunt egale, rezultatul va fi adevarat, asadar 1.
Bun... acestia sunt cei 4 operatori, acuma sa aflam cum se afla biti unui numar in baza doi.
int a=13,b=19;
Numarul se imparte la 2, pana da rezultatul 0.
13/2=6 rest 1; 19/2=9 rest 1;
6/2=3 rest 0; 9/2=4 rest 1;
3/2=1 rest 1; 4/2=2 rest 0;
1/2=0 rest 1; 2/2=1 rest 0;
................... 1/2=0 rest 1;
13 in baza 2 = 00001101
19 in baza 2 = 00010011
Asa se folosesc operatorii logici pe biti in baza 2:
Code: (Select All)7 6 5 4 3 2 1 0
a | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 13= 2 la 0 + 2 la 2 + 2 la 3 = 1 + 4 + 8
b | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 19= 2 la 0 + 2 la 1 + 2 la 4 = 1 + 2 + 16
~a | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 242
~b | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 136
a|b | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 31
a&b | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 2
a^b | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 30
[size="4"]V. Operatori de incrementare si decrementare[/size]
1. Prefixati
++ pentru incrementare si -- pentru decrementare inaintea unei variabile.
Operatorii prefixati de incrementare maresc mai intai cu 1 si apoi memoreaza.
Operatorii prefixati de decrementare scad mai intai cu 1 si apoi memoreaza.
Exemplu:
Code: (Select All)int a=5;
a++ unde a incepe sa ia valori de la 5
2. Postfixati
++ pentru incrementare si -- pentru decrementare dupa variabile.
1. Atribuire simpla:
Ex: int a=4 -> am atribuit variabili a de tip intreg, valoarea 4
float d=12.4 -> am atribuit variabili de tip float, valoarea 12.4
2. Atribuirea multipla:
Ex: int a,b,c;
a=b=c=5
[color="#FFFF00"]3. Atribuirea cu operatorii:[/color]
Operatorul *
int a=5;
a*=7;
a=5*7;
a=35;
Operatorul /
int a=5;
a-=7;
a=5/7;
a=0;
Operatorul %
int a=5;
a%=7;
a=5%7;
a=5;
[size="4"]VII. Operatorul virgula ,[/size]
-separa doua sau mai multe operatii de atribuire
Ex: int a=5,b=9;
float c=11, d=2;
a+=b-=7,b/=a%2,c/=b%=a*2;
a+=2 ---> a=5+2+7=14;
b%=14 ---> b=2%14=2;
c/=2 ---> c=11/2=5.5;
[size="4"]VIII. Operatorul Conditional[/size]
-evalueaza o expresie in functie de conditie.
Ex:int a=10,b=20,c=30;
cout<<(a>b ? a-=b : b-=a) , asadar se va afisa a-=b, adica -10
Ok! Am terminat operatori din c++. Finaly !
[size="4"]Structuri de control[/size]
I. Liniara
II. Alternativa
A. Simpla
B. Cu ramura vida
C. Generalizata
III. Repetitiva cu numar cunoscut de pasi
IV. Structura repetitiva cu numar cunoscut de pasi:
A. Conditionata anterior.
B. Conditionata posterior.
Structura alternativa simpla si cu ramura vida am facut-o mai sus.
Incepem cu cea liniara.
[size="2"]I. Liniara [/size]
-are forma:
Expresie 1;
Expresie 2;
...
Expresie n;
Aceasta structura cuprine toate operatiile de citire, scriere si expresi cu diferite calcule si algoritmi.
[size="4"]II. Alternativa[/size]
[size="2"]C. Generalizata[/size]
-Efectueaza/alege o actiune din mai multe posibile.
Are forma:
Code: (Select All)#include<iostream.h>
void main()
{
int opt;
cout<<"Introduceti optiunea:";
cin>>opt;
switch(opt)
{
case 1: secventa_de_actiune1;
break; case 2: secventa_de_actiune2;
break;
default:cout<<"Optiunea aleasa nu exista"; }
}
[size="4"]III. Structura repetitiva[/size]
Are forma:
for(contor=expresie_initializare; conditie; expresie_incrementare sau expresie_decrementare;
*contor este o variabila care se initializeaza cu 1;
*conditie verifica daca o conditie este adevarata;
Se folosesc urmatoarele variabile:
1. O variabila de tip int notata cu i;
2. Numarul de valori care se citesc, notate cu n;
3. Valorile care se citesc, notate cu val;
*Suma se noteaza cu int s=0; si produsul cu int p=1;
Exemplu, citirea valorilor:
Code: (Select All)#include<iostream.h>
void main()
{
int n,i,val;
cout<<"n=";
cin>>n;
for(i=1;i<=n;i++)
{
cout<<"val="; cin>>val;
}
}
Deci... daca n=5 , atunci pentru:
i=1 -> val=a
i=2 -> val=b
i=3 -> val=c
i=4 -> val=d
i=5 -> val=e
Valorile pot sa aiba aceasi valoare... de exemplu:
i=1 -> val=6
i=2 -> val=6
i=3 -> val=11
i=4 -> val=36
i=5 -> val=6
Suma va fi atunci 6+6+11+36+6.
Produsul va fi atunci 6*6*11*36*6.