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 .

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

A.z• se poate e?ectua initializare la declarare – e(@ c8ar sirB.Declaratii • toate variabilele trebuie declarate inainte de utilizare • declaratia contine tipul si una sau mai multe variabile de acelasi tip e(@ int (.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 .*CD9un sir:.

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- .

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

Tipul enumerare e(emple .

<instructiunea vida= • e(presie– (E0.(=- • bloc de instructiuni – KL .nstructiune • .AD(- • apel de ?unctie– print?<9Fd7n:.

dupa L • e(emplu@ int main<= K GGinceputul blocului de instructiuni print?<98ello Horld7n:=return *L GGs?arsitul blocului de instructiuni .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 .

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 * .

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

P=- . P=else GGcazul de?ault + acopera toate celelalte p print?<9ecuatia are 2 radacini reale egale cu F? si F?:.= + 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.Decizie <.

'.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 .Operatori aritmetici • E...

e(emple operatori aritmetici .

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

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 .

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 • pot ?i aplicati doar pe variabilele de tip intreg<c8ar. s8ort.

Operatori pe biti e(emple .

aDEEbDRaD/ . bD. bD.i''- • iEE vs EEi – int a.– aDbEEDRaD.Operatori unari • ' DR '(• incrementareGdecrementare – iEE.- int a.

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 .

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> .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.

get some milI>9 Oe never came 8ome> • important + sa ne asiguram ca se a\unge sa se iasa din ?or .?or ' e(emplu • A programmer 8eads out to t8e store> Ois Hi?e saAs NH8ile AouWre out.

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 .

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

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= .

Sign up to vote on this title
UsefulNot useful