Sunteți pe pagina 1din 121
Eh Ee a | oy Py atiind poe! wt Sites. Ath Acest manual este proprietatea Ministerului Educajiei si Cercetari Manualul este aprobat prin Ordinul nr. 3886 din 24.05.2004, in uma licitafiei organizate de catre Ministerul Educafiei si Cercetari, este realizat in conformitate cu programa analitica aprobata de Ministerul! Educatiei si Cercetarii prin Ordinul nr. 3458 din 09.03.2004 si este distribuit gratuit clevilor, ACEST MANUAL A FOST FOLOSIT DE: ~ | Starea manualului | Numele elevului fa | Amul | care primit | Ctasa } Scoala seoler ry la L manualul 7 | primire | returare_| [9 oy VECHE * Starea manualului se va inscrie folosind termenii: nou, bun, ingrijit, nesatisficator, deteriorat, Profesorii vor controla daca numele elevului este scris corect. Elevii nu trebuie sa faci nici un fel de insemnari pe manual. » IV Roxy Mariana Milogescu arma Profilul real ‘Specializarea: . matematica-informatica, intensiv informatica Manual pentru clasa a Ka @ EDITURA DIDACTICA $1 PEDAGOGICA, R.A. BUCURESTI, 2005 Inspectoratul Scolar al Municipiului Bucurey ~ prot gr 1. Emma Gabriela Dornescu ~ Colegiul Tehnic Per Rare, jucuresti; metodist de specialitate — Informatica — Inspectorat Municipiului Bucuresti stor Soler al snopes we openialiate, Conte sini: ing. Liana Dabuleane ©2005. Toate drepturile iti ii 20.1 supra acest edi sunt rezervate EaiturilDidatie gi Pedagoie R.A Bucurey Onc pir part yu, tel sata atl ara din cea lucas face uma eu seo se ler MILOSESCU, MARIANA. : ™ Ecditura Didacticd si Pedagogicé, 2005 * — ISBN 973-30-1747-7 | 003(075.35) Seen ones mee EDITURA DIDACTICA $1 PEDAGOGICA, &.A Str. Spira Haret, nz. 12, seetorul 1, cod 010176, Bi Tel.: 021,315.38.20 . a Tel/Fax: 021'313.2885; 021.318.7398 E-mail edp@b.astal 0 vedi 0 Comenzile pentru aceastd lucrare se primese: * prin posta, pe adresa editurii cu menfiunea: Comand carte + prin e-mail: comenzid@edituradp.ro. edpcom.@b asa. + prin telefon/fax: 021.313.34.70 (marketing) me 021.315.73.98 (comercial) “prin tclefon: | 21.315.38.20 (int. 119, 123, 165, 185) a libraria E.D.P. str. Spina Haret, nz12, sector 1, Bucuresti (tel: 021.315.38.20 / int 142) Redactor: Liana Féca Coperta: Elena Dragulelei-Dumitru Tehnoredactare computerizatd: Mariana Milogescu 1. Informatica si societatea 1.1. Prelucrarea informatiilor Calculatorul a fost inventat de om pentru a prelucra informatia. El il ajuté s8 prelucreze foarte ugor, intr-un timp extrem de scurt, cu foarte mare acurate{e, 0 mare cantitate de informatie foarte complex. Prelucrarea informatiei este veche de cénd lumea. Prelucrarea voluntara a informa- fiei s-a facut insa abia atunci cand babilonienii au scris primele seine cuneiforme pe {abljele de lut. Asadar, prima manifestare a prelucrariinformatieia fost scvisu. Inca din antichtate pot fi puse in evident doua tipur de prelucrari de informati ¥ prelucrarea textelor serisul; ¥ prelucrarea numerelor = calculul numeric. Prelucrarea automata a informafiei a fost posibilé o data cu aparitia calculatoarelor electronice. Agadar, scopul ultiizérii unui calculator este de a prelucra informatia. Informatia prelucrata poate fi format din texte, numere, imagini sau sunete $i este pastrata pe diferite medii de memorare, in diferite formate, sub forma de date. Transformarea datelor in informatiinu este un atribut exclusiv al calculatorului, Acest fenomen a aparut 0 data cu omul. De la primele reprezentari ale unor cantiti, cu ‘ajutorul degetelor, al pietricelelor sau al betisoareior, si de la manipularea manuala a acestor obiecte pentru a affa cate zile mai sunt pana la un anumit eveniment, sau cate animale au fost vanate, sau cali razboinici are tribul vecin, putem spune ca are loc un proces de transformare a dalelor in informati. Degetele, pietricelele si betele reprezint’ datele, iar ceea ce se obfine prin manipularea lor (numarul de animale vanate, numaru! de zie, numarul de rézboinici) reprezinta informatia. Cea ce deosebeste un astfel de proces de o prelucrare cu ajutorul calculatorului sunt viteza de obtinere a inforrialilur gi modul de reprezentare a informatilor sub forma de date. Caloulatorul nu stie s& prelucreze decat giruri de cifre binare care pot fi modelate fizic prin impulsuri de curent, cu doua niveluri de tensiune, ce corespund celor doud cifre binare: 0 si 1. Prin urmare, datele vor fi codificari binare ale informatiei existente in exteriorul calculatorului. Dac, int-o prelucrare manuala, datele sunt reprezentate de obiecte care pot fi manipulate de om (betisoare, pietricele sau degete), in cazul unei prelucrari automate datele vor fi eprezentate prin obiecte pe care le poate manipula calculatorul, adic siruri de bit . Asadar, din punct de vedere al unei prelucrari automate a informatiei. diferenta din- tre data si informatie este: ¥ Informatia este un mesaj care inlatura necunoasterea unui anumit eveniment si are caracter de noutate. Informafile sunt interpretate de oameri. ¥ Data este reprezent i Data este rece area informatie in interiorul calculatorului. Calculatorul nu Inte- age amin acesor dat, el numa le prelucreaz® pin opera specie ec in urma prelucrati dateior, calculatorul poate fumiza omuli informati feces entra rezove © snumit sarin, trebule 68 eunoastem modu In care o putem (erate Penn aceasta, treble 8 gsi o anumié metodd, acd un set de pes See ae im sarcina, Acest set de pasi forme: algorimal pent rezcharea rote epee nl std algortmior 9 test 9 tla a mater pn eae o chasse giver stele pera eee descrie rezolvarea oricdrei probleme dintr-o anumité categorie Ali Invatat dea o parte dn acest algortm algontma! lui Eucié penta 8/6 al mae dur cru cited uere arta psi wa numa, gotmul extagen aeécn pate dtrun muna gor sete un ir ore n baz 2c int- ar epreceril to a ta alutorul algortmior ea etns gin alle doment de scrwtare Probleme ca La fet ca gi omul, giun calculator, pentru a : iculator, pentru a putea rezolva 0 Se a cunosnie despre modi m care poate 8 o rene, add 68 cuncavd agorimal de rezolvare a probleme. Aceasa informal se transite calculator Be inlermecial unui program, Deoarecelimbaul natural inbojl pin care com preluere RanaGraie injeles de calculator, care este construit astfel incat 8 poat’ prebera Tuma cite tnare, programul pin care i se comunicdalgrimul este sors fran limba ce progamare. Limbajl de pregramare este un limba atticial care Bor Svpriarl smbolce (instruiun), desc cpeatile de prelucrare pe care rebule Sa 6 execute calculator E18 pemnite mui a eomunice cu calculator (8 dea comenz pe care sae execute) doarece fecaeinstufune dn imbajul de progr coed a orate Mtn grup de instrucfiuni magina (nui tn mb] maging) Sins ey ug as aun enn pr Sete, A ie a Teer a cy a i sa Asad Azada 0 sarc se poste ez cu aor aleustorl numa aman oe i descompus in pop pent a ui algoriim, deoarece caculterul ete 0 magind algoriemieg, Mer Dezvoltaea pretucri auto t tomate a infor : Denote 2 informatir cu suru calculator sa facut Y de fe vollarea echipamentelorastelincatacestea sd fe capabie sa stocheze cat mai mult informatie, pe care so prelucreze cu vitezé cat mai mare, folo- ; : i ; Prelucreze cu vitezé cat mai mare, fok ¥ gisirea de nol algoritmi, cét mai performanti, pentru rezolvarea problemelor ig ai performanti i |, pentru rezolvarea complexe siimbunstafirea tehnicilor de reprezentare gl comunicare a or 1.2. Informatica Folosirea calculatorului a dus la aparitia unei noi stiinte si a unui nou dom lus t i oe ; itfa unei noi stinte si a unui nou domeniu de informatica reprezinta un complex de discipline prin-care se asigura. preiucrarea rationala a informatilor prin intermediul masinilor automate, Primul calculator electronic a apérut in anul 1946, ca urmare a unei cereri precise din partea armatei americane, care a fost capabilé s finanteze un prolect atat de costs for. Apoi, administatia americana a cumparat primul calculator non-miltar in 1951, pentru recensémantul populajel. Doi ani mai tarziu a fost const primul calculator festinat unei firme particulare, cand General Electric a cumparat un calculator pentru lzina sa din Louisville, Incepénd din 1953, fima 1BM a inceput s& patrunda si ea pe pata de calculatoare, prezentandursi calculatoarele in medile stinifice, Astfel, calcul foarele au inceput s& patrunda si in medile universitare, Dezvoltarea continua a echi- pamentelor electronice de calcula fécut ca din 1968 informatica s4 nu mal fle doar 5 activitate anexa, ci sa devina ea insasi o industrie. In contextul unei cresteri pur temice a pietel, calculatorul a devenit o unealtéfolosité fn toate domenile de activitate La primele calculatoare electronice programele erau scrise in cod magina (bina) sau ferau cablate sub forma de circuite electronice. Modificarea unui program sau introducerea unvia nou era foarte complicat’, deoarece insemna introducerea pro- gramului bit cu bit. Din necesitatea rezolvarii acestel probleme au aparut primele Sisteme de operare si primele limbajele de programare, numite imbaje de nivel inat in 1956 limbajul Fortran, orientat pe calcule tehnico-stintiice, si in 1960 limbajul Cobol, orientat pe aplcatii economice care folosesc putine operat de calcul, dar care manipuleaz& un volum mare de date. Limbajele de programare s-au dezvottat continu peniru a se adapta la noile echipamente hardware, la noile sisteme de ‘operare si la nolle cerinfe ale utllzatorior, care insemnau de fapt noi sarcini pe care trebuia sa le rezolve calculatorul, adica noi algoritmi orientati pe rezolvarea anumitor probleme. In 1971 a fost oreal in universitaie eNvefene limbajul Pascal, primul limba] structurat (fecare prelucrare elementara este considerata ca un bloc, iar blo- cutile pot fi inchise ~ incapsulate — unele in altele). O daté cu aparitia microcaicu- latoarelor, acest limba} s-a rspandit foarte mult. Limbajul Basie a fost creat in Statele Unite, in 1975, ca un limbaj interactiv si nu putea fi folosit decat pe micro- caleulatoare. El permitea abordarea programarii si de cétre persoane care nu erau Specialise in informatica. In 19/1 a fost creat, de fir Bel-Telephone, fimbajul C, pentru a permite realizarea sistemului de operare Unix. Este un limba foarte per- formant, care posed atat conceptele limbajelor structurate de nivel inalt, c&t s| con- cceptele limbajelor de nivel sc&zut, care fi permit accesul la hardware. Programele sorise in limbajele aparute recent au crescut productvitatea _programatorilor. Limbajele de nivel ina au pus bazele ingineriei programa La inceputul anilor ‘60, in medille universitare au inceput $8 se formeze departa- mente pentru cercetarea $i studierea calculatoarelor. Cu timpul, a aparut 0 bogaté literatura de specialitate, iar cursurile din domeniul informatict au Inceput $8 fie orientate pe subdomenii si sa fie gradate pe niveluri de dificultate. Astazi, infor- matica este divizata in noua subdemenl: Aigoritmi si structuri de date. Studiaza metodele prin care se pot objine apli- calli care s& prelucreze diferite clase de informati, modul In care vor fi repre~ zentate informalile care vor fi prelucrate si metodele de optimizare a pagilor ne~ cesari pentru realizarea aplicatilor. Scopul acestui subdomeniu este de a iden- tifica problemele care pot fi descrise cu ajutorul algoritmilor, de a gsi modul in care trebuie procedat pentru a descoperi algoritmul si metodele de analiza si comparare a caracteristicilor algoritmilor pentru a obtine algoritmi cat mai eficient Limbaje de programare. Studiaz& notalille (limbajele) prin care vor fi repre zentati algoritmii si structurile de date, astfel incat aplicalja s poata fi prelu- Ccrata. Aceste limbaje sunt apropiate limbajului natural si pot fl ugor traduse In secvente de comenzi pe care sa le inteleaga calculatorul. Scopul acestul sub- domeniu este de a gasi noi tehnici de reprezentare si comunicare a algoritmilor. Arhitectura caloulatoarelor. Studiaza modul In care sunt organizate diferite componente hardware ale calculatorului $i modul In care sunt conectate pentru ‘a putea obfine un sistem eficient, sigur si util, Scopul acestui subdomeniu este de a obtine masini algoritmice cat mai bune folosind cunostintele despre algo- ritmi dob&ndite si tehnologia existenta. Sisteme de operare. Studiazé felul in care trebuie sa fie organizate programele care controleaza si coordoneaza toate operatile din sistemul de calcul. Scopul acestui subdomeniu este de a face un calculator sa rezolve In acelasi timp mai multe sarcini, fara ca pasilalgortmilor care descriu rezolvarea acestor sarcini sa interfereze uni cu ali, iar alunci cand este cazul sa se poata realiza comuni- carea Intre diversi algoritmi Ingineria programarii. Studiazé metodele prin care poate fi automatizata activitatea de proiectare a aplicatilor, de prelucrare a informatilor, astfel incat 4 se obina programe corecte, eficiente, fara erori si usor de exploatat. Calcule numerice gi simbolice. Studiaz4 descrierea fenomenelor din lumea re~ ald prin intermediul formulelor matematice, care pot fi manipulate algebric astfel {not s& se obtind modele matematice ugor de descris prin algoritmi. Scopul aoes~ tui subdomeniu este de a gasi modele matematice care s8 permité descrierea si reprezentarea in calculator a fenomenelor complexe, cum sunt: zborul avioane- lor, curentii marini,traiectoria satelijior i a planetelor, migcarea particulelor etc. Sisteme de gestiune a bazelor de date. Studiaza modul in care pot fi orga- nizate cantitafi mari de date ce nu necesita in prelucrare calcule matematice complexe. Este cazul informatillor prelucrate in procesele economico-sociale, tn Iintreprinderi gi in administrajie. Prelucrerea acestor date trebule 8 se facd ficient, fara erori, cu asigurarea securiti lr. Inteligenta artificiala. Studiazé modul In care percepe i raljoneazdi mintea umana ‘cu scopul de a putea fi automatizate aplicati pe care omul le reaizeazs prin metode .inteligente’, care sunt dificil de descris cu ajutorul algortmilor, ca de exemplu inte- iegerea unui jimbaj, crearea de noi teorii matematice, compunerea muzici, crearea unei opere de arta, luarea unor deciaii In urma evaluarii unor situatii complexe (stabilrea unui diagnostic in medicind, mutarea pieselor la jocul de sah etc). 4. Animatje $1 robotic’. Studiazé metodele prin care pot fi generate sl prelucrats imagine 1 modul In care se poate rspunde unei situafi dia exterior prin actionarea unui robot 1.3. Etapele rezolvarii unei probleme fice prelucrare automata a informatilor presupune definirea urmatorulul fan bin aceasté cauz’, pentru orice rezolvare a unei probleme cu ajutorul calculator rului trebuie parcurse urmatoarele etape: 1. analiza problem 2. elaborarea modului de rezolvare a problemel; 3. codificarea modului de rezolvare a problemel intr-un limba] de programare; 4, testarea programulul si corectarea erorilor.” Analiza problemel. Aceast8 etapa consté in formularea enun{ului problemei, din tare vor rezulta specificafile complete si precise ale programului care va rezolva problema. Aceste specificati trebuie sé tin cont de consiile concrete de realizare a programului. Specificatile sunt: 7 Prunctia programului, Prin ea se determind ceea ce urmeaza sa realizeze Pro- gramul — V Identificarea fluxului de informatil. Aceasta presupune identiicarea infor- matiilor de intrare si, respectiv, a informatillor de iegire care vor fi descrise cu ajutorul datelor: date de intrare si, respectiv, date de lesire. Fiecarui tip de informatie ji corespunde un anumit mod de stocare In medial de me- reraro. adic’ un enum tip de data. Intre datele prelucrate de un program exist Gierte relati. Modul in care vor fi aranjate aceste date in mediul de memorare de- pinde de legatura dintre ele Elaborarea modului de rezolvare a problemel. Aceasta etapa consta in gasirea mmotodei prin care s& se poald rezolva problema. Ea presupune identificarea Prelucratilor care se foo acupra datelar de intrare pentru a obtine datele de iesire. Bestrierea acestor prelucrari se face cu ajutorul algoritmului de rezolvare @ pro- blemel Aceastd faz este cea mai importanta gi cea mai grea, deoarece presu- pune definirea logica a unei secvente de operajil pe care sa le poata executa cal culatorul astfel incat sd se objina rezultatele dorite Codificarea modulul de rezolvare a problemel intr-un limbaj de programare. ‘Aigorimul de rezolvare a probleme! este transpus int-un imbej de programare ales in conformitate cu speciicul problemel care trebuie rezolvala, pentru a fi comunicat calculatorull ‘Testarea programului si corectarea erorilor. Pentru testarea programulu se va folo- sio mulfme de seturi de date de intrare care trebule sa prevada toate sitatile care pot 8 apard in exploatarea curenté a programilu. Testarea const in executarea repetata a Jiearamut penityfecare set de dae de inrare, Dac aceasta muline de setuid aeieeaeane ee Programul nu va fi testat pe toate traseele algoritmului $i in Shauteoteaete pot aparea erori, In aceastd etapa se pun in evidenta erorie de sree om area Samara 2 oe Mgr a eae oe a se are Agadar, pentru ca un calcul : lator $8 poaté produce i a ‘sau, S& primeasca doua categorii de informati eeanneeeea Descrierea moduiui in care sé realizeze sarcl algoritmul, care i se co- lului in care sa realize: sarcina, adica algoritmul, care i se «: ¥ Informatie de care a re nevosalgoiul ca 8 real comunica sub forma de date de intrare a Studiw'de’caz Scop: exemplificarea etapelor de rezoivare a unei probleme. Enuntul problemei: Fiind date doug numere reale a gradu intai cu acest coeticienti ax-b= a aeeman In uma anaiizei probleme! se abine specitiatiaprogramulul sage aeProaramulul, Dacd pentru ecuata de gradu inal axvbz0 v7 folie reala, se calculeaza, in caz conarse aigeaza un mesa,” Infrae de intrare sunt coef eta, er suport ero prin care sa ra. Re i _ Sate te prezentarea interna a informatiei se va face prin informatia de iegire va fi sol mesaj Informa a ecualil, daca exis ar dacd nu exi Sigal exten pe cate va repent hlotota de tare oan Prezentarea intern a Solel ecuatiel se va face pin data de lesre Metoda fotosité pentru rezolvarea ae Vare a eeuatel de oeaul ro a7e8 Problemei va fi algortmul matematc de rezo- Pentru eu sree bogmk a0 va Considera 8 un set de date de intrare este date de intrare poate fi {(0; 0), (011.5) es fig) ne comme ae sun de 1.4. Algoritmul Datete de intare sunt sy use unui proces de pretucrare Sees In functie de rezultatele care se ‘dorese, protucrerea dete or exp wala Inte de ; 2 dalle est ealzats Algoritmul reprezintai o mulfime ordonatl af6 Se defineste Fr echivoc modu Th eate s& forte aks ee ‘82 poate fealiza o anumita sarci intre datole de intrare gi datele de iesire ale algoritmului existé o relatie bine determinata de insasi constructia algoritmulul, In activtafjle zinice intalnim la tot pasul algoritmi: algoritmul de utiizare a masini de spalat rufe sau vase (exprimat prin setul de instructiuni din cartea tehnicd a ma- sini sau de pe capacul masinii de spalal), algoritmul de Inregistrare pe 0 caseta ideo (exprimat prin setul de instructiuni din cartea tehnic& a videorecorderului), algoritmul de interpretare a muzicii (exprimat prin partitura), algoritmul de con- struire a unui model de avion sau de nava (exprimat prin setul de instructiuni care insofesc piesele care compun modelui), algoritmul de rezolvare a unei probleme matematice (exprimat printr-un set unic de operatii prin care se desorie modul de rezolvare a oricérei probleme dintr-0 categorie de probleme). De fapt, aproape toa- te acfiunile noastre se desfgoara dupa un algoritm bine defini Un exemplu de algoritm al activitajlor ziinice este o convorbire telefonic Pasul 1. _inceput. Pasul2. Mergila telefon. Pasul 3. Ridicd microreceptorultelefonulu Pasul 4. Dacé are ton, formeaza numarul de telefon; altel, pleacd la vecin $i ‘mergi fa Pasul 10. Pasul 5. Dacd telefonul este ocupat, inchide telefonul si mergi fa Pasul 11; altel, asteapt8 sa réspundé Pasul 6. Dac’ nu réspunde, pune microreceptoru! In furcai $i mergi la Pasul 12; altfel, ncepi discutia cu persoana care a réspuns. Pasul7. Daca a réspuns persoana cautaté, mergi la Pasul 9, atfe, cere sa vind la telefon persoana cautaté, Pasul 8. Daca persoana cautatd nu poate sa vind la telefon, mergila Pasul 13; alfel, asteapta sa vine la telefon Pasul 9. _Discutd la telefon cu persoana cautat’ $i mergi la Pasul 13. Pasul 10. Anunfi la serviciu! ,Oeranjamente telefoane* cd ai telefonul defect si mergi la Pasul 14. Pasul 11. Asteapté 15 minute si mergi la Pasul 2. Pasul 12. Asteaptd 1 ord $i mergi la Pasul 2. Pasul 13. Inchide telefonul. Pasul 14. Terminat. Un exemplu de algoritm matematic este rezo. area ecuatjel de gradul int: axz+b=0 unde a sib sunt coeficientii ecuafiei si pot lua orice valori din domeniul numerelor reale, iar reprezinté un numar care se calculeaza si care poate lua gi el orice va- loare real8, astfel incat 2 fie Indeplinita relatia definita prin ecualie. Algoritmul de rezolvare a ecuatiei va prezenta un set unic de operatii prin care se calculeaza va- loarea lui z oricare ar fi valorile pentru a sib: Pasul 1. /nceput. Pasul 2. Comunicd valorile pentru a sib. Pasul 3. Compara a=0. Dacd este adevérat, executd Pasul 4; altfel, executa Pasul 7. Pasul4. Compard b=0. Daca este adevarat, executdé Pasul 5; altfe, executd Pasul 6. Pasul5. Comunieé mesajul “Ecuatia are o infinitate de solu” Mergi la Pasul 9 Pasul 6. Comunicd mesajul “Ecuatia nu are soluti" Mergila Pasul 9 Pasul7. Calculeazé z=-b/a, Pasul 8. Comunica valoarea lulz. Pasul 9. Terminat. Numarul de pasi este finit (9 pai). Toti pasii reprezintd actiuni care se pot executa: Compara, calculeaza, comunicd. O data definit acest algoritm, pagii lui se vor exe. Cuta pentru orice valori ale lui a gi b, deci algoritmul desorie rezolvarea unei pro- bleme generale. La fiecare executare a algoritmului care desctie o problema gene- rala va fi tratat un caz particular, adica se rezolva ecuatia de gradul inti pentru va. lori precizate ale luia si b, ca de exemplu a4 = 0 (a= 2, b= ~4) sau Oxz ~ O(a=0,b=-4) sau@a-0=0(a=0,b Asadar algoritmii au urmatoarele proprietii: Y Claritatea. Orice algorim tebuie s& fie precis defini, 8 prezinte clar toate etapele care trebuie parcurse pan la obtinerea solu, fara $4 formuleze nimic ambiguu ¥ Finitatea. Algoritmul trebuie s& fie format dintr-un numar fnit de pagi, prin exe Cutarea carora sa se ajunga la rezolvarea problemel gi obtinerea rezultatelor Succesiunea determinata a pasilor. Pasii care compun algoritmul trebuie exe- utati intro ordine bine determinata. De obicei el se executa in ordine seevent- ala (ordinea in care au fost scrisi). In cazul in care apare necesitatea schimbai acestei ordin, trebuie sd se precizeze clar pasul care urmeaza sa fie executat ¥ Universalitatea. Algoritmul trebuie s& permitd rezolvarea une’ clase de proble- me, care sunt de acelasi tip si care diferd intre ele numai prin datele de intrare El trebuie s@ ofere posibltatea de a rezoiva orice problema din acea clas de probleme, ¥ Realizabilitatea. Pasi care compun algoritmul trebuie sa reprezinte operat Care se pot execuita cu resursele disponibile. “ Eficienta. Operatile care compun algontmul trebuie alese astel incat solutia Problemei sa fie obtinuta dupa un numar minim de pasi, cu precizia prestabilta Sau CU 0 precizie satisfécatoare. Evaluare” Raspundeti 1. Ceeste un algoritm? Ce sunt pagi algortmului? 2 Determinati algoritmul pentru prepararea unui ceai. Identificati proprietaile algoritmului, in acest exempiu. 3. Cilio refeta din cartea de bucate. Determinati algoritmul pentru prepararea produsului culinar. 4. Dati patru exemple de probleme a caror rezolvare nu poate fi descris& cu ajutorul algoritmului si patru exemple de probleme a caror rezolvare poate fi descrisa cu ajutorul algoritmului 5. Prin definite, calculatorul este o unealtd care ajutd omul s@ execute mai bine si mai ugor unele sarcini. Ce gen de sarcini poate executa calculatorul? in ce domenii poate fi folosit calculatorul pentru a ajuta oamenii pentru realizarea acestor sarcini? 6. De ce caleulatorul este o masina care prelucreazd informalia? Enumerati patru motive care sa justice acest raspuns. 7. Aplicatile care presupun calcule complexe executate repetat, precum si cele dezvottari ‘care necesita alcdtuirea de tabele, au constituit motivatia aparitiel si dezvolt calculatoarelor. Dati un exemplu pentru fiecare dintre aceste aplicatii si explicati cat de greu i-er fi omului s execute aceste operati faré ajutorul unui echipament de calcul electronic. Dati exemple de activitti din liceu In care poate fi folosit calculator 8 Ce legaturi exist intre calculator si matematic&? Dar intre informatica si matematic’? Numifi subdomeniile informaticii in care aceste legaturi sunt foarte importante. 9. Nu toate aplcatile de prelucrare a inforralitor pot fi automatizate folosind un calculator. Exemplifcati cu trei genuri diferte de aplicati’ in care folosirea calculatorului este limita. , 10. Dati dou’ exemple In care executarea unei aplicatii cu ajutorul calculatorului devine mai dificilé decat executarea ei manuald, Alegeti 1. Aporimal rn care a descr ezoverea eeu de rat Ina feosete po a era heerlen er en peace ao mnes kien 2 shatrel pin care ro dest coher sep graf ii perms Sa aerate eats ieee concaenar a ale ac eee secre fees Rezolvati 1. Se consider’ urmatorul enunt: Find dat un numar a care reprezinta lungimea latuni unui patrat, s& se calculeze perimetrul, aria si diagonala patratulul Descrieti etapele de rezolvare a acestei probleme cu ajutorul calcul. ‘orului 2. Se considera urmatorul enunt: Fiind date trei numere a, b gi ¢ sa se verifice daca pot reprezenta lungimile laturior unui triunghi si, In caz afirmativ, sé se calouleze aria triunghiului, Descrieti etapele de rezolvare @ acestei probleme cu ajutorul calculatorulul 3. Se considera urmatorul enunt: Fiind date tre’ numere a, b si ¢ s& se veriice dacé ele pot forma 0 progresie geometrica. Descrieli etapele de rezolvare a acestei probleme cu ajutorul calculatorulu. 2. Datele 2.1. Definitia datelor Datele sunt obiecte prelucrate de algoritm, Data este un model de reprezentare a informatie), acces Calculatorului, cu care se poate opera pentru a obtine not informatit. Din punct de vedere logic, data este definita printr-o triplet data elementara = (Identificator, valoare, atribute) Identificatorul datei \dentiicatorul datei este un nume format din unul sau mai multe caractere gi este atribuit unel date de catre cel care defineste data, pentru a o putea distinge de alte Gate si pentru a putea face referiri la ea in procesul de prelucrare a datelor. De exemplu alfa, a1 sau b1_1. Fiecare limbaj de programare are implementat diferit conceptul de identiticator al date, practicand constrangeri pentru: numarul maxim de caractere din nume (de exemplu, 10 caractere in cazul mbajulul programare Visual Basic si 64 de caractere in cazul imbajului de pro- gramare Pascal), caracterele acceptate in nume (de exemplu, majoritatea limbajelor de progra- ‘mare nu accepta In nume decat cfr, litere gi caracterul line de subliniere), gi ¥ caracterul care poate fl folosit la inceputul numelul (de exemplu, marea ma- joritate a limbajelor de programare nu accepta ca numele unei date sé inceapa ‘cu cifra), De aceea, alunc! cand invatati s8 defnit si s8 manipula date folosind un anumit imbaj de programare, trebuie sé aflali ce constrangeri exist pentru identificatorul datel Valoarea datei Valoarea datei reprezinta continutul zonei de memorie in care este stocatd data. Se defineste ca domeniu de definitie al datel muitimea valorilor pe care le poate lua data in procesul de prelucrare. Atributele datoi Atributele sunt proprietaji ale datelor care determina modul tn care sistemul va trata datele. Cel mai important atribut este tiput datei. = it clas de date, ul datel defineste apartenenia date’ a0 anumité clas ae ficorespunde un Saar model de reprezentare interna. i i i se face r ntarea datel in memoria calculatorului se Inditerent de tipul de date ales, reprezer See eee intr-un git de bit, Pentru a realiza aceasta reprezentare, Srarae ae tnlonatt!alortinl de coder cae asa etespondeia Ginte tipu de data gi sir de bil, atat la scrierea dateor, ct sa crea lo : ; a forma de date trebuie s& stem care prelucreaza informatia sub a {iby dfinit clar conceptal de data. Defrirea conceptulu de dat’ impic’ def nirea urmatoarelor elemente: ¥ cum poate fiidentiicata data? 1 Gam of reprecentat data n memoria clouatoni? ¥ ce proprietat are data? ¥ cum pot fi grupate datele In colecti de date? 2.1.1. Clasificarea datelor Clasiticarea datelor se poate face folosind mai mute eriter 4. In functie de momentul in care se produc in fluxul d ¥ date de intrare; ¥ date intermediate; ¥ date de iesire. 2. in funcfie de valoare: ¥ date variabile; ¥ date constante. 33, Infuncfie de modul de compunere: ¥ date elementare; ¥ structuri de date. 4. In functie de tip: ¥ date numerice; ¥ date logice; ¥ date siruri de caractere. informatie: Clasificarea in functie de momentul in care se produc atele se clasifica in: ’ Date de intrare. El reprint datele care urmeazé s8 fe prelucate in cadrul algoritmului. Sunt folosite pentru a descrie diverse everimants 3 sunt I mat u ment, adica evaluari neprelu produse In urma realizarii unui eveni ecaiai aaa neo eveniment. De exemplu, pot fi date de intrare not ru a puta troduse In memoria intern’ a cal elucrate de procesor, datele sunt int 4 forulu, Invoguberea cater se face prin intermediul unor echipamonte spec alizate in citirea informatjei, numite dispoattive de i pozitive de intrare (tastatura, scan creion optic etc.). Dispozitivul standard de intrare este tastatura Dato do lesire. Ele sunt folosite pentru a descrierezutatele cbinte in uma Brelucatlor din cadrulalgontmulu i furizeaza informaile pent care a fost tealzat algoritrul, ca de exemplu medile semestiale 51 anvae ale elevuli tole de igi sunt produse de procesor in uima operate de pretucrae $i sunt depuse in memoria interna. Pentru fi vizualzate de om, ele sunt extrase din memoria intra pin intermedi unor ectipament specalzate In seieea ior tii, numite dispozitive de iesire (ecran, imprimanta it Standard de lesire este ecranul “ identificator de data elementara ‘alfa’ construct ‘alta’ [| —> gresite "alfa" ‘alta constant de tip "500" sir de caractere "500" 500 —> constanta de tip numeric Constanta de tip numeric 500 este diferita de constanta de tip sir de caractere "500" atat din punct de vedere al modului de reprezentare in memoria intema a calcu- latorului, cat si din punct de vedere al operatorlor acceptajl. De exemplu, asupra con- stantei numerice se pot aplica operatori matematici $i relationali, iar asupra constantel Ge tip sir de caractere operatori de concatenare si relational. Constanta de tip numeric este reprezentatd in memoria interna prin conversia tn binar a numdirului iar constanta de tip sir de caractere este reprezentata prin conversia fiecrui caracter din sir in 8 cifre binare corespunzatoare codului ASCII al caracterului respectiv. ® Muijmea operatoror logic ¢ Muljimes caracteretor cae este format dn tere, cei semne speciale. Muljmea operatorior de concatenare. 2.2. Operatorii Operator sunt caractere speciale (*, /, >, = etc.) sau cuvinte cheie® (mod, and ete) prin intermediul cérora se reprezinta operatile care se efectueaza in cadrul unui algoritm. Fiecare limbaj de programare are implementat propriul set de opera- for. In acest capitol vor fi prezentati operator care se folosesc in cadrul unui algortm. ‘Asupra operanzilor dintr-o expresie pute aplica urmatori operator 1 operatorul de atribuire ‘A-operatorii matematici, : ‘ _ operatorul de concatenare a sirurilor de caractere,” ‘A. operatorii relationali, = 7 operatorii logich.,./ COperatorii pot fi aplicali numai pe anurite tipuri de operanzi, producand rezultate de un anumit tip. Dacd notim cu @ $i b operanzii asupra carora se aplica opera- torul, cu Xf operatorul gi cu ¢ rezultat aith=c atunci relatia Intre a, b, X sic este data de urmatorul tabel —_—— ____ Tipul operanzilor —Tipul operatorulul ul rezultatului asib fed c umeric matematic ( 77) ‘numeric numeric relational (2) logic sirdecaractere concatenare(C) _sit de caractere girde caractere relational) logic logic logic {«£) togic Operatorii matematici Me fs -. 411, 1S, mod, div} ‘Se aplicd pe date de tip numeric si furnizeaza un rezultat de tip numeric [operator [Semnificatie [Exemplu + (adunare) _|Adun’ matematic cei doi operandi 5257 = (sc8dere) — [Scade al dollea operand din primul operand. —_|7-3=4 7{impartire reala) |imparte primul operand la al doilea operand. * {inmulfire) — [Inmulteste cei doi operanzi. [ (ridicare la [Ridica primul operand la puterea furnizata de putere) _|ce! de al dollea operand. * Cuvinte rezervate, care nu mai pot fi flosite ca identificatori pentru date, deoarece ele au tun infeles bine stablt pentru limbajul de programare. Conventie de notare: Semnul | plasat intre doud elemente are semnificatia conjunctiei ‘sau, adicd pentru operatia de ridicare la putere pot ffoloste simbolurile * sau simbolul [Operator |Semnificatio lExempiu ‘mod (modulo) "[Caiculeaza restul imparjiri primului operand al 119 mod 4=3 \ccilea operand. div (imparire - |Caiculeaza catul Imparlini primulul operand la al |19 dw 4= intreaga) _|doilea operand. Operatorii relationali (de comparatie) toare. Pentru compararea celor dous giruri de caractere se va scrie "Idee">"IDEE" jar in urma executarii operatiei de comparare se va produce rezultatul T. Operatorul de concatenare Catt Se aplic& pe operanzi de tip sir de caractere si furnizeaza un rezultat de tip sir de caractere. Retire, 5555 tok [Operator __[Semnificatie : Se aplicd pe operanzi de tip numeric sau de tip gir de caractere si furnizeaza un + [Reuneste dou’ giruri de caractere intrun singur rezultat de tp logi. (concatenate) |siede caractere Operator Semnificatie a Operatorii logici (egalitate)_[Rezultalul este T daca cei doi operanzi sunt egal = Petenitok na “ (maimare) |Rezultatul este T daca primul operand este mal {negare) _| plementul sau: Tou F gi Fcu T. F Imare decat al doilea operand. " db | aorb <= (mai mic [Rezultatul este T dacd primul operand este mal Operator | Semnificatie ab} sand oe sau egal) _|mic sau cel mult egal fat’ de al doilea operand land [Rezutatu este Teacd ambi operanciay [r{T| r (mai mare |Rezultatul este T daca primul operand este mai \.si logic) _[valoarea T. altel este F. HEL r sau egal) mare sau cel mult egal fata de al dollea operand. lor |Rezultatul este T daca cal putin unul dintre 7 7 (.saut logic) joperanzi are valoarea T, altel este F. FIF Un operator relational aplicat : Pe doua siruri de caractere realizeazé compararea celor doua siruri de caractere. Compararea a doua caractere este posibila prin compararea numeric a codurilor ASCII ale celor doud caractere. Astfel, codul ASCII al caracterului d este 100, iar al caracterului D este 68. Deci, caracterul d este mai mare decat caracteru! D. Pentru compararea celor doua caractere se va scrie "d'>"D" iar in urma executdiii Operatiei de comparare se va produce rezultatul T deoarece operatia de compa rare Se executd intre cele doua valori numerice (100>68). Compararea a doua siruri de caractere se face prin compararea codului ASCII al caracterelor din aceeasi pozitie a fiecdrui sir. Daca cele doua siruri nu au aceeasi {ungime, sirul cu tungime mai mica este completat la sfarsit, pana la egalarea lungimilor, cu caracterul care are codul ASCII 0. Operatia de comparate incoBe cu Prima pozitie din sir si continua cu urmétoarele poziti' numai daca pozitile ante- ‘ioare sunt identice in ambele giruri. De exemplu, sirul de caractere Idee este mai mare decat sirul de caractere IDEE deoarece in pozitia a doua caracterele din cele doua siruri nu mai sunt identice, iar codul ASCIl al caracterului d este mai mare decat codul ASCII al caracterului D. Operatia de comparare se opreste dupa el de al doilea caracter si nu mai conteaz codurile caracterelor din pozitile urma- Operatorii logici sunt foarte util atunci c&nd construiti expresii logice care descriu | anumite conditi ce vor fi testate, urmand ca in functie de rezultat sa se execute anu- mite operafi, Daca expresille logice sunt prea complexe, le puteti simpifica folosind urmatoarele relati ot (a and b) = (not a) oF (not b) 3 not (a oF b) = (not a) and (not b) Operatorul de atribuire Prin acest operator puteti atribui o anumita valoare unei date: ume « expresie Operatia de atrbuire se desfagoard in doua etape: mai Itai se evalueaza expresia dupa care valoarea objinuta se atribuie date’ identficaté prin nume. Rezuatel evalua expresie’ trebuie sa fie de aceiagi tip cu data identificata prin num Semnificatie Datei de tip numeric nse atribuie valoarea 100. Exemplu 100 VA Exemplu nen+200 ‘Semnificatio ‘Se evalueaza expresia adunandu-se 200 la valoarea datei n. Valoarea obtinutd in uma evaluarii este 300 ise atribuie ca valoare noua datei n Datei de tip sir de caractere text se atribuie valoarea "sir de caractere” text « "sir de caractere” Prin operatia de atribuire, in zona de memorie alocata datei, se sctie noua valoare a datei, vechea valoare pierzandu-se, (Operaiia de ainbure| a © 200 > ‘Memoria interna 700 ‘nainte de operatia de atrbuire dupa operajia de atribuire Daca vreti sa pastrati si vechea valoare, va trebui ca, inainte de operatia de atri- buire, sa 0 salvati prin copiere intr-o alta variabila ‘de memorie de acelasi tip, Copierea se face gi ea tot print-o operatie de atribuire, Inaintea operatiior de atribuire x [70 yex xo] yGo x @20 xBo] y fo Observatie: Operatia de atribuire se mai foloseste In cadrul unui algoritm pentru executarea urmatoarelor operati: ¥ inifializarea valor unor variabile de memorie gi ¥ calculul iterativ al valori unor variabile de memorie, Calculul iterativ al valorii unei variabile de memorie inseamné s8+i atribuiti acelei variabile de memorie valoarea unei expresii in care unul dintre operanzi este chiar numele acelei variabile de memorie. Tipurile de variabile de memorie cel mai des folosite (din punct de vedere al informatiei pe care o reprezinta) sunt: ~ ¥ Contorul sau numaratorul. Este 0 variabild de memorie care se foloseste pen- tru a numéira anumite cazuri care pot €& apard. Inainte de a incepe numaratoa fea, contorul se initiaizeaza cu valoarea 0 (nu a fost evidentiat incé nici un caz). In timpul procesutui de prelucrare, atunci cand se intdlneste un caz, valoarea Contorului se calculeaza iterat prin incrementare cu 1 (se creste vaioarea ontorului cu 1). De exemplu, daca folosim variabila de memorie k pentru con- tor, inifializarea sa se va face cu operatia de atribuire: k < 0, iar ealculul ite- rativ cu operatia de atribuire: k — k+1. ¥ Suma. Este 0 variabila de memorie care se foloseste pentru calculul iterativ al tunei sume (adunarea la valoarea anterioara a unei noi valor). Inainte de a ince- Pe caicularea ei, suma se inifializeaz cu valoarea 0 (elementul neutru pentru operatia de adunare, si inseamna cd nu a fost adunaté nici o valoare la sumd), De exemplu, daca folosim variabila de memorie $ pentru a calcula suma mai rmultor vatori citite de ta tastaturé prin intermediul unel variabile de memorie a, inifializarea sumei se face cu operata de atribuire s <0, iar calculul iterativ cu operatia de atribuire: s < sta. ¥ Produsul. Este 0 variabila de memorie care se foloseste pentru calcululiterativ al unui produs (inmultirea valorii anterioare cu 0 noua valoare). Inainte de a incepe calcularea lui, produsul se initialzeaza cu valoarea 1 (elemental neutru pentru operatia de inmultire, si inseamna c& nu a fost inmutfita nici o valoare cu produsul). De exemplu, dacé folosim variabila de memorie p pentru a calcula produsul mai multor vaiori ctite de la tastaturé prin intermediul unei variabile de memorie a, initializarea produsului se face cu operata de atribuire p <1, iar calculul iterativ cu operatia de atribuire: p <— pa. yu Caz Scop. Exemplificarea modului in care folositi operatorul de atribuire pentru initiali- zare gi calcul iterativ, Enunful problemel: Se introduc n numere intregi de fa tastaturd. S8 se numere céte sunt pare $i S& Se calculeze suma si produsul for. In urma analizei problemei se obfine specificatia programului: Y Functia programulul. Se numara si se calculeazé suma si produsul numerelor pare dintr-o multime de n numere intregi. Din enunfut problemei rezulta ca in procesul de calcul se folosesc numai numere pare. Pentru a evidentia acest caz (eparitia unui numar par in multimea de numere citite), se foloseste proprietatea numerelor pare: restul impéiiri unui numéir par la 2 este 0, care se exprima prin expresia cu rezuitat de tip logic: (a mod 2)=0. Daca aceasta expresie are valoa- rea T, numarul este par. ¥ Informatille de intrare sunt numarul de elemente ale multimii de numere in- tregi si numerele citite. Reprezentarea interna a informatiei se va face prin da- tele de intrare: n pentru numérul de elemente ale multimii si a pentru numarul citit curent. ¥ Pentru operatile executate in cadrul algoritmului, se va folosi data intermedi- ard / prin care se numara cate numere sau inliodus de fa tastalura la un mo- ment dat. Data intermediara / este necesara pentru a afla cAnd se termina procesul de citire a celor n numere, avand functia unui contor. Valoarea initial a contorului /(Inainte de a se citi primul numa) este 0. ¥ Informatiile de iegire vor fi numérul de numere pare, suma si produsul lor. Re~ prezentarea lor interna se va face prin datele de lesire: k pentru numarul de humere (contorul numerelor pare), s pentru suma lor si p pentru produsul lor. Valoarea ini (Inainte de a se citi primul num&r) a contorului k gi a sumei s este 0, iar a produsulul peste 1. Algoritmul de rezolvare a probleme va f wees imeput. Pasul2. Comunicé valoarea pentru n Psu a Auibule valoarea inata pentru contorul numerelorcitte :1¢— 0; | Pasa g Aitibuie vaioarea iniats pentru contorul numerelor pare k: Ke Pate, Attibuie valoarea initialé pentru suma numorelor pare sce. 0, Rasul Aue vatreo nfl pen poaear ceo e Cor jt Posy ard Ken. Dacé este adevarat, executd Pasul 8; altel, executa Fasul 8. Comunicd vatoarea penta ‘asul 9, Compara (a mod 2)=0. Daca esto a eva ee eta idevarat execut Pasul 10, allie! ‘asul 10. Calculeazé vaicarea pentru k: k< ket i Pasul 11. Calcufeaza vaioaroa pentru s: $¢~ gra, past 12. Calculeazs valoarea pentru p: p — p'a; ‘asul 13. Calculeazé valoarea pentru i: 1 le1. hi Pasul 14. Comunied vaionio pent ks. p. Me" l# Pasa Pasul 15. Terminat. " 2.3. Expresiile Expresia este o combinatie vaida de operatoi i operandi, Operanai pot fi mume de date, ol , Sonstante de tp numeric sau gr de cara ti care a a fut! care tn ua ever fimzeasd un sngur rena In hoes Seo ranzilor $i al operatorilor, rezultatul tere sau logie. expresiei poate fi de tip numeric, sir de carac. intr-o expresie, operatori se folosesc i losese int-un anumit ¥ Operatorii matematci~ pentu efectuaron cones Operator relational $i Toglel = penta eect Wa unos deca in cadrulaigontmatay =® 6° Compara vederea Operatorul de atibuire ~ pen manpularea dation Expos ete vat reags, Sen euton care leaga operani corespund tpl Y Expresia E 7 west seein bn cu conlantedoiprumcacs mma + Calenare + eagldo operana expat pn dous carson ceo ae ¥ Expresia £-22+"ani" ope ial Pit dot coat ens noe as ' interpretat nici ca operator matematic, nici ca operator do Daca intr-o expresie trebuie s8 se calculeze radicalul dintr-o data de tip numeric, ru se poate folosi nici un operator matemalic. in acest caz, imbajul de programare In are se lucreaza pune la dispozitie o functi Functia este 0 prelucrare predefinité de autorii imbajului de programare, care se poate folosi in cadrul unei expresi la fel ca un operand, deoarece ea este de fapt un program care in urma executiei furnizeaza o valoare chiar prin numele ei. Atunci cand se evalueaz4 expresia, functia este Inlocuité cu valoarea returnata In urma executéfil ei. Functia se identifica printr-un nume, iar pentru apelarea ei se scrie numele functiei urmat de o lista de parametri precizati Intre paranteze rotunde, Parametri sunt valorile cu care se executa funcfia la ace! apel. De exemplu, functia sin(x) retumeaza valoarea functis trigonometrice sinus pentru numarul x. Numele functiei este sin iar parametrul x este de tip numeric. Dacd se evalueaza functia sin(x), iar x are valoarea 2.5, In urma executiei programului aso- at, functia va fumiza valoarea 0,598. Pentru a evalua o expresie, calculatorul va executa intr-o anumita ordine operatile pe care le-atl scris, Aceastd ordine este data de: ¥ Precedenta operatorilor. Este ordinea in care se executd operalile definite de operatori. Ea determing nivelul de prioritate al operator. ¥ Asociativitatea operatorilor. Este ordinea In care se evalueazé operatorii cu acelasi nivel de priortate. Fiecare limbaj de programare are implementat’ o tabela de precedenta (tabela nivelurlor de prioritate), si pentru fiecare nivel de prioritate o anumita asociativitate intr-un aigoritm vom folosi urmatoarea tabela de precedentés 1. Se evalueaza functile. 2. Se evalueaza operatorii matematici. Operatorii matematici au niveluri de priori- tate diferite. Operatorul ** are nivel de prioritate 1 find primul care se evalueaza, peratorii*, /, div si mod au nivelul de priortate 2, lar operatorii + si - au nivelul de priortate 3. 3. Se evalueazé operatorii de concatenare. 4, Se evalueaza operatori relatjonali. Tofi operatori relationali au acelagi nivel de prioritate, 5. Se evalueazd operatorii logici. Ordinea de prioritate a operatorilor logici este ot, and si or, primul fiind cel mai priortar, Asoclativitatea operatorilor este de la stanga ia dreapta, adica toji operatorii care ‘au acelasi nivel de priortate se evalueaza in ordine, de la stanga la dreapta, De exempiu, urmatoarele expresii vor fi evaluate astfel Y 5°7*4 + 412 - 2°3mod2/4 = §°7°4 + 4/2 - Bmod2/4 = 3574 + 4/2 - Bmod2/4 = 140 + 4/2 - 8mod2/4 = 140 + 2 - Bmod2/4 = 140 + 2 - O/4 = 140 +.2-0= 142-0 142 ¥ Bex5 or 7>8 Y Gez5 and not 7>8 tor 7>8 = tor tand not 728 = tand not f= tand Ordinea operatillor care se vor executa pentru a evalua expresia e: @ & atb"dbc or alb=d and a+bed or not a>c este: e1 « b"*d (operator aritmetic de prioritate 1) €2 c (operator relational) 3 «afb (operator aritmetic de prioritate 2) |e9 < not e8 (operator logic) e4 c (operator relational) Je11 < 65 or e10 (operator logic) 66 < e3=d (operator relational) je < @11 oF e9 (operator logic) €7 «- ed a°b or not (ave)* este: €1 67 (operator relational) @11 < €8=e9 (operator relational) e12 — not e11 (operator logic) @ < 10 or 612 (operator logic) De exemplu, urmatoarea expresie matematica prin care se calculeaz’ valoarea lui e: ANAT yy Vavtevaat? necesita calculul radicalului de ordin 2 pentru care se foloseste functia sqrt(x). Astfel, atunci cand data x are valoarea 9 functia sqri(x) furnizeaza valoarea 3, iar cand x are valoarea 49 functia sqri(x) furnizeaza valoarea 7. Pentru a putea fi eva- luaté de calculator, expresia va fi sorisé astfet: e & ((sqrt(a+) - sart(a-1))/ (sqrt(a+t) + sqrt(a-t))) « (2 a) Ordinea operatilor care se executd pentru a evalua expresia E este: etcat 05 « sqrt(et) 9 05-06 e2cat 66 « sqrt(e2) e10< e708 eet 7 « sqrt(es) e11 < e9/e10 edeat 28 < sqrt(ed) el2e2-a ecelt+el2 Precondifille unei expresii Expresia defineste cum trebuie s& prelucreze calculatorul anumite valori ale datelor. De fiecare dat& cand calculatorul evalueaz’ expresia, sunt prelucrate valorile curente ale datelor variabile care apar ca operanzi in cadrul exoresiei. In Unele cazuri trebuie stabilte anumite conditii pentru valorile acestor date pentru 2 se putea evalua expresia, adica trebuie stabilite preconditile expresiei Preconditiile expresiei reprezinta un ansamblu de restrict cconstrangerl impuse datelor care apar in expresie ca operant. Aceasta Inseamna ca, daca notim precondifia cu P si expresia cu E, atunci ¥ Daca preconditia P este adevérata (are valoarea true), expresia poate fi calou- lata cu acele vaiori ale datelor. ¥ Daca preconaifia P este falsa (are valoarea false), expresia nu poate fi calculat’ cu acele valori ale datelor, deoarece fie se abfine o valoare eronata, fie se poa- te provoca 0 eroare de executie a programului Preconditile cele mai des intainite sunt: Y Constrangerile operafiei de impartire. In algoritmi puteti folosi trei operatori pentru impartire: /, div si mod, Pentru toate aceste operatii exista preconditia ca imparfitorul sa fie diferit de zero. De exemplu, pentru expresia a/(crd), preconditia este c¥d<>0. ¥ Constrangerile argumentului unei functil. Argumentele unor functi trebuie s& Indeplineasca o anumita conditie. De exemplu, functia sqrt(x) nu se poate apl- ca pe 0 valoare negativa (nu se poate extrage radicalul patrat dintr-o valoare negativa). De exemplu, pentru expresia -b+sqri(b‘b-4"a‘c) preconditia este b*b- 4’a'c>=0, iar pentru expresia (-besqrt(b‘b-4"a'c)/(2"a) preconditia este (a<>0) and (b*b-4"a’c>=0),