Informatica cls. a 9 a.pdf

82
:::::: =.i.:::: ., : 6;_t= E , niffi:. =e' ffi ::=== :. :::. ' :=== ' - 1-'.::-= ,, ,=:i.==::= : rf) co ? CY)

Transcript of Informatica cls. a 9 a.pdf

  • :::::: =.i.::::

    ., : 6;_t=E , niffi:.=e'

    ffi::=== :. :::. ':=== ' -1-'.::-= ,,,=:i.==::= :

    rf)

    co

    ?

    CY)

  • E2e()()d'o\0)x(c

    .d.. d-)>:o%N'i o>

    ()xao'5 0*=o'uo5oEF.i -o=of,69cao'E(J'S ,.s'Fi!()t-I o().-c)=s5?ai4

    .t c () c)=ldQ)Av#6)

    i:

  • !!

    O

    3

    6o

    IE

    !.-

    !=

    =.

    t--2:

    Q-

    L-./!

    5.=

    HESH*EE'gE:E.sEs [g E :; i;; [; i : Ii gEE: 3EE *E tEE IIl E niEI ;EE s tl#EEfiE:8.=l:E;;;r!E,i s$E :EEi E E;-= ; 1 = \ _.= tl ".- 6 S - -i=1=j==i==i=Ei==,'-=====i.===a:i-=

    i: l: ::

    ..tr.

    C)

    L

    oC)a()obo

    o

    o

    aA()otr

    rd

    ,

    =

    -

    t. ^ '- - : -

    ,- 'r - -

    = -

    = = =-7:'J.1= = -.= =- = \

    =.-.- :=

    : = = =; = _ = - -

    z -

    ?.-:: -_-: /.- =.J= ==1===+./ ==!==:-=7,= =a

    = ==l=1j=--, :i==77-=l-; .re- -j.--z-=== _4a-a=-it:2 =c_;. ?==i1'

  • NOTIUNI INTRODUCTIVE

    periculoase pentru s5nAtatea oamenilor, in zone toxice, in addncul oceanelor sau inspa{iul cosmic. Robo{ii preiau prin inlermediul unor senzori informa{ii din mediulinconjurdtor gi sunt programali pentru a fi capabili sd ?gi adapteze activitarea infunclie de variabilele de mediu.

    Activitatea de proiectare, fie c6 se refer[ la guruburi, case, rochii, maqini saunave spafiale, se realizeazd de asemenea cu ajutorul calculatorului, Exist[ pachetede programe speciaiizate pentru acsasta, care constituie un domeniu al infoimaticiidenumit cAD (Computer Aided Design

    -

    proiectare Asistatd de Calculator).Acestea sunt insd exemple mult prea indepdrtate, pentru unii dintre noi, de viala

    de zi cu zi. calculatoarele sunt implicate in orice activitate a noastrd.Lirmdrim un film? Cu maximE probabilitate scenele cele mai spectaculoase din

    film sunt realizate pe calculator. De exemplu, scena cea mai dramatic[ a filmutui,,Titanic", scufundarea vaporului, cand sute de oameni sar cu disperare de la mareindl{ime, a fost realizatr pe calculator, fdrd. ca nimeni sd igi rigte viafa. Regizorulfilmului a pus actorii sd aciioneze in diverse situalii, preluAnd migcdrile 1or prinintermediul unor senzori. Migclrile au fost transferate asupra unor creaturi artiiici-ale, fiecare reprezentare digital6 fiind coordonatd in mod individual pe calculator.

    Ascultdm o reclam6? Mixajul a fost cu siguranlr realizatpe calculator.Vrem s5 $tim cum va fi vremea? Pledicfla vremii este posibild numai cu ajutorul

    caiculatorului. o parte din informaliile necesare pentru prevederea vremii, deexemplu cele preluate din straturile superioare ale atmosferei, sunt inregistratedirect de c[tre calculatoare specializate. Modelarea datelor inregistrate presupuneefectuarea rapid6 a unor calcule complexe, bazate pe ecua{ii matematice. Inteipre-tarea cu cdt mai multS acuratele a datelor se realizeazd,, de asemenea, cu programespecializate, deci tot cu ajutorul calculatorului.

    Vrem s[ plltim impoziteie? La Administra{ia Financiard se lucreazd,pe calcula-tor, existand haze de date de evidenfa a locuinlelor, automobilelor etc.

    Vrem sI ne schimbim buletinul? incepAnd cu fotografia care va fi preluat6 cuajutorul unei camere digitale, pdnd la ?nregistrarea in eviden{ele computeri zate alePolifiei, totul se realizeazdpe calculator.

    Ar fi mai greu sd dim un exemplu unde nu se utilizeazd calculatorul sau,exact, iinde nu trebuie sE se utilizeze calculatorul.

    In domeniul educafiei, calcuiatorul 'este o adev[rat5 provocare pentru invlf5-mAntul tradifional. Informatica nu reprezinti doar o noud disciplin[ de inv5l6m6nt,ci produce un puternic impact asupra metodelor de inv6lare de la orice disciplinl,din orice arie curricularS. De exemplu, accesul la Internet sau o enciclopediemultimedia reprezint[ o importantd resursE educa]ionali, oferind un spa]iuinformafional vast pentru toate domeniile de studiu. Calculatorul este privit ca uninstrument indispensabil oricdrei cliscipline, noile tehnologii multimedia

    mal

  • INFORMATICA

    reprezentand calea de a comunica idei, de a sistematiza informa{ii, de a dezvoltaproiecte. Pentru orice disciplinS gcolard existd programe educafionale, care permitindividualizarea inv[fdrii. CAI (Computer Assisted Instruction

    - invSlarea Asistatl

    de Calculator) reprezintl o noud metodi de inv5fare, prin care profesorul pune ladispozilia elevului, pe calculator, materiale de curs, programe de invS{are, teme delucru, teste. Elevii studiaz6 individual, in ritmul propriu, materialele respective.Acum calculatorul reprezintd sursa principal[ de informafii, nu profesorul, rolulacestuia fiind de a coordona activitatea elevilor. Studiile realizate ?n legiturd cuinvilarea asistatl de calculator au demonstrat cd productivitatea invdldrii cre$te,elevii dobAndesc o cantitate mai mare de informalii intr-un timp mai scurt, sedezvoltd curiozitatea Etiin{ificd, se structureaz[ mult mai bine motivaliile qi aspira-liile individuale qi, nu in ultimul r0nd, elevilor le place sd utilizeze calculatorul.

    Noi probleme tn era informalionaldUtilizarea calculatorului in orice domeniu de activitate a produs o adevdratd

    revolulie informalionald. Aqa cum era de a$teptat, apar alte ,,puncte de fugi" inrelaliile sociale, apar noi probleme, de o importante deosebitd. O astfel deproblemS ar fi posibilele atentate la dreptul fiecdruia la intimitate, prin accesareaneautorizatd a unor informalii personale sau prin monitorizarea permanentd aspafiilor publice.

    O altd problem[, de maximd importanld, este reprezentatd de asigurareadrepturilor de autor asupra programelor sau asupra informa{iilor de pe Intemet.Copyright-ul (drepturile de autor) este un sistem prin care sunt protejate valorileintelectuale. Copyright-ul reprezintd drepturile de proprietate care derivS automatla crearea unei opere, in orice domeniu

    - literar, muzical, plastic, sofh,uare etc.

    Durata de valabilitate a drepturilor de autor variazd de la un sistem legislativ laaltul, dar in general este egal6 cu durata vielii + 50 ani. in RomAnia, conform legiinr. 8/26.03.1996 privind dreptul de autor Ei drepturile conexe, drepturile de autorsunt valabile pe intreaga duratl a vielii autorului, iar dupd moartea acestuia setransmit prin moqtenire, pe o durat[ de 70 de ani (art.25). Capitolul IX (art. 72-81)din legea nr. 8/26.03.1996 stipuleazi dispozilii speciale referitoare la programelepe calculator. Conform prevederilor din acest capitol, autorul unui program(indiferent dacd e'ste program de aplicalie sau sistem de operare, cod sursl sau codobiect) are dreptul exclusiv de a realiza sau autoriza reproducerea integrald sauparfial6 a programului, traducerea, adaptarea, precum qi difuzarea originalului sau acopiilor acestuia, sub orice form6, inclusiv tnchiriere. Utilizatorii autorizali aiprogramului nu au dreptul de a transmite altor persoane dreptul de utilizare aprogramului2. Toate informaliile pe care un utilizator le dobAndeqte prin studierea

    2. Pentru o prezentare detaliatl a tuturor aspectelor legate de drepturile de autor asupra programelorpe calculator, studiafi Legea copyright-ului penrru ro1l, Editura ,,Solu1ii Informafionale",Bucureqti, 1996.

  • FNOTIUNI INTRODUCTIVE

    $i testarea funclionalitalii unui program nu pot fi utilizate.peltru producerea saucomercializarea unui alt program, pe principii fundamental similare.

    Din picate, legea copyrighf-ului nu este intotdeauna respectat[, pirateria fiindun fenomen frecvent, in tp".iut in !6ri1e slab dezvoltate. in multe 1dri, chiar dacdacestea au semnat convenlii internalionale referitoare la respectarea drepturilor deautor, sunt dTfuzate, fie in forme tiperitd, fie in format digital (inregistrate peCD-uri), copii neautorizate ale unor opere de referinl[ $iterare, qtiinlifice, muzicisau fiim). Copierea programelor sau a unor lucr6ri in format digital este facil[,rapida qi praciic imposibil de detectat. Degi creatorii de programe folosesc sistemeOe protecJie din ce in ce mai sofisticate, exist[ specialigti in ,,spargerea" acestorsistlme de proteclie, denumili cracker-i, utilizarea safi-ului firl licenll fiind oadevdratl epidemie.

    La ora actuale, legislalia qi contractele coniin prevederi clare referitoare lamodul de utilizare a solt-ului, dar nu existd un sistem perfeclionat de control alrespectlrii acestor prevederi. Atet in Europa, cdt 9i in S.U-A. se deruleazf, diverseproi""t" de dezvoltare a unor sisteme electronice care sI permitd controlul utilizdriiautorizate a programelor qi informaliilor in format digital'

    Evolulii viitoareImpactul utiliz[rii calculatoarelor asupra societ[lii s-a dovedit a fi deosebit de

    profuna. |n mod evident, informatica joacd un rol esenlial in imbunlti,Lrea situalieieconomice qi a calit[1ii viefii oric[rei naliuni 9i din acest motiv pentru multeguverne aceasta reprezint6 o prioritate nalional5. Includerea informaticii cadisciplin[ de studiu in inv6!6m0nt asigurl preg[tirea specialigtilor de care esten"uoi" pentru a aplica ceea ce ne inva!5 istoria ultimelor decenii: solulia supravie-luirii gi a succesului constd in dezvoltarea tehnologiilor informalionale moderne 9iaplicarea lor in toate domeniile activitalii umane.

    int r eb dri re c apitulativ e1. Da{i exemple de domenii in care este utilizat calculatorul qi descriefi modul lui

    de utilizare!Ce este un robot? Care sunt avantajele utilizdrii robolilor? Scrie{i un scurt eseudespre evolulia robofilor! Analizali modul in care calculatorul a influenfatspecificul muncii umane, precum gi dinamica structurii ofertelor de pe pialalocurilor de munc6!

    3. Ce inlelegeji prin copyright? Este legald utilizarea unui program fdrd licenld?Ce sisteme de proteclie a produselor soft aliintAlnit?

    4. Descrieli modul in care calculatorul influenfeaz[ via]a voastrd personall!5. Descriefi intr-un eseu modul in care calculatorul influenleaz[ comunicarea

    interumanS!

    2.

  • rINtr'ORMATICA

    -

    [email protected].

    2. NOTIUNEA DE ALGORITM

    Ce este un algoritm?Despre algoritmi auzim astlzi din ce in ce mai des, in contexte diferite.

    Conceptul de algoritm nu este nou. Termewil algoritnu derivd din numele unuimatematician persan, Abu Jafar Mohammed ibn Musa al Khowarizmit (cca. g25 e.n.),care a scris o carte cunoscutd sub denumirea latind de ,,Liber algorithmi,,?.

    Matematicienii Evului Mediu in{elegeau prin algoritm o regull pe baza careia seefectuau calcule aritmetice. Ulterior, termenul dehgoritm a=circulat intr-un sensrestr6ns. exclusiv in domeniul matematicii. O datd cu dezvoltarea calculatoarelorcuv6.ntul algoritm a dobdndit o semnifica{ie aparte, astfel inc6t astdzi gdndireaalgoritmicd s-a transformat, dintr-un instrument specific matematicii intr-omodalitate fundamentald de abordare a problemelor in diverse domenii.

    un algoritm reprezintr o metodr de rezolvare a problemelor de un anumit tip.A rezolva o problemd inseamnd a obfine, pentru anumite date de intrare,

    rezultatul problemei (date de iesire):

    Algoritmul este constituit dintr-o succesiune de operalii care descriu, pas cu pas,modul de oblinere a datelor de iegire, plecdnd de la ditele de intrare.

    .Se pot descrie algoritmi pentru rezolvarea problemelor din orice domeniu deactivitate. De exemplu, orice refeti de bucdtSG poate fi considerati un algoritmprin care, plecdnd de la materiile prime, oblinern printr-o succesiune finitr deopera{ii produsul finit.

    Exemplul IPresupundnd ci dispunem de un aragaz, o tigaie, 2 oud, sare gi 200 rnr ulei, sdpregdtim ochiuri.

    ,,Date" de intrare: ou[, ulei, sare.,,Date" de ieSire: ochiuri.

    f. in traducere exact[, ,,al Khowariznrj" inseamnf, ,din orasul Khowarizn,.Astazi acest oraf senumegte Khiva qi se gasegte in Uzbekistan.2' Abu Jafar Moltammed ibn Musa al Khowarizmi este cunoscut gi datorita cdr\ti ,,Kitab al-jabr wa,lnruqabala"

    , o carte de exercitrii matematice, din denumirea cdreia provine termenul algebrd.

    Date de intrareALGORITM

  • NOTIUNEA DE.{LGORITM10

    P* 1, --

    sePune:tsili.fj::;rau r' i"iou'na uleiul in tigaie'iHl ffru;;1;il*"';jt--"i'Jli"Pas 4: SPargem "'i'"d:lT:Pas 5: f,li"itat'pana clllouate se rumenesc'Pas 6: pu"e n" $nem regim' adluglm

    sare'

    Observali c6 am descris o succesiune de paqi' prin care' pentru orice "date"

    de

    i ntrare (u r ei. s are, JiHil - ;:::*1 l;;;i*1;:*; ::""",U Jl: ;", ::" o'

    "

    op"rafii'"ufinare specifice' care se executa ll

    *":::::"z^m un alt exempru, cu care suntefi de

    asemenea familiarizafi: si se

    J;;;;a[ie de forma ax+b=o' cu a' bR'Darc cle intrare: a' bR - rDate de iesire: lt"' t"'-tta ecualiei' sau

    un mesaj adecvat

    pasl: Citegtedateledeintrareaqib. -^r.r^i este x= -b/a

    Pas 2: Dac6 alO atunci Scrie Soluqia ecuaprer

    altfelDaci b=0 atuncl

    Scrie Ecualia estealtfelScrie Ecua;ia este

    nedeterminat'i

    imposibili

    Aceasti succesiune de paqi rezolvl ellafia de forma specificati' pentru once

    valori ale datelor d.;;:;iin ur*u." este un algoritm'

    Lamatematic6,aliinv[latnumerogia[ialgoritmi,chiardac6nui-a$denumit*,,i;4;;i*,,*#t#;?"xl,HJ**'fi?;#ixl'm:ff JT'TXIoAtrate dintr-un numar re4r' atSwtt':;;, a doud numere naturale etc'

    Exercilii Lea pa$ilor' algoritmul de tratare a gripeil

    1. Descrieli, punAnd in eviden![ succeslun

    2.Descrieli,punindinevidenllsuccesiuneapaqilor'algoritmulderezolvareaunei ecualii de forma ax2+bx+c=0'

    cu a' b' c nurnere reale date'

    3.Descriefi,punlndineviden{6succesiuneapaqilor''afe'oriyufdecalculalmedieisemestriale

    " 'i;;;l;;obiect la care se susline tez6'

    4.Descriefi,punAndineviden!6succesiuneapagilor,unalgoritmdecopiereaunelzone de,"^t oi#u";;;;;* wo'a i*-inalt documen t word'

    5'Descriefi,pundndineviden!6succesiuneapagilor,algoritmulpecarel-a!aplicat ta uttima'ip*r"'iu "i;;tuat6

    in laboratorul de chimie'

  • INFORMATICA

    2.2. Propriet5{i caracteristice ale algoritmilorExemplele precedente genereazdin mod firesc doui intreblri:o Pentru orice problemd existd un algoritm de rezolvare?Rdspunsul este NU! ExistI problerne pentru care se poate demonstra (lucru

    dificil!) cd nu existd algoritrni de rezolvare, dar gi probleme pentru care nici nu s-ademonstrat cd nu adrnit o metodd de rezolvare algoritmic[, dar nici nu s-a descoperit(inci! ) solulia algoritmicd.

    o Orice succesiune de pagi reprezintd un algoritrn?Din nou, rispunsul este NU! Pentru a fi un algoritm, secvenla trebuie sI

    indeplineascd trei condilii:1. Claritate

    - la fiecare moment, operafia care urmeazi a fi executatd este unic

    determinatS, definiti qi realizabild (adicd poate fi efectuat[ la momentul respectiv,cu mijloacele disponibile).De exemplu, secvenla ,,Dacd ploud stau acasd sau merg la cinema" nu este clar6,

    deoarece, in cazul in care ploud, operalia care se executd nu este unic determinatS.

    Sau si presupunem ci dorim sd oblinem un numlr natural, care se poate scrie casumi de pdtrate. Secvenla de mai jos ,,scrie *'*y"'nu este clar[, deoarece nu putemcalcula valoarea *'*y', deoarece nu cunoa$tem valorile lui x gi y.2. Generalitate (universalitate)

    - o secven!6 de pagi reprezinti un algoritm de

    rezolvare a unei probleme dacd obline date de iegire (rezultate) pentru orice date deintrare specifice problemei.

    Secvenla de paqi prezentatd in exemplul 2 este generald, deoarece ionduce larezolvarea ecua{iei ax+b=0 pentru orice valori reale ale coeficienlilor a qi b.

    Dar, dacd am fi descris o secvenld de pagi care si rezolve numai ecualia x+2=0,aceasta nu ar fi fost un algoritm!3. Finitudine

    - rezultatele problemei se ob{in dupd un numdr finit de paqi.

    De exempiu, problema ,,Sd se determine toate zecimalele numdrului ti' nu are osolplie algoritmicS, deoarece n este un num6r iralional, care are o infinitate dezecimale. Dar dacd am enunla problema astfel: ,,Fie n un numdr natural dat. Sd sedetermine primele n zecimale ale numdrului d', aceastd problem[ admite o solu]iealgoritmici, deoarece primeie n zecimale se pot obline dupd un numdr finit de paqi.

    in concluzie, degi nu putem defini cu rigurozitate no{iunea de algoritm, putemdescrie mai detaliat aceast[ notiune astfel:

    1t

  • NOTIUNEA DE ALGORITM12

    2.3. Etapele rezolvlrii unei problemeRezolvareauneiproblemeconstituieunprocescomplex,carecompoftamai

    multe etape.

    l. Analiza problemeiin scopul stabilirii datelor de intrare, precum qi a rezultatelor-

    ;";" irebuie si le obf;nem prin rezolvarea problemei'2. Elaborarea unui algoritmde rezolvare a problemei'

    3. Impl ement area algoritmului intr-un limbaj de programare'

    4. V e rifi c ar e a c o r e c t itudinii algorilmului propus'

    Unprimpasconstlintestareaprogramuluipediverseseturidedatedetest.seturile de date de test trebuie Jluborut" cu atenfie, astfel inc6t

    s[ acopere, pec6t posibil, toate variantele de execufie a algoritmului,-inclusiv situalii

    de excep-

    tie, $i si verifice daci fiecare subproble;a a probleme] date este rezolvata

    corect(dac[esteposibil,sevatestaSeparatfiecaremoduldeprogram).Testareapoatepuneineviden![,gventual,omisiunisauerorideconceplieaargorit-ilo,,darnugarunteazdcorectitudineaalgoritmului.Pentruaceastaartrebui sa testam algorrtmul pe toate seturile posibile de date de intrare,

    ceea ce

    este practic impoiiuit. Din acest motiv, ," i*pun" utilizarea unor metodeformale o" a"*on.irare a corectitudinii algoritm;lui, etapS de obicei

    deosebit

    de laborioas[, necesitdnd un aparat matematic complex'

    5. Analiza conrylexitdlii algoriunului'

    in general, exist[ mai mulli algoritmi de rezolvare a unei probleme date' Pentrua alege

    ""f *ui -Uun

    "f l".itrrl trebuie si analizdm acesti algoritmi in scopul

    deteririn6rii eficienfei lo-r 9i, pe cdt posibil' a optimalitalii lor'

    Eficienfa unui algoritm se evalueaz6 din doud puncte de vedere:

    l.dinpunctuldevederealspaliuluidememorienecesarpentrumemorareavalorilorvariabilelorcareintervininalgoritm(complexitatespa!iu);

    2.dinpunctuldevederealtimpuluideexeculie(complexitatetimp).ComplexitateaspaliuovomanalizacuprecIdereatuncic6ndvomtranspune

    algoritmul intr-un limbaj de programare'Pentru a estima complexitatea timp vom presupune cd se lucreazi pe un

    calculator ,,clasic", in sensul c6 o singura instructiune este executata la un moment

    dat. Astfel, timpul necesar execu[iei programului depinde de numlrul de operafiielementare efectuate de algoritm'

    Observalie

    Elaborarea algoritmilor nurevenim la o anumit6 etaPd 9i

    este un proces liniar, adeseori este necesar sasE o repetSm. De exemplu, dupd ce am demonstrat

  • 13INFORMATICA

    coiectitudinea algoritmului 9i am analizat eficienfa sa, ne putem pune problema dea optimiza algoritmul sau numai implementarea sa, caz in care trebuie s[ revenimIa cea de a doua etap6, de proiectare a algoritmilor 9i de scriere a codului, etapiurmatl in mod necesar de teste de corectitudine, eliminare a erorilor (bug-urilor),demonstra{ii de corectitudine, teste de determinare a complexitilii, analiza teoreticda complexitdlii etc.

    2.4.DateOrice algoritm lucreazl cu date: date de intrare (datele pe care trebuie s5 le

    primeascl un algoritrn din exterior), date de ieSire (datele pe care trebuie s5 leiurntzeze algoritmul in exterior), precum Si date de manevrd (date temporare,necesare algoritmului pentru a obline datele de ieqire pe baza datelor de intrare)'

    Datele cu care lucreazd algoritmii pot fi clasificate din mai multe puncte de vedere.O primd clasificare a datelor, in func{ie de posibilitatea de a-gi modifica valoarea, este:

    1. Constante -

    date care nu i;i modificfl valoarea; de exemplu: 10, 3.1-4, "sirde caractere", 'A', fals.

    2. Variabile -

    date care iqi modificd valoarea.

    O variabill poate fi referiti printr-un nume (o succesiune de litere qi cifre, primulcaracter fiind obligatoriu litera) qi are asociatd o valoare. Numele unei variabile nu seschimbd pe parcursul algoritmului, dar valoarea acesteia se poate modifica.

    De exemplu, pentru rezolvarea ecualiei de forma ax+b=0' am utilizat douAvariabile a gi b. Prin operafia ,,CiteSte clatele de intrare a Si H' , acestora li se asociacdte o valoare real5, introdus[ de la tastaturd. Utilizarea acestor dou[ variabile erastrict necesara, pentru a respecta generalitatea algoritmului. Dac6 am fi utilizat dou[valori constante (de exemplu, 2 9i 3 .5), secvenla de operalii ar fi rezolvat numaiecua{ia 2x+3 .5=0, deci nu ar fi avut utilitate.

    Observali ci la inceputul algoritmului am specificat (arn declarat) faptul cd a gi bsunt numere reale. Aceastl declaralie este necesar6, pentru a cunoa$te natura valorilorcare pot fi asociate celor doul variabile gi, ca urmare, operaf;ile permise cu acestea.Spunem cE am declarat tipul variabilei respective. O variabild poate reline numaivalori de tipul declarat.

    in funclie de valoarea lor, datele pot fi clasificate astfel:l. Date numerice

    - au ca valori numere (naturale, intregi sau reale);

    2. Date alfabetice -

    au ca valori caractere sau giruri de caractere;3. Date logice

    -

    au valoarea adev5raL sau f als.

  • t4 NOTIUNEA DE ALGORITM

    2.5. ExPresiiOexpresieesteconstituit[dintr.osuccesiunedeoperanzi,conecta,tiprin

    operatori.|Jnoperandpoatefioconstant[,ovariabil[,sauoexpresieincadrataintreparantezerotunde.operatoriidesemneazSoperaliilecareseexecutEasupraoperanzilor. operatorii.ur" po, fi utilizali intr-o expresie depind de tipul operanzi-

    lor(numericiintregi,numericireali,caractere,qiruridecaracteresaulogici).Evaluarea unei expresii presupune calculul valorii expresiei, prin inlocuirea

    valorilor variabilelor care intervin ca operanzi in expresie qi efectuarea operafiilor

    specificate de oPeratori.

    Vom prezenta trei categorii de operatori'

    Operatori aritmeticioperatoriiaritmeticidefinescooperaliearitmeticigipotficlasificaliastfel:

    1. operatori aritmetici multiplicativi: * (inmullire), /(imp[4ire), 7o (restulimpnrfirii intregi).operatoruldeimpir,tire(/)areunefectdiferit,infuncliedetipuloperanzilor.

    Dac6 ambii op".anzi'iunt intregi, se face imp6(ip intreagi (se obtine ca rezultat unnum6r intreg, care este catu impa4irii primului operand la cel de-al doilea). Maiexact, fie a gi b doul variabile intregi. Expresia a/b arc ca valoare catul impa(iriiintregialuialab.Dac6,deexemplu,aarevaloareaTgibarevaloarea2,expresia a/b arc valoarea 3'

    DacS cel pu[in unul dintre operanzi este real, se face imp[rfire real6 (se oblineca rezultat un num6r real). De exemplu, dac6 a 9i b sunt doui variabile reale' iar aare valoarea 7 qi b are valoarea 2, expresia a/b ate valoarea 3 ' 5'

    Operatorul 7o se poate aplica numai asupra operanzilor intregi'

    2. operatori aritmetici aditivi: + (adunare) qi - (sc[dere)'

    operatorii aritmetici aditivi gi multiplicativi sunt binari (acfioneazd asupra a doioperanzi).operatoriiaritmeticiSepotaplicanumaioperanzilornumerici.Rezultatul evaludrii unei expresii aritmetice este numeric (intreg sau real' in funcfiede operanzi 9i oPeratori).

    Operatori relalionaliOperatorii rela{ionali

    operanzi: < (mai mic)' >* (egal), # (diferiO.

    descriu relalia de ordine sau de egalitate dintre cei doi(mai mare), < (mai mic sau egal),2 (mai mare sau egal)'

  • 15INFORMATICA

    Operatorii relationali sunt operatori binari 9i se pot aplicanurn"ri.i, logici (fa1s < adevirat) qi caractere (ordinea

    numai operanzilorcaracterelor fiind

    determinati de codurile lor ASCII3)-Valoarea unei expresii relalionale este intotdeauna de tip logic (deci poate fi

    adevdrat sau fals).Operatori logictoperatorii logici definesc o operalie logic[: negalie logicit - t; coniunclie

    togicd -

    qi: ctisjunclie logicd -

    sau. operatorul ! este unar, operatorii qi, sau suntop-eratori binari. Efectul acestor operatori este cel uzual, inv[lat la logicdmatematic5. il reamintim in tabelul urm[tor:

    x v !x :lsauy xsiyfals fals adevirat fals falsfals adevdrat adev6rat adev6rat fals

    adeviratadevirat

    falsadeviraL

    fals4-1^rdaS

    adevdraLadevirat

    falsadevdraL

    operatorii logici se pot aplica operanzilor logici. valoarea unei expresii logiceeste de tip logic.

    GreSeli frecvente tn scrierea expresiilorO greqeald frecventi in utilizarea operatoriior relalionali este utilizareainldnfuitd a acestora.De exemplu, sd presupunem c5 este necesarS o expresie care sd aibl valoareaadevdrat daca valorile a trei variabile intregi a, b, c sunt egale. Este greqit sdscriem a=b=c. Corect ar fi, de exemplu, a=b Si b=c'Frecvent Sunt ,,uitate" patanteze, de exemplu pentru a calcula media aritmeticd avariabilelor a qi b, este scris a+b / 2 in loc de (a+b) / 2 '

    3. O greqeall des intdlnit[ este omiterea operatorul de inmullire ,,n". De exempiu,este scris a+2b in loc de a+2 *b.

    Evaluarea unei expresiitn procesul de evaluare a unei expresii se respectd regulile debazd, invilate la

    matematicd (in primul rdnd se evalueazdexpresiile dintre parantezele rotunde; apoise execut6 operaliile in ordinea prioritdlii 1or; dac[ existd mai multe operalii cuaceeaqi priorilate, se executl in ordine, in funclie de asociativitatea lor)' Prioritateaoperatorilor este (1 fiind consideratl prioritatea maximA):

    1.

    2.

    rlliIiliilI1j3. Yezi anexa 1.

  • T6 NOTIUNEA DEALGORITM

    Prioritate Oneratori Simbol Asociativitate1 Nesatia losicl de a dreaota la stAnea2 Aritmetici multiplicativr *, /, % de a st0nsa la dreapta3 Aritmetici aditivi de a stdnga la dreapta4 Relafionali de la stdnga la dreapta

    5 Coniunctie logicd 9r- de la stdnsa la dreapta6 Disiunctie loeici sau de la stdnsa la dreapta

    1.

    2.

    J.

    4.

    5.

    Exemple

    Fie x un numlr natural, Expresia x%l-0 are ca valoare restulnumirului x la l-0 (care este de fapt ultima cifr6 a lui x).Fie n un num[r natural. Expresia n* (n+]-\ /2 reprezinti suma

    imp6(irii

    numerelornaturale mai mici sau egale cu n.Sd presupunem cd in variabila R memorlm raza unui cerc, iar constanta fi oaproximlma Ia valoarea 3 . 14.Expresia aritmeticd 2*3 .LA*R are ca valoare lungimea cercului de razS R (cuaproximagie).Expresia aritmeticl 3.14*R*R are ca valoare aproximativ6 aria cercului derazdR.Fie x un numlr natural. Expresia x0 qi y>0.

    2.6. Probleme propuse1. Sd considerim a, b gi c trei variabile intregi, avAnd valorile 4, 6 gi respectiv 2.

    Evaluafi expresia (1,+2* a/b+a+2*b / 3* c) / 2+a.2. Fie n o variabili intreagi cu valoarea 32735. Evalua(i expresia

    n810+n/ 10% L 0+n/ 10 0I l- 0.

    4. Numerele irafionale, care au o infinitate de zecimale, nu p

  • INFORMATICA I73. Si considerdm a, b qi c trei variabile intregi, av6nd valorile 5, T gi ,"rf*iu

    B. Evaluafi expresia a0 ;f l ',b. t (x%2=0

    =., *ao 1 / t:

    C. lxB2=0d. x>0 sau

    si tx(0I

    .'. ' -;

    2 -

    Informatic6

    x%2=1

  • REPREZENTAREA ALGORITMILOR18

    @q 3. REPREZENTAREA ALGORITMILOR3.1. Principiite programlrii structurateCreqterea complexitalii aplicaliilor a impus la inceputul anilor '70 aparilia unei

    noi paradigme in programare: proSramctrea stltcturatd. scopul era de a dezvoltanoi tehnici de prograriar",

    "ur" s[ permitd dezvoltarea unor programe fiabile, uqor

    de elaborat in ecfrila, ugor de depanat, de intre{inut gi de reutilizat.

    Un prim principiu al programarii structurate este modularizarea. Pentruproiectarea untr aplicalii complexe, este necesari descompunerea problemei careirebuie rezolvat[ in subprobleme relativ independente, pentru fiecare dintre acestesubprobleme scriindu-se module de p'ogtu* mai simple' Fiecare modullefectueazd un set de prelucrSri specifice qi este relativ independent de celelaltemodule, cu care

    "o*rni"e prin intermediul unui set de parametri, care constituie

    interfa{a. Avantajele sunt multiple. Cum la orice firma se lucreazd in echipS'modulele de program pot fi impiementate de mai mulli programatori' Modificareaunui modul nu afect"ard celelalte module. Fiecare modul poate fi implementat,testat, depanat, modificat, independent de celelalte'

    Un alt principiu fundamental este structurarea datelor Si a prelucrdrilor'

    Programatorul are posibilitatea de a-qi"grupa datele in colec[ii, organizate dupdanumite reguli, denumite structuri de date'.

    Prelucrdrile asupra datelor sunt structurate separat. Conform teoremei destructurA Bohm-Jacopini, orice prelucrare poate fi descrisd prin compunerea a treistructuri fundamentalei structura liniard (secven{ia16), structura alternativd qistruclura rePetitivd.

    ,\B 3.2. Reprezentarea algoritmilor in pseudocodT Pentru ca o secven!6 de operalii sd constituie un algoritm, ea trebuie s[ fie clar[,adicd la orice moment opera{ia care urmeazd a fi executatd trebuie sd fie unicdeterminata, deflnita gi realizabilS (sI poatd fi efectuatd la momentul rcspectiv, cumijloacele disponibile). Apare intrebarea: care sunt operafiile definite, cu ajutorulcdrora sd putem descrje algoritmi?

    proiectarea modular6 a apliialiilor va fi studiati in detaliu in clasa a X-a.i;6i;ili i0 ,o* *uoiu cdieva srructuri de date fundamentale. in clasele a X-a 9i a XI-a vomstudia gi alte structuri de date (de exemplu, stiva, coada, lista)'

    1.z-

  • INTORMATICA

    Un rispuns posibil ar fi: operaliile definite sunt instrucliunile limbajului deprogramare X! Este un rdspuns acceptabil pentru to$ cei care cunosc acest limbaj deprogramare. Dar pentru ceilalf? Nu putem impune nimdnui s[ invele un anumitlimbaj de programare, numai pentru a inlelege algoritmii pe care ii scriem noi. In plus,experienla celor 5 decenii care s-au scurs de la aparilia limbajelor de programare, neinva!6 cI nici un limbaj nu este veqnic, nici unul nu a avut supremafia, nici in timp,nici ca numdr de utilizatori.

    Prin urmare, este nevoie de o metod6 universali de reprezentare a algoritmilor,ulterior fiecare programator avdnd posibilitatea de a implementa algoritmii in limbajulpe care il prefer6. De-a lungul timpului s-au impus dou[ modalitd{i de reprezentare aalgoritmilor: schemele logice qi limbaiele de tip pseudocod.

    Schemele logice constituie o metodd de reprezentare graficI, foarte sugestivd, darcu o serie de dezavantaje: se dI o egal6 importan![ componentelor principale ca qidetaliului, prin urmare schemele logice devin deosebit de stufoase gi greu de urmdrit;pentru aplicaliile mai complexe, c0nd este necesard modularizarea, este practicimposibil de pus in evidenp legiturile dintre module in cadrul schemei logice.

    Din acest.motiv, treptat s-a impus o altl metodi de reprezentare a algoritmilor:pseudocodulipn limbaj de tip pseudocod este un ansamblu de convenlii, respectate inmod sistematic, care definesc operafiile permise (denumite gi instruc{iuni) pentrureprezentarea algoritmilor.fi

    Vom prezenta in continuare un limbaj pseudocod, cu ajutorul clruia vomreprezenra algoritmii.

    3.3.Struct@-Declararea datelor

    I variabila tip;La inceputul oricirui algoritm, vom preciza datele de intrare, datele de ieqire,

    eventualele date de manevr6, precum gi tipul acestora. inainte de a utiliza oricevariabil6, o vom declara, precizAnd numele qi tipul ei. O variabilI nu poate fideclaratd de mai multe ori in acelaqi algoritm.

    Exemplex real;c caracter;i int.reg;

    Operalia de citireCitegte variabilal, variabila2, variabila,;

    l9

  • A. REPREZENTAREAALGORITMILOR

    Efect:Prnop"*riudecitire(denumitdqioperaliedeintrare)sepreiausuccesivvalori de la tastatur[ gi se asociazS, in ordine, variabilelor specificate'

    Operalia de scriere

    $ Scrie expresiel, expresie2' expresie';

    Efect:operafiadescriere(denumitdqioperaliedeieqire)presupuneevaluareain ordine a expresiilor specificate 9i afiqarea pe ecfan a valorilor lor pe aceeagi

    linie.

    Operalia de atribuire

    I variabila (- expresie;IEfect: se evalueazd exPresia,

    membrul st1ng.

    Instrucliune comPusd

    apol se atribuie valoarea expresiei variabilei din

    instruc!iuneinstruc!iune

    lnst rucfiune-n

    Efe ct : se efectueazi in ordine instrucliunile specifi cate'

    Instrucliuneacompusdesteutil6atuncic6ndsintaxapermiteexecutareasingure instrucliuni, dar este necesari efectuarea mai multor operalii'

    Observaqii

    1. Orice instrucliune se tennind cu caracterul ' ; ' '2. Pentru claritate, putem insera intr.un algoritm comentarii, mici texte

    explicative. inceputul unui comentariu este marcat de succesiunea de calactere

    / * , iar sfhrgitul comentariului este marcat de * / '

    _12

    unel

  • INFORMATICA21

    3.4. Aplicafii

    CubFie a un numir real, citit de la tastaturd, care rcprezintdlungimea laturii unui cub. Si se scrie un algoritm care sicalculeze gi sI afiqeze volumul gi suprafafa totall acubului.

    \SoluSie

    Date de intrare: a rea1,.Date de ieSire: V real;

    S real;Citegte a;V+-a*a*a,.Scrie,,Volumul_ cubuluise-6*a*a;

    /*volumu1 cubului *,//*suprafala Lotala * /

    este ,,, V,.ScrLe ',suprafafa tot.al5 a cubului este ,,, S;Compus chimic

    , un grup de cercetetori studiazd un compus chimic descoperit pe praneta Marte.In urma analizelor efectuate, au dedus ci o molecula din acest compus este formatidin nc atomi de carbon, no atomi de oxigen $i nH atomi de hidrogen. $tiind cImasa atomurui de carbon este 12, masa atomurui de oxigen este 16, iar masaatomului de hidrogen este 1, sr se scrie un'argoritm

    .*. ,a".ui*reze Ei sr afigezemasa moleculari a acestui compus.Solulie

    ,/*numirul de at.omi de carbon *,//*numdrul de at,omi de oxigren *7/*numlrul de at.omi de hidrogen *//*masa moleculari a compusului *,/

    Date de intrare: nC natural;nO natural;nH natural

    ,.

    Date de ieSire: m natural_,.Citegte nC, nO, nH;m+-nc*12+nO*16+nH;Scrie ,'Masa moleculari. a compusului este ,,, m;fngheyatdDe ziua lui' Ionel a primit de la bunica s rei gi ar vrea sr invite ta inghelat, c6tmai mulli colegi. gtiind c[ o inghe]atr cost6 p lei, sd se scrie un atgoritm care sicalculeze gi sE afigeze numrrul maxim de coregi pe care Ionel ii poate invita gisuma de bani care ii mai rimdne lui Ionel.

    a

  • 22 REPREZENTAREA ALGORITMILOR

    SolulieDate de intrare: S natural;

    P natural;Date de ieSire: nrc naEural;

    rest naEural;Citegte S, P;nrc+-Sl (P+1); /* P+L pentrurest+-St (P+1) ;

    ,/ * suma *,//* prelul unei lnghelate *//* numarul maxim de inviEa|i * //* suma rimasd */

    minAnci inghelati */tt

    , nfC;

    c5 si ronelScrie "Numarul maxim de invitati esteScrie "Suma rimasd esEe ", rest;

    TriunghiFie x un num6r natural format din 5 cifre (xax3x2x1xo). S[ se atiqeze un

    triunghi format din cifrele numdrului x astfel:pe prima linie (in vdrful triunghiului) se va afla cifra din mijloc (x2)pe linia a doua se vor afla cifrele X3X2x1pe a treia linie se vor afla toate cifrele lui x.

    De exemplu, dacd x=15289, triunghiul va arita astfel:z

    528Lsz89Solu{ieProblema consti in ,,spargerea" numdrului x in cifre. in acest scop am

    numerotat cifrele numirului x de la dreapta la stinga incep6nd cu 0, astfel incAtnum[rul cifrei sd corespund[ puterii corespunz[toare a bazei (in cazul nostru baza10): xo este cifra unitdlilor (deci corespunde lui 100), x1 este cifra zecilor (decicorespunde puterii l-01), x2 este cifra sutelor (corespunde lui 102) g.a.m.d.

    Devine astfel evident cA pentru a extrage cifrele numdrului x trebuie sdefectuim impe4iri la 10. Pentru a obline ultima cifrd din x vom implrli pe x la 10qi vom re{ine restul in xo. Elimindm apoi ultima cifrd din x (implrfind pe x la 10,x devine xax3x2x1) &cutrr X1 a devenit cifra unitdlilor qi continu6m extragereacifrelor numdrului x in acelagi mod.

    Date de intrare: x natural;Date de manevrd: x0 , x1 , x2 , x3 naturale;Citegte x;x0

  • IIYTORMATTCA

    x+-x/1"0; /*elimin cifra sutelor */x3e-x%10; /* relin cifra miilor */x

  • 24 REPREZENTAREA ALGORITMILOR

    Pentru a infelege mai bine acest algoritm s[ urmdrim execulia lui pentru un setpafticular de date de intrare. In acest scop, am numerotat instrucliunile de la I la 5.be exemplu, sI presupunem cI de la tastaturi se introduc valorile 3 qi 7.

    3.5. Probleme propuseCe va afiqa urmStorul algoritm, dacl se citesc valorile 7 qi 2 3 ?

    Date de int:rare/ieSire.' a nat.ural,. b naLural;Citegte a, b;a

  • INFORMATICA

    {-25

    5. Fie xL, x2, x3,14, x5 cinci valori reale' Scrieli un algoritm care sEfoloseasc[osingurivariabil[suplimentaripentruapelmYtlcircularvalorilecelor cinci variabile (adicl in Rnat x1 s[ aibd valoarea iniliald a variabilei x2'x2 valoarea iniliala a variabilei x3, x3 valoarea iniliala a variabilei x4' x4valoarea iniliala a variabilei x5, iar x5 valoarea iniliala a variabilei x1-)'

    /6)fi" a. b si c trei numere reale, care reprezint[ lungimile laturilor unui\yil;iri]sl r" scrie un algoritm care sd calculeze qi sd afiEeze perimetrul 9iaria triunghiului.

    fih broasci testoas[ parcurge o distan!6 de D kilometri in H ore' S[ se scrie un\-/ -algontm care sa .ui"ul.rJ gi sd afiEeze viteza cu care se deplaseaz6ilxo?sca

    leltoas6 (exprimat[ in metri/secundl)' *.Sg. Doi colegi (vasilic[ qi Ionic6) pleaca simultan din oraqele in care"locuiesc'

    unul c6tre ..faruii. $tiind ca distan{a dintre cele dou[ ora$e este D, cd Vasilicimerge cu viteza v1-, iar Ionic6 merge cu viteza v2 (D' vL' v2 numere reale)'scrieli un algoritm care calculeazd dup6 cat timp se intdlnesc cei doi colegi

    qi

    la ce distanli de oraqul in care locuieqte Vasilicd'

    9. Fie A qi B dou6 puncte in plan, specificate prin coordonatele lor carteziene' Sdse scrie un atgoritm

    "*" .a calculeze Ei s[ afigeze lungimea segmentului AB.

    10. A fost odatS un balaur cu 6 capete. tntr-o zi Fdt-Frumos s-a supdrat qi i-a tliatuncap.Pestenoaptei-aucrescutalte6capeteinloc.Peacelagigdt!Adouazi,Fdt-Frumosi.ataiatiaruncap,darpestenoaptebalauruluii-aucrescutinlocalte 6 capete ... gi tot a$a timp de n zile. in cea de-a (n+1-)-a zi, Fdt-Frumos s-aplictisit qi a plecat acas6! scrieli un algoritm care citeqte de la tastatura n' numarul

    dezile,qicareafigeazdpeecranc0tecapeteaveabalauruldupdnzile'De exemplu, pentru n=3, algoritmul va afiqa: Dupa 3 zile balaurulare 15 capete

    (olimpiada Judeleana pentru Gimnaziu, ctasa a v-a, 2002)

    d L{. Structura aJternativ6,Daci exPresie

    atunciinstruc!iune-1

    a1tfe1instruc!iune-2

    Efect:Se evalueazd exPresia.Dacd valoarea expresiei este ad.evSraL, atunci se execut[ instruc!iune-1'Dac6 valoarea expresiei este f a1s, se executl instruc!iune-2'

  • REPRiZENTAREA ALGORlrYl"9*26

    Bi

    ,.-.

    ObservaYii

    l.AtAtperamuraaLunci'c6tqiperamuraalt'felestepem.'isdexecutareaunei singur" i,ru*i*ii'i, l"rri in care este necesari efectuarea

    mai multor

    operafii, acestea se grupeazi intr-o singurl instrucliune compus6'

    2.Dacdperamuraaltfelnuestenecesar5efectuareaniciuneioperafii,aceastdramurd Poate liPsi'

    3.InstrucliuneaDacdpenniteexecutareauneisingureinstrucliuni,infunctiedevaloarea unei expresii, deci permite selectarea Jondilionata

    a unei alternative'

    Aceastainstrucliuneimplerrrenteaziinpseudocodulnostrustructuraaltemativd.

    4'Instrucliune-lgiInstrucliune_2suntsuborrlonateinstrucliuniidedecizie. in cazul io.ur. o instrucliune eG subordonatd unei

    alte instrucfiuni'

    aceasta se scrie i. "ii."i indentai fa!6

    de instrucliunea care o subordoneazS'

    Moduldespaliere-suua.,..i",.peliniinuestepredefinit,daresteirnportantcamodul d. ,.Au.tut"

    'a futa programele uqor de urmdrit 9i de intre{inut'

    Selectareainstruc}iuniiceurmeazIs6fieexecutatSinfuncliedevaloareauoJ .*pr"rii reprezint[ o wlicturd alternativd' '' ':' '' "

    3.7. APlica{ii

    ModtilSe introduce de la tastaturd un numSr intreg x"

    calculeazd qi afigeazI modulul num[rului x'

    Solu{ie t- dacdx2oFunclia modul este definitd astfel: Itl = t-1, dacd x::

    Date rJe intrare: x intreg;Date de ieSire: m intreg; / *modu1ul " /Citegte x;Daci x

  • 27INFORMATICA

    Paritatef

    Se introduce de la tastatur[ undacl x este un numir Par.

    num[r intreg x. Scriefi un algoritm care testeazA

    /* calculam discriminantul */

    ridicini rea1e";

    /*d este >0 * /(-b-Ja 11e*a)

    Solulie :Numirul x este par dacl este divizibil cu 2 (adic[ restul implr{irii lui x la 2

    este 0).I oor" de intare: x intreg;t-I Oot, de iesire: RezultaEul testulurI citegte x;I

    I oac5 xZ2=O atunci Scrie x, ' este Pdr" i|

    "Itfel Scrie x, ' nu esLe Pdr";

    Ecualia de gradul al ll-leaFie o ecualie de gradul al Il-lea cu coeficienfi reali axz+bx+c=O (a*0)' Scrie{i

    un algoritm care s[ rezolve ecuatia in mullimea numerelor reale.

    Solulie

    Se calculeazl mai intdi discriminantul ecua]iei. Daci acesta este negativ, ecua{ianu are rldlcini reale. Daci acesta este egal cu 0, ecualia are dou[ riddcini realeegale (confundate). Dac[ discriminantul este mai mare decit 0, ecualia are dou6rldlcini reale distincte.

    Date de intrare: d, b, c reale; / * coef icienlii ecualiei * /Datedemanevrd: d real; /* discriminanlul */Date d,e ieSire: SoIu!iaCitegte a, b, c;d

  • REPREZENTAREA ALGORITMILOR28\-d",

    -j

    l,lE-

    :':

    Fttnc{ieFie x un numdr real. Sd se calculezeF(x)=rna1 { l2x-11, 9-x2}Solu{ie

    Darc de intare: x real;Dcte de ieSire: f reaL ;Citsegte x;f r O-v*v.

    DacZ 2*x-1>=0 atunci{Daci 2*x-L > f atuncia1tfe1{Daei L-2*x > f atunci

    Scrie f;

    valoarea funcliei:

    /* F(x) */

    /* lZx-fl=2x-t */f 7. vom considera x=S/3-3' li y=2' pentrll ce

    S=3*S l3+L=3* (S/3-3 ) +3*3+1=3n (S/3-3 ) +10=3* (S/3-3 ) +5*2':. sZ: este 2. in acest caz vom considera x=S/3-1 $i 1"=1' deoarece

    S=3*S /3+2=3* (S/3-1) +3 +2=3* (S/3-1) +5'Date de intrare:Date cle iesire:Date cle ntartevrii:CiteSte S;r

  • INFORMATICA 29

    3.8. Probleme propuseCare este efectul urmitoarei secvenle de instrucfiuni?1.

    2.

    4.

    5.

    6.

    7.

    ce valoare ini{ial6 ar putea avea variabila x, astfel incat la sfarqitul execulieiurmrtoarei secven,te de instructiuni variabila y s[ aib[ valoarea 2?

    I ,:.i x>3 atunci Daci x

  • REPREZENTAREA ALGORITMILOR30

    stanta in km dintre oraqul B qi

    oraqul c, iar c ,tp"al'lJli;;t" l'k* dintre oraEul c qi oraqul A' $tiind c[

    un cllator iqi praninii';;-t'ttt a celor F o;,11:::*'li xi:,:HT,$::::::;Jf:?l, ff;i;ro r" nra in oricare dintre oraqere B sau c cu trecereorin cel de-al treilea ;:;; -t t" dercrmine-un traseu de lungime

    minima care

    [:;*; ffi ,; ;;;d;t'iFil'11 -Y.,i:*

    cere trei ritere corespunzitoare

    celor trei oraqe, in ordinea in care sunt viziiate. Se va alege o metod[ cit mai

    eficient[ din punctul;-;"d"r" aI gestion[rii memoriei. De exemplu' pentru

    a=58, b=L40, c=L25'se va afiqa BAC' (Bacalaureat 2002' sesiune speciali)

    56sescrieunalgoritmcares[rezolvesistemuldedou6ecua,tiidegradull,cuOooe n""unor.ui" qi coeficien'ti reali:

    11.

    d1X+b1!=C1O'2Yr+b2!=C2

    l2.Unelevestedeclaratpromovatlabacalaureatdac6lafiecaredintrecele5probe de r*u'n"n'ilJ"t"'"ip"f' not" 5'l;;"Jiu 'u-g""ral6

    este cel pulin 6'

    Datefiindcele5notepecareelevulre-aobtinutlabacalaureat,scrieliunalgoritm care si

    "tiin"" dacr elevul a promovat sau nu examenul de

    bacalaureat'

    13. Ionel are H1 cm, Gigel arc H2 "T'^iu' DEnu! are H3 cm' Scrie{i un algoritm

    care s[ afiqeze "'*"i" ""f"r 3

    copii in ordinea crescltoare a inll{imii'

    3.9. Structura rePetitivl

    Instrucliunea rep etitiv d condilionatd anterior

    I cat-tinP exPresie executiI it =trucfiune

    Efect:

    Pas 1: se evalueazi expresia; .- ^ r:.^ i-o+srnriPas2:dac[valoareaexpresieiestefals,seiesedininstrucliuneac6t--t1l.,:^

    dac[valoareaexpresieiesteadevErat'se.execut[instructiunea'aporserevine la Pas 1'

    Observalii . _^r r! . ,i este adev6rats.

    1. Instruc,tiunea se executi repetat' cit timp valoarea' "ip::l-:pentru ca ciclul rA;;; innnit,

    "rt" outigutoriu ca instrucliunea cafe se executa

    s[ modifice cel pufin una dintre r*riuuffi"ur" intervin in expresie' astfel inc6t

    , ;T$'ffi3:t:'LTiJil"tlT:,,:i1;;'"" raIs' instrucliunea nu se execute nici

    mlcar o dat6'

  • 31INFORMATICA

    Instrucliune a rep etitivd condilionatd p o st e riorExecuti

    instruc!iunecAt-timp expresie;

    Efect:

    Pas 1: se executd instructiunea;Pas 2: se evalueaz[ exPresia;pas 3: daci valoarea expresiei este f aIs se iese din instrucliunea repetitivE;

    dacd valoarea expresiei este adevSraL, se reving la Pas 1'

    Observalii

    1. Instrucliunea se execut[ repetat, cdt timp valoarea expresiei este adevirat'pentru ca ciclul sd nu fie infinit, este obligatoriu ca instructiunea care se executdsd modifice cel pulin una dintre variabilele care intervin in expresie, astfel incataceasta sI poatl lua valoarea fals. Deoarece evaluarea expresiei se face dupdexeculia instrucliunii, instrucliunea se executl cel pulin o datd'

    2. Instrucfiunea repetitivi condifionatS posterior (Execut5 cdt-timp) poate fisimulat6 cu ajutorul instrucliunii repetitive condilionate anterior (C6t-timp)qi reciproc.

    Simularea instrucliunii CAt-t.imp cu ajutorul instruc{iunii Execut5 cAt-timp:

    DacE expresie atunciExecutd

    instruc!iunecAt-timp expresie;

    Observali ci a fost necesar[ testarea ini$al6 a expresiei deoarece, spre deosebirede instrucliunea CAt-timp, instrucliunea ExecuLE cdt-timp efectueazd odatd instruc!iune inainte de a testa expresia.

    Simularea instrucfiunii ExecuEi cAt-timp cu ajutorul instrucfiunii Cat-t.imp:

    instruc!iune;Cit-timp expresie executi

    instrucPiuneObservali c[ in acest caz a fost necesar se executdm o dat[ instrucliunea in afara

    ciclului.

    Deducem cd nu este necesard existenla ambelor instruc,tiuni, dar in funclie deproblemS, vom alege instrucliunea repetitivd adecvat6, pentru care descriereaalgoritmului este mai concis[.

    ---'

  • RT,PREZENTAREA ALGORITMILOR32

    Instrucliunea repetitivd cu numdr cunoscut de pasi

    I pentru contor(-expresie_1, expresie-2 executiI instrucli-une

    Efect:

    Pas 1: Se evalueaii exPresie-1'Pas2:SeatribuieuariabileiContorvaloareaexpresieiexpresie-]..Pas 3. Se evalueazl exPresie-2'Pas4:Dac[valoareavariabileicontorestemaimaredecltvaloareaexpresrelexpresie_2,atunciseiesedininstrucliunearepetitivS.Dac6valoareavariabileicontor este mai rnicr sau egald cu valoarea expresiei expresie-2. atunci

    se

    executainstrucliunegiapoiseincrementeaz[(sem[regtecu1)valoareavariabilei contor, dupd care se revine la Pas 3'

    ObservaYii

    1. Daci inilial valoarea expresiei expresie-l este mai mare decAt valoareaexpresiei_2,instrucliunenuSeexecutdniciodatS.incazcontrar,qidac6 instrucliune nu modifica valorile variabilelor care intervin inexpresie-2, instrucliune se executd de (expresie-2-exPresie-1-+1-) ori'

    2.Instrucliunearepetitiv[cunum6rcunoscutdepagipoatefisimulaticuajutorulcelorlaite doud instrucliuni repetitive'

    cu ajutorul instrucliunii repetitive condilionata anterior (cat-timp)' instrucli-unea Pentru poate fi simulatd astfel:t contor e- exPresie-1[ ;;;-;i*, .or]tot ( exPresie-2 executaIrF instrucfiune;|

    "ontor

  • INFORMATICA 33

    II

    '1

    1Il

    3.10. Aplicafii lcn o._ k: L CnfSecvenld "g"X n W_rySe consideri urmltorul algoritm descris in pseudQco * X-"

    Datedeintrare: n, a, b narurale; '

    6 '8 W '^' ,X-Date de ieSire: nr naturaI,. r-\ > [\ .1Datedemanevrd: i nagural , A l- u I i 1'Citegte n; /* ! */Citegte a; /* 2 */i

  • REPREZENTAREA ALGORITMILOR

    6 6 4 B 0 2 Se m6reqte valoarea variabilei i cu i7 6 4 8 1_ ) t"riam dacd restul imp[(irii variabilei b la

    variabila a este 0 (adicd dac[ a divide b)'Deoarece 4 divide 8, valoarea variabilei nr sem[reqte cu 1.

    8 6 B B 1 a V*iuUit"i a i se atribuie valoarea variabilei b,apoi se revine la instrucliunea de pe linia 4'

    4 6 8 8 t_ Z Se testeazd dacd valoarea variabilei i (2) estemai mic6 decAt valoarea variabilei n (6)'Deoarece expresia i

  • INFORMATICA 35

    Deoarece expresia i

  • 36 REPREZENTAREA ALGORITMILOR

    c. Urmirind algoritmul pas cu pas, deducem cd se citegte mai intdi o valoare n,apoi se citesc succesiv n numere naturale. Permanent avem memorate invariabilele a qi b doui numere consecutiv citite dintre cele n. La fiecare pas setesteazi dacl primul numir (cel memorat in variabila a) divide pe cel de aldoilea (cel memorat in variabila b) qi dacl da, valoarea variabilei nr esteincrementati (miritd cu 1). Prin urmare, algoritmul numdri in variabila nr cAteperechi de elemente consecutive din secven{a citit6 au proprietatea cI primulelement din pereche il divide pe cel de-al doilea element din pereche.

    CalculSe considerd urm6toarea secvenf[ de insrucliuni in pseudocod:

    Date de intrare: n natural;Date de intrare/ieSire.' x natural;Date de manevrd:. i naEural;Citegte n, x';Pentru i+-1,n executE

    x +- x*x;Scrie x;

    a. Ce se va afiga pe ecran pentru n=3 $i x=2?b. Scriefi o secvenfd echivalentI, care sd utilizeze structura repetitiv[ cdt timp.c. Care este efectul acestui algoritm?

    Soluliea. Pentru a determina efectul algoritrnului pentru n=3 gi x=2 vom urmdri pas cu

    pas execulia algoritmului, ilustrAnd in tabelul urmitor valorile variabilelor careintervin ?n acest algoritm.

    /* 2 *//* 3 *//* a */

    Linia n x L ExolicatieI 3 2 2 Se citeqte valoarea 3 gi se atribuie variabilei n, apoi se

    cite$te valoarea 2 gi se atribuie variabilei x. Valoareavariabilei i este deocamdati nedefiniti.

    2 3 z L Se inilializeazdvariabila i cu 1. Deoarece valoareavariabilei i < valoarea variabilei n se continud cuinstructiunea de pe linia 3.

    J 3 4 ! Se modificd valoarea variabilei x, se revine lalinia2.2 3 4 a Se mlregte valoarea variabilei i cu 1. Deoarece valoarea

    variabilei i < valoarea variabilei n se continul cuinstructiunea de pe linia 3.

    J 3 16 2 Se modific6 valoarea variabilei x, se revine lalinia2.

  • INFORMATICA 5t2 3 16 3 Se mdreqte valoarea variabilei i cu 1. Deoarece valoarea

    variabilei i < valoarea variabilei n se continu[ cuinstructiunea de oe linia 3.

    3 3 256 3 Se modificd valoarea variabilei x, se revine lalinia2.2 3 256 4 Se mdregte valoarea variabilei i cu 1. Deoarece valoarea

    variabilei i > valoarea variabilei n se iese din ciclu qi secontinud cu instructiunea de oe linia 4.

    4 3 256 4 Se afigeaz[ valoarea 256.b. Trebuie sd transform[m structura repetitive Pentru intr-o structurd repetitivl

    CAt-uimp:Date de intrare: n natural;Date de intrare/ieSire.' x nat.ural,.Date de manevrd: i nat.ural;Citegte n, x;iu1 .

    Cit-timp i(n executi{ x e- x*x;

    i +- i+1; )Scrie x;Observali cd inainte de a intra in ciclu am inilializat valoarea variabilei i cu 1,

    iar in ciclu am inclus o instruc{iune care sI incrementeze la fiecare pas valoareavariabilei i.c. Pentru a determina efectul general al acestui algoritm vom aplica un rafiona-

    ment inductiv. Deoarece valoarea variabilei x se modificl la fiecare pas, pentrua fi ugor de urmdrit evolulia acestei variabile, vom nota cu x0 valoarea initiald avariabilei x.

    Urmdrind execulia algoritmului pentru cdteva valori ale lui n, putem formulapropozilia inductivd:

    n x Explicafie0 x0 fiDaci pentru n se citegte valoarea 0

    executata nici o data, deci x rdmane cuinstructiunea Pent.ru nu vavaloarea sa citit[ initial (x0).

    1 x0' Daci pentru n se citegte valoarea 1 instruc{iunea pent,ru va fiexecutatA o singurd dat6, deci x va avea valoarea sa xO2.

    2 x0* Dacd pentru n se citeqte valoarea 2 instruc{iunea pent.ruexecutatd de doud ori; dupd prima execulie x va avea valoarea saiar dupi cea de a doua x0a.

    va fi^)xU-.

    3 x0 Daci pentru n se citeqte valoarea 3 instrucfiunea pentru va fiexecutatd de trei ori; dupd prima execulie x va avea valoarea sa x02,dupd cea de a doua x0a, iar dupd cea de a treia x08.

  • 38REPREZENTAREA ALGORITMILOR

    ,,Dupd n pagi, variabila x va avea valoarea *0r',,.

    -

    j"iro"*onstrem propozilia: ,,Dupr n+1 pagi, variabila x va avea varoareaxO' "observdm c[ la pasul n+1 variabilei x i se_ atribuie valoarea variabilei x de lapasul n inmullit6 cu ea inslgi, adici x02 *x02

    = *oro* ,'=

    *0r'*r.

    se considerr urmitoarea secvenld de instrucliuni in pseudocod:Darc de intrare: a, b naturale,.Date de ieSire: nr naE,ural;DTte de manevrd: i nat,ural;Citegte a, b;nr-O;Pentru i+-a, b executi

    Daci i?2=0 atuncL nr (_ nr+l,.Scrie nr,.:. 9" seva afi$a pe ecran pentru a=5 $i b=g?b. Scrieli o secvenfd echivalentl,

    .*.'ra utilizezec6t timp.c. Care este efectul acestui algoritm?d. .Scrieli un algoritm echivalJnt mai eficient.

    Soluliea. Vom urm[ri pas cu pas execufia acestui algoritm:

    structura

    L */2 */3 */4 */5 */

    repetitivl ExecutE

    Se citesc uutorivariabilelor a gi b. Variabilele nr gi i au Oeocamaatao valoare nedefiniti.Se inilializeaza u*irUif u .oil.

    varidbilei b se continud cu i nea de pe linia 4.

    Se inilializeure ,(5). Deoarece valoarea variabilei i este < valoareaSe testeazd Ou"U r.0 (adicd dac6 i este numlr par). Deoarece i este-vv r wDLElmpar, valoarea variabilei nr rIm6ne nemodificatd. Serevine Ia linia 3.

  • 39INFORMATICA

    3 5 B 0 A Se mdreqte valoarea variabilei i cu 1' Deoarecevaloarea variabilei i este < valoarea variabilei b secontinud cu instruc{iunea de pe liqiq 4,-

    4 5 8 1 6 Se testeazf, dacd restul impdrlirii variabilei i la 2 este0 (adicd dacd i este numdr par). Deoarece i este par'valoarea variabilei nr se mdregte cu 1. Se revine lalinia 3.

    J 5 8 1, 7 Se mdreqte valoarea variabilei i cu 1. Deoarecevaloarea variabilei i este < valoarea variabilei b secontinuS cu instrucliunea de pe linia 4'

    4 5 B t- 7 Se testeazl dacS restul impdr[irii variabilei i la 2 este0 (adicd dacd i este numlr par). Deoarece i esteimpar, valoarea variabilei nr rdmAne nemodificatd. Serevine la Iinia 3.

    J 5 8 1 B Se mlreqte valoarea variabilei i cu 1. Deoarecevaloarea variabilei i- este < valoarea variabilei b secontinud cu instrucliunea de pe linia 4.

    -

    4 5 8 2 o Se testeazd dacd restul impa(irii variabilei i la 2 este0 (adicd dacl i este num6r par). Deoarece i este par,valoarea variabilei nr se mdreqte cu 1' Se revine lalinia 3.

    J 5 B 2 9 Se miregte valoarea variabilei i cu 1. Deoarecevaloarea variabilei i este > valoarea variabilei b seiese din instructiunea repetitivl 9i se continud cuinstructiunea de pe linia 5.

    J 5 8 .) 9 Se afiqeazd valoarea variabilei nr (2).

    N trebui s[ simuldm instruc{iunea PenLru cu ajutorul instruc{iunii Executd'cAt-timp:

    Date de intrare: a, b nat.urale;Date de ieSire: nr natural;Date de manevrd: i natural;citegte a, b;nr e- 0; i

  • tQ_:t

    :i

    REPREZENTAREA ALGORITI\{ILORpentru variabila b, atunci acest algoritm ar fi afigat (incorect) valoarea 1, in locde 0. Acest lucru se datoreazl faptului c[ instrucliunea compusd subordonatlinstrucliunii ExecutE cdt-timp s-ar fi executat o datl gi s-ar fi m6rit valoareavariabilei nr cu 1.

    c. Observdm cd variabila i primegte in ordine toate valorile naturale din intervalulIa, b] (spunem c[,,variabila i parcurge intervalul Ia, b] "). Pentru fiecarenumdr natural din intervalul I a , b ] se testeazl, dacd el este par qi dacd da semdregte valoarea variabilei nr cu 1. Prin urmare, in variabila nr num[r6mvalorile pare din intervalul Ia, b] ).

    d. Doi algoritmi sunt echivalen{i daci, pentru orice set de date de intrare, producaceleagi date de iegire.

    Un algoritm echivalent, dar mai eficient de a numdra valorile pare dintr-un intervaldat Ia, b] nu necesitd parcurgerea tuturor numerelor din interval. in primul rAndobservdm cd in intervalul [a, b] sunt exact L=b-a+1 numere naturale. in aldoilea rdnd observdm cd aproximativ jum5tate din valorile din intervalul Ia, b]sunt pare gi restul sunt impare. Am spus aproximativ jumdtate deoarece trebuie sdfim atenli la paritatea capetelor intervalului. Mai exact va trebui sd analizlm4 cantri posibile:

    Algoritmul eficient de a numdra valorile pare din intervalul I a , b ] este:Date de intrare: a, b naturale;Date de ieSire: nr natural ;Date de rnanevrd: i natural;Citegte a, b;nr

  • tQ_:t

    :i

    REPREZENTAREA ALGORITI\{ILORpentru variabila b, atunci acest algoritm ar fi afigat (incorect) valoarea 1, in locde 0. Acest lucru se datoreazl faptului c[ instrucliunea compusd subordonatlinstrucliunii ExecutE cdt-timp s-ar fi executat o datl gi s-ar fi m6rit valoareavariabilei nr cu 1.

    c. Observdm cd variabila i primegte in ordine toate valorile naturale din intervalulIa, b] (spunem c[,,variabila i parcurge intervalul Ia, b] "). Pentru fiecarenumdr natural din intervalul I a , b ] se testeazl, dacd el este par qi dacd da semdregte valoarea variabilei nr cu 1. Prin urmare, in variabila nr num[r6mvalorile pare din intervalul Ia, b] ).

    d. Doi algoritmi sunt echivalen{i daci, pentru orice set de date de intrare, producaceleagi date de iegire.

    Un algoritm echivalent, dar mai eficient de a numdra valorile pare dintr-un intervaldat Ia, b] nu necesitd parcurgerea tuturor numerelor din interval. in primul rAndobservdm cd in intervalul [a, b] sunt exact L=b-a+1 numere naturale. in aldoilea rdnd observdm cd aproximativ jum5tate din valorile din intervalul Ia, b]sunt pare gi restul sunt impare. Am spus aproximativ jumdtate deoarece trebuie sdfim atenli la paritatea capetelor intervalului. Mai exact va trebui sd analizlm4 cantri posibile:

    Algoritmul eficient de a numdra valorile pare din intervalul I a , b ] este:Date de intrare: a, b naturale;Date de ieSire: nr natural ;Date de rnanevrd: i natural;Citegte a, b;nr

  • INFORMATICA

    FactorialFie n un numdr natural. Sd se calcul eze nt (se citeqte ,,n factorial',).Soluyie

    Prin defini$e, n !=r- *2* . .. *n, pentru orice n>0, iar 0 !=r-. observrm cd n !se obfine ?nmullind succesiv toate numerele naturale mai mici sau egale cu n.Pentru a calcula acest produs, vom utiliza o variabild f. Inilial variabila f va fi 1(pentru cd 1 este elementul neutru la inmullire), apoi vom parcurge numerele natu-rale de la 2 la n, inmullind succesiv variabila f cu fiecare dintre aceste numere.

    Date de intrctre:Date de ieSire:Date cle manevrd:Citegte n;f +* 1;Pentru i

  • 42

    ,1a.d

    -{

    ,-j*!r{It.{i.1

    REPREZENTAREA ALGORITMILOR

    ObservalieAcest algoritm efectueazd exact n inmultiri.

    DobAnddS[ presupunem cd dorim sI depunem la banc[ o sumi S, cu o dobdndd anuald

    de d8. Presupundnd cI timp de n ani nu intenfiondm sd scoatem bani din bancd qigtiind cd dobinda se calculeazd qi se cumuleazd in cont anual, elaborali un algoritmcare sd determine ce sumi vom avea in cont dupl n ani.

    De exemplu, sI presupunem cI am depus 100 de lei, cu o dobAndd de 5?. Dupd3 ani vom avea 1l- 5 .1 625 lei. Mai exact:

    Suma Dobinda TotalInitial 100 0 100DupX 1 an 100 5 105Dupd 2 ani 105 5.25 110.25Duo[ 3 ani 1l_0.25 5 .5L25 1,1,5 .7 625

    Solu{ieVom simula,,trecerea anilor", calculdnd dupd fiecare an dobAnda gi cumulAnd-o

    la suma existentd.Date de intrare:

    g.:

    I

    :1;i

    Date de intrare/ieSire:Date de ntanevrd:Citegte S, n, d;Pentru i e- 1, n

    n natural; d real;C ra:]

    i natural;executS. S (- S+S*d/1,00;Scrie S;

    ExerciSiu

    Urm6rili pas cu pas execulia acestui algoritm pentru S=1000, d=1-0%, n=5.

    MaximI. Fie a qi b doud numere reale, citite de la tastaturd. Scriefi un algoritm care

    determind gi afigeazd pe ecran cea mai mare valoare cititd.

    SolulieCompar valorile celor dou[ variabile citite qi o afigez pe cea mai mare:

    Date de intrare: a real; b real;Date de ieSire: maximul dintre a gi bCitegte a, b;Daci a < b atunci Scrie ,,max= ,,,

    altfeI Scrie ,'max=1^.

  • INFORMATICA

    o alt[ solufie, care al'e avantajul cd o vom putea generaliza pentru oricdteelemente, este de a reline maximul intr-o variabiln (s6 o numim max). Inilializdmvariabila max cu a (inilial pot considera cd a este ,,cel mai buu"). Apoi comparmaximul cu valoarea variabilei b gi, clac6 max este mai mic, il schimb.

    Date de intrare: a real; b real;DatedeieSire: max real; /* maximul_ dintre a $i b *,iCitegte a, b;max(-a; /*inilializare*/Daci max < b atunci maxe-b;Scrie "max= max;II' Fie a, b 9i c trei numere reale, citite de la tastaturl. Scrie[i un algoritm care

    determind gi afiqeazd cea mai mare valoare citit[.Soluyie

    Ideea, utilizatlutiliza gi pentru trei

    Date de intrare:Date de ieSire:Citegte a, b,max(-a,.Daci max < bDaci max < cScrie "max= 'IIL Se citeqte de la tastaturd un numir natural nenul n, apoi se citesc succesiv n

    un algoritm care determin[ gi afigeazd, cea mai mare valoarevalori reale. Scrielireal5 citit6.

    43

    in cea de a doua variantd a algoritmului precedent, o putemvariabile:a reaL; b real; c real

    ,.

    max real; /* maximul_ dintre a, b gi c */

    atunci max+-b,.atunci max(-c;, max;

    /* ini;.ializare * //* compar cu b *// * compar cu c *,/

    SoluSie

    O primd problemd este declararea datelor de intrare: ni se dau n valori reale,numai cd de data aceasta n nu este constant, ci variabil (citit de la tastatur6). Cumsd declardm un numdr variabil de variabile? Nu putem gi nici nu este necesar,pentru cd nu este nevoie sd citim fiecare numdr intr-o variabild separatd! Vorn citinumerele succesiv in aceeagi variabild (s6 o numim a) qi irnecliat ce le-am citit levom compara cu elementul maxim.

    Pentnt a intui tnai bine algoritntul de calcul al nruximtiltti, sii ne iruagittdnt wt Sir tleelevi, care intrd tn clasd urutl cArc unul. Am clori ca pe niisurd ce intrd sd relinem care estecel mai

    _fnalt. Evident, primul care intrd poate fi ionsiclerat cel mai inalt (de altfel, estesingurul pe cclre l-am vdzut pdnd acurn). Cdncl intrit pe uSd Lu.t rtou elev, contpar tndtlimealui cu indllimea celui pe care eu il consider cel ,nai inait de pand acum. Dacd nottl eleveste mai tnalt, reyirt tttdllimea lui ca etalon pentru viitoctrele conrpara;ii (eL este cel maiinalt de pAnii acunt). Prin unnrtre, noi relinent pernlotlent maximul clintre cei intrali cleja.

  • 44 REPRBZENTAREA ALGORITMILORAceastl idee o vom utiliza in continuare: in variabila max vom re{ine la fiecare

    moment cea mai mare valoare citit[ p6ni la momentul respectiv.Date de intrare: n natural; a real;DatedeieSire: max real; /* maximul dintre valorile citite */Date de manevrd: i natural

    ,./*in i relinem c6.t,e valori am ciLit pani 1a un moment d.at*/Citegte n;Citegte max,. /* inilializim max cu primul element citit */i

  • 45

    i" mod asem6ner- .u problema precedentS, vom citi succesiv cele n valori' intregi in aceeagi variabila a. Oupa fiecare citire vom verifica dacd valoarea cititd

    este Jtrict pozitiv[ 9i, in caz afirmativ, o vom numlra qi o vom adduga la sum6'Date de intrare: n natural; a real;DatedeieSire: medie real; /* media aritmetici a numerelot */Datedemanevrd: i natural; nr natural; s real;1;-i" t."t.in"* cALe valori am citit pAni Ia un momenE dat"

    in nr catculEm cAte valori pozitive arn citit; in scalculdmsumavalorilorstrictpozitivecitite*/

    Citegte n;

    INFORMATICA

    i

  • REPREZENTAREA ALGORITMILOR44

    """ m re'tine la fiecare

    Aceasti idee o vom utiliza in continuare: in variabila mdx vot

    moment cea mai ,n*t'uiout" cititi p6n6 la momentul respectiv'

    Darc de intrare: n natural; a real iDatedeieSire: ma- r"a1 ; /* maximul dintre valorile citite

    */

    ?1';:'{'::;1k H::'i}i.,, am citit pani 1a un moment daL*/Citegte n; ^.. ^-inrr'l a1 emeCitegte max; /* iniiializim max cu primul element

    citit */

    L

  • INFORMATICA

    in mod asem6n[tor cu problema precedentI, vom citi succesiv cele n valoriintregi in aceeaqi variabil6 a. DupE fiecare citire vom verifica dac[ valoarea cititleste strict pozitivl qi, in caz afirmativ, o vom numlra 9i o vom adiuga la sum[.

    Date de intrare: n natural; a real;DatedeieSire: medie real; /* media aritmetici a numerelor */Datedemanevrd: i naEural; nr naEural; s real;/*in i reqinen cAte valori am citit pAnd Ia un momenE dat;

    in nr ca1cu15m cAte valori pozitive am citit; ln scalculdm suma valorilor strict pozitive citite */

    Cite$te n;i+-0; /* iniliaI nu am ciEit nici o valoare */nr+-O; /* inig,ial nu am citit nici o valoare pozitivd*/s

  • 46REPREZENTAREA ALGORITMILOR

    Date de intrare: n natural;Date de manevrd: a, b naturale;DatedeieSire: perechile (a, b) cu proprietatea ceruLX;Cite$te n;Perrtnr a

  • INFORMATICA

    O idee mai buni ar fi ca, avAnd a fixat, sd nu mai parcurgem cu variabila btoate numerele naturale de la a la n-1, ci doar multiplii lui a:

    Date de intrare: n natural ,.

    Datedemanevrd: a, b naturale,.Citegte n;Pentr-u a

  • 48REPREZENTAREA ALGORITMILO]I

    r '- ^ ld pentru fiecare numir daci este sau nunumerelor naturale dela2la r/n ' ventlcar

    --,- --;!ri-a ^ .,o,iohilx ,enumitd:Iffi :fi il[5ff ; ;ine rezurtatur testului' " i Ylri :": ^:*:t :.*i]H:iIJ'ff 'JIilil:#;;il;JJ".u1,.::"^:T,:'^::313ilf,1rer'i'o"irtil ;Hii:il|?* ii uuiuuim vatoarea 1- (,prezum.tia de nevinov6!ie")'

    Pe parcursut verificdrii, dac[ S]im ]]1.1t'1?l' variabilei prim ii atribuim

    valoarea 0 (,dovada" cI n nu este prim a fost g6sitl)')area 0 (rroovaua ua rr uu woLv v^r^'^ rVerificarea continu6 cdt timp avem unde c-[uta (nu i* 1:,':,]1Jn ) qi avem de

    ,, c6uru(nu am g[sit inc[ "dovada vinov[fiei" - un divizor al lui n)'

    Date de intrare: n natural;Date de rnanevrd:'d, Prim naEurale;Date de ieSire: RezulLaLul tesEuluiCitegte n;prim

  • INFORMATICA49

    Exercisii

    r:

    t

    IIIi

    ] ' urmarif, pas cu pas execulia acestui argoritm pentru n= 13 , n= g $i n=49 .2. Modificali argoritmur astfel inc6t sd afiJeze tout. nu*"r.," ,uru.uru i.iir" = ".

    D e s compunere tn facto ri p rimiFie n un numir natural (n>1), citit de la tastaturd. Scrieli un program care srafiqeze descompunerea numdrului natural n in factori primi.

    ^ De exemplu, pentru n=720 programur va afiga 2^4*3n2*5nr, cegzl ,coinseamnr cd divizorii primi sunt 2,1 gi 5, av6nd respectiv ,nurtiprrcitll,,.'nl, u, i.Solugie

    vom aplica argoritmuL invifat la matematicd: considerdm toate numerelenaturale inceplnd cu 2. pentru fiecare numir, verificrm daci este divizor ar lui n.ln caz afirmativ, carculam multiplicitatea acestui divizor in n, impirgind succesivpe n la divizor qi calculAnd numrrul de impirfiri efectuate, dup6 care afigim at6tdivizorul gisit, cat gi murtiplicitatea sa. procedeur se repeti c6t timp n mai aredivizori (n>1).

    Date de intrare: n nat.ural ,.

    Datedemanevrd: d, m naturale;rr, IIl, d natural_e,.citegte n;d e- 2;Cit-timp n>L executi

    Daci n%d=0 atunci.{ /* cal_culezm +_ 0,.

    /* d divide n *,/multiplicitatea lui d in n *./Cat-timp ngd=0 execuEi{ m

  • 50 REPREZENTAREA ALGORITMILOR

    Cel mai mare divizor comunFie n gi m dou[ numere natura]e, citite de la tastaturd. Scriefi un program care sl

    calculeze gi si afigeze c.m.m.d.c. (n, m).

    Solulie

    Vom aplica algoritmul lui Euclid, inv6{at la matematicd. CAt timp m*0,imp6rfim n la m gi calcul6m restul; la pasul urmitor impirlitorul devine deimplrfit,iar restul devine imp6rfitor. Ultimul rest * 0 este c.m.m.d.c.

    De exemplu, pentru a=495 gi b=720, cel mai mare divizor comun prinalgoritmul lui Euclid se obfine astfel:

    DeimpErtit impd4itor Rest495 = 724 0+495720 = 495 L+2254g5 = 225.2+ 45225 = 45'5+ 0=c.m.m.d.c. 1495,72A)=45

    Date de intrare/ieSire.' o, rl naturale;Date de manevrd: resE natural;Cl,tegte n, ltliCtE-etnp m*0 exacutil

    ( restentm; /* calculez resEul * /n(-m; /* impirg,itorul devine deimpirlit */m+-rest; ) /* restul devine impdrfitor * /

    Scrle "cmmdc=" , n; /* ultimul resE diferiE de 0 * /Exercilii

    i, Urmirifi puts cu pas execu]ia acestui algoritm pentru n=L21 gi m=4950.2. Observafi cd nu am testat niclieri dacl ini{ial n>m. Nu este necesar, deoarece,

    dactr inifial n ar fi mai mic decdt m, dup6 prima executare a instrucfiuniicompuse subordonate instrucfiunii Cat-timp valorile variabilelor n gi m vor fiinterschimbate.

    3. Scrieli un algoritm echivalent care se ufilizeze instrucliunea repetidvAExecuti caL-timp.

    4. Modificafi acest algoritm astfel incdt sI simplifice frac{ia n/m gi sI afi;ezefracfia ireductibili obtinut[.

    5. Modificafi acest algoritm astfel inc6t s[ verifice daci numerele n gi m suntprime intre ele.

    6. Modificafi acest algoritm astfel incdt sE calculeze c.m.m.m. c. (n, m) (celmai mic multiplu comun al numerelor n qi m).

  • INFORMATIC,{

    7. Modificafi acest algoritm astfel inc6t sE determine (D(n) (indicatorgl lui Eulera).Prin definilie, @(n) este num[rul de numere naturale mai mici dec6t n, relativprime cu n. Doui numere sunt relativ prime dacl cel mai mare divizor comun allor este 1.

    Termen FibonacciFie qirul Fibonaccis 1,1-,2,3, 5, B, L3,2L,34,

    ...

    Observafi ci primii doi termeni sunt egali cu ]., fiecare termen urmitor flindegal cu suma celor doi termeni care il preced.

    Fie n un numir natural citit de la tastatur6. Scrieli un program care afiqeaz6 celde-al n-lea termen din qirul Fibonacci.

    Solulie

    Observdm cI pentru a calcula un termen al qirului Fibonacci avem nevoie de doitermeni precedenli. vom utiliza trei variabile f 0, f1, gi f2. in f0 gi f1 vomretine doi termeni Fibonacci consecutivi, iar in f2 vom calcula termenul urm[tor.Variabilele f 0 9i f 1 vor fi inilializate cu 1 (primii doi termeni din qirul Fibonacci).urmdtorii termeni (de la al doilea pdni la al n-lea) ii vom calcula succesiv. Lafiecare pas i, in f 2 vom calcula al i-lea termen din girul Fibonacci (f 2+-f 1+f 0),apoi ne pregitim pentru pasul urmltor (f 0

  • 52 REPREZENTAREA ALGORITMILOR

    2. Modificati algoritmul astfel incdt s[ afigeze cel de-al n-lea termen din girulLucas6. Primii termeni din girul Lucas sunt 1-, 3,4,'7,11-, 18, 29,4'7, "'

    3. Modificali algoritmul astfel inc1t s6 calculeze suma primilor n termeni din qirulFibonacci.

    4. Modificali algoritmul astfel incdt si calculeze cel mai mare termen din 9iru1Fibonacci, mai mic sau egal cu n.

    ExistenldSe citesc de la tastaturi doud numere naturale nenul n 9i p, apoi se citesc

    succesiv n valori intregi. Scrieli un algoritm care si verifice dacl printre cele nvalori citite existd multipli ai lui p.

    Solulie

    Vom citi succesiv cele n valori intregi in aceeaqi variabil[ a. DupS fiecare citirevom verifica daci valoarea cidt[ este divizibil[ cu p qi, in caz afirmativ, vom re]inefaptul c[ exista un multiplu al lui p. Rezultatul verific[rii il vom reline in variabilaexista. Inilial valoarea acestei variabile este 0 (deoarece incd nu am descoperitnici un multiplu al lui p). Dacd pe parcursul citirii vom descoperi un multiplu al lui p,variabila exista va primi valoarea l-'

    Date de intrare: r1, P, a naturale;Date de manevrd: r, exista naEuraf e;Date de ieSire: Rezultatul testului;Citegte n, p;exista

  • INFORMATICA

    Numdr divizori primiSe citegte de la tastaturd un numlr natural nenul n, apoi se citesc succesiv

    n valori intregi. Scriefi un algoritm care sd verifice dacl oricare numlr dintre celen citite are un numlr impar de divizori primi.

    Solulie

    Vom citi succesiv cele n valori in aceeagi variabil[ x. Pentru fiecare valoarecititd vom determina numlrul de divizori primi (folosind un algoritm asemdndtorcu descompunerea in factori primi, numai cd in loc sd afigdm divizorii primi gimultiplicitdlile acestora, vom numdra divizorii).

    Rezultatul verificdrii il vom retine in variabila oricare. Ini(ial, aceasuvariabild are valoarea 1 (deoarece incd nu am gdsit un numdr care sd nu aibr unnumdr impar de divizori primi). Dacd, pe parcursul citirii. vom intalni un numdr cunumdr par de divizori primi, variabilei oricare ii vom atribui valoarea 0.

    Date de intrare: n, x nat.urale;Date de manevrd: i, d, nr, oricare naturale;Date de ieSire: Rezult.atu1 Lest.ului;Citegte n;oricare e- 1,.Pentru i+-1, n executE{Citegte x; /* citesc o noua valoare * /

    nr +- 0;

    53

    ,/*numirul de diwizori primi ai lui x este inilial 0d L executi{Daci x?d=0 atunci /* am descoperit un divizor */inr +- nr+1;/* numir acest divizor prim, apoii1 elimin din x, prin impartiri repetat.e * /CAt-timp xBd=O executi x=x/di )

    d e d+l-; ] /* caut. divizori mai d.eparLe */Dac6. nr * 2 = 0 atunci ori_care (_ 0;,/* pentru cd am gasit o valoare cu numdr parde divizori primi */

    )Daci oricare=1 atunci Scrie ,,DA,,;

    altfel Scrie ,,NU,,;

    Vocalese citeqte de la tastaturd o propozi{ie scrisr cu litere mici, terminata cu , ,

    scrieli un algoritm care calculeaz[ gi afigeazi numirul de vocale din propozilie.

  • 54 REPREZENTAREA ALGORITMILOR

    Solupie

    Citim succesiv caracterele din care.este constituitd propozilia, pAnI la sfdrgit, inaceeaqi variabild (sd o numim c). Pentru fiecare caracter citit, verific[m dacS estevocalS (' a',' ',' i' o' o' sau' u' ) $i dacd da, il numdrim.

    Date de intrare: c caracter i/ * in c vom cit.i succesiv caracLerele din care esteconstituiEi propozilia */Date de iesire: nr natural; /* numiruf de vocale */

    numdrul de vocale citiLe este 0 *,/nr(-O;Executi

    {

    / * ini!ia1

    Cite$te c; /*citim un caracterDaci c='a' 8au c='e' sau c='i' sau c=ror sau c='u'

    atunci nr

  • INFORMATICA 55

    3.

    c. Dali exemplu de doud numere naturale de cel putin doud cifre, care ar puteafi introduse pentru variabilele a gi b astfel inc6t valoarea calculatE dealgoritm in variabila c si fie 1?

    Se consideri urmitorul algoritm descris in pseudocod:Date de intrare: n natural;Date de ieSire: d. natural iCitegte n;d1 executi

    Daci ntd=O atuncL ne-n/d,.altfel d+-d+1;Scrie d;

    a. ce valoare va fi afigat[ dacr valoarea cititi pentru variabila n este 72 0?b. Dafl exemplu de valori (cel pufin dou6) care ar putea fi introduse pentruvariabila n, astfel incdt valoarea afigatd de algoritmii fie 1r_.

    c. Care este efectul acestui algoritm ?

    b. Daci se cite$te valoareaintroduce pentru variabilavariabila c sd fie 2938?

    7382 pentru variabila a, ce valoare am puteab astfel incdt valoarea calculatd de algoritm in

    pentru

    4. Se considerl urmitorul algoritm descris in pseudocod:I natede intrare: !!., b naturale;

    Date de ieSire: x naEural;Date de manevrd: p natural;Citegte n, b;x+-0,. tr0 executi

    t x+-x + tr* (n tj-0) ;P(-p*b; n+-n/L0iScrie x;

    /* 2S}r39 */z

    a. Ce valoare va fi afigati dac[ se citesc valorile L032 gi 4?b. ce valoare trebuie sd introducem pentru variabila b astfel incdtn=407 sd se afigeze valoarea 3 3 1?

    c. Care este efectul acestui algoritm ?Se considerd urmdtorul algoritm descris in pseudocod:

    Date de intrare: at b naturale,.Date de iegire: x natural iDate de manevrd: i nat.ural ;Citegte a, b;i

  • 56 REPREZENTAREA ALGORITMILORb. Ce valori ar putea fi inffoduse pentru a qi b astfel incat programul s6 afigeze

    valoarea222c. Dali exemplu de valori distincte care ar putea fi introduse astfel inc6t.

    algoritmul si afigeze valoarea 0.d. Scrieli un algoritm echivalent mai eficient. Doi algoritmi sunt considerafi

    echivalenti daci pentru orice date de intrare ei produc aceleaqi rezultate.6. Care dintre urmitoarele secvenre de instrucliuni atribuie variabilei intregi u

    valoarea primei cifre a numIrului natural reprezentat de variabila x ?a. ue-x/10; b. ue-x,.

    Cat-tiq) 'u)L0 execut5 ue-u810,.c. ue-x810; d. cat-tirE x)10 executi x+_x,/LO;

    u(-x;7. Care dintre urmltoarele secvente afigeazi cel mai mare divizor propriu al

    num[rului natural neprim memorat in variabila x?a.

    d

  • 56 REPREZENTAREA ALGORITMILOR

    .,,

    I1l

    ,l

    {

    $

    {(I

    i

    b. Ce valori ar putea fi introduse pentru a gi b astf'elva\oarea 22?

    incdt programul si afigeze

    c. Dafi exemplu de valori distincte care ar putea fi introduse astfel incatalgoritmul sd afiqeze valoarea 0.

    d. Scriefi un algoritm echivalent mai eficient. Doi algoritmi sunt considerafiechivalenli dacd pentru orice date de intrare ei produc aceleaqi rezultate.

    6. Care dintre urm[toarele secvente de instruc{iuni atribuie variabilei intregi uvaloarea primei cifre a numdrului natural reprezentat de variabila x ?

    b. u

  • INFORMATICA

    lL. Numere prieteneDoud numere naturale a gi b se numesc prietene dacd a este egal cu suma

    divizorilor lui b (exclusiv b), iar b este egal cu suma divizorilor lui a (exclusiv a).De exemplu a=220 9i b=284 sunt prietene. Scrieli un program care s6 determineprimele trei perechi de numere prietene, cu acb.

    filz. e,i*,Fie x un numtrr natural, x>2. Scriefi un algoritm care si determine cel mai mare

    n_umdr prim, mai mic dec6t x gi cer mai mic numrr prim, mai mare decat x.&pot,naro*

    Fie n un num5r natural, citit de la tastaturd. Scriefi un algoritm care testeazldaci n este palindrom (citit de la stdnga la dreapta gi de la dieapta la st6nga esreacelagi). De exemplu 13 31, L4541sunt palindroame.

    f 14: Maxim Si minimr'"-'$e

    citeqte de la tastaturd un numdr naturale nenul n, apoi se citesc succesiv nvalori naturale. Scriefi un algoritm care sd determine gi cel mai mare gi cel mai micelement din cele citite.

    57

    15. Sumd Si produsSe citegte de la tastaturd un numlr

    valori intregi. Scrieli un algoritm carecitite gi produsul valorilor nenule.16. Palindrom print

    natural nenul n, apoi se citesc succesiv ndetermind gi afigeazd suma valorilor pare

    Se citeqte de la tastaturl un numir naturale nenul n, apoi se citesc succesiv nvalori naturale' Sr se verifice dacd printre valorile citite exiita un palindrom prim.17. Cifre nenule

    Se citeqte un numir natural nenul n, apoi se citesc succesiv n valori intregi. Sdse verifice dacd oricare dintre cele n valori citite are exact 3 cifre nenule.18. Cifra 0

    Scriefi un algoritm care sd citeasci de la tastaturi o succesiune de valorinaturale, panr la citirea valorii

    -1 gi care si determine cle cdte ori apare cifra 0 inscrierea numerelor citite.r

    \W Cifra de controlFie n un numlr natural' citit de la tastatur5. Scriefi un algoritm care calculeaz6gi afigeazd cifra de control a lui n. Cifra de control a unui num6r natural se obfinecalculdnd suma cifrelor^ numrrului, apoi suma cifrelor sumei q.a.m.d. pana ta

    ob{inerea unei singure cifre.

  • 58 REPREZENTAREA ALGORITMILOR

    De exemplu, pentru rv293 calculEm suma cifrelor 2+9+3=1-4. Cum suma nueste formatd dintr-o singurd cifr6, repet6m procedeul: l-+4=5. Deci 5 este cifra decontrol a lui 293.

    j20. Ndtrate perfecte' Se citegte de la tastatur[ un numdr natural n. Scriefi un algoritm eficient care sdafiqeze toate p[tratele perfecte mai mici decdt n.2I. Numere piramidale

    Numerele piramidale se definesc ca fiind sumele parliale ale qirului pitratelorperfecte L, 4, 9, L6, 25.... De exemplu, primele 5 numere piramidale sunt l-, 5,14, 3 0, 55. Scrieli un algoritm care sd afigeze primele n numere piramidale.

    22. FracliiFie n un numdr natural nenul. Scrieli un algoritm care sd determine numirul de

    fractii ireductibile care au numitorul qi numdrltorul din mullimea 11,2,..., n). Deexemplu, pentru n=3, se pot forma fracliile ireductibile lt/L, L/2, L/3,2/L,2 / 3, 3 / t, 3 / 2 ), deci algoritmul va afiqa valoarea 7.23. $irS[ consider[m urmltorul gir definit prin recurenld astfel se=f, sr=!, s2=1-, iars,=s.-1+l*sn-2-sn-3 (pentru n)3). Scrieli un algoritm care s[ afiqeze al n-leatermen din acest qir.

    24. Medie semestriald

    Se citesc n, numdrul de note la oblinute de un elev la informatic[ pe parcursulsemestrului, apoi se citesc cele n note. Se citegte apoi nota oblinut6 de elev la tezd.Scrieli un algoritm care sd calculeze media semestrial[ a elevului.25. C.m.m.d.c.

    Se citegte n, un num[r natural n nenul, apoi se citesc n valori naturale. Scrietiun algoritm care sI calculeze cel mai mare divizor comun al celor n numere citite.26. Numdr

    Se citeqte de la tastaturi o succesiune de caractere, terminatl cu spaliu ( , ').Scrieli un algoritm care sI verifice dac6 succesiunea de caractere cititi poate ficonsiderati un numdr natural scris in baza 10. Modificali algoritmul astfel incAt sitesteze dacd succesiunea de caractere citit6 poate fi considerati un numlr real.27. Cuvinte

    Se citegte de la tastatur6 o propozilie constituitd din cuvinte separate prin unulsau mai multe spalii. Sffirgitul propoziliei este marcat de intfllnirea caracterului '.'.Scrieli un algoritm care determin[ qi afigeaz[ numErul de cuvinte din propozifie.

  • INFORMATICA 59

    (@q 4. EXEMPLE DE IMPLEMENTAREin capitolul precedent, am descris algoritmii in pseudocod, un ansamblu de

    convenfii uqor de inleles gi de utilizat de cdtre oameni. Din picate, calculatoarelenu ,,in[eleg" (deocamdatd) un astfel de limbaj. Pentru a rezolva o problemd cuajutorul calculatorului trebuie sd transpunem (sd implementdm) algoritmul derezolvare a problemei intr-un limbaj de programare.

    Descrierea unui algoritm intr-un limbaj de prograinare se nume$tep rogrant.Pentru exemplificare, vom implementa in limbajul de programare pascal qi in

    limbajul de programare c++ trei algoritmi fundamentali, invdla{i in capitolulprecedent.

    Algoritmul lui EuclidAlgoritmul lui Euclid determini cel mai mare divizor comun al doud numere

    naturale.

    Limbajul Pascal Limbajul C++progrLm Euclid;var n, m, t, integer;beginwrit.el'n= ') ; readln(n) ;write('m=' ) ; readln(m) ;whilem0do

    beginr:=n mod m;n: =m;m: =r;end;

    writeln('cmmds=', n);end.

    #incl-ude int maino{int n, m, r;cout>n,.cout,m;while (m)

    {;=nBm;n=m;m=r. 1

    cout

  • 60 EXEMPLE DE IMPLEMENTARtr

    Limbajul Pascal Limbajul C++Drogram Fibonaccj-;vatr n, i, fl , f2, f3: int.eger;beginwrit.e('n=' ) ; readln(n) ;f2:=L; f3 : =1;for i:=2 to n do

    beginf!:=f2;F1 .

    -$') .LA . -LJ ,f3:=f!+f2 i

    endiwriEeln(f3);end..

    #include int mainotint n, i, f]-, f2, f3;cout>n;f2=f3=t;for (i=2; i

  • INFORMATICA 6t

    ANEXA 1. SISTEMB DE NUMERATIE' :,:.'gn.storii ae iiAreiri,lte.;si'aicanit dintr-o mir4ime finitd de simboluriqi un set de reguti de reprezentare a numerelor cu ajutorul simbolurilorrespective:,Numaru!.d. simbo.luri,Constittliie,bazg Sistemului de numera[ie..Sistemele de numerafie pot fi clasificate din punctul de vedere al semnificafiei

    poziliei simbolurilor in reprezentarea numerelor astfel:. sisteme de numerafie pozi;ionale

    - in reprezentarea numerelor, pozilia

    sirnbolurilor este determinant[; de exemplu, sistemul de numera{ie zecimal.sistemul de numera[ie binar, sistemul de numera{ie Fibonacci etc.

    . sisteme de numerali e nepozipionale -

    pozilia sirnbolurilor nu este detenninantdin ce priveqte valoarea acestora in cadrul reprezentirii numerelor; de exemplu,sistemul de numerafie roman.

    Sistemul de numeralie romanSisternul de numerafie roman folosegte pentru reprezentarea numerelor

    simbolurile: r, v, x, L, c, D, M.

    Valoarea simbolurilor in sistemul de numeratie zecimal este:

    Simbol I V x L C D MValoare 1 5 l_0 50 100 s00 1000

    Reguli de calcul al ualorii numerelor reprezentate in sistemul de numeralie rotnan:

    l. Un numdr format din unul sau mai multe simboluri identice are valoarea egal6 cusuma valorilor simbolurilor componente.

    De exemplu: II=I+I-=L+I=2;XXX=X+X+X=10+10+10=302.Dacd un simbol cu o valoare rnai miciprecedd un simbol cu o valoare mai mare,atunci din valoarea mai mare se scade valoarea mai mic6.

    De eremplu: IV=V- 1= 5 - L=4; VL=L-V=5 0 - 5=4 5 ; CM=M-C= 1 0 0 0 - l- 0 0 = 9 0 0

    3.Dacdun simbol cu o valoare mai mic[ succedd un simbol cu o valoare mai mare,atunci cele doud valori se aduni.Deexemplu: VI=V+f=5+1=61 6a=g+11=1-00+10=110;

    MLX=M+L+X=10 0 0+5 0+1 0=10 6 0

    Se.o. servi cd sunt folosite puline simboluri (7) 9i ci regulile de calcul al valorilornu sunt nioi multe (3) gi nici cornplicate. Cu toate acestea apare o probleml care faceca acest sistem de numerafie sd nu fie folosit; problema constd in faptul cd din cele3 reguli de mai sus NU TezuIILLINICITATEA reprezentdrii unui numdr.

  • 52 ANEXI,

    Altfel spus, num6ru1 47 poate fi (corect) reprezentat pri,r: XLVII. XXXXVIi,XLVXII. Acest fapt constifuie una din deficien{ele esentiale ale sisternului denumeralie roman.

    Observali, de asemenea, cI sistemul de numeratie roman nu este pozilional'De exemplu, in reprezentdrile nurnerele IV qi vI valoarea sitntrolurilor r 9i V esteaceeaqi (1, respectiv 5) independent de pozilia lor in cadrul numdrului.

    Sisteme de rutmeralie PozilionalePAni acum, 1a matematicS, am utilizat in speciai sisteme cie numcralie

    pozilionale pentru care poziliile simbolurilor corespund puterilor bazci sisternuluid. nr,r.rufi*. Iv{ul1imea simbolurilor utilizate pentru reprezerltarea nltlrereiordepinde de baza sistemului de numerafie. De exemplu. in sistetrr.il c1e nuinera{iezliimal se utilizeaz6 10 simboluri: 0, 1, 2. 3, 4,5, 6, ?, B' 9: in si-stemul denumeralie ltinar seutilizeazl doud sirn'ooluri: 0, i: in sistemril de nutrlcraiie ocral seutilizeazd 8 simboluri: 0, l-, 2, 3. 4. 5, 5, ?: irl sistemul de numeraiie ite:to:ecirtutl seulilizeazd 16 simboiuri: 0. 1. 2,3,4,5.6,1,8. 9. A, B, C, D. E' r' Semnificaliazecimald a siinbolurilor A, B, C. D' E' F este, in ordine, 10, 1l-, 12. t3 ' i4, 15'

    SI notdrn cu b baza sistemului de numeralie (b N' b>1)'Regula de reprezentare a nunrcrelor ?n baza bFiecare cifrd dintr-un numdr valoreazd de b ori mai mult decAt cifra din

    dreapta sa, deci cifrele numdrului, 1-), vom face irnpS4iri succesive la b p6n6 c6nd ob{inem cirul 0. Laprimul pas deimp[rfitul este numirul care se converte$te; in continuare, lafi..ur. - pus, catrl 9: tl impd(irea precedentS devine deimparlit.Reprezentarea numsruluiinbazaU se obline considerAnd resturiie in ordineainvers6 oblinerii lor.

    ExentplttPentru a converti n= l,2 6 3 rro I in baza 15 vom face irnp5rliri succesive la l- 5:deirnpdrlit cdt

    1263 =16*?878 =L6* 44 =l-6* 0

    rest, 1trf f J+L4+4

  • INFORMATICA 63

    ConsiderAnd resturile in ordine inversd oblinem l-263 1.191=4EF 116y.Regula de conversie a numerelor reale din intervalul ( O, 1)Conversia numerelor subunitare din baza 10 intr-o bazdb (bN. b>1),

    se realizeazd prin inmulliri succesive cu b, pdnd c6nd se obtine o perioadisau pind cind partea frac[ionarl a rezultatului este 0. La primul pasdeinmullirul este numirul care se converte$te; in continuare, la fiecare pas,partea fracfionard a rezultatului precedent devine deinmullit. ReprezentareanumSrului in baza b se obline consider6nd cifrele de la partea intreagd arezultatelor in ordinea obginerii lor.

    ExentpluSd convertim n=0 , 312 5 11e1 inbaza 2:0,3125 x2=0,625

    0,625 x2=L,254,25 x 2 = 0,50,5 x 2 = L,0

    Am oblinut partea frac{ionarl 0, deci A ,33-25 rror=0, 0101121Regula de corwersie a nunrcrelor realePentru a converti un numdr real din bazatO in baza b (beN, b>1), se

    convertesc separat partea intreagl gi partea fraclionarS, conform reguliloranterioare.

    De exemplu, L2 63, 3125rror =1 0 01110111 1, 01 0 1 121.Conversia numerelor din bazab tn baza ]-0.Pentru a converti un numdr din baza b (beN, b>1) in baza 1-0 utilizdm

    dezvoltarea dupi puterilebazei sisternului de numerafie gi efectulm calculele.

    Exentple1 . 1AFa15y =1.162+A.16+F=431 rrcr). 11-001-, L07 p1=24+23 +1+2-t+2-3=25, 625 11e1 .

    Conversia numerelor din bazab fn bazab'Conversia numerelor din baza b in baza b' (b, b, N, b, b, >1) se realizeazd

    prin intermediul bazei 10: realizim conversia din baza b in baza 10, apoi din baza10inb'.

    Conversii tntre baze puteri ale lui 2Datoriti faptului cI, deocamdati, calculatoarele utilizeazd infonnalii

    reprezentate in formi binar6, sistemul de numerafie binar prezintl pentruinformaticieni o importanli deosebiti. Calculatoarele par a se descurca fcrarte uqorcu giruri de cifre binare, dar oamenii se obignuiesc mai greu. Frecvent,

  • 64

    informaticienii apeleazl la conversia girurilor binare in valori octale sauhexazecimalel.

    Din fericire, operatiile de conversie intre bazele 2 qi B, respectiv 2 qi 16 sercalizeazdmult mai simplu conversiile intre dou6 baze oarecare, datoritl faptului cdatat B, cat gi 1