Sunteți pe pagina 1din 29

Programarea calculatoarelor

Curs 2

Continut curs
Constante Atribuire Tipul enumerare Decizie Ciclu Operatori Precedenta operatorilor Operatori
Relationali Aritmetici Pe biti Unari

Conversii de tip

Constante
constante simbolice #DEF !E !U"E TE#T$CE$ !%OCU E&TE$!U"E%E - se inlocuieste ad'literam !U"E in program cu te(tul de dupa #DEF !E TRUE ) #DEF !E FA%&E * conventie + litere mari

Constante
)2, *- asimilate int )2./01234**, )2% + asimilate long 5(6, 57n6+ c8ar 9sir de caractere:,:: + c8ar; <string= )2.u + unsigned )2>0, )>0e'2 + double )2>/F ' ?loat

Declaratii
toate variabilele trebuie declarate inainte de utilizare declaratia contine tipul si una sau mai multe variabile de acelasi tip e(@ int (,A,z se poate e?ectua initializare la declarare
e(@ c8ar sirB.*CD9un sir:- int (D/-

const poate speci?ica ?aptul ca o variabila nu va ?i sc8imbata


e(@ const (D0-

o variabila neinitializata va avea o valoare aleatoare

E(presie
E(presie primara D variabila sau constanta sau sir de caractere sau <e(presie= e(@
( sau 0 sau 9sir de caractere: sau <(E0=

e(presie D e(presii primare carora li se aplica operatori e(@


(E0 0F2 <(E0='<('0=

8ttp@GGHHH>csci>csusb>eduGdicIGsamplesGc>sAnta(>8tml#string

Atribuire
variabila D e(presie se evalueaza e(presia si valoarea acesteia devine noua valoare a variabilei (D A- GGatribuie variabilei ( valoarea lui A Jarianta din Pascal (@DA-

Tipul enumerare
de?ineste un set de constante numite de tip intreg sinta(a@ enum nume$tip K identi?icator, <sau= identi?icatorDvaloare L e(@ enum bool K?alse,trueLenum bool a- GGdeclara un element a de tip bool

Tipul enumerare e(emple

nstructiune
- <instructiunea vida= e(presie (E0- AD(-

apel de ?unctie print?<9Fd7n:,(=-

bloc de instructiuni
KL

Mloc de instructiuni
bloc de instructiuni D mai multe instructiuni grupate intre KL bloc de instructiuni este ec8ivalent cu o singura instructiune nu se pune - dupa L e(emplu@ int main<= K GGinceputul blocului de instructiuni print?<98ello Horld7n:=return *L GGs?arsitul blocului de instructiuni

Decizie
i? <e(presie)=
instructiune)

else
instructiune2

else este optional

instructiune) se e(ecuta daca e(presie) este evaluata la o valoare di?erita de * instructiune2 se e(ecuta daca e(presie) este evaluata la *

Decizie <2=
A programmer is 8eading out to t8e grocerA store, so 8is Hi?e tells 8im Nget a gallon o? milI> ? t8eA 8ave eggs, get a dozen>N Oe returns Hit8 )2 gallons o? milI>

Decizie <.= + i? P else i?


structura ?olosita cand se pot lua mai multe decizii di?erite in ?unctie de valoarea e(presiei i? <deltaQ*= print?<9ecuatia nu are radacini reale:=else i? <deltaDD*= print? <9ecuatia are ) radacina reala egala cu F?9, P=else GGcazul de?ault + acopera toate celelalte p print?<9ecuatia are 2 radacini reale egale cu F? si F?:, P=-

Operatori aritmetici
E,',;,G,F G DR impartire intreaga <returneaza catul= daca operanzii sunt intregi G DR impartire daca macar unul dintre operanzi este real F ' restul impartirii G intreaga si F nu au rezultate bine de?inite in standard pentru operanzi negativi

e(emple operatori aritmetici

Operatori relationali
operatori relationali@ R, Q, RD,QD operatori egalitate@ DD, SD observatie@
(DD* veri?ica daca ( are valoarea * si intoarce ) daca acest lucru se intampla (D* atribuie lui ( valoarea * si intoarce aceasta valoare

Operatori logici
TT ' si UU ' sau S + not <operator unar=
e1 * * ) <SD*= ) <SD*= e2 * ) <SD*= * ) <SD*= e1&&e2 * * * ) e1||e2 * ) ) )

Observatie
prin e1=1 intelegem e1 diferit de 0

Operatorul ternar
ConditieVvaloare intoarsa in caz true@ valoare rezultata in caz ?alse cV(@A E(@
aF2V:impar:@:par: (R*V:strict pozitiv:@:negativ sau *:

ec8ivalent cu
i?<c=
resultD(-

else
resultDA -

E(emplu operatori logici E operator ternar


NAre Aou going to sit and tApe in ?ront o? t8at t8ing all daA or are Aou going out Hit8 meVN '' programmerWs girl?riend> NXesN '' programmer

Operatori pe biti
pot ?i aplicati doar pe variabilele de tip intreg<c8ar, s8ort, int, long= T ' and pe biti U ' sau pe biti Y ' (or QQ ' s8i?t stanga <inmultire cu 2= RR ' s8i?t dreapta <impartire intreaga la 2=

Operatori pe biti e(emple

Operatori unari
' DR '( incrementareGdecrementare
iEE- i''-

iEE vs EEi
int a, bD. aDbEEDRaD.-

int a, bD. aDEEbDRaD/

Precedenta operatorilor
tabelul din Zernig8anTRitc8ie p> 0*
a op b op c D <a op b= op c daca op are asociativitate stanga a op b op c D a op <b op c= daca op are asociativitate dreapta

nstruc[iuni repetitive + ?or <--=


?or< BinitializareC-Bconditie continuareC-BactualizariC= instructiune initializare + e(presie care se e(ecuta o singura data inainte de a se e(ecuta instructiunea conditie continuare + este evaluata inainte de ?iecare iteratie
daca are valoarea true <di?erit de *= se e(ecuta instructiunea daca lipseste conditia se considera ca este adevarata daca are valoarea * se inc8eie iteratia, nu se mai e(ecuta instructiunea si se trece la instructiunea urmatoare

instructiune + se e(ecuta daca se evalueaza conditie continuare la true actualizari + e(presie care se e(ecuta dupa instructiune>

?or ' e(emplu


A programmer 8eads out to t8e store> Ois Hi?e saAs NH8ile AouWre out, get some milI>9 Oe never came 8ome>

important + sa ne asiguram ca se a\unge sa se iasa din ?or

nstructiuni repetitive H8ile


H8ile <e(presie= instructiune se evalueaza e(presie
daca este ?alse nu se e(ecuta instructiunea daca este true
se e(ecuta instructiunea si se reia procesul

e(emple H8ile
e()@ int iD)H8ile <iR0= print?<9Fd:,i=- GGnu se e(ecuta niciodata print? e(2@ int iD.H8ile <iR*=K print?<9Fd7n:,i=- i''-L ce a?iseazaV

instructiuni repetitive doP H8ile


do instructiune H8ile <e(presie= singurul tip de instructiune repetitiva dupa care se pune e(presia este evaluata dupa ce se e(ecuta instructiunea <test ?inal=

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