ministerul educaŢiei, culturii Și cercetĂrii informaticĂ

224
Știinţa, 2020 MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII Manual pentru clasa a 11-a INFORMATICĂ ANATOL GREMALSCHI IURIE MOCANU LUDMILA GREMALSCHI

Upload: others

Post on 15-Oct-2021

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

Știinţa, 2020

MINISTERUL EDUCAŢIEI , CULTURI I Ș I CERCE TĂRI I

Manual pentru clasa a 11-aINFORMATICĂ

ANATOL GREMALSCHI IURIE MOCANU LUDMILA GREMALSCHI

Page 2: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

str. Academiei, nr. 3; MD-2028, Chişinău, Republica Moldovatel.: (+373 22) 73-96-16; fax: (+373 22) 73-96-27e-mail: [email protected] www.editurastiinta.md

Toate drepturile asupra acestei ediţii aparţin Întreprinderii Editorial-Poligrafice Ştiinţa.

Descrierea CIP a Camerei Naţionale a CărţiiGremalschi, Anatol.Informatică: Manual pentru clasa a 11-a / Anatol Gremalschi, Iurie Mocanu, Ludmila Gremalschi; Comisia de evaluare: Svetlana Brînză (coordonator) [et al.]; Ministerul Educaţiei, Culturii şi Cercetării. – Ch.: Î.E.P. Ştiinţa, 2020 (Combinatul Poligrafic). – 224 p.: fig., tab. Proprietate a Min. Educaţiei, Culturii şi Cercet. ISBN 978-9975-85-246-3

Imprimare la COMBINATUL POLIGRAFIC str. Petru Movilă, 35, MD-2004, Chişinău, Republica Moldova, Comanda nr.

© Anatol Gremalschi, Iurie Mocanu, Ludmila Gremalschi. 2008, 2014, 2020© Întreprinderea Editorial-Poligrafică Ştiinţa. 2008, 2014, 2020

CZU 004(075.3)G 80

Acest manual este proprietatea Ministerului Educaţiei, Culturii şi Cercetării.Manualul şcolar a fost realizat în conformitate cu prevederile Curriculumului la disciplină, aprobat prin Ordinul Ministerului Educației, Culturii şi Cercetării nr. 906 din 17 iulie 2019. Manualul a fost aprobat prin Ordinul Ministerului Educaţiei, Culturii şi Cercetării nr. 1219 din 6 noiembrie 2020, urmare a evaluării calităţii metodico-ştiinţifice.Editat din sursele financiare ale Fondului Special pentru Manuale.

Comisia de evaluare: Svetlana Brînză, profesor, grad didactic superior, Liceul Teoretic „N.M. Spătaru”, metodist DGETS, Chişinău (coordonator);Gheorghe Chistruga, profesor, grad didactic superior, Liceul Teoretic „M. Eminescu”, Drochia;Natalia Schițco, profesor, grad didactic superior, Liceul Teoretic „Socrate”, Chişinău;Violina Bargan, profesor, grad didactic superior, Liceul Teoretic „Gh. Asachi”, Chişinău;Ecaterina Adam, profesor, grad didactic unu, Liceul de Creativitate şi Inventică „Prometeu-Prim”, Chişinău

Denumirea instituției de învățământ

Manualul a fost folosit:

Anul de folosire

Numele, prenumele elevului

Anul de studii

Aspectul manualului

la primire la returnare

Dirigintele verifică dacă numele, prenumele elevului sunt scrise corect. Elevii nu vor face niciun fel de însemnări în manual.Aspectul manualului (la primire şi la returnare) se va aprecia cu unul dintre următorii termeni: nou, bun, satisfăcător, nesatisfăcător.

Responsabil de ediţie: Larisa DohotaruRedactor: Mariana BelenciucCorector: Maria Cornesco

Redactor tehnic: Nina DuduciucMachetare computerizată: Vitalie IchimCopertă: Romeo Șveț

Page 3: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

Introducere 5

1. TIPURI DE DATE STRUCTURATE 1.1.Datesimpleşidatestructurate • • 6 1.2.Tipuridedatetablou • • 10 1.3.Tipuridedateşir de caractere • • 26 1.4.Tipuridedatearticol • • 40 1.5.Instrucţiuneawith • • 49 1.6.Tipuridedatemulţime • • 52 1.7.Generalităţidesprefişiere • • 62 1.8.Fişieresecvenţiale • • 71 1.9.Fişiere text • • 78

2. INFORMAŢIA 2.1.Cantitateadeinformaţie • • 92 2.2.Codificareaşidecodificareainformaţiei • • 95 2.3.Codurifrecventutilizate • • 97 2.4.Informaţiamesajelorcontinue • 103 2.5.Cuantizareaimaginilor • 106 2.6.Reprezentareaşitransmitereainformaţiei • 109

3. BAZELE ARITMETICE ALE TEHNICII DE CALCUL 3.1.Sistemedenumeraţie • 114 3.2.Conversiuneanumerelordintr-unsistemînaltul • 117 3.3.Conversiuneadinbinarînoctal,hexazecimalşiinvers • 119 3.4.Operaţiiaritmeticeînbinar • 122 3.5.Reprezentareanumerelornaturaleîncalculator • 124 3.6.Reprezentareanumerelorîntregi • 125 3.7.Reprezentareanumerelorreale • 128

4.ALGEBRABOOLEANĂ 4.1.Variabileşiexpresiilogice • 133 4.2.Funcţiilogice • 137 4.3.Funcţiilogicefrecventutilizate • 139

Conţinuturi

CUPRINS

Uman

ist

Rea

l

Pag

ina

Page 4: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

4

5. CIRCUITE LOGICE 5.1.Circuitelogiceelementare • 142 5.2.Clasificareacircuitelorlogice • 147 5.3.Sumatorul • 147 5.4.Circuitecombinaţionalefrecventutilizate • 151 5.5.BistabilulRS • 154 5.6.Circuitesecvenţialefrecventutilizate • 157 5.7.Generatoaredeimpulsuri • 160

6.STRUCTURAŞIFUNCŢIONAREACALCULATORULUI 6.1.Schemafuncţionalăacalculatorului • • 163 6.2.Formatulinstrucţiunilor • 165 6.3.Tipurideinstrucţiuni • 168 6.4.Limbajulcod-calculatorşilimbajuldeasamblare • 170 6.5.Resurseletehniceşiresurseleprogramatealecalculatorului • • 172 6.6.Memoriiexternepebenzişidiscurimagnetice • • 174 6.7.Memoriiexternepediscurioptice • • 178 6.8.Vizualizatorulşitastatura • • 182 6.9.Imprimantele • • 184 6.10.Clasificareacalculatoarelor • • 187 6.11.Microprocesorul • 189

7.REŢELEDECALCULATOARE 7.1.Introducereînreţele • • 192 7.2.Tehnologiidecooperareînreţea • • 195 7.3.Topologiaşiarhitecturareţelelor • 197 7.4.ReţeauaInternet • • 201 7.5.ServiciiInternet • • 206

8. MODULE LA ALEGERE 8.1.Introducereînreţele • • 211 8.2.Programareavizuală • • 216 8.3.Limbajedemarcareahipertextului • • 221

Conţinuturi

Uman

ist

Rea

l

Pag

ina

Page 5: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

5

INTRODUCEREDragi prieteni,Impresionantelerealizăriîndomeniulinformaticii,creareasupercalculatoarelorşia

calculatoarelorpersonale,apariţiacyberspaţiului,aInternetuluişiarealităţiiaugmentatepresupunocunoaştereprofundăaprincipiilordefuncţionareşiastructuriicalculatoarelormoderne,ametodelordeprogramareaacestora.Indiferentdespecificulviitoareiactivităţiprofesionaleafiecăruiabsolventdeliceu,acestecunoştinţevorservidreptocălăuzădemnădetoatăîncredereaîntr-olumedigitalăaflatămereuînschimbare.

Dezvoltareacontinuăainformaticiicaştiinţăfundamentalăşidezvoltareafulminantăatehnologieiinformaţieişicomunicaţiilorcaştiinţăaplicativăaredreptefectapariţiadenoişinoiechipamentedigitalecare,practic,sereînnoiesclafiecaredoi-treiani.„Invazia”gadgeturilor,diversitateacrescândăaproduselor-program,apariţiaInternetului Obiec-telorcerrevizuireametodelordeînvăţareainformaticii,reorientându-ledelaformareasimplelordexterităţideacţionareabutoanelor,de clicare şi glisarea obiecteledepeecraneletactile,laformareacompetenţelordeautilizaşicreaechipamenteşiprodusedigitalenoi, cumarfiprogramedeaplicaţii,documenteWeb, serviciidigitaleonline,operedeartădigitală.

În lumeamodernă, celemai impresionante inovaţii apar la intersecţia diverselordomeniialecunoaşterii.Dreptexemplupotservidigitalizarearadiouluişiateleviziunii, amuzicii şi aartelorvizuale, extinderea comerţului online, creşterea rolului reţelelorsociale, afirmarea instruirii asistatede calculator.Apariţia şi dezvoltarea inteligenţeiartificiale,care,conformpreviziunilormaimultorpersonalităţiilustrealezilelordeas-tăzi,vaschimbaînesenţăevoluţiacivilizaţieiumane,presupuneconjugareaeforturilorspecialiştilordindiversedomeniideactivitate,indiferentdenaturaacestora.

Prinurmare,indiferentdeprofiluldeliceupecareîlurmeazăelevii,umanistsaureal,pentrua-şiatingescopurilededezvoltarepersonală,inclusivpentruocarierăprofesionalădesuccesşioviaţăîmplinită,eineapăratvoraveanevoiedeacelecompetenţedigitale,formareaşidezvoltareacărorareprezintăscopulacestuimanual.Maiexact,lafineleclaseia11-aeleviivorputea:

― săimplementezeîntr-unlimbajdeprogramaredenivelînaltalgoritmiideprelucrareadatelorstructurate;

― săutilizezebazeleteorieiinformaţiei,aritmeticiidecalculatorşiaalgebreibooleenepentruelaborareamodelelorinformatice;

― săinterpretezerezultatelefurnizatedeprogrameledecalculatorelaborate;― săidentificestructurageneralăasistemelordigitaleutilizate,aprincipiilordefunc-

ţionareasistemelordetransmitere,stocareşideprelucrareainformaţiei.Studiereaunuiadintremodulelelaalegerevacontribuilavalorificareametodelorşi

instrumentelorspecificeprelucrărilordigitale,ladezvoltareagândiriişiacreativităţiiînintegrareaachiziţiilorinformaticecuceledinaltedomenii,laconştientizareaimportanţeirespectăriiregulilordesecuritate,ergonomiceşieticeîncreareaşidifuzareaproduselordigitale.

Înscopulautoevaluării,recomandămelevilorsădescarcedepepaginawebhttp://www.ctice.gov.mdaCentruluiTehnologiiInformaţionaleşiComunicaţionaleînEducaţietestelerespective,sărezolveprobeledincomponenţaacestoraşisăcomparerăspunsurilelorcurăspunsurile-etalon,carepotfiobţinutedelaprofesoriideinformatică.

Vă dorim succese,Autorii

Page 6: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

6

TIPURI DE DATE STRUCTURATE

1.1. Date simple şi date structurateCunoaştemdejacăinformaţiaceurmeazăsăfiesupusăuneiprelucrărieste

accesibilăcalculatoruluiînformădedate.Datelesuntconstituitedincifre,litere,semne,numere,şiruridecaractereş.a.m.d.

Într-unlimbajcod-calculatordatelesuntreprezentateprinsecvenţedecifrebinare.Deexemplu,lanivelulprocesoruluinumărulnatural1039sereprezintăînsistemuldenumeraţiebinarca:

10000001111

Pentruascutiutilizatoruldetoatedetaliilelegatedereprezentareainternăadatelor,limbajeledeprogramareutilizeazădiversetipuridedate.Amintimcăprintipdedateseînţelegeomulţimedevalorişiomulţimedeoperaţiicarepotfiefectuatecuvalorilerespective.

Înclaseleprecedenteaţistudiaturmătoareletipuridedate:• integer/int,destinatprelucrăriipecalculatoranumerelorîntregi;• real/float,pentruprelucrareanumerelorreale;• boolean/bool,utilizatîncazulprelucrăriivalorilordeadevăr;• char/char,destinatreprezentăriişiprelucrăriicaracterelor;• enumerare (enum),careincludeomulţimeordonatădevalorispecificateprin

identificatori;• subdomeniu(doarînlimbajulPASCAL),careincludeosubmulţimedevalori

aleunuitipinteger,boolean,charsauenumerare.Dinperspectivalimbajelordeprogramare,numereleîntregi,numerelereale,

valoriledeadevăr,caracterele,valorileordonatespecificateprinidentificatorisenumescdatesimple,iartipurileenumeratemaisus–tipuridedatesimple.

Îngeneral,datelesimplenusuntsuficientepentruareprezentapecalculatorşiaprelucraînmodeficientinformaţiiledinlumeaînconjurătoare.

De exemplu, în cazul prelucrării textelor, operaţiile de ştergere, copiere şimutaresefacnudoarlaniveldecaractere(tipuldedatesimplechar),cişilaniveldecuvinte,propoziţii,rânduri,paragrafeşichiarpaginiîntregi.

Evident,un cuvânt sau opropoziţiepotfi reprezentate ca o succesiunedecaractere,adicăprintr-ostructurăcareesteformatădintr-oînşiruirededatesimpledetipulchar.Pentruadescrieastfeldestructuri,înlimbajeledeprogramaredenivel înalt se folosesc tipuridedatedenumite sugestivşiruri de caractere. Înconsecinţă,literelealfabetuluilatinA,a,B,b,C,c,…,Z,zsereprezintăpe

Capitolul 1

Page 7: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

7

calculatorprindatelesimpledetipulchar,pecândcuvinteleformatedinele,deexemplu,Liceu,Patrie,Informaticaetc.–prindatestructuratedetipulşir de caractere.

Unaltexempluceilustreazănecesitateautilizăriidatelorstructurateconstăînprelucrareainformaţiilorreferitoarelaconsumulzilnicdeenergieelectricăaluneigospodării.Acestconsum,înkWh,poatefireprezentatpecalculatorprintr-unnumărreal(tipuldedatesimplerealsaufloat).Dacănedorimînsăsăanalizămvariaţiileconsumuluizilnicdeenergieelectricăpeduratauneiluni,vatrebuisăreprezentămdatelerespectiveprintr-untabelunidimensional,formatdintr-unsingurrând:

Ziua lunii 1 2 3 ... 31Consumulzilnic, kWh 13,4 18,6 9,4 … 15,0

ÎnprimacelulăaacestuitabelsevaconţineconsumulînkWhdinprimazialunii;încelulaadoua–consumuldinziuaadouaaluniiş.a.m.d.,pânălacelula31,înfuncţiedenumăruldezilealeluniiîncauză.

Încazulanalizeiconsumuluizilnicdeenergieelectricăpeparcursulunuian,vatrebuisăfolosimuntabelformatdin12rândurişi31decoloane,adicăuntabelbidimensional:

Ziua lunii 1 2 3 ... 31

Ianuarie 13,4 18,6 9,4 … 15,0

Februarie 12,9 14,3 21,7 … …

… … … … … …

Decembrie 11,7 10,4 3,4 … 25,3

Primulrândalunuiastfeldetabelvaconţineconsumulpentrufiecaredinzileleluniiianuarie;rândulaldoilea–consumulpentrufiecaredinzileleluniifebruarieş.a.m.d.,pânălarândulcecorespundeluniidecembrie.

Seobservăcătabeleledemaisusreprezintădatestructurate,fiindformatedindatesimpledetipulreal/float.Deobicei,pecalculatortabelelerespectivesereprezintăcuajutorulunortipurispecialededatestructurate,denumitetablouri.

Accentuămfaptulcătablourileconţindoardateledincelule,fărădenumirilederândurişidecoloane.Pecalculator,acestedenumirisuntreprezentateprinaltemărimi,denumiteindici.Evident,încazultabelelorunidimensionaleestenecesardoarunsingurindice,iarîncazultabelelorbidimensionale–dedoi.

De exemplu, în cazul tabloului unidimensional ce reprezintă pe calculatorconsumulzilnicdeenergieelectricăpeparcursuluneiluni,încalitatedeindicesefoloseşteomărimedetipîntreg,carepoateluadoarvalorile1,2,3,…, 31.

În cazul tabloului bidimensional ce reprezintă consumul zilnic de energieelectricăpeparcursulunuian,suntnecesaridoiindici,unulpentrurândurişialtulpentrucoloane.Încalitatedeindicepentrurândurisefoloseşteomărimedetipenumerare,careiavalorileIanuarie,Februarie,Martie,…, Decembrie.Pentruindiceledecoloanesefoloseşteomărimedetipîntregcareiavalorile1,2,3,… 31.

Page 8: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

8

Dateleformateprinagregarea(unireaîntr-untot)aunordatesimplesenumescdate structurate.Tipurilededateutilizatepentrudefinireaunorastfeldedatesenumesctipuri de date structurate.

Înafarădetipurilededatestructurateşiruri de caractereşitablouri,descriseînliniigeneralemaisus,limbajeledeprogramareoferăinformaticienilorposibilitateasăutilizezeşialtetipuridedatestructurate,celemaidesutilizatefiindarticolele,mulţimileşifişierele.

Întrebări şi exerciţiiÊ Explicaţisemnificaţiatermenuluitip de date.Daţiexemple.Ë Careestediferenţadintredatelesimpleşidatelestructurate?Ì Daţiexempledetipuridedatesimpleşitipuridedatestructurate.Í OBSERVĂ!Determinaţitipuldatelor,simplesaustructurate,dinexemplelece

urmează:

a) 138

b) 3.14

c) Munteanu Elena

d) Clasa a 11-a

e) 12 6 231 5

f) 32.51 149,28 318,56 20013.9 0.4536 721.3

g) 4 635 -8 +27

72 41 319 432

16 -20 45 1830

În cazul datelor structurate, indicaţi tipul datelor simple din componenţaacestora.

Modelederăspuns: –Datăsimplă,detipnumăr întreg. –Datăstructuratădetiptablou unidimensional,formatdinnumereîntregi. CREEAZĂ! Elaborați un tabel unidimensional ce conţine plăţile lunare

pentruenergiaelectricăfolositădefamiliavoastrăpeparcursulultimuluiancalendaristic.Folosițiînacestscopinformaţiiledinfacturiledeplatăemisedecompaniacevăfurnizeazăenergiaelectrică.Cetipuridedatevețiutilizapentrureprezentareapecalculatorainformaţiilordinacesttabel?

EXPLOREAZĂ! Site-ul Băncii Naţionale aMoldovei conţine informaţiireferitoarelarateleoficialemediideschimb(cursulvalutar).Deexemplu,înlunaianuarieaanului2019,ratamedieoficialădeschimbpentrumonedaunicăaUniuniiEuropeneera:1Euro=19,6501LeiMoldoveneşti.Elaboraţi:

–un tabelunidimensional ce conţine ratele lunaremedii oficialede schimbpentruultimulancalendaristic;

–untabelbidimensionalceconţineratelelunaremediioficialedeschimbpentruultimiitreiani.

Page 9: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

9

Cetipuridedatevețiutilizapentrureprezentareapecalculatorainformaţiilordinacestetabele?

CREEAZĂ!DupăovizitălarenumitelehrubedelaCricova,vizităpeduratacăreiaaavutposibilitateasăcălătoreascăpringaleriilesubteranealeacestuiimportantobiectturistic,uninformaticianaconstruitunrobotcaregăseştecelmaiscurtdrumdelaosalădeexpoziţielaalta.Înmemoriacalculatoruluicedirijeazărobotul,hrubelesuntreprezentateprintr-undreptunghidivizatînpătrăţele(vezifigurademaijos).

1 2 3 4 5 6 7 8 91234567

Robot

Intrare Ieșire Pătrăţelele haşurate reprezintă obstacolele (pereţii galeriilor şi sălilor de

expoziţie,standurilecuexponate),iarcelenehaşurate–spaţiilelibere.Robotulpoate executadoar instrucţiunileSUS,JOS,DREAPTA,STANGA, conformcărorasedeplaseazăînunuldinpătrăţelelevecine.Dacăînacestpătratesteunobstacol,deexemplu,unperetesauunstand,robotulseopreşteşinumaireacţioneazălanicioinstrucţiune.

ElaboraţistructuradedatenecesarăpentrureprezentareaplanuluihrubelordelaCricovapecalculator.Asiguraţi-văcăstructuraelaboratăconţinetoateinformaţiiledepeplan:obstacolele,spaţiile libere,pătrăţelul încareseaflărobotul,intrarea,ieşirea.

ÎNVAŢĂSĂ ÎNVEŢI!Cunoaşteţi deja că datele structurate se obţin prinagregarea(unireaîntr-untot)aunordatesimple.LimbajelePASCALşiC++permit agregarea nu doar a datelor simple, dar şi a celor structurate.Deexemplu,înceluleleunuitabelpotfimemoratenudoardatesimple(numereîntregi,numerereale,caractereetc.),darşidatestructurate,cumarfişiruriledecaractere.

Seconsiderălistaeleviloruneiclasedeliceu:Munteanu IonFlorea Elena…Prisăcaru Alexandra

Elaboraţistructuradedatenecesarăpentrureprezentareauneiastfeldelistepecalculator.Asiguraţi-văcăstructuraelaboratăpermitesortareaelevilorînordinealfabetică.

Page 10: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

10

1.2. Tipuri de date tablou

Pentrudefinireatipurilordedatetablou,înlimbajulPASCALseutilizeazăcu-vântul-cheiearray.Tablourilesuntformatedintr-unnumărfixatdecomponentedeacelaşitip,denumittipdebază.Referireacomponentelorsefacecuajutorulunuisauamaimultorindici.

Untipdedatetablou unidimensionalsedefineşteprintr-oconstrucţiedeforma

type <Nume tip> = array [T1] of T2;

undeT1estetipulindiceluicaretrebuiesăfieordinal,iarT2estetipulcomponen-telor(tipuldebază)carepoatefiuntipoarecare.

Exemple:

1) type Vector = array [1..5] of real; var x : Vector;

2) type Zi = (L, Ma, Mi, J, V, S, D); Venit = array [Zi] of real; var v : Venit; z : Zi;

3) type Ora = 0..23; Grade = -40..40; Temperatura = array [Ora] of Grade; var t : Temperatura; h : Ora;

Structuradatelordinexempleleînstudiuesteprezentatăînfigura 1.1.

Fig. 1.1. Structura datelor de tip Vector, Venit şi Temperatura

Page 11: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

11

Fiecare componentăaunei variabile de tip tablou unidimensional poatefispecificatăexplicit,prinnumelevariabileiurmatdeindicelerespectivîncadratdeparantezepătrate.

Exemple: 1) x[1], x[4];

2) v[L], v[Ma], v[J];

3) t[0], t[15], t[23];

4) v[z], t[h].Asupra componentelor datelor de tip tablou se pot efectua toate operaţiile

admisedetipuldebazărespectiv.ProgramulceurmeazăafişeazăpeecransumacomponentelorvariabileixdetipVector.Valorilecomponentelorx[1],x[2],..., x[5]secitescdelatastatură.

Program P78; Suma componentelor variabilei x de tip Vector Numar fix de componente type Vector = array [1..5] of real;var x : Vector; i : integer; s : real;begin writeln(’Dati 5 numere:’); for i:=1 to 5 do readln(x [i]); writeln(’Ati introdus:’); for i:=1 to 5 do writeln(x [i]); s:=0; for i:=1 to 5 do s:=s+x [i]; writeln(’Suma=’, s); readln;end.

Pentruaextindeariadeaplicareaunuiprogram,serecomandăcanumăruldecomponentealedatelordetiparraysăfiespecificateprinconstante.

De exemplu, programulP78 poatefimodificatpentrua însuman numerereale,n≤100:

Program P79; Suma componentelor variabilei x de tip Vector Numar flotant de componente const nmax = 100;type Vector = array [1..nmax] of real;var x : Vector; n : 1..nmax;

Page 12: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

12

i : integer; s : real;begin write(’n=’); readln(n); writeln(’Dati ’, n, ’ numere:’); for i:=1 to n do readln(x [i]); writeln(’Ati introdus:’); for i:=1 to n do writeln(x [i]); s:=0; for i:=1 to n do s:=s+x[i]; writeln(’Suma=’, s); readln;end.

Îninformatică,tablourileunidimensionalesuntutilizatefoartedespentruasortadateleîntr-oanumităordine,deexemplu,înceacrescătoare.Pentruoastfeldesortaresefoloseşteurmătoareametodă:

1)fiecarecomponentăatabloului,începândcuprima,estecomparatăconsecutivcufiecaredintrecomponenteleceurmeazădupăea;

2)dacăînurmacomparăriiseconstatăcăcomponentacurentăestemaimaredecâtceacucareestecomparată,elesuntschimbateculocul;

3) procesuldeparcurgerea tabloului continuăpână cândvorfi comparateultimaşipenultimadintrecomponente.

Înlimbajulcotidianalinformaticienilor,oastfeldesortaresenumeşte sorta-re prin metoda bulelor,întrucâtcomponenteletablouluiîşischimbăpoziţiilecabuleledintr-unlichid:celemaiuşoareseridicălasuprafaţă,iarcelemaigreleseduclafund.

Pentruexemplificare,înprogramulceurmeazămetodabulelorestefolosităpentrusortareaînordinecrescătoareacomponentelortablouluiA.Componen-teleacestuitablousuntcititedelatastatură,iarsortareapropriu-zisăsefaceîntabloulB.

Program P80; Sortarea prin metoda bulelor const nmax=100;type Tablou = array[1..nmax] of integer;var A, B : Tablou; n, i, j : integer; x : integer;begin write(‚Dati numarul de componente n= ‚); readln(n); writeln(‚Dati componentele tabloului A:’); for i:=1 to n do read(A[i]); readln;

Page 13: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

13

B:=A; for i:=1 to n-1 do for j:=i+1 to n do if (B[i]>B[j]) then begin x:=B[i]; B[i]:=B[j]; B[j]:=x; end; writeln(‚Tabloul initial A:’); for i:=1 to n do write(A[i], ‚ ‚); writeln; writeln(‚Tabloul sortat B:’); for i:=1 to n do write(B[i], ‚ ‚); writeln; readln;end.

Untipdedatetablou bidimensionalsedefineştecuajutorulconstrucţiei:

type <Nume tip> = array [T1,T2] of T3;

undeT1şiT2specificătipulindicilor,iarT3–tipulcomponentelor.Pentruexemplificare,înfigura 1.2esteprezentatăstructuradatelortipului

Matrice:

type Matrice = array [1..3, 1..4] of real;

Fig. 1.2. Structura datelor de tip Matrice

Componenteleuneivariabiledetiptablou bidimensionalsespecificăexplicitprinnumelevariabileiurmatdeindiciirespectiviseparaţiprinvirgulăşiîncadraţideparantezepătrate.

Deexemplu,înprezenţadeclaraţiei

var m : Matrice;

notaţiaM[1,1]specificăcomponentadinlinia1,coloana1(fig. 1.2);notaţiaM[1,2] specificăcomponentadinlinia1,coloana2;notaţiaM[i,j]specificăcomponentadinliniai,coloanaj.

Page 14: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

14

ProgramulceurmeazăafişeazăpeecransumacomponentelorvariabileiMdetip Matrice.ValorilecomponentelorM[1,1],M[1,2],...,M[3,4]secitescdelatastatură.

Program P81; Suma componentelor variabilei M de tip Matrice type Matrice = array [1..3, 1..4] of real;var M : Matrice; i, j : integer; s : real;begin writeln(’Dati componentele M[i,j]:’); for i:=1 to 3 do for j:=1 to 4 do begin write(’M[’, i, ’,’, j, ’]=’); readln(M[i,j]); end; writeln(’Ati introdus:’); for i:=1 to 3 do begin for j:=1 to 4 do write(M[i,j]); writeln; end; S:=0; for i:=1 to 3 do for j:=1 to 4 do S:=S+M[i,j]; writeln(’Suma=’, S); readln;end.

Îngeneral,untiptablou n-dimensional (n=1,2,3etc.)sedefineştecuaju-toruldiagramelorsintacticedinfigura 1.3.Atributulpacked(împachetat)indicăcerinţadeoptimizareaspaţiuluidememoriepentruelementeletipuluiarray. Menţionămcăînmajoritateacompilatoareloractualeutilizareaacestuiatributnuareniciunefect,întrucâtoptimizareaseefectueazăînmodautomat.

Fiinddatedouăvariabiledetiptabloudeacelaşitip,numelevariabilelorpotapărea într-o instrucţiunede atribuire.Această atribuire înseamnă copierea tuturorcomponentelordinmembruldreptînmembrulstâng.

Deexemplu,înprezenţadeclaraţiilor

var a, b : Matrice;

instrucţiunea

a:=b

estecorectă.

Page 15: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

15

Fig. 1.3. Diagrama sintactică <Tip tablou n-dimensional>

<Tip tablou n-dimensional>

Înexempleledemaisustipuldebază(tipulcomponentelor)afostdefiecaredatăuntipsimplu.Deoarecetipuldebazăpoatefi,îngeneral,untiparbitrar,devineposibilădefinireatablourilorcucomponentedetipstructurat.Considerămacumunexempluîncaretipuldebazăesteelînsuşiuntiparray:

Type Linie = array [1..4] of real; Tabel = array [1..3] of Linie;var L : Linie; T : Tabel; x : real;

VariabilaTesteformatădin3componente:T[1],T[2]şiT[3]detipulLinie. VariabilaLesteformatădin4componente:L[1],L[2],L[3]şiL[4]detipulreal.

Prinurmare,atribuirile

L[1]:=x; x:=L[3]; T[2]:=L; L:=T[1]

suntcorecte.ElementelevariabileiTpotfispecificateprinT[i][j]sauprescurtatT[i,j].

AiciiindicănumărulcomponenteidetipLinieîncadrulvariabileiT,iarj–numărulcomponenteidetiprealîncadrulcomponenteiT[i]detipLinie.

Subliniemfaptulcădeclaraţiiledeformatype array [T1 ,T2 ] of T3

şitype array [T1] of array [T2] of T3

definesctipuridistinctededate.PrimadeclaraţiedefineştetablouribidimensionalecucomponentedetipulT3 .Adouadeclaraţiedefineştetablouriunidimensionalecucomponentedetipularray [T2] of T3 .

ÎnprogramelePASCALtablourileseutilizeazăpentruagrupasubunsingurnumemaimultevariabilecucaracteristiciidentice.

ÎnlimbajuldeprogramareC++,untipdedatetablou unidimensionalsedefi-neşteprintr-oconstrucţiedeforma:

Page 16: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

16

typedef <Tip componente> <Nume tip tablou> [<Număr componente>];ÎnC++,untipdedatetablou unidimensional sedefineşteprintr-oconstrucţie

deforma

<Tip> <Nume_tablou> [<Nr_componente>];

unde<Tip componente>estetipulcomponentelortabloului,carepoatefiaproapeoricetipdedate,iar<Număr componente>indicănumăruldecomponentealetabloului.

Indiciicomponentelortablouluipotluadoarvaloriconsecutiveîntregi,începândcuzero:0,1,2,…,<Număr componente>–1.

Exemple:1) itypedef int Vector[5]; Vector V;

2) typedef char Simbol[10]; Simbol S;

3) typedef float Acceleratie[45]; Acceleratie A;

Structuradatelordinexempleleînstudiuesteprezentatăînfigura 1.1*.

Fig. 1.1* Structura datelor de tip Vector, Simbol și Acceleratie

typedef int Vector [5]

typedef char Simbol [10]

char0

char1

char2

char3

char4

char5

char6

char7

char8

char9

int0

int1

int2

int3

int4

typedef float Acceleratie [45]

oat0

oat1

oat2

oat43

oat44

...

...

Fiecare componentăaunei variabile de tip tablou unidimensional poatefispecificatăexplicit,prinnumelevariabileiurmatdeindicelerespectivîncadratdeparantezepătrate.Indiciitrebuiesăfieexpresiiîntregi.

Exemple:1) V[1], V[4];

2) S[0], S[5], S[9];

3) A[0], A[44], A[23];

Page 17: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

17

Asupracomponentelordatelordetiptablou unidimensionalsepotefectuatoateoperaţiileadmisedetipulacestora.ProgramulceurmeazăafişeazăpeecransumacomponentelorvariabileiVdetiptablouunidimensional.ValorilecomponentelorV[0],V[1],...,V[4]secitescdelatastatură.

// Program P78// Suma componentelor variabilei V de tip Vector// Numar fix de componente#include <iostream>using namespace std;int main() typedef int Vector[5]; Vector V; int i, S; cout <<"Dati 5 numere intregi:" << endl; for (i=0; i<5; i++) cin>>V[i]; cout << "Ati introdus:" << endl; for (i=0; i<5; i++) cout << V[i] << ' '; cout << endl; S=0; for (i=0; i<5; i++) S=S+V[i]; cout << "Suma= " << S; return 0;

Pentruaextindeariadeaplicareaunuiprogram,serecomandăcanumăruldecomponentealedatelordetiptablousăfiespecificateprinconstante.AcestfaptoferăoflexibilitatemaimareprogramelorC++,eleputândfiaplicatepentruprelucrarea tablourilor, numărul de componente al cărora estenecunoscut lamomentulscrieriiprogramului.

Deexemplu,programulP78poatefimodificatpentruaînsumannumereîn- tregi,n≤100.Numărulconcretdevalorincevorfistocateîntabloulunidimen-sionalVseciteştedelatastatură.

//Program P79// Suma componentelor variabilei V de tip Vector// Numar flotant de componente#include <iostream>using namespace std;int main() const int nmax=100; typedef int Vector[nmax]; Vector V; int n, i, S;

Page 18: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

18

cout << "Dati n= "; cin >> n; cout << "Dati "<<n<<" numere intregi:" << endl; for (i=0; i<n; i++) cin >> V[i]; cout << "Ati introdus:" << endl; for (i=0; i<n; i++) cout << V[i] << ' '; cout << endl; S=0; for (i=0; i<n; i++) S=S+V[i]; cout << "Suma= " << S; return 0;

Îninformatică,tablourileunidimensionalesuntutilizatefoartedespentruasortadateleîntr-oanumităordine,deexemplu,înceacrescătoare.Pentruoastfeldesortaresefoloseşteurmătoareametodă:

1)fiecarecomponentăatabloului,începândcuprima,estecomparatăconsecutivcufiecaredintrecomponenteleceurmeazădupăea;

2)dacăînurmacomparăriicomponentelorseconstatăcăceacurentăestemaimaredecâtceacucareestecomparată,elesuntschimbateculocul;

3) procesuldeparcurgerea tabloului continuăpână cândvorfi comparateultimaşipenultimadintrecomponente.

Înlimbajulcotidianalinformaticienilor,oastfeldesortaresenumeşte sorta-re prin metoda bulelor,întrucâtcomponenteletablouluiîşischimbăpoziţiilecabuleledintr-unlichid:celemaiuşoareseridicălasuprafaţă,iarcelemaigreleseduclafund.

Pentruexemplificare,înprogramulceurmează,metodabulelorestefolosităpentrusortareaînordinecrescătoareacomponentelortablouluiA.Componen-teleacestuitablousuntcititedelatastatură,iarsortareapropriu-zisăsefaceîntabloulB.

// Program P80// Sortarea prin metoda bulelor#include <iostream>using namespace std;int main() const int nmax= 100; typedef int Tablou[nmax]; Tablou A, B; int n, i, j; int x; cout<<"Dati numarul de componente n= "; cin>>n; cout<<"Dati componentele tabloului A: \n"; for (i=0; i<n; i++) cin>>A[i];

Page 19: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

19

for (i=0; i<n; i++) B[i]=A[i]; for (i=0; i<n-1; i++) for (j=i+1; j<n; j++) if (B[i]>B[j]) x=B[i]; B[i]=B[j]; B[j]=x; cout<<"Tabloul initial: \n"; for (i=0; i<n; i++) cout<<A[i]<<" "; cout << endl; cout<<"Tabloul sortat: \n"; for (i=0; i<n; i++) cout<<B[i]<<" "; cout << endl; return 0;

Untipdedatetablou bidimensionalsedefineştecuajutorulconstrucţieigra-maticale:

typedef <Tip componente> <Nume tip tablou>[<Număr linii>][<Număr coloane>];

Pentruexemplificare,înfigura 1.2*esteprezentatăstructuradatelortipuluiMatrice:

typedef double Matrice[3][4];

double

typedef double Matrice [3][4]0

double

1

double

2

double

3

0

double double double double1

double double double double2

Fig. 1.2 *. Structura datelor de tip Matrice

Componenteleuneivariabiledetip tablou bidimensional sespecificăexplicitprinnumelevariabileiurmatdeindiciirespectiviîncadraţideparantezepătrate.

Matrice M;

notaţia M[1,1] specifică componentadin linia1, coloana1 (fig. 1.2*);notaţia M[1,2] specifică componentadin linia 1, coloana2;notaţia M[i,j] specificăcomponentadinliniai,coloanaj.

ProgramulceurmeazăafişeazăpeecransumacomponentelorvariabileiMdetip Matrice.ValorilecomponentelorM[0,0],M[0,1],...,M[2,3]secitescdelatastatură.

Page 20: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

20

// Program P81// Suma componentelor variabilei M de tip Matrice#include<iostream>using namespace std;int main() typedef double Matrice[3][4]; Matrice M; int i, j; double S; cout << "Dati componentele M[i,j]: " << endl; for (i=0; i<3; i++) for (j=0; j<4; j++) cout << "M[" <<i<< ',' << j << "]= "; cin >> M[i][j]; cout << "Ati introdus:" << endl; for (i=0; i<3; i++) for (j=0; j<4; j++) cout << M[i][j] << ' '; cout << endl; S=0; for (i=0; i<3; i++) for (j=0; j<4; j++) S=S+M[i][j]; cout << "Suma= " << S << endl; return 0;

Înmomentuldeclarării,elementeletablouluipotfiiniţializate,deexemplu:

int T[4]=2,5,9,-4;

int M[3][2]=9,7, -12,8, 0,-4;

AccentuămfaptulcăînlimbajulC++indiciicomponentelortablouluipotluadoarvaloriconsecutiveîntregi,începândcuzero:0,1,2,…,<Număr componente>–1. Uneori,acestlucrupoatecreaanumiteincomodităţi.

Astfel,încazulexempluluireferitorlaconsumulzilnicdeenergieelectricăpeduratauneiluni(veziparagrafulprecedent),tabelulrespectivpoatefireprezentatpecalculatorcuajutorulurmătoruluitipdedatetablou unidimensional:

typedef float Consum[31];Consum C;

Indicele tablouluiCpoate luadoarvalorile0,1,2,…30, iarcomponenteletablouluisespecificăprinC[0],C[1],…,C[30].Evident,ultimeizilealunii,

Page 21: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

21

a31-a,nu-ivacorespundeniciocomponentăatabloului,iartentativadeautilizaspecificareaC[31]arputeadeclanşa,înanumitesituaţii,oeroaredeexecuţie. Indiscutabil,amputeasănumerotămzileleluniiîncepândnucu„1”,cicu„0”,însăacestlucrupoatefaceprogrameleC++maipuţinintuitive.

Pentruaevitaastfeldesituaţii,serecomandămajorareanumăruluidecompo-nentealeunuitabloucuounitatefaţădecelcerutdedatelestructuratecetrebuiereprezentatepecalculator.

Deexemplu,încazulconsumuluizilnicdeenergieelectricăpeduratauneiluni,putemutilizaurmătorultipdedate:

typedef float Consum[32];Consum C;

încareprimeizilealuniiîivacorespundecomponentaC[1],zileiadoua―com-ponentaC[2],zileiatreia―componentaC[3] ş.a.m.d.,iarcomponentaC[0]varămâneneutilizată.

Într-unmodsimilar,pentrureprezentareapecalculatoraconsumuluizilnicdeenergieelectricăpeparcursulunuian,poatefifolositurmătorultipdedate:

typedef float Consum[13][32];Consum C;

încarezilelorluniiIanuarielevorcorespundecomponenteleC[1, 1],…,C[1, 31];zilelorluniiFebruarie―componenteleC[2, 1],…,C[2, 31],zilelorluniiDecembrie―componenteleC[12, 1],…,C[12, 31].

Evident,unelecomponentealetablouluiC,înspecialceledinrândulşicoloa- na0,vorrămâneneutilizate.Însăîntrucâtlizibilitateaşicorectitudineaprogra-melor sunt cumultmai importante decâtneutilizareaanumitor componente,majoritatea informaticienilor considerăcăacest faptnu înrăutăţeşte calitateaprogramelorC++.

Întrebări şi exerciţiiÊOBSERVĂ!Precizaţi tipul indicilor şi tipul componentelor dinurmătoarele

declaraţii:PA S C A L C + +

type P = array [1..5] of integer;Culoare = (Galben, Verde, Albastru, Violet);R = array [Culoare] of real;S = array [Culoare, 1..3] of boolean;T = array [boolean] of Culoare;

typedef int P[5];enum Culoare Galben, Verde, Albastru, Violet;typedef Culoare R[3];typedef bool S[4][3];typedef double T[2][5];

ReprezentaţistructuradatelordetipulP,R,SşiTpeundesen(vezifigurilerespectivedemaisus).

Ë(PASCAL)Indicaţipediagramasintacticădinfigura 1.3drumurilecarecores-punddeclaraţiilordinexerciţiul1.

Page 22: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

22

Ì (PASCAL)Scrieţiformulelemetalingvisticecarecorespunddiagrameisintactice<Tip tablou>dinfigura 1.3.

Í ANALIZEAZĂ!Identificaţicaredintreurmătoareledeclaraţiisuntcorecte: PA S C A L C + +

a: array[1..30] of integer; int a[30];

a: array[1..10] of byte; char a[1..10];

a: array[1.10..10.00] of real; float a[1.10..10.00];

a: array[1..50] of char; char a[50];

EXERSEAZĂ!Seconsiderădeclaraţiile:PA S C A L C + +

type Vector = array [1..5] of real;var x, y : Vector;

typedef double Vector[5];Vector x,y;

Scrieţiexpresiaaritmeticăacăreivaloareeste: a)sumaprimelortreicomponentealevariabileix; b)sumatuturorcomponentelorvariabileiy; c)produsultuturorcomponentelorvariabileix; d)valoareaabsolutăacomponenteiatreiaavariabileiy; e)sumaprimelorcomponentealevariabilelorxşiy. ANALIZEAZĂ!Pentruurmătoareledeclaraţiişiinstrucţiuni:

Declaraţie Instrucţiune RezultatPA S C A L

1) var a:array [1..5] of byte;

for i:=1 to 5 do a[i]:=i-1; a) 1 1 1 1 1b) 0 0 0 0 0 c) 0 1 2 3 4d) 1 2 3 4 0

2) var v:array[0..4] of integer;

for i:=1 to 5 do v[i]:=2*(i-1); a) 2 4 6 8 1b) 0 2 4 6 8c) 0 1 2 3 4d) 1 2 3 4 5

C + +1) unsigned char a[4];

for (i=0; i<5; i++) a[i]=i; a) 1 1 1 1 1b) 0 0 0 0 0c) 0 1 2 3 4d) 1 2 3 4 0

2) int v[4]; for (i=0; i<5; i++) v[i]=2*i; a) 2 4 6 8 10b) 0 2 4 6 8c) 0 1 2 3 4d) 1 2 3 4 5

Selectaţidinlistadinparteadreaptăvariantelececonţinrezultatelecorectealeexecuţieifiecăreiadintreacesteinstrucţiuni.

Page 23: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

23

REZOLVĂ!Seconsiderădeclaraţiile:PA S C A L C + +

type Zi = (L, Ma, Mi, J, Vi, S, D); Venit = array [Zi] of real;var v : Venit;

typedef double Venit[7];Venit v;

Componentelevariabileivreprezintăvenitulzilnicaluneiîntreprinderi.Ela-boraţiunprogramcare:

a)calculeazăvenitulsăptămânalalîntreprinderii; b)calculeazămediavenituluizilnic; c)indicăziuaîncares-aobţinutcelmaimarevenit; d)indicăziuacuvenitulcelmaimic. REZOLVĂ!Seconsiderădeclaraţiile:

PA S C A L C + +type Ora = 0..23; Grade = -40..40; Temperatura = array [Ora] of Grade;var t : Temperatura;

typedef int Oratypedef int Temperatura [24];Temperatura t;

Componentelevariabileitreprezintătemperaturilemăsuratedinorăînorăpeparcursula24deore.Elaboraţiunprogramcare:

a)calculeazătemperaturamedie; b)indicămaximulşiminimultemperaturii; c)indicăora(orele)lacares-aînregistrattemperaturamaximă; d)indicăora(orele)lacares-aînregistrattemperaturaminimă; e)calculeazănumăruldezileîncareaufostînregistratetemperaturimaijos

dezerograde; f)calculeazănumăruldezileîncareaufostînregistratetemperaturimaimari

demediasăptămânală. Seconsiderădeclaraţiile:

PA S C A L C + +type Oras = (Chisinau, Orhei, Balti, Tighina, Tiraspol); Zi=(L, Ma, Mi, J, Vi, S, D); Consum = array [Oras,Zi] of real;var C : Consum; r : Oras; z: Zi;

enum Oras Chisinau, Orhei, Balti, Tighina, Tiraspol;enum Zi L, Ma, Mi, J, Vi, S, D;typedef double Consum[5][7];Consum C;Oras r;Zi z;

ComponentaC[r, z]/C[r][z]înC++avariabileiCreprezintăconsumuldeenergieelectricăaoraşuluirînziuaz.Elaboraţiunprogramcare:

a) calculează energia electrică consumatădefiecare oraşpeparcursuluneisăptămâni;

b)calculeazăenergiaelectricăconsumatăzilnicdeoraşeleînstudiu; c)indicăoraşulcuunconsumsăptămânalmaxim; d)indicăoraşulcuunconsumsăptămânalminim; e)indicăziuaîncareoraşeleconsumăceamaimultăenergieelectrică; f)indicăziuaîncareoraşeleconsumăceamaipuţinăenergieelectrică.

Page 24: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

24

SeconsiderădeclaraţiilePA S C A L C + +

type Vector = array [1..5] of real;Matrice = array [1..3, 1..4] of boolean;Linie = array [1..4] of real;Tabel = array [1..3] of Linie;var V : Vector; M : Matrice; L : Linie; T : Tabel; x : real; i : integer;

typedef float Vector[5];typedef bool Matrice[3][4];typedef float Linie[4];typedef Linie Tabel[3];Vector V;Matrice M;Linie L;Tabel T;float x;int i;

Caredintreatribuirileceurmeazăsuntcorecte?

PA S C A L C + +

a) T[3]:=T[1] a) T[3]=T[1]

b) M:=T b) M=T

c) L:=V c) L=V

d) L[3]:=x d) L[3]=x

e) x:=i e) x=i

f) i:=x f) i=x

g) L[3]:=i g) L[3]=i

h) i:=M[1,2] h) i=M[1][2]

i) x:=V[4] i) x=V[4]

j) L[3]:=V[4] j) L[3]=V[4]

k) T[1]:=4 k) T[1]=4

l) T[2]:=V l) T[2]=V

m) L:=T[3] m) L=T[3]

n) T[1,2]:=M[1,2] n) T[1][2]=M[1][2]

o) T[2,1]:=M[1,2] o) T[2][1]=M[1][2]

p) M[1]:=4 p) M[1]=4

q) M[1,3]:=L[2] q) M[1][3]=L[2]

r) x:=T[1][2] r) x=T[1,2]

s) x:=M[1] s) x=M[1]

t) L:=M[1] t) L=M[1]

u) V[5]:=M[3,4] u) V[5]=M[3][4]

v) L:=M[3,4] v) L=M[3][4]

Page 25: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

25

REZOLVĂ!Delatastaturăsecitescelementeleunuitablouunidimensional,formatdinn numereîntregi,n<10.Elaboraţiunprogramcare:

a) afişeazăpeecrancomponenteletablouluilaunintervalde5poziţii; b) afişeazăpeecrannumereleînordineainversăaintroduceriiîncalculator; c) sorteazăcomponenteletablouluiînordinedescrescătoare; d) afişeazăpeecrandoarcomponentelepare; e) afişeazăpeecranmediaaritmeticăacomponentelorpare; f) afişeazăpeecrandoarcomponenteleimpare; g) afişeazăpeecrandoar componentele care suntmaimari cax şinusunt

divizibilecuy(valorilexşiysecitescdelatastatură); h) afişeazăpeecrandoarcomponentelecaresuntmaimaricaxşimaimici

decâty(valorilexşiysecitescdelatastatură); i) afişeazăpeecranpoziţiile(indicii)componentelorimparenegative; j) afişeazăpeecranpoziţiile(indicii)componentelorceconţindoardouăcifre

semnificative; k) înlocuieşteprimacomponentăatablouluicucomponentadevaloareminimă

dintabloulrespectiv; l) înlocuieştecomponentadevaloareminimădintabloulrespectivcuprima

componentăaacestuia; m)creeazăun tablounou, formatdoardin componentele pare ale tabloului

introdusdelatastatură; n) creeazăun tablounou, formatdoardin componentele divizibile cu3 ale

tablouluiintrodusdelatastatură; o) creeazăuntablounou,formatdoardinacelecomponentealetablouluiin-

trodusdelatastaturăcareaucelmultpatrudivizori. REZOLVĂ!Opersoanăintenţioneazăsăcumperenprodusedistincte,nume-rotateprini=1,2,3,…,n.Fiecaredintreacesteprodusepoatefiprocuratînoricaredintrecelekmagazinedisponibile,notateprinj=1,2,3,…,k.Evident,cumpărătorulopteazăpentrumagazinelecucelemaimicipreţuri.ElaboraţiunprogramcaredeterminăpentrufiecareprodusimagazinuljîncareeltrebuiecumpăratşicostultotalCalcumpărăturilorfăcuteînacestmod.

Date de intrare:tabloulbidimensionalP,încarecomponentaP [i][j]reprezintăpreţulprodusuluiiînmagazinulj.

Date de ieşire:costultotalalcumpărăturilorCşitabloulunidimensionalM,încarecomponentaM [i]reprezintămagazinuljîncarevafiprocuratprodusuli.

Restricţii:1≤n≤10.1≤k≤5.Preţurilesuntindicateprinnumerereale,cudouăcifredupăpunctulzecimal.

STUDIUDECAZ.ProiectațistructurilededatedetiptablounecesarepentrureprezentareaînprogramelePASCAL/C++atabelelorceconţininformaţiilereferitoarelaconsumulzilnicdeenergieelectrică,respectiv,peduratauneilunişipedurataunuian,descriseînparagrafulprecedent.Analizațicumnumăruldecomponentedindeclaraţiiledetablouriinfluenţeazăînţelegereaprogramelordecătreutilizatori.

ÎNVAŢĂSĂÎNVEŢI!Tablourilebidimensionalecuacelaşinumărdeliniişicoloanesenumesctablouri pătratice.Mulţimeacomponentelorcareauindiceledelinieegalcuindiceledecoloanăformeazădiagonala principalăaunuitabloupătratic.Evident,aceastămulţimepoatefisimbolizatăprintr-olinieimaginarăcereuneştecomponentadincolţulstânga-suscucomponentadincolţuldreap-ta-josaltablouluipătratic.Într-unmodsimilar,poatefidefinităşidiagonalasecundarăatablouluipătratic,care,deasemenea,poatefisimbolizatăprintr-o

Page 26: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

26

linieimaginarăcereuneştecomponentadincolţulstânga-joscucomponentadincolţuldreapta-sus.

Elaboraţiunprogramcareciteştedelatastaturăuntabloupătraticcunlinii,2≤n≤10,şiafişeazălaecransumacomponentelorcareseaflă:

a) pediagonalaprincipală; b) pediagonalasecundară; c) maisusdediagonalaprincipală; d) maijosdediagonalaprincipală; e) maisusdediagonalasecundară; f) maijosdediagonalasecundară. Seconsiderăcăcomponenteletablouluipătraticsuntnumereîntregi,carese

citescdelatastatură. DESCOPERĂ!LimbajulC++oferăuntipalternativdetablouribidimensionale,definitînbiblioteca<array>.Exploraţiaceastăbibliotecăşirescrieţiprogrameledinacestparagraffolosindoportunităţileoferitedeea.Princeseaseamănăşiprincediferăacestedouămoduridedefinireatablourilor?

1.3. Tipuri de date şir de caractereMetodeledereprezentareşideprelucrareaşirurilordecaractereauoimpor-

tanţădeosebită,întrucâtfoartemulteobiectedinlumearealăsuntdescrisenudoarprinnumere,cişiprincelemaidiversetexte.Deobicei,înmediilemodernededezvoltareaprogramelor,şiruriledecaracterepotfireprezentateprinmaimultestructuridedate.Încontinuarevomstudiaurmătoareletipuridedateutilizatepentrureprezentareaşirurilordecaractere:

–tablourileunidimensionalecucomponentedetipulchar(caractere);–string-urile.Amintim că în cazul limbajelor deprogramare, cuvântul englez string are

semnificaţiadeşir,serie,succesiunedecaractere.

Şiruridecaracteredetipultablouri unidimensionaleÎnlimbajul-standardtipuldedateşir de caracterereprezintăuncazspecialal

tipuluiarrayşisedefineşteprintr-oconstrucţiedeforma

<Nume tip>::=packed array [1..n] of char;

Mulţimeadevalorialetipuluidedateînstudiuesteformatădintoateşirurilececonţinexactncaractere.

Exemplu:Program P82; Siruri de caractere de tip tablou unidimensional type Nume = packed array [1..8] of char; Prenume = packed array [1..5] of char;var N : Nume; P : Prenume;

Page 27: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

27

begin N:=’Munteanu’; P:=’Mihai’; writeln(N); writeln(P); readln;end.

Rezultatulafişatpeecran:

MunteanuMihai

Întrucâtşiruriledelungimediferităaparţinunortipuridistinctededate,încadrulprogramuluiP82nusuntadmiseatribuiridegenul:

N:= ’Olaru’;P:= ’Ion’.

Înastfeldecazuri,programatorulvacompletadatelerespectivecuspaţiupânălanumărulstabilitdecaracteren,deexemplu:

N:= ’Olaru ’;P:= ’Ion ’.

Valorileuneivariabilevdetip packed array [1..n] of char potfiintrodusedelatastaturănumaiprincitireaseparatăacomponentelorrespective:

read(v[1]); read(v[2]); ...; read(v[n]).

Înschimb,oastfeldevaloarepoatefiafişatăîntotalitateaeiprintr-unsingurapel write(v)sauwriteln(v).

Accentuăm faptul că şirurilede caracterede tippacked array [1..n] of charconţinexactncaractere,adicăsuntşiruridelungimeconstantă. Evident,lungimealornupoatefimodificatăpeparcursulderulăriiprogramuluirespectiv.Acestfaptcomplicăelaborareaprogramelordestinateprelucrăriiunorşiruriarbitraredecaractere.

ŞiruridecaracteredetipulstringPentru a uşuramunca programatorilor, versiunile actuale ale limbajului

PASCALpermitutilizareatipuluidedatestring,mulţimeadevaloriacăruiaesteformatădinşiruridecaracteredelungimevariabilă.Unastfeldetipsedeclarăprintr-oconstrucţiedeforma:

type <Nume tip> = string;sautype <Nume tip> = string [nmax];

undenmaxestelungimeamaximăpecareopotaveaşirurilerespective.Înlipsaparametruluinmax lungimeamaximăsestabileşteimplicit,înmodobişnuit– 255decaractere.

Asupra şirurilor de tipstring se poate efectua operaţia de concatenare(juxtapunere),notatăprinsemnul„+”.Lungimeacurentăauneivalorivdetipstringpoatefiaflatăcuajutorulfuncţieipredefinitelength(v)carereturnează

Page 28: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

28

ovaloaredetipinteger.Indiferentdelungime,toateşiruriledecaracteredetipstringsuntcompatibile.

Exemplu:

Program P83_a; Siruri de caractere de tip string type Nume = string [8]; Prenume = string [5]; NumePrenume = string;var N : Nume; P : Prenume; NP : NumePrenume; L : integer;begin N:=’Munteanu’; L:=length(N); writeln(N, L:4); P:=’Mihai’; L:=length(P); writeln(P, L:4); NP:=N+’ ’+P; L:=length(NP); writeln(NP, L:4); N:=’Olaru’; L:=length(N); writeln(N, L:4); P:=’Ion’; L:=length(P); writeln(P, L:4); NP:=N+’ ’+P; L:=length(NP); writeln(NP, L:4); readln;end.

Rezultateleafişatepeecran:

Munteanu 8Mihai 5Munteanu Mihai 14Olaru 5Ion 3Olaru Ion 9

SeobservăcăpeparcursulderulăriiprogramuluiînstudiulungimeaşirurilordecaractereN,PşiNPseschimbă.

Asupraşirurilordecaracteresuntadmiseoperaţiilerelaţionale<,<=,=,>=,>,<>.Şirurilesecomparăcomponentăcucomponentă,delastângaladreapta,încon-formitatecuordonareacaracterelorîntipuldedatechar.Ambiioperanzitrebuiesăfiedetippacked array [1..n] of charcuacelaşinumărdecomponentesaudetipstring.Evident,operanziidetipstringpotavealungimiarbitrare.

Deexemplu,rezultatuloperaţiei

’AC’ < ’BA’

este true,iarrezultatuloperaţiei

’AAAAC’ < ’AAAAB’

este false.Ovariabilădetipşir de caracterepoatefifolosităfieîntotalitateaei,fieparţial,

prinreferireaunuicaracterdinşir.

Page 29: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

29

Deexemplu,pentruP=’Mihai’avemP[1]=’M’,P[2]=’i’,P[3]=’h’ş.a.m.d.Dupăexecutareasecvenţeideinstrucţiuni

P[1]:=’P’;P[2]:=’e’;P[3]:=’t’;P[4]:=’r’;P[5]:=’u’

variabilaPvaaveavaloarea ’Petru’.Programulceurmeazăciteştedelatastaturăşiruriarbitraredecaractereşi

afişeazăpeecrannumăruldespaţiiînşirulrespectiv.Derulareaprogramuluiseterminădupăintroducereaşirului ’Sfarsit’.

Program P83_b; Numarul de spatii într-un sir de caractere var S : string; i, j : integer;begin writeln(’Dati siruri de caractere:’); repeat readln(S); i:=0; for j:=1 to length(S) do if S[j]=’ ’ then i:=i+1; writeln(’Numarul de spatii=’, i); until S=’Sfarsit’;end.

MenţionămfaptulcăcompilatoarelemodernealelimbajuluiPASCALconţinmaimultefuncţiistandarddeprelucrareaşirurilordecaractere,deexemplu,concatenarea,copierea,secvenţierea,inserareasauştergereaanumitorcaracteredinşirş.a.m.d.Descriereaacestorfuncţiipoatefigăsităînsistemeledeasistenţăalemediilorintegratededezvoltareaprogramelor.

Şiruridecaracteredetipultablouri unidimensionaleÎnprogrameleC++şiruriledecaracterepotfireprezentateprintablouri uni-

dimensionale,componentelecărorasuntdetipchar.Astfeldetipurisedeclarăcuajutorulconstrucţieigramaticaledeforma:

typedef char <Nume tip şir> [nmax];

undenmaxindicănumărulmaximdecaracterepecareîlpotaveaşiruriledetipulrespectiv.

Mulţimeadevalorialetipuluidedate<Nume tip şir>esteformatădinşiruriceconţinpânălanmaxcaractere.Întrucâtînreprezentareainternăunadintrecomponenteletablouluiunidimensionalcereprezintăşiruldecaractereseutili-zeazăpentruaindicasfârşitulşirului,lungimeaşiruluivafidecelmultnmax-1 caracteresemnificative.

Page 30: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

30

Exemple:

1) typedef char Nume[20]; Nume N;

2) typedef char Prenume[10]; Prenume P;

3) typedef char Companie[45]; Companie C;

Dupăcumafostmenţionatmaisus,înreprezentareainternă,sfârşituldeşirseindicăcuajutorulunuisimbolspecial,şianume,simbolul escape „\0”.

Deexemplu,dacăvariabilaPdetipPrenumeconţineşiruldecaractere„Ion”,tabloulrespectivareforma:

0 1 2 3 4 5 6 7 8 9I o n \0

DacăînsăaceeaşivariabilăPvaconţineşiruldecaractere"Cristina",tabloulrespectivvaaveaforma:

0 1 2 3 4 5 6 7 8 9C r i s t i n a \0

Prinurmare,înpofidafaptuluicăîndeclaraţiatipuluidedatePrenumesuntin-dicate10caractere,şiruriledeacesttippotconţinepânăla9caracteresemnificative.

Înprincipiu,şiruriledecaracterereprezentateprintablouriunidimensionalepotfiprelucrateaccesândcomponenteledoritealeacestora.

Deexemplu,dacăsedoreşteînscriereaînvariabilaPaşiruluidecaractere"Ion",înacestscoppotfifolositeurmătoareleinstrucţiuni:

P[0]= 'I';P[1]= 'o';P[2]= 'n';P[3]= '\0';

Accentuămfaptulcăindicareasfârşituluideşircuajutorulsimboluluiesca- pe „\0”esteobligatorie.Încazcontrar,vorapăreaerorideexecuţie.

Valorilevariabilelordetipşiruridecaractere–tablouriunidimensionale,potfiafişatepeecrancuajutoruloperatoruluidetransferaldatelor<<înfluxuldeieşirecout.

Exemplu:

// Program P82_a// Siruri de caractere de tip tablou unidimensional#include <iostream>using namespace std;int main()

Page 31: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

31

typedef char Nume[20]; Nume N; typedef char Prenume[10]; Prenume P; N[0]='L'; N[1]='u'; N[2]='p'; N[3]='u'; N[4] = '\0'; P[0]='I'; P[1]='o'; P[2]='n'; P[3]='\0'; cout << N << endl; cout << P << endl; return 0;

Rezultateleafişatepeecran:

LupuIon

Lacitireaşirurilordecaracteredelatastaturăsevaţinecontdefaptulcăintrareastandardesteprivităcaosursăcefurnizeazăfluxulîncontinuudecaracterecin.Pentruaputeaextragedinacestfluxşiruriledorite,programultrebuiesăcunoascăcarecaracterledelimitează.Deobicei,încalitatededelimi-tatorsefolosescaşa-numitelecaractere albe(spaţiul,tabulatorul,sfârşituldelinie),însăprogramatorulpoateutilizaşialtecaractere.

Pentrucitireaşirurilordecaracteredelimitateprincaracterealbesefoloseşteoperatorul>>.Pentruafişareaşirurilordecaracteresefoloseşteoperatorul<<.

Exemplu:

// Program P82_b// Citirea sirurilor de caractere// Delimitatori: spatiu sau sfarsit de linie#include <iostream>using namespace std;int main() typedef char Nume[20]; Nume N; typedef char Prenume[10]; Prenume P; cin >> N; // citirea sirului N cin >> P; // citirea sirului P cout << N << endl; // afisarea sirului N cout << P << endl; // afisarea sirului P return 0;

Presupunemcădupălansareaprogramuluiînexecuţie,utilizatorultastează:

Margine<ENTER>Cristina<ENTER>

Page 32: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

32

Înacestcaz,fluxuldeintrarecinvaaveaforma:

Margine<ENTER>Cristina<ENTER>

undesimbolulreprezintăcursorulacestuia.Iniţial,cursorulseaflălaînceputulfluxului,adicăînfaţacaracteruluiM.

Înprocesulexecutăriiinstrucţiuniicin>>N,programul,începândcupoziţiacurentăacursorului,parcurgefluxuldeintraredelastângaladreapta,mutândcursorulcaracterdupăcaracterşidepunândcaracterelecititeînvariabilaN. Ime-diatcecursorulajungeladelimitatorulsfârşitdelinie<ENTER>,instrucţiuneacin>>NînscrieînvariabilaNcaracterulescape '\0'şiterminăcitireaprimuluişirdecaractere.Evident,dupăexecutareainstrucţiuniicin>>N,variabilaNvaprimivaloarea"Margine",iarcursorulsevaaflaînfaţacaracteruluiC.

Într-unmodsimilar,instrucţiuneacin>>Pcontinuăparcurgereafluxuluideintrare,mutândcursorulşidepunândcaracterelecitite,unuldupăaltul,înva-riabilaP.Imediatcecursorulajungeladelimitatorulsfârşitdelinie<ENTER>,instrucţiuneacin>>P înscrie învariabilaPcaracterulescape '\0'şi terminăcitireaceluidealdoileaşirdecaractere.Evident,dupăexecutareainstrucţiuniicin>>P,variabilaPvaprimivaloarea"Cristina", iarcursorulsevaafla lasfârşitulfluxului.

Prinurmare,programulvaafişapeecran:

MargineCristina

Accentuămfaptulcăinstrucţiuniledecitireadatelordinfluxuldeintrarecin >> folosesc în calitatededelimitatornudoar sfârşitulde linie<ENTER>, dar şispaţiul.Astfel,dacăutilizatorulvatasta:

Margine Cristina Lupu Ion<ENTER>

variabilaNvaprimivaloarea"Margine",variabilaP–valoarea"Cristina",iarcursorulsevaaflaînfaţacaracteruluiL.Restulcaracterelordinfluxuldedate,şianume"Lupu Ion",vorrămânestocateînfluxuldeintrare.

Pentruacitişiruriledecaracteredelimitatedoardesfârşitdelinie,adicădeacţionareatastei<ENTER>,sefoloseştefuncţiacin.getline.Apelulacesteifuncţiiareforma:

cin.getline (S,n);

unde:S–variabilaîncarevafidepusşiruldecaractereextrasdinfluxuldeintrare;n–numărulmaximdecaracterecepotficititedinfluxuldeintrare.Exemplu:

// Program P82_c// Citirea sirurilor de caractere// Delimitator: sfarsitul de linie #include <iostream>

Page 33: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

33

using namespace std;int main() typedef char NumePrenume[30]; NumePrenume NP; cin.getline(NP, 30); // citirea sirului NP cout << NP << endl; return 0;

Dacă,înprocesulexecutăriiprogramuluidemaisus,utilizatorulvatasta:

Paduraru Elena – Promovata<ENTER>

variabilaNPvaprimivaloarea"Paduraru Elena – Promovata".Oaltămodalitatedecitireaunuişircarepoateconţinespaţiiestefolosirea

funcţieiget(). Întrucâtprelucrareaşirurilordecaractereprinaccesareafiecăreiadintrecom-

ponenteletablourilorrespectiveesteanevoioasă,limbajulC++conţineunşirdefuncţiipredefinitecaresimplificăacestproces.Prezentămîncontinuarecâtevadintreele:

strcpy(S1,S2)–copieşiruldecaractereS2înşirulS1;strcat(S1,S2)–alipeştelaşirulS1şiruldecaractereS2;strlen(S)–returneazălungimeaşiruluidecaractereS.MediilededezvoltarealeprogramelorC++conţinşialtefuncţiipredefinite,

destinateprelucrării şirurilorde caractere.Descrierea şimoduldeutilizareaacestorfuncţiipotfigăsiteînsistemeledeasistenţăalemediilorrespective.

Pentruaputeautilizaacestefuncţii,înprogramulîncursdeelaboraretrebuieinclusădirectiva

#include <cstring>;

Exemplu:

// Program P82_d/* Functii predefinite pentru prelucrarea *//* sirurilor de tip tablou unidimensional */#include <iostream>#include <cstring>using namespace std;int main() typedef char Nume[20]; Nume N; typedef char Prenume[10]; Prenume P; strcpy(N, "Munteanu"); cout << N << " " << strlen(N) << endl;

Page 34: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

34

strcpy(P, "Mihai"); cout << P << " " << strlen(P) << endl; strcat(N, " "); cout << strcat(N, P) << " " << strlen(N) << endl; return 0;

Rezultateleafişatepeecran:

Munteanu 8Mihai 5Munteanu Mihai 14

Evident,încazulreprezentăriişirurilordecaractereprintablouriunidimensio-nale,elepotfiiniţializateînmomentuldeclarării.Sevaţineînsăcontdefaptulcătablourilerespectivetrebuiesăconţinăînmodobligatoriucaracterulescape ’\0’ (sfârşitdeşir).

Exemple:

1) char S[]=’I’, ’o’, ’n’, ’\0’;

2) char S[]=”Ion”;

3) char T[]=’E’, ’l’, ’e’, ’n’, ’a’, ’\0’;

ŞiruridecaracteredetipulstringCunoaştemdejacăşiruriledecaracteredetipchar <Nume tip şir> [nmax]

potconţinecelmultnmax-1caracteresemnificative.Însă,foartedes,lamomen-tulscrieriiprogramelorC++,valoareanmaxestenecunoscută,faptcecomplicăprocesuldeprogramare.

Pentruauşuramuncaprogramatorilor,limbajuldeprogramareC++conţinetipulpredefinitdedatestring,carepermitedeclarareaşirurilordecaracterefărăaindicalungimeamaximăposibilăaacestora.Pentruautilizaacesttip,înparteadeclarativăaprogramuluiC++trebuieinseratădirectiva:

#include <string>;

Şiruriledecaracteredetipstringpotapăreaîninstrucţiuniledeatribuireşiasupralorpoatefiefectuatăoperaţiadeconcatenare(dealipire),notatăprinsimbolul„+”.

Exemplu:

// Program P83_a// Siruri de caractere de tip string#include <iostream>#include <string>using namespace std;int main()

Page 35: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

35

string N; // Nume string P; // Prenume string NP; // Nume si Prenume N = "Olaru"; // atribuire P = "Andrei"; // atribuire NP = N + " " + P; // concatenare si atribuire cout << N << endl; cout << P << endl; cout << NP << endl; return 0;

Acestprogramvaafişapeecran:

OlaruAndreiOlaru Andrei

Asupraşirurilordecaracteresuntadmiseurmătoareleoperaţiirelaţionale:<,<=,==,>=,>,!=.Şirurilesecomparăcomponentăcucomponentă,delastângaladreapta,înconformitatecuordonareacaracterelorîntipuldedatechar.

Deexemplu,rezultatuloperaţiei

’AC’ < ’BA’

este true,iarrezultatuloperaţiei

’AAAAC’ < ’AAAAB’

este false.Ovariabilădetipşirdecaracterepoatefifolosităfieîntotalitateaei,fieparţial,

prinreferireaunuicaracterdinşir.Deexemplu,dupăexecutareasecvenţeideinstrucţiuni

P=”Mihai”;P[0]=’P’; P[1]=’e’; P[2]=’t’; P[3]=’r’; P[4]=’u’;

variabilaPvaaveavaloarea”Petru”.Deobicei,citireauneiliniiintrodusedelatastaturăîntr-ovariabilăSdetip

stringseefectueazăcuajutorulunuiapeldeforma:

getline(cin, S);

LungimealaunuişirdecaractereSdetipstringpoatefiaflatăcuajutoruluneiinstrucţiunideforma:

l = S.length();

undeSesteşiruldecaracteresupusprelucrării.Programulceurmeazăciteştedelatastaturăşiruriarbitraredecaractereşi

afişeazăpeecrannumăruldespaţiiînfiecareşircitit.Derulareaprogramuluiseterminădupăintroducereaşirului’Sfarsit’.

Page 36: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

36

// Program P83_b// Numarul de spatii intr-un sir#include <iostream>#include <string>using namespace std;int main() string Sir; // Sirul citit de la tastatura int L; // Lungimea sirului citit int n; // Numarul de spatii in sirul citit int i;Repeta: cout << "Dati sirul de caractere:" << endl; getline(cin, Sir); // Citirea sirului L = Sir.length(); // Lungimea sirului cout << "Lungimea sirului = " << L << endl; n = 0; for (i=0; i < L; i++) if (Sir[i] == ' ') n++; cout << "Numarul de spatii in sir = " << n << endl; cout << endl; if (Sir != "Sfarsit") goto Repeta; return 0;

BibliotecilestandardalelimbajuluiC++oferăprogramatoruluiposibilitateasăutilizezeambelereprezentărialeşirurilordecaractere,atâtprintablouri,câtşiprinstring-uri.

Transformareadinstringîntablousepoatefacecuajutorulunuiapeldeforma:

S.c_str();

undeSesteovariabilădetipstring. Transformareadintabloudecaractereînstringsepoatefaceprintr-osimplă

atribuiredeformaS = T.Exemplu:

// Program P83_c// Transformari string <--> tablou de caractere#include <iostream>#include <cstring>using namespace std;int main() char A[20]; // A este un tablou de caractere string B; // B este un string // Transformarea string-ului B in tabloul A B="Informatica";

Page 37: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

37

strcpy(A, B.c_str()); cout << A << endl; // Transformarea tabloului A in string-ul B A[0]='A'; A[1]='d'; A[2]='m'; A[3]='i'; A[4]='s'; A[5]='\0'; B=A; cout << B << endl; return 0;

Întrebări şi exerciţiiÊ Cumsedefineşteuntipdedateşir de caractere?Caresuntceledouămodalităţi

dereprezentareaşirurilordecaractereînprogramelePASCALşiC++?Ë Ce operaţii pot fi efectuate asupra şirurilor de caractere reprezentate prin

tablouriunidimensionale?Asupraşirurilordecaracteredetipulstring?Ì PROGRAMEAZĂ!Elaboraţiunprogramcarepropuneelevuluisăintroducăde

latastatură,îndouălinii: –numeleşiprenumeleelevului/elevei; –profesialacareel/eaaspiră. Folosiţimesajesugestiveşiorganizaţidialogulom–calculatorconformurmăto-

ruluimodel:

Ce nume si prenume ai? Paduraru Elena Ce iti doresti sa devii in viitor? medic Te numesti Paduraru Elena Doresti sa devii medic

Înacestmodeldateleintrodusedeutilizatorsuntevidenţiateprinîngroşare.Í OBSERVĂ!Comentaţiurmătorulprogram:

PA S C A L C + +Program P84; Eroare var S : packed array [1..5] of char;begin S:=’12345’; writeln(S); S:=’Sfat’; writeln(S);end.

//Program P84// Eroare#include <iostream>using namespace std;int main() char S[]=”12345”; cout<<S<<endl; S=”Sfat”; cout<<S; return 0;

Page 38: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

38

EXPERIMENTEAZĂ!Inseraţiînainteainstrucţiunii„return 0;”dinprogra-mulP82_bsecvenţadeinstrucţiuni:

cin >> N; cin >> P; cout << N << endl; cout << P << endl;

Lansaţiînexecuţieprogramulmodificatşitastaţi:

Margine Cristina Lupu Ion<ENTER>

Explicaţimesajeleafişatepeecran. ANALIZEAZĂ!Seconsiderăşiruridecaracteredetipstring.Precizaţirezul-

tatuloperaţiilorrelaţionale:

PA S C A L C + +

a) ’B’ < ’A’ a) ’B’ < ’A’

b) ’BB’ > ’AA’ b) ”BB” > ”AA”

c) ’BAAAA’ < ’AAAAA’ c) ”BAAAA” < ”AAAAA”

d) ’CCCCD’ > ’CCCCA’ d) ”CCCCD” > ”CCCCA”

e) ’A’ = ’AA’ e) ”A” == ”AA”

f) ’BB ’ < ’B’ f) ”BB ” < ”B B”

g) ’A’ = ’a’ g) ”A” == ”a”

h) ’Aa’ > ’aA’ h) ”Aa” > ”aA”

i) ’123’ = ’321’ i) ”123” == ”321”

j) ’12345’ > ’12345’ j) ”12345” > ”12345”

REZOLVĂ!ElaboraţiunprogramcareciteştedelatastaturăşiruldecaractereSşiafişeazăpeecran:

a) număruldeapariţiialecaracterului’A’înşirulS;b) şirulobţinutprinsubstituireacaracterului’A’princaracterul’*’;c) şirulobţinutprinradiereadinşirulSatuturorapariţiilorcaracterului’B’;d) număruldeapariţiialesilabeiMAînşirulS;e) şirulobţinutprinsubstituireatuturorapariţiilorînşirul SasilabeiMAprin

silabaTA;f) şirulobţinutprinradiereadinşirulSatuturorapariţiilorsilabeiTO;g) scriereainversăaşiruluiS;h) truedacăşirulSestepalindromşifalseîncazcontrar;i) şirulobţinutprintransformareatuturorliterelormicidincomponenţaşirului

Sînliteremari;j) şirulobţinutprintransformareaprimeilitereafiecăruiadintrecuvinteledin

componenţaşiruluiSînliterămare;k) şirulobţinutprinsortareaînordinealfabeticăacaracterelordinşirulS. PROGRAMEAZĂ!Seconsiderăşiruridecaractereformatedinliterelemariale

alfabetuluilatinşispaţiu.Elaboraţiunprogramcareafişeazăşirurileînstudiudupăurmătoarelereguli:

Page 39: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

39

–fiecareliterădela’A’pânăla’Y’seînlocuieşteprinurmătoarealiterădinalfabet;

–fiecareliteră’Z’seînlocuieşteprinlitera’A’; –fiecarespaţiuseînlocuieşteprin’-’. PROGRAMEAZĂ!Elaboraţiunprogramcaredescifreazăşirurilecifrateconform

regulilordinexerciţiulprecedent. PROGRAMEAZĂ!Elaboraţiunprogramcareciteştede la tastaturăşirulS

formatdinncaractere,n≤30,şiafişeazăpeecrantoateşirurileformateprinştergereadinSaultimelorkcaractere,k=0,1,2,..,n–1.Deexemplu,pentruS=Test,programulvaafişa:

Test Tes Te T

CREEAZĂ!Elaboraţiunprogramcare: –citeştedelatastaturăm,m≤100,şiruridecaractere,formatedinliterele

micialealfabetuluilatin; –sorteazăşirurileîncauzăînordinealfabetică; –afişeazăşirurilesortatepeecran. PROGRAMEAZĂ!ŞirulS este compusdin câtevapropoziţii.Propoziţiile seterminăcupunct,semnuldeexclamaresausemnulîntrebării.Elaboraţiunprogramcareafişeazăpeecran:

–număruldepropoziţiidinşiruldecaractereintrodusdelatastatură; –număruldecuvintedincomponenţafiecăreipropoziţii. ÎNVAŢĂSĂÎNVEŢI!Estecunoscutfaptulcăcompilatoarelemoderneconţinmaimulte funcţiipredefinitedestinateprelucrării şirurilorde caractere,deexemplu: concatenarea, copierea, secvenţierea, inserareasauştergereaanu-mitorcaractereş.a.m.d.Descriereaacestorfuncţiipoatefigăsităînsistemeledeasistenţăalemediilor integratededezvoltareaprogramelor.Studiaţi, înmodindividualsauînechipă,funcţiilepredefinitedeprelucrareaşirurilordecaractereşicompletaţitabelul:

Funcţia Descriere Exemple

...

...

Utilizândfuncţiilerespective,rescrieţiprogrameledinacestparagraf.Estimaţi,încemăsurăutilizareaacestorfuncţiisimplificăprocesuldeelaborareapro-gramelorPASCAL/C++.

EXPLOREAZĂ!Înafarădefuncţiapredefinităcin.getline,pentrucitireaşirurilordecaracterepoatefifolosităşifuncţiacin.get.Studiaţi,înmodindi-vidualsauînechipă,aceastăfuncţie.Aflaţicaresuntdeosebiriledintrefuncţiilecin.getlineşicin.get.Determinaţiîncarecazuriesteindicatăfolosireafuncţieicin.getlineşiincarecazuri–folosireafuncţieicin.get.

Utilizândfuncţiacin.get,elaboraţiunprogramcareciteştedelatastaturăunşirdecaractereşiafişeazăpeecranlungimeaacestuia.Şirulpoatesăincludăunulsaumaimultespaţii,iarsfârşitulluiesteindicatdecaracterul’x’.

Page 40: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

40

1.4. Tipuri de date articolArticolul,cunoscutîninformaticăşisubdenumireadeînregistraresaustructură,

reprezintăogruparededate,reunitesubunsingurnume.Articolelesuntformatedincomponente,denumitecâmpuri.Spredeosebiredecomponenteleunuitablou,câmpurilepotfidetipuridiferite.Fiecarecâmpareunnume(identificatordecâmp).

Deexemplu,rezultateleexamenuluidebacalaureatpotfiafişateînforma:Nume câmp Nume Prenume Nota medie

Margine Cristina 10,0

Articol Munteanu Ion 8,7

... ... ...

Păduraru Elena 9,5

Înacestmodeldeafişarearezultatelorexamenuluidebacalaureat,fiecăruielevîicorespundeunarticol(oînregistrare)ceconţinetreicâmpuriintitulateNume,PrenumeşiNota medie.Pecalculator,dateledincâmpurileNumeşiPrenume potfireprezentateprinşiruridecaractere,iarceledincâmpulNota medie–prinnumerereale.

În limbajulPASCAL,un tipdedatearticol se defineşteprintr-o structurăgramaticalădeforma:

type <Nume tip> = record <Nume câmp 1> : T1; <Nume câmp 2> : T2; ... <Nume câmp n> : Tn; end;

undeT1 ,T2 ,..,Tnspecificătipulcâmpurilorrespective.Tipulunuinumedecâmpestearbitrar,astfeluncâmppoatesăfie,larândullui,totdetiparticol.Prinurmare,sepotdefinitipuriimbricate.

Exemple:

1) type Elev = record Nume : string; Prenume : string; NotaMedie : real; end; var E1, E2 : Elev;

2) type Punct = record x : real; coordonata x y : real; coordonata y end; var P1, P2 : Punct;

Page 41: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

41

3) type Triunghi = record A : Punct; vârful A B : Punct; vârful B C : Punct; vârful C end; var T1, T2, T3 : Triunghi;

Structuradatelordinexempleleînstudiuesteprezentatăînfigura 1.4.

Fig. 1.4. Structura datelor de tip Elev, Punct şi Triunghi

Fiinddatedouăvariabiledetiparticoldeacelaşitip,numelevariabilelorpotapărea într-o instrucţiunede atribuire.Această atribuire înseamnă copiereatuturorcâmpurilordinmembruldreptînmembrulstâng.Deexemplu,pentrutipurilededateşivariabileledeclaratemaisusinstrucţiunile

E1:=E2;T2:=T3;P2:=P1

suntcorecte.Fiecarecomponentăauneivariabiledetiprecordpoatefispecificatăexplicit,

prinnumelevariabileişidenumiriledecâmpuri,separateprinpuncte.Exemple:

1) E1.Nume, E1.Prenume, E1.NotaMedie;

2) E2.Nume, E2.Prenume, E2.NotaMedie;

3) P1.x, P1.y, P2.x, P2.y;

4) T1.A, T1.B, T1.C, T2.A, T2.B, T2.C;

5) T1.A.x, T1.A.y, T2.B.x, T2.B.y.

Page 42: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

42

Evident,componentaE1.Numeestedetipstring;componentaP1.xestedetip real;componentaT1.AestedetipPunct;componentaT1.A.xestedetiprealş.a.m.d.

Asupracomponentelordatelordetiparticolsepotefectuatoateoperaţiilead-misedetipulcâmpuluirespectiv.Programulceurmeazăcomparănotelemediiadoielevişiafişeazăpeecrannumeleşiprenumeleelevuluicunotamediemaibună.Seconsiderăcăeleviiaunotemediidiferite.

Program P85; Date de tipul Elev type Elev = record Nume : string; Prenume : string; NotaMedie : real; end;var E1, E2, E3 : Elev;begin writeln(’Dati datele primului elev:’); write(’Numele:’); readln(E1.Nume); write(’Prenumele:’); readln(E1.Prenume); write(’Nota medie:’); readln(E1.NotaMedie); writeln(’Dati datele elevului al doilea:’); write(’Numele:’); readln(E2.Nume); write(’Prenumele:’); readln(E2.Prenume); write(’Nota medie:’); readln(E2.NotaMedie); if E1.NotaMedie > E2.NotaMedie then E3:=E1 else E3:=E2; writeln(’Elevul cu media mai buna:’); writeln(E3.Nume, ’ ’, E3.Prenume, ’:’, E3.NotaMedie : 5:2); readln;end.

Oricetipdedaterecordpoateservicatipdebazăpentruformareaaltortipuristructurate.

Exemplu:

type ListaElevilor = array [1..40] of Elev;var LE : ListaElevilor;

Evident,notaţiaLE[i]specificăelevulidinlistă;notaţiaLE[i].Nume spe-cificănumeleacestuielev,notaţia LE[i].Prenumespecificăprenumeleelevuluirespectivş.a.m.d.Programulceurmeazăciteştedelatastaturădatelereferitoarela nelevişiafişeazăpeecrannumele,prenumeleşinotamedieaceluimaibunelev.Seconsiderăcăeleviiaunotemediidiferite.

Page 43: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

43

Program P86; Tablou cu componente de tipul Elev type Elev = record Nume : string; Prenume : string; NotaMedie : real; end; ListaElev = array [1..40] of Elev;var E : Elev; LE : ListaElev; n : 1..40; i : integer;begin write(’n=’); readln(n); for i:=1 to n do begin writeln(’Dati datele elevului ’, i); write(’Numele: ’); readln(LE[i].Nume); write(’Prenumele: ’); readln(LE[i].Prenume); write(’Nota Medie: ’); readln(LE[i].NotaMedie); end; E.NotaMedie:=0; for i:=1 to n do if LE[i].NotaMedie > E.NotaMedie then E:=LE[i]; writeln(’Cel mai bun elev:’); writeln(E.Nume, ’ ’, E.Prenume, ’:’, E.NotaMedie : 5:2); readln;end.

Îngeneral,untipdedatearticolsedefineştecuajutoruldiagramelorsintacticedinfigura 1.5.Încompletarelaarticolelecuunnumărfixdecâmpuri,limbajulPASCALpermiteutilizareaarticolelorcuvariante.Acestetipuridedatesestu-diazăîncursurileavansatedeinformatică.

Fig. 1.5. Diagrama sintactică <Tip articol>

Page 44: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

44

ÎnlimbajulC++untipdedatearticolsedefineşteprintr-ostructurăgrama-ticalădeforma:

struct [<Nume tip>] T1 <Nume câmp 1>; T2 <Nume câmp 2>; ... Tn <Nume câmp n>; [lista variabile];

undeT1,T2,..,Tnspecificătipulcâmpurilorrespective.Tipulunuinumedecâmpestearbitrar,astfeluncâmppoatesăfie,larândullui,totdetiparticol.Prinurmare,sepotdefinitipuriimbricate.

Exemple:

1) struct Elev string Nume[20]; string Prenume[25]; float NotaMedie; ; Elev E1, E2;

2) struct Punct double x; // coordonata x double y; // coordonata y ; Punct P1, P2;

3) struct Triunghi Punct A; // vârful A Punct B; // vârful B Punct C; // vârful C ; Triunghi T1, T2, T3;

Structuradatelordinexempleleînstudiuesteprezentatăînfigura 1.4*.Fiinddatedouăvariabiledetipînregistraredeacelaşitip,numelevariabilelor

potapăreaîntr-oinstrucţiunedeatribuire.Aceastăatribuireînseamnăcopiereatuturorcâmpurilordinmembruldreptînmembrulstâng.Deexemplu,pentrutipurilededateşivariabileledeclaratemaisusinstrucţiunile

E1=E2;T2=T3;P2=P1

suntcorecte.

Page 45: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

45

Fig. 1.4*. Structura datelor de tip Elev, Punct și Triunghi

Elev

stringNume

stringPrenume

oatNota medie

Punct

doublex

doubley

Triunghi

PunctA

PunctB

PunctC

Fiecarecomponentăauneivariabiledetipstructpoatefispecificatăexplicit,prinnumelevariabileişidenumiriledecâmpuriseparateprinpuncte.

Exemple:

1) E1.Nume, E1.Prenume, E1.NotaMedie

2) E2.Nume, E2.Prenume, E2.NotaMedie

3) P1.x, P1.y, P2.x, P2.y

4) T1.A, T1.B, T1.C, T2.A, T2.B, T2.C

5) T1.A.x, T1.A.y, T2.B.x, T2.B.y

6) V[3].Nume, v[3].Prenume, V[3].NotaMedie

Evident,componentaE1.Numeestedetipstring;componentaP1.xestedetip double;componentaT1.AestedetipPunct;componentaT1.A.xestedetipdoubleş.a.m.d.

Asupracomponentelordatelordetipstructsepotefectuatoateoperaţiileadmisedetipulcâmpuluirespectiv.Programulceurmeazăcomparănotelemediiadoielevişiafişeazăpeecrannumeleşiprenumeleelevuluicunotamediemaibună.Seconsiderăcăeleviiaunotemediidiferite.

//Program P85// Date de tipul Elev#include <iostream>using namespace std;int main()

Page 46: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

46

struct Elev char Nume[20]; char Prenume[30]; float NotaMedie; ; Elev E1, E2, E3; cout<<”Dati datele primului elev:”<<endl; cout<<”Numele:”<<endl; cin>>E1.Nume; cout<<”Prenumele:”<<endl; cin>>E1.Prenume; cout<<”Nota medie:”<<endl; cin>>E1.NotaMedie; cout<<endl<<”Dati datele elevului al doilea:”<<endl; cout<<”Numele:”<<endl; cin>>E2.Nume; cout<<”Prenumele:”<<endl; cin>>E2.Prenume; cout<<”Nota medie:”<<endl; cin>>E2.NotaMedie; if (E1.NotaMedie > E2.NotaMedie) E3=E1; else E3=E2; cout<<”Elevul cu media mai bună:”<<endl; cout<<E3.Nume<<’ ‘<<E3.Prenume<<’ ‘<<E3.NotaMedie; return 0;

Oricetipdedatestructpoateservicatipdebazăpentruformareaaltortipuristructurate.

Exemplu:

typedef Elev ListaElevilor[40];ListaElevilor LE;

Evident,notaţiaLE[i]specificăelevulidinlistă;notaţiaLE[i].Numespe-cificănumeleacestuielev,notaţiaLE[i].Prenumespecificăprenumeleelevuluirespectivş.a.m.d.Programulceurmeazăciteştedelatastaturădatelereferitoarela nelevişiafişeazăpeecrannumele,prenumeleşinotamedieaceluimaibunelev.Seconsiderăcăeleviiaunotemediidiferite.

//Program P86// Tablou cu componente de tipul Elev#include <iostream>using namespace std;int main() struct Elev char Nume[20]; char Prenume[30]; float NotaMedie; ;Elev E;int i;typedef Elev ListaElevilor[40];

Page 47: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

47

ListaElevilor LE;E.NotaMedie=0;int n;cout<<”n=”; cin>>n;for (i=0; i<n; i++) cout<<”Numele:”; cin>>LE[i].Nume; cout<<”Prenumele:”; cin>>LE[i].Prenume; cout<<”Nota medie:”; cin>>LE[i].NotaMedie; ;for (i=0; i<n; i++) if (E.NotaMedie < LE[i].NotaMedie) E = LE[i]; cout << "Elevul cu nota medie mai mare:" << endl; cout << E.Nume << ' ' << E.Prenume << ' ' << E.NotaMedie

<< endl;return 0;

Îngeneral,untipdedate înregistrare sedefineştecuajutoruldiagramelorsintacticedinfigura 1.5*.Încompletarelaarticolelecuunnumărfixdecâmpuri,limbajulC++permiteutilizarea înregistrărilorcustructurăvariabilă,definiteprintipuldedateunion.Acestetipuridedatesestudiazăîncursurileavansatedeinformatică.

Fig. 1.5*. Diagrama sintactică <Tip articol>

struct

; ;

<Tip înregistrare>

Întrebări şi exerciţiiÊ Careestemulţimeadevalorialeunuitipdedatearticol?Ë Scrieţiformulelemetalingvisticepentrudiagramelesintacticedinfigurile 1.5/1.5*.Ì Indicaţipediagramelesintacticedinfigurile 1.5/1.5*drumurilecarecorespund

definiţiilortipurilordedatearticoldinprogramulP85.Í EXERSEAZĂ!Definiţitipuldedatearticoldestinatreprezentăriipecalculator

aurmătoarelorinformaţii:a) coordonatelecartezienealeunuipunctpeplan;b) coordonatelecartezienealeunuipunctînspaţiu;

Page 48: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

48

c) listacărţilordinbibliotecapersonală:numeleşiprenumeleautorului,titlulcărţii,limba,editura,anulediţiei,ţaraîncareafosteditată;d) listaautomobilelordintr-unsalondevânzăriauto:marca,tipul,culoareacaroseriei,capacitatearezervorului,anulfabricaţiei,preţul;e) listapieselormuzicaledinmediatecapersonală:numeleşiprenumelein-terpretului,titlul,genuldemuzică,anulînregistrării;f) listapasagerilorunorcurseaeriene:numele,prenumele,numărulcursei(şirdeolungimedepânălaoptcaractere),data(ziua,luna,anul)şioradecolării(ore,minute),tipuldeavion,loculînavion(şirdeolungimedepânălaşasecaractere);g) listaangajaţiloruneicompanii:numele,prenumele,postulocupat,dataan-gajării(ziua,luna,anul),vârsta,adresadomiciliului(localitatea,strada,casa,apartamentul).

APLICĂ!Seconsiderăurmătoareledeclaraţii:

PA S C A L C + +type Elev = record Nume, Prenume : string; T, P:real; end;var E: Elev;

struct elev char Nume[20]; char Prenume[25]; float T, P; ;Elev E;

ÎnacestedeclaraţiicâmpulTestenotamedieînsemestruldetoamnă,iarcâmpulP –notamedieaelevuluiînsemestruldeprimăvară.ScrieţiinstrucţiuneadeatribuirececalculeazănotamedieanualăMaelevuluiE.

REZOLVĂ!Seconsiderăurmătoareletipuridedate

PA S C A L C + +type Data = record Ziua : 1..31; Luna : 1..12; Anul : integer; end;Persoana = record NumePrenume : string; DataNasterii : Data; end;ListaPersoane = array [1..50] of Persoana;

struct Data int Ziua;Luna;Anul; ;struct Persoana string NumePrenume; Data DataNasterii; ;Persoana ListaPersoane[50];

Elaboraţiunprogramcareciteştedepetastaturădatelereferitoarelanpersoane(n≤50)şiafişeazăpeecran:

a) persoanelenăscuteînziuazalunii; b) persoanelenăscuteînlunalaanului; c) persoanelenăscuteînanula; d) persoanelenăscutepedataz.l.a; e) persoanaceamaiînvârstă; f) persoanaceamaitânără;

Page 49: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

49

g) vârstafiecăreipersoaneînani,luni,zile; h) listapersoanelorcareaumaimultdevani; i) listapersoanelorînordinealfabetică; j) listapersoanelorordonatăconformdateinaşterii; k) listapersoanelordeaceeaşivârstă(născuţiînacelaşian). Seconsiderănpuncte(n≤30)peunplaneuclidian.Fiecarepunctiestedefinit

princoordonatelesale.Distanţadintrepuncteleişijsecalculeazădupăformula

. Elaboraţiunprogramcareafişeazăpeecranpuncteledistanţadintrecareeste

maximă. AriatriunghiuluiestedatădeformulaluiHeron

, undepestesemiperimetrul, iara,bşicsunt lungimile laturilorrespective.

UtilizândtipurilededatePunctşiTriunghidinparagrafulînstudiu,elaboraţiunprogramcareciteştedelatastaturăinformaţiilereferitoarelantriunghiuri(n≤10)şiafişeazăpeecran:

a)ariafiecăruitriunghi; b)coordonatelevârfurilortriunghiuluicuariamaximă; c)coordonatelevârfurilortriunghiuluicuariaminimă; d)informaţiilereferitoarelafiecaretriunghiînordineacreşteriiariilor.

1.5. Instrucţiunea with

NOTĂÎn limbajul C++ o astfel de instrucţiune nu există. Prin urmare, acest paragraf este destinat elevilor ce studiază doar limbajul PASCAL.

ÎnlimbajulPASCAL,componenteleuneivariabiledetiparticolsespecificăexplicitprinnumelevariabileişidenumiriledecâmpuriseparateprinpuncte.

Deexemplu,înprezenţadeclaraţiilor

type Angajat = record NumePrenume : string; ZileLucrate : 1..31; PlataPeZi : real; PlataPeLuna : real; end;var A : Angajat;

componentelevariabileiAsespecificăprinA.NumePrenume,A.ZileLucrate,A.PlataPeZişiA.PlataPeLuna.

ÎntrucâtnumeleAalvariabileidetiparticolserepetădemaimulteori,acestmoddereferireacomponenteloreste,înanumitesituaţii,incomod.Repetărileobositoarepotfievitatecuajutorulinstrucţiuniiwith(cu).

Page 50: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

50

Sintaxainstrucţiuniiînstudiueste:

<Instrucţiune with>::=with <Variabilă> ,<Variabilă> do <Instrucţiune>

Diagramasintacticăesteprezentatăînfigura 1.6.

Fig. 1.6. Diagrama sintactică a instrucţiunii with

Îninterioruluneiinstrucţiuniwithcomponenteleuneiasauamaimulteva-riabiledetiparticolpotfireferitefolosindnumainumelecâmpurilorrespective.

Exemplu:

with A do PlataPeLuna:=PlataPeZi*ZileLucrate

Aceastăinstrucţiuneesteechivalentăcuurmătoarea:

A.PlataPeLuna:=A.PlataPeZi*A.ZileLucrate

Utilizareainstrucţiuniiwithnecesităoatenţiesporitădinparteaprogramato-rului,careesteobligatsăspecificeunivoccomponentelevariabilelordetiparticol. Îninterioruluneiinstrucţiuniwith,laîntâlnireaunuiidentificator,primadatăsetesteazădacăelpoatefiinterpretatcaunnumedecâmpalarticoluluirespectiv.Dacăda,identificatorulvafiinterpretatcaatare,chiardacăînacelmomentesteaccesibilăşiovariabilăavândacelaşinume.

Exemplu:

type Punct = record x : real; y : real; end; Segment = record A : Punct; B : Punct; end;var P : Punct; S : Segment; x : integer;

În cazul nostru identificatorulx poate să reprezintefie variabilax de tip integer,fiecâmpulP.xalarticoluluiP.

Îninstrucţiunea

x:=1

identificatorulxsereferălavariabila xdetipinteger.

Page 51: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

51

Îninstrucţiunea

with P do x:=1

identificatorulxsereferălacâmpulP.xalvariabileidetiparticolP.ÎntrucâtvariabiladetiparticolSnuconţineniciuncâmpcunumeleS.x,în

instrucţiunea

with S do x:=1

identificatorulxvafiinterpretatcavariabilaxdetip integer.Oinstrucţiunedeforma

with v1,v2,...,vn do <Instrucţiune>,

undev1,v2,...,vn suntvariabiledetiparticol,esteechivalentăcuinstrucţiunea

with v1 dowith v2 do ...with vn do <Instrucţiune>.

Evident,componentelevariabilelorv1,v2,...,vntrebuiespecificateunivocprindenumirilecâmpurilorrespective.

Deexemplu,pentruvariabilelePşiS,declaratemaisus,putemscrie:

with P, S dobegin x:=1.0; referire la P.x y:=1.0; A.x:=0; referire la S.A.x A.y:=0; B.x:=2.0; referire la S.B.x B.y:=2.0;end;

Înmodobişnuit,instrucţiuneawithseutilizeazănumaiîncazurileîncareseajungelaoreduceresemnificativăatextuluiunuiprogram.

Întrebări şi exerciţiiÊ Indicaţipediagramasintacticădinfigura 1.6 drumurilecarecorespundinstruc-

ţiunilorwithdinexempleleparagrafuluiînstudiu.Ë Careestedestinaţiainstrucţiuniiwith?Ì APLICĂ!Utilizândinstrucţiuneawith,excludeţidinprogrameleP85şiP86

dinparagrafulprecedentrepetăriledegenul

E1.Nume, E1.Prenume, ...,LE[i].Nume, LE[i].Prenume.

Page 52: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

52

Í Seconsiderăurmătoareletipuridedate:

type Angajat = record NumePrenume : string; ZileLucrate : 1..31; PlataPeZi : real; PlataPeLuna : real; end; ListaDePlata = array [1..50] of Angajat;

Platapelunăafiecăruiangajatsecalculeazăînmulţindplatapezicunumăruldezilelucrate.Elaboraţiunprogramcare:

a)calculeazăplatapelunăafiecăruiangajat; b)calculeazăsalariulmediualangajaţilorincluşiînlistă; c)afişeazăpeecrandateledespreangajaţiicuplatalunarămaximă; d)afişeazălistaangajaţilorordonatăalfabetic; e)afişeazălistaangajaţilorînordineacreşteriiplăţilorpezi; f)ordoneazălistaangajaţilorînordineacreşteriiplăţilorpelună; g)afişeazălistaangajaţilorînordineacreşteriinumăruluidezilelucrate. REZOLVĂ!Uncercpoatefidefinitprincoordonatelex,yşirazar.Elaboraţi

unprogramcareciteştedelatastaturădatelereferitoarelancercuri(n≤50)şiafişeazăpeecran:

a) coordonatelecentruluişirazacerculuicuariamaximă; b)număruldecercuriincluseîncerculcurazamaximăşicoordonatelecentrelor

respective; c) coordonatelecentruluişirazacerculuicuariaminimă; d) număruldecercuriîncareesteincluscerculcurazaminimăşicoordonatele

centrelorrespective.

1.6. Tipuri de date mulţimeAmintimcăomulţimeesteformatădinobiectefizicesauvirtuale(alegândirii)

careauoproprietatecomună.Obiecteledincareesteformatăomulţimesenumescelementele mulţimii.Elementeleoricăreimulţimisuntdistincte,iarordinealornuesteimportantă.

ÎnlimbajulPASCAL,untipdedatemulţimesedefineşteînraportcuuntipdebazăcaretrebuiesăfieordinal:

<Tip mulţime>::=[packed] set of <Tip>

Valorileunuitipdedatesetsuntmulţimiformatedinvaloriletipuluidebază.Dacătipuldebazăarenvalori,tipulmulţimevaavea2nvalori.Înimplementărilelimbajuluivaloarealuinestelimitată,deregulăn≤256.

ÎnPASCALomulţimepoatefispecificatăenumerându-i-seelementeleîntreparantezelepătrate„[”şi„]”,careţinloculacoladelordinmatematică.

Notaţia[]reprezintămulţimeavidă.

Page 53: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

53

Exemple:

type Indice = 1..10; Zi = (L, Ma, Mi, J, V, S, D); MultimeIndicii = set of Indice; ZileDePrezenta = set of Zi;var MI : MultimeIndicii; ZP : ZileDePrezenta;

TipulordinalIndicearen=10valori:1, 2, 3, 4, 5, 6, 7, 8, 9, 10. TipulMultimeIndiciiare210=1024devalori,şianume:

[], [1], [2], ..., [1, 2], [1, 3], ..., [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].

Prinurmare,variabilaMIpoatesăaibăoricaredintreacestevalori,deexemplu:

MI:= [1, 3].

TipulordinalZiaren =7valori:L, Ma, Mi, J, V, S, D.TipulZileDe-Prezentaare27=128devalori,şianume:

[], [L], [Ma], [Mi], ..., [L, Ma], [L, Mi], ...,[L, Ma, Mi, J, V, S, D].

VariabilaZPpoatesăaibăoricaredintreacestevalori,deexemplu,

ZP:= [L, Ma, Mi, V]

Ovaloaredetipmulţimepoatefispecificatăprintr-unconstructor(generator)demulţime.Diagramasintacticăaunităţiigramaticale<Constructor mulţime> esteprezentatăînfigura 1.7.

Fig. 1.7. Diagrama sintactică <Constructor mulţime>

Unconstructorconţinespecificareaelementelormulţimii,separateprinvirguleşiincluseîntreparantezepătrate.Unelementpoatesăfieovaloareconcretăatipuluidebazăsauunintervaldeforma:

<Expresie>..<Expresie>.

Page 54: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

54

Valorileexpresiilorînstudiuprecizeazălimiteleinferioareşisuperioarealeintervalului.

Exemple :

1) [];

2) [1, 2, 3, 8];

3) [1..4, 8..10];

4) [i-k..i+k];

5) [L, Ma, V..D].

Asupravalorilorunuitipdedatemulţimesepotefectuaoperaţiileuzuale:+reuniunea;*intersecţia;-diferenţa,

rezultatulfiinddetipmulţimeşioperaţiilerelaţionale:=egalitatea;<>inegalitatea;<=,>=incluziunea;inapartenenţa,

rezultatulfiinddetipboolean.Programulceurmeazăafişeazăpeecranrezultateleoperaţiilor+,*şi-,efec-

tuateasupravalorilordetipMultimeIndicii.

Program P87; Date de tip MultimeIndicii type Indice = 1..10; MultimeIndicii = set of Indice;var A, B, C : MultimeIndicii; i : integer;begin A:= [1..5, 8]; A contine 1, 2, 3, 4, 5, 8 B:= [1..3, 9, 10]; B contine 1, 2, 3, 9, 10 C:= []; C este o multime vida C:=A+B; C contine 1, 2, 3, 4, 5, 8, 9, 10

writeln(’Reuniune’); for i:=1 to 10 do if i in C then write(i:3); writeln;

C:=A*B; C contine 1, 2, 3 writeln(’Intersectie’); for i:=1 to 10 do if i in C then write(i:3); writeln;

Page 55: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

55

C:=A-B; C contine 4, 5, 8 writeln(’Diferenta’); for i:=1 to 10 do if i in C then write(i:3); writeln; readln;end.

Spredeosebiredetablourişiarticole,componentelecărorapotfireferitedirect,respectivprinindiciişidenumiridecâmpuri,elementeleuneimulţiminupotfireferite.Seadmitenumaiverificareaapartenenţeielementuluilaomulţime(ope-raţiarelaţionalăin).Înpofidaacestuifapt,utilizareatipurilordedatemulţime măreştevitezadeexecuţieşiîmbunătăţeştelizibilitateaprogramelorPASCAL.Deexemplu,instrucţiunea:

if (c=’A’) or (c=’E’) or (c=’I’) or (c=’O’) or (c=’U’) then ...

poatefiînlocuităcuoinstrucţiunemaisimplă:

if c in [’A’,’E’,’I’,’O’,’U’] then ...

ŞTIAI CĂ?Eratostene a fost un matematician, geograf, poet, astronom și muzician grec, care a trăit în-tre anii 276 și 194 î.Hr. A fost primul om care a calculat circumferinţa pământului, a calculat înclinaţia axei de rotaţie a pământului, a formu-lat conceptul de an bisect, a desenat una dintre primele harţi ale lumii. Eratostene a inventat un algoritm foarte eficient de calcul al tuturor nu-merelor prime ce nu depășesc un număr dat.

Sursa: https://www.britannica.com

Unaltexemplusugestivesteutilizareatipurilordedatemulţimeîncalcula-reanumerelorprimemaimicidecâtunnumărnaturaldatn.PentruaceastasefoloseştealgoritmulCiurul (sita) lui Eratostene:

1)însităsedepunnumerele2,3,4,...,n;2)dinsităseextragecelmaimicnumări;3)numărulextrasseincludeînmulţimeanumerelorprime;4)dinsităseeliminătoţimultipliimainumăruluii;5)procesulseîncheiecândsitas-agolit.

Program P88; Ciurul (sita) lui Eratostene const n = 50;

Page 56: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

56

type MultimeDeNumere = set of 1..n;var Sita, NumerePrime : MultimeDeNumere; i, m : integer;begin 1 Sita:= [2..n]; NumerePrime:=[]; i:=2; repeat 2 while not (i in Sita) do i:=succ(i); 3 NumerePrime:=NumerePrime+[i]; write(i:4); m:=i; 4 while m<=n do begin Sita:=Sita-[m]; m:=m+i; end; 5 until Sita=[]; writeln; readln;end.

Corespondenţadintrepunctelealgoritmuluişiinstrucţiunilecareleexprimăesteindicatăîncomentariiledinparteastângăaliniilordeprogram.

ÎnlimbajulC++mulţimilepotfireprezentateprintablouriunidimensionale.Deobicei,componentelerespectivesuntdeclaratecaaparţinândunortipuriordinalededate,adicăint,bool,char şi enum.

Exemple:1)mulţimileAformatedinnumereîntregiceconţinpânăla100deelemente

potfireprezentateprintabloulint A[100];2)mulţimileBformatedincele26decaracterealealfabetuluilatinpotfire-

prezentateprintabloulchar B[26];3)MulţimileZformatedinvaloriletipuluidedateenum Zi L, Ma, Mi, J,

V, S, DpotfireprezentateprintabloulZi Z[7].Evident, înafarăde tabloulpropriu-zis, în care suntmemorateelementele

mulţimiisupuseprelucrării,vatrebuisămaideclarămovariabilăîntreagănîncaresămemorămnumărulcurentdeelementealemulţimiirespective.

ÎncazulmulţimilorA,BşiZdescrisemaisus,potfideclaratevariabilenA,nB şinZ,deexemplu:int nA,nB,nZ.

PrezentămîncontinuareunprogramcareciteştedelatastaturămulţimileA şiB,formatedincelmult20denumereîntregi,şiafişeazăpeecranintersecţiaacestora,adicămulţimeaC = A B.

AmintimcămulţimeaCtrebuiesăconţinădoarelementelecareaparatâtînmulţimeaA,câtşiînmulţimeaB.

// Program P87// Reprezentarea multimilor prin tablouri// Intersectia multimilor A si B

Page 57: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

57

#include <iostream>using namespace std;int main () int A[20], B[20], C[20], nA, nB, nC, i, j, k; // contoare cicluri bool Gasit; // fanion: elementul multimii A // se regaseste in mulţimea B cout << "Dati numarul de elemente ale multimii A: "; cin >> nA; cout << "Dati elementele multimii A:" << endl; for (i=0; i<nA; i++) cin >> A[i]; cout << "Dati numarul de elemente ale multimii B: "; cin >>nB; cout << "Dati elementele multimii B:" << endl; for (j=0; j<nB; j++) cin >> B[j]; nC=0; // initial multimea C este vida for (i=0; i<nA; i++) Gasit = false; for (j=0; j<nB; j++) if (A[i]==B[j]) Gasit = true; if (Gasit==true) C[nC] = A[i]; nC++; ; cout << "Numarul de elemente ale multimii C = " << nC << endl; cout << "Multimea C:" << endl; for (k=0; k<nC; k++) cout << C[k] << " "; cout << endl; return 0;

Oaltămetodădereprezentareamulţimilorconstăînutilizareaaşa-numitorvectori caracteristici. Înaceastămetodă sepresupune că există omulţimeuniversală(universum),notatăprinU,ceconţinetoateelementeledincarepotfiformatemulţimiledeprelucrat.

Deexemplu,dacăsepreconizeazăprelucrareamulţimilor,elementelecărorasuntnumerenaturalemaimicica100,atunciU=0,1,2,3,…,99.Într-unmodsimilar,dacăsepresupuneprelucrareamulţimilor,elementelecărorasuntliterelemarialealfabetuluilatin,atunciU=A,B,C,…,Z.

Presupunemcămulţimeauniversalăconţinenelemente:U =u1,u2,u3,…,un,

iarmulţimeadeprelucratconţinem elemente:A =a1,a2,a3,…,am.

Pecalculator,aceastămulţimepoatefireprezentatăprinvectorulcaracteristicV=(v1,v2,v3,…vi,…,vn),

Page 58: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

58

unde

vi =1,dacăui ∈A;

0,încazcontrar.Cualtecuvinte,componentaiavectoruluicaracteristicVarevaloarea1dacă

elementulrespectivdinmulţimeauniversalăaparţinemulţimiiAşivaloarea0încazcontrar.

Deexemplu,dacăU=1,2,3,4,5şiA=2,4,atuncivectorulcaracteristic:V=(0,1,0,1,0).

Într-unmodsimilar,dacăU=a,b,c,d,e,fşiB=a,c,e,f,atuncivectorulcaracteristic:

V=(1,0,1,0,1,1).Dinexempleledemaisusseobservăcănumăruldecomponentealevectorului

caracteristicValuneimulţimiAcoincidecunumăruldeelementenalemulţimiiuniversaleU.Evident,număruldecomponentenenulealevectoruluicaracteristicVesteegalcunumăruldeelementemalemulţimiiA.

Unexemplusugestivdeutilizareavectorilorcaracteristicipentrureprezentareamulţimilordeprelucratestecalculareanumerelorprimemaimicidecâtunnumărnaturaldatn.PentruaceastasefoloseştealgoritmulCiurul (sita) lui Eratostene:

1)însităsedepunnumerele2,3,4,...,n;2)dinsităseextragecelmaimicnumări;3)numărulextrasseincludeînmulţimeanumerelorprime;4)dinsităseeliminătoţimultipliimainumăruluii;5)procesulseîncheiecândsitas-agolit.

// Program P88// Ciurul (sita) lui Eratostene// Reprezentarea multimilor prin vectori caracteristici// Universum U = 0, 1, 2, ..., n#include <iostream>using namespace std;int main() const int nmax = 51; int n, S[nmax], // Vectorul caracteristic Sita P[nmax], // Vectorul caracteristic Numere prime i, // Numarul extras din Sita j, k; // Contoare ciclu cout << "Dati n= "; cin >> n; // Depunem numerele 2, 3, 4, .., n in Sita S[0] = 0; S[1] = 0; for (j = 2; j <= n; j++) S[j] = 1; // Zerografiem multimea numerelor prime for (j = 0; j <= n; j++) P[j] = 0; // Extragem din sita cel mai mic numar i

Page 59: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

59

for (i = 2; i <= n; i++) if (S[i] != 0) P[i] = 1; // includem i in Numere prime S[i] = 0; // excludem i din Sita // Eliminam din Sita toti multiplii lui i for (j = i; j <= n; j++) if ((j % i)==0) S[j] = 0; cout << "Numerele prime:" << endl; for (j = 2; j <= n; j++) if (P[j] == 1) cout << j << ' '; cout << endl; return 0;

Întrebări şi exerciţiiÊ OBSERVĂ!(PASCAL)Enumeraţivalorileposibilealevariabilelordindecla-

raţiileceurmează:

var V : set of ’A’..’C’; S : set of (A, B, C); I : set of ’1’..’2’; J : set of 1..2;

Ë OBSERVĂ!(PASCAL)Comentaţiurmătorulprogram:

Program P89; Eroare type Multime = set of integer;var M : Multime; i : integer;begin M:=[1, 8, 13]; for i:=1 to MaxInt do if i in M then writeln(i);end.

Ì EXERSEAZĂ!(PASCAL)Seconsiderăurmătoareledeclaraţii:

type Culoare = (Galben, Verde, Albastru, Violet); Nuanta = set of Culoare;var NT : Nuanta;

ListaţivalorileposibilealevariabileiNT.Í EXERSEAZĂ!(PASCAL)Scrieţiformulametalingvisticăcarecorespundedia-

grameisintactice<Constructor mulţime>dinfigura 1.7.

Page 60: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

60

EXERSEAZĂ!(PASCAL)SeconsiderătipuldedateMultimeIndiciidinpa-ragrafulînstudiu.Precizaţimulţimilespecificatedeconstructoriiceurmează:

a) []; f) [4..3];

b) [1..10]; g) [1..3, 7..6, 9];

c) [1..3, 9..10]; h) [4-2..7+1];

d) [1+1, 4..7, 9]; i) [7-5..4+4];

e) [3, 7..9]; j) [6, 9, 1..2].

EXERSEAZĂ!(C++)SeconsiderămulţimeauniversalăU=L,Ma,Mi,J,V,S,D,carereprezintăzilelesăptămânii.Scrieţivectoriicaracteristiciaiurmătoa-relormulţimi:

A=S,D–zileledeodihnăalesăptămânii; B=L,Ma,Mi,J,V–zileledelucrualesăptămânii; C=L,Mi,J–zileleîncareaulocconsultaţiionlineladisciplinaşcolarăIn-

formatica; D=Ma,Mi–zileleîncareîşidesfăşoarăactivitateacercurileartisticeale

liceului; E= Ma,J,V–zilele încare îşidesfăşoarăactivitateasecţiilesportiveale

liceului; F=L,V–zileleîncarebibliotecaliceuluiorganizeazăexpoziţiidecarte. EXERSEAZĂ!(C++)UtilizândmulţimileU,A,B,C,D,E,Fdinexerciţiulpre-

cedent,scrieţivectoriicaracteristiciaimulţimilorceconţin:G–zilelesăptămâniiîncareîşidesfăşoarăactivitateaatâtcercurileartistice,câtşisecţiilesportivealeliceului;H–zilelesăptămâniiîncareîşidesfăşoarăactivitateafiecercurileartistice,fiesecţiilesportivealeliceului;I–zilelesăptămâniiîncareatâtcercurileartistice,câtşisecţiilesportivenuactivează.

Elaboraţiunprogramcarecalculeazăşiafişeazăacestemulţimipeecran. PROGRAMEAZĂ!Scrieţiunprogramcareciteştedelatastaturăelementele

mulţimilorAşiBşiafişeazăpeecran: a)intersecţiamulţimilorAşiB; b)reuniuneamulţimilorAşiB; c)diferenţamulţimilorAşiB. MulţimileAşiBsuntformatedinnumereîntregi. PROGRAMEAZĂ!Scrieţiunprogramcareciteştedelatastaturăelementele

mulţimilorAşiBşiafişeazăpeecran: a)intersecţiamulţimilorAşiB; b)reuniuneamulţimilorAşiB; c)diferenţamulţimilorAşiB; MulţimileAşiB suntformatedinliterelemarialealfabetuluilatin. Elaboraţiunprogramcareafişeazăpeecrantoatesubmulţimilemulţimii1,2,

3,4. Elaboraţiunprogramcareafişeazăpeecrantoatesubmulţimilemulţimii

’A’,’B’,’C’,’D’. Seconsiderăşiruridecaractereformatedinliterelemarişimicialealfabetuluilatin,încarecuvintelesuntseparateprinspaţiu,punct,virgulă,punctşivirgulă,

Page 61: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

61

semnulexclamăriisausemnulîntrebării.Elaboraţiunprogramcareafişeazăpeecrancuvinteledinşirurilecititedelatastatură.

Seconsiderăşiruridecaractereformatedinliterelemarişimicialealfabetuluilatin.Elaboraţiunprogramcareafişeazăpeecrannumăruldevocaledinşirurilecititedelatastatură.

Elaboraţiunprogramcareciteştedelatastaturădouăşiruridecaractereşiafişeazăpeecran:

a)caracterelecareseîntâlnesccelpuţinînunuldintreşiruri; b)caracterelecareaparînambeleşiruri; c)caracterelecareaparînprimulşinuaparînşirulaldoilea. Seconsiderăcănumeleuneipersoaneestescriscorectdacăelesteformatdinliterelemarişicelemicialealfabetuluilatin,începeculiterămare,iarlitereleceurmeazăsuntmici.Scrieţiunprogramcareverificădacăşiruldecaracterecititdelatastaturăreprezintăunnumecorectdepersoană.Încazulunuinumecorect,laecransevaafişamesajulCORECT,iarîncazcontrar–INCORECT.

Înimplementărileactualealelimbajuluinumărulvalorilortipuluidebazăalunuitipmulţimeestelimitat,obişnuitn≤256.Înconsecinţă,programulP88nupoatecalculanumereprimemaimaridecâtn.Elaboraţiunprogrampentrucalculareanumerelorprimedinintervalul8,...,10000.

Indicaţie: Sitadinalgoritmul luiEratostenepoatefi reprezentatăprintr-untablou,componentelecăruiasuntmulţimi.

STUDIUDECAZ.(C++)ScrieţiunprogramcarecalculeazănumereleprimecuajutorulalgoritmuluiCiurul (sita) lui Eratostene reprezentândmulţimileSitaşiNumere primenuprinvectoricaracteristici,ciprintablouriceconţinelementele propriu-zise ale acestora.Comparaţi complexitateaprogramuluiscriscuprogramulcareutilizeazăvectoricaracteristici.

CREEAZĂ!SeconsiderăposturiledeteleviziuneAşiB. Înanumitezilealesăptămânii,nuneapărataceleaşi,fiecaredintreacesteposturinudifuzeazăfilmeartistice.Deexemplu,PostulAnudifuzeazăfilmeartisticeînzileledelunişivineri,iarpostulB–înzileledemarţişiduminică.

Scrieţiunprogramcare,pentrufiecaredinposturileAşiB,citeştedelatas-taturăzilelesăptămâniiîncarenusuntdifuzatefilmeartisticeşiafişeazăpeecranzileleîncarespectatorulareposibilitateasăvizionezeunfilmartisticpecelpuţinunuldinposturi.Zilelesăptămâniivorficititedelatastaturăşiafişatepeecranînformauzuală,adicăLuni,Marţi,Miercuriş.a.m.d.,fărăafolosinumerelelordeordinesauabrevieri.

Indicaţie:Utilizaţimulţimi elementele cărora suntde tipul ordinal dedateenumerare.

DESCOPERĂ!(C++)Estecunoscutfaptulcămulţimilepotfireprezentateprintablouriunidimensionale,componentelecăroraconţinelementelepropriu-zisealeacestormulţimi.Totodată,cufiecaretabloutrebuiesăfieasociatăomărimeîntreagăceconţinenumărulcurentdeelementealemulţimiirespective.Deexemplu,încazulmulţimiiA,formatădincelmult20denumereîntregi,cutabloulint A[20]seasociazăvariabilanA.

Pentruafaceprogramelemaiintuitive,mulţimilepotfireprezentateşicuaju-torultipuluidedatearticol,careareformastruct Multime int E[nmax], nE;.ÎnacesttipdedatetabloulEestedestinatstocăriielementelor,iarva-riabilanE–stocăriinumăruluicurentdeelementealemulţimiirespective.

RescrieţiprogrameleC++dinacestparagrafutilizândpentrureprezentareamulţimilordatedetipularticol.

Page 62: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

62

ÎNVAŢĂSĂÎNVEŢI!(C++)BibliotecastandardalimbajuluiC++conţinecon-tainerulspecialSet,destinatreprezentăriişiprelucrăriidatelordetipmulţime. Recomandămelevilorpasionaţideprogramaresăstudiezeînmodindividualsauînechipămijloaceleoferitedeacestcontainer.Încercaţisătranscrieţipro-grameledinacestparagrafcuajutorulfuncţiilordefiniteînacestcontainer.

1.7. Generalităţi despre fişierePânăînprezent,programeleelaboratedenoiciteaudateledeprelucratdela

tastaturăşiafişaurezultateleprelucrărilorpeecran.Evident,dateleintrodusedelatastaturăsememorauînvariabileledinprogramelerespective.Însă,odatăcuterminareaexecuţieioricăruiprogram,valorilevariabilelordinacestprogramsepierd,faptcarecereintroducerearepetatăadatelordeintrarelaonouălansareînexecuţieaacestuia.Încazulunordatedeintrarevoluminoase,introducerilerepetatededatecerunvolumfoartemaredemuncă.

Totodată,dinexperienţaacumulatădenoiînprocesulprelucrăriitextelor,ima-ginilor,secvenţeloraudioşivideo,cunoaştemdejacădateledeprelucratşi,desigur,rezultateleprelucrărilor,trebuiepăstrateînfişiere.Amintim,fişierulreprezentăocolecţiededateceareunnumeşicaresepăstreazăpeunsuportexterndeinformaţie,deexemplu,pediscurilemagneticesaudiscurileoptice,pememoriiledetipflashş.a.

Pentruaputeaprelucrainformaţiiledinfişiereledepesuporturileexternedeinformaţii,limbajelemodernedeprogramareconţintipuristructuratededatecudenumireagenericădefişier.ÎnlimbajelePASCALşiC++,prinfişierseînţelegeo structurădedate care constădintr-o secvenţăde componente (înregistrări).Numărulcomponentelordinsecvenţănuestefixat,însăsfârşitulsecvenţeiesteindicatdeunsimbolspecial,notatEOF (End of File–sfârşitdefişier).Fişierulcarenuconţineniciocomponentăsenumeştefişier vid.

Înansamblu,utilizareafişierelorareurmătoareleavantaje:–seasigurăpăstrareadelungăduratăatâtadatelordeintrare,câtşiacelor

deieşire,utilizatorulavândposibilitateasărevinăoricândlaeledupăterminareaprocesuluideexecuţieaprogramelorrespective;

–programeledevinuniversale,întrucâtunulşiacelaşiprogrampoatefiutilizatfărămodificăripentruprelucrareadatelordindiversefişiereexterne;

–prelucrărilecomplexepotfiefectuateprindivizareasarcinilorîntrediferiteprogramemaisimple,întrucâtdateledeieşirealeunuiprogrampotfiutilizatecadatedeintrarepentruunaltprogram.

ATENŢIE!Mijloacele destinate prelucrării fișierelor depind în mare măsură de specificul sistemelor de operare și mediile de programare utilizate. În consecinţă, rezultatele furnizate de pro-gramele ce prelucrează fișiere ar putea să difere de la un calculator la altul.Prin urmare, elevii sunt încurajaţi să studieze mijloacele destinate prelucrării fișierelor prin metoda experimentării pe calculator. Se recomandă ca fiecare din elevi să scrie și să lanseze în execuţie mici programe ce operează cu datele de pe suporturile externe de informaţii.

Page 63: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

63

ÎnlimbajulPASCAL,untipdedatefişiersedefineşteprintr-odeclaraţiedeforma:

<Tip fişier>::=[packed] file of <Tip>;

unde<Tip>estetipuldebază,adicătipulcomponentelorfişierelorrespective.Tipuldebazăesteuntiparbitrar,exceptândtipulfişier(nuexistă„fişierdefişiere”).

Exemple:

1) type FisierNumere = file of integer; var FN : FisierNumere; n : integer;

2) type FisierCaractere = file of char; var FC : FisierCaractere; c : char;

3) type Elev = record Nume : string; Prenume : string; NotaMedie : real; end; FisierElevi = file of Elev; var FE : FisierElevi; E : Elev;

Structuradatelorînstudiuesteprezentatăînfigura 1.8.SubliniemfaptulcăelementulEOF,careindicăsfârşitulsecvenţei,nuesteocomponentăafişierului.

Fig. 1.8. Structura datelor de tip FisierNumere, FisierCaractere şi FisierElevi

VariabileleFN,FC,FE ş.a.detipfişiersenumescfişierelogice,fişierePAS-CALsau,purşisimplu,fişiere.Spredeosebiredecelelaltetipuridedate,valorilecărorasepăstreazăînmemoriainternăacalculatorului,datelefişierelorPASCALsepăstreazăpesuporturiledeinformaţiealeechipamentelorperiferice(discurişibenzimagnetice,discurioptice,hârtiaimprimanteisauadispozitivuluidecitit

Page 64: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

64

documenteş.a.).Informaţiapesuporturileînstudiuesteorganizatăînformădefişiereexterneînconformitatecucerinţelesistemuluideoperare.Prinurmare,înaintedeafiutilizată,ovariabilădetipfişiertrebuieasociatăcuunfişierex-tern.Metodeledeasocieresuntspecificeimplementăriilimbajuluişisistemuluideoperarealcalculatorului-gazdă.

Înlimbajul-standardasociereaserealizeazăprinincludereavariabilelordetipfişiercaargumenteînantetuldeprogram.

ÎnTurboPASCALasociereauneivariabiledetipfişier f cuunfişierexternserealizeazăprinapeluldeprocedură

assign(f, s);

undesesteoexpresiedetipstringcarespecificăcaleadeaccesşinumelefişi-eruluiextern.

Exemple:

1) assign(FN, ’A:\REZULTAT\R.DAT’)

–fişierulFNseasociazăcufişierulexternR.DATdindirectorulREZULTATdepedisculA.

2) assign(FC, ’C:\A.CHR’)

–fişierulFCseasociazăcufişierulA.CHRdindirectorul-rădăcinăaldisculuiC.

3) write(’Dati un nume de fisier:’); readln(str); assign(FE, str);

–fişierulFEseasociazăcuunfişierexternnumelecăruiaestecititdelatas-taturăşidepusînvariabiladetipstring str.

După executarea instrucţiuniiassign(f, s), toate operaţiile referitoare lafişierulPASCALfsevorefectuaasuprafişieruluiexterns.Accentuămfaptulcădacăutilizatorulnuindicănumelecompletalfişieruluiextern(directorulîncareseaflăşinumelepropriu-zisalfişierului),elvaficreat/căutatîndirectorulimplicitalmediuluidedezvoltareaprogramelorPASCAL.

Celemaiuzualeoperaţiiasupraunuifişiersuntcitireaşiscriereauneicom-ponente.

Citireauneicomponenteserealizeazăprintr-unapeldeforma

read( f, v),

unde vesteovariabilădeclaratăcutipuldebazăalfişieruluif.Scriereauneicomponenteserealizeazăprintr-unapeldeforma:

write( f, e),

undeeesteoexpresieasociatăcutipuldebazăalfişieruluif.

Page 65: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

65

Exemple:

1) read(FN, n);

2) write(FC, c);

3) read(FE, E).

Dupătipuloperaţiilorpermiseasupracomponentelor,fişiereleseclasificăîn:–fişieredeintrare(estepermisănumaicitirea);–fişieredeieşire(estepermisănumaiscrierea);–fişieredeactualizare(suntpermiseatâtscrierea,câtşicitirea).Dupămoduldeacceslacomponente,fişiereleseclasificăîn:–fişierecuaccessecvenţialsausecvenţiale(accesullacomponenta iestepermis

dupăces-acitit/scriscomponenta i–1);–fişierecuaccesaleatoriusaudirect(oricecomponentăsepoatereferidirect

prinnumăruleideordineiînfişier).Menţionămcăînlimbajul-standardsuntpermisenumaifişieresecvenţialede

intraresauieşire.Tipulfişierului(deintrare,ieşiresaudeactualizare)şimoduldeacces(secvenţial

saudirect)sestabilescprintr-ooperaţiedevalidare,numitădeschidereafişie-rului.Pentruaceasta,înlimbajul-standardseutilizeazăurmătoareleproceduri:

reset( f) –pregăteşteunfişierexistentpentrucitire;rewrite( f) –creeazăunfişiervidşiîlpregăteştepentruscriere.Cândprelucrareacomponentelorsetermină,fişierultrebuieînchis.Laînchi-

dereaunuifişiersistemuldeoperareînscrieelementulEOF,înregistreazăfişierulexternnou-creatîndirectorulrespectivş.a.m.d.

Înlimbajul-standardseconsiderăcăfişierelevorfiînchiseimplicitlatermina-reaexecuţieiprogramuluirespectiv.ÎnTurboPASCALfişierul fseînchideprinapeluldeprocedurăclose( f).

Înconcluzie,prezentămordineaîncaretrebuieapelateproceduriledestinateprelucrăriidatelordetipfişier:

1. AsociereafişieruluiPASCALfcufişierulexterns:assign( f,s).2. Deschiderea fişierului f pentru citire sau scriere:reset( f ), respectiv,

rewrite( f ).3. Citirea/scrierea unei componente afişierului f:read( f,v ), respectiv,

write( f,e ).4. Închidereafişieruluif:close( f ).Dupăînchidereafişierului,variabilafpoatefiasociatăcuunaltfişierextern.Întrucâtvalorilevariabilelordetipfişiersepăstreazăpesuporturileexterne

deinformaţie,înPASCALatribuiriledefişieresuntinterzise.

ÎnlimbajulC++unfişierestealcătuitdinînregistrări(componente),carepotaveadimensiunifixesauvariabile.Numărulînregistrărilordintr-unfişierestelimitatdecapacitateadememorareasuportuluifizicfolosit.

Dupătipuloperaţiilorpermiseasupracomponentelor,fişierelesecla-sificăîn:

Page 66: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

66

– fişieredeintrare(estepermisănumaicitirea);– fişieredeieşire(estepermisănumaiscrierea);– fişieredeactualizare(suntpermiseatâtscrierea,câtşicitirea).Dupămoduldeacceslacomponente,fişiereleseclasificăîn:– fişierecuaccessecvenţial(înregistrărilepotfiprelucratenumaiînordinea

încareelesuntstocateînfişier);– fişierecuaccesdirect(componentelepotfiprelucrateînoriceordine).În

acestcaz,înaintedefiecareoperaţiedecitire/scriereseindicăinformaţianecesarăpentruaselectacomponentaceurmeazăafiprelucrată.

Dupămoduldeinterpretareaconţinuturilor,fişiereleseclasificăîn:– fişieretextcareconţinnumaicaracterestructuratepelinii;– fişierebinareîncareinformaţiaestevăzutăcaocolecţiedeocteţi.Asuprafişierelorpotfiefectuateurmătoareleoperaţii:– deschidereafişierului;– citireadatelordinfişier/scriereadatelorînfişier;– închidereafişierului.ÎnlimbajulC++prelucrareadatelordinfişiereleexterneserealizeazăcuaju-

torulfluxurilor(stream-urilor).Fluxurilesuntobiectecaretransportăşiformateazăşirurideocteţi.Pentru

exemplificare,amintimfluxurilepecarelecunoaştemdeja:cin–fluxuldestinatcitiriidatelordepesuportulexterndeinformaţiealdis-

pozitivuluistandarddeintrare,deobicei,tastatura;cout–fluxuldestinatscrieriidatelorpesuportulexterndeinformaţiealdis-

pozitivuluistandarddeieşire,deobicei,ecranul.Îngeneral,programatorulpoatecreaşifluxuriproprii.Astfeldefluxuritre-

buieasociatecufişiereledepedispozitiveleexterne,deexemplu,cufişiereledepediscurilemagneticesaudinmemoriiledetipflash.Dupăasociere,operaţiadeincludereadatelorîntr-unfluxarecaefectscriereaacestoraînfişierulasociat,iarextragereadatelordintr-unflux–citireaacestoradinfişierulrespectiv.

Amintimcăincludereadatelorîntr-unfluxseefectueazăcuajutoruloperato-rului<<,iarextragereadatelor–cuajutoruloperatorului>>.

Pentruaaveaacceslafuncţiiledestinatelucruluicufluxurişifişiere,înpro-grameleC++trebuieinclusădirectiva:

#include <fstream>

Creareaunuifluxdeintrareşiasocierealuicuunfişierexternseefec-tueazăcuajutorulurmătoareiconstrucţiigramaticale:

ifstream <Nume flux de intrare> (”<Nume fişier extern>”);

Evident,fişierulexterndincarevorficititedateletrebuiesăexistepesuportuldeinformaţiipânălalansareaprogramuluirespectivînexecuţie.Încazcontrar,înprocesulexecutăriiprogramului,înmomentulasocieriifluxuluideintrarecufişierulexternsevadeclanşaoeroare.

Creareaunuifluxdeieşireşiasocierealuicuunfişierexternseefec-tueazăcuajutorulurmătoareiconstrucţiigramaticale:

ofstream <Nume flux de ieşire> (”<Nume fişier extern>”);

Page 67: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

67

Dacăînmomentulasocieriifluxuluideieşirecufişierulexternultimulîncănuexistă,elvaficreatînmodautomat.Dacăfişierulexternexistădeja,toateînregistrăriledinelvorfişterse.

Exemple:

1) ifstream FI(”C:\REZULTAT\R.DAT”);

– creareafluxuluideintrareFIşiasocierealuicufişierulexternR.DATdindirectorulREZULTATdepedisculC:.

2) ofstream FE(”D:\D.CHR”);

– creareafluxuluideieşireFEşiasocierealuicufişierulexternD.CHRdindirectorul-rădăcinăaldisculuiD:.

3) cout << (”Dati un nume de fisier:”); cin << (Str); ofstream FE(Str);

– creareafluxuluideieşireFE.FluxulFEseasociazăcuunfişierexternnumelecăruiaestecititdelatastaturăşidepusînvariabiladetipstring Str.

Accentuăm faptul că înultimul exemplunumelefişierului externnu estecunoscutlamomentulscrieriiprogramului,elfiindcititdelatastaturădoarînmomentulexecuţieiacestuia.Oastfeldeabordarepermiteelaborareadeprogra-mecepotprelucradatelenudoardintr-unanumitfişierextern,cidinoricarealtfişierindicatdeutilizator.

Variabilele(fluxurile)FIşiFEdinexempleledemaisussemainumescfişie-relogicesau,purşisimplu,fişiere.Spredeosebiredecelelaltetipuridedate,valorilecărorasepăstreazăînmemoriainternăacalculatorului,datelefişierelorsepăstreazăpesuporturiledeinformaţiealeechipamentelorperiferice(discurişibenzimagnetice,discurioptice,memoriiflashş.a.).Informaţiapesuporturileînstudiuesteorganizatăînformădefişiereexterneînconformitatecucerinţelesistemuluideoperare.

Accentuămfaptulcădacăutilizatorulnuindicănumelecompletalfişieruluiextern(directorulîncareseaflăşinumelepropriu-zisalfişierului),elvaficreat/căutatîndirectorulimplicitalmediuluidedezvoltareaprogramelorC++.

Închidereafişierelorasociatefluxurilorseefectueazăprinapelurideforma:

<Nume flux>.close();

Exemple:

FI.close(); FE.close();

Dupăceunfişierafostînchis,înelnumaipotfiscriseşidinelnumaipotficititeniciunfeldedate.Însăacesteoperaţiidevinposibiledupăonouădeschidereafişieruluiîncauză.Cualtecuvinte,scriereasaucitireadatelor,dupăcaz,esteposibilădoarînperioadaîncarefişierulrespectivestedeschis.

Evident,unfişierceanteriorafostdeschis,iarapoiafostînchispoatefidinnoudeschiscuoricaredintrefluxuriledinprogramul încursdeelaborare,nu

Page 68: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

68

neapăratdoarcucelcucareafostasociatmaiînainte.Cualtecuvinte,fluxurile(fişierelelogice)potfifolositepentrudeschidereaoricărorfişiereexterne,iarfişi-ereleexternepotfideschisedeoricaredintrefluxuriledinprogram.

Citireadatelordintr-unfişierexternseefectueazăcuajutoruloperatoruluideextragereadatelordinfluxuldeintrareasociatcufişierulrespectiv:

<Nume flux> >> <Variabilă> >> <Variabilă> ;

Exemple:

1) FI >> x;

2) FI >> x >> y;

3) FI >> x >> y >> z;

Scriereadatelorîntr-unfişierexternseefectueazăcuajutoruloperatoruluideincludereadatelorînfluxuldeieşireasociatcufişierulrespectiv:

<Nume flux> << <Expresie> << <Expresie> ;

Exemple:

1) FE << x;

2) FE << ”x=” << x;

3) FE << x ” ” << y << ” ” << z;

În concluzie, prezentămordinea în care trebuie apelate funcţiile destinateprelucrăriidatelordinfişiere:

1) Asociereafluxuluifcufişierulexternsşideschidereaacestuiapentrucitire/scriere:ifstream f(s),respectiv,ofstream f(s).

2) Citirea/scriereauneicomponenteafişieruluiasociatcufluxulf: f >> v,respectiv,f << e.

3) Închidereafişieruluiasociatcufluxulf:f.close().Dupăînchidereafişierului,fluxulfpoatefiasociatcuunaltfişierextern.

Întrebări şi exerciţiiÊ Explicaţitermeniifişier logic, fişier extern.Ë Undesepăstreazădateleunuifişier?Careestedestinaţiaasignării?Ì Cumseclasificăfişiereleînfuncţiedeoperaţiilepermiseşimoduldeacces?Í Ceoperaţiipotfiefectuateasuprafişierelor?Darasupracomponentelorunui

fişier? Pentruceestenecesarăoperaţiadeasociereaunuifişierlogiccuunfişierex-

tern? Pentrucesuntnecesareoperaţiilededeschidereşiînchidereafişierelor?Cum

seefectueazăacesteoperaţii? Indicaţi ordinea în care trebuie efectuate operaţiile deprelucrare adatelor

dintr-unfişierdeintrare?Dardintr-unfişierdeieşire?

Page 69: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

69

EXERSEAZĂ!Reprezentaţipeundesensimilarceluidinfigura 1.8.structuraurmătoarelortipuridedate:

a) type Tabel = array [1..5, 1..10] of real; FisierTabele = file of Tabel;

b) type Multime = set of ’A’..’C’; FisierMultimi = file of Multime;

c) type Punct = record x, y:real end; Segment = record A, B:Punct end; FisierSegmente = file of Segment;

Explicaţidestinaţiaprocedurilorreadşiwrite.Cetiptrebuiesăaibăvariabi- la vîntr-unapeldeformaread(f, v)?Cetiptrebuiesăaibăexpresiaeîntr-unapeldeformawrite(f, e)?

ANALIZEAZĂ!Seconsiderădeclaraţiile:

type Numere = file of integer;var F, FIN, FOUT : Numere; i, j, k : integer; x, y, z : integer;

Explicaţiceoperaţiivaefectuaprogramulînprocesulexecuţieiurmătoarelorsecvenţedeinstrucţiuni:

a) assign(F, ’EXP.DAT’);rewrite(F);i:=10; write(F, i);j:=20; write(F, j);k:=30; write(F, k);close(F);

b) assign(F, ’EXP.DAT’);reset(F);read(F, x);read(F, y);read(F, z);close(F);

c) assign(FOUT, ’EXP.DAT’);rewrite(FOUT);i:=40; j:=50; k:=60;write(FOUT, i); write(FOUT, j); write(FOUT, k);close(FOUT);assign(FIN, ’EXP.DAT’);reset(FIN);read(FIN, x); read(FIN, y); read(FIN, z);close(FIN);

Încondiţiileexerciţiuluiprecedent,cevalorivor luavariabilelex,y,zdacăsecvenţeledeinstrucţiunia),b)şic)vorfiexecutateconsecutiv,unadupăalta?

Page 70: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

70

VariabileleAşiBsuntintroduseprindeclaraţia

var A, B : file of integer;

Esteoarecorectăinstrucţiunea?

A:=B

Argumentaţirăspunsul.

Cumsedeclarăfluxurile?Cumseasociazăunfluxcuunfişierextern? ANALIZEAZĂ!Seconsiderădeclaraţiile:

int i, j, k,int x, y, z;

Explicaţiceoperaţiivaefectuaprogramulînprocesulexecuţieiurmătoarelorsec-venţedeinstrucţiuni:

a) ofstream F(”EXP.DAT”);i:=10; F << i << ” ”;j:=20; F << j << ” ”;k:=30; F << k;F.close();

b) ifstream F(”EXP.DAT”);F >> x;F >> y;F >> z;F.close();

c) ofstream FOUT(”EXP.DAT”);i:=40; j:=50; k:=60;FOUT << i << ” ” << j << ” ” << k;FOUT.close();ifstream FIN(”EXP.DAT”);FIN >> x >> y >> z;FIN.close();

ANALIZEAZĂ!Încondiţiileexerciţiuluiprecedent,cevalorivorluavariabilelex,y,zdacăsecvenţeledeinstrucţiunia),b)şic)vorfiexecutateconsecutiv,unadupăalta?

ANALIZEAZĂ!VariabileleAşiBsuntintroduseprindeclaraţia

fstream A(”text.in”);ofstream B(”test.out”);

Esteoarecorectăinstrucţiunea?

B=A

Argumentaţirăspunsul.

Page 71: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

71

DESCOPERĂ!Înafarădefluxurilede intrare(ifstream)şicelede ieşire(ofstream), limbajulC++ oferăutilizatorului şi fluxuri de tipulfstream. Creareaunuifluxdeacesttipşiasocierealuicuunfişierexternseefectueazăcuajutorulurmătoareiconstrucţiigramaticale:

fstream <Nume flux de intrare/ieşire> (”<Nume fişier extern>”, <Opţiune>);

unde<Opţiune>specificămoduldedeschidereafluxului.UtilizândsistemuldeasistenţăalmediuluidedezvoltareaprogramelorşisursedinInternet,aflaţidestinaţiaopţiunilorcepotfiutilizatelaasociereafluxurilordeacesttipcufişiereleexterne.Completaţitabeluldemaijos:

Opţiune Destinaţiaios::in

ios::out

ios::app

ios::ate

ios::trunc

ios::binary

DESCOPERĂ!ÎnlimbajulC++existămaimultefuncţiidestinateverificăriistăriicurenteaunuiflux.UtilizândsistemuldeasistenţăalmediuluidedezvoltareaprogramelorşisursedinInternet,aflaţicerezultatereturneazăacestefuncţiişicompletaţitabeluldemaijos:

Funcţia Destinaţiabad()

fail()

eof()

good()

clear()

1.8. Fişiere secvenţiale

FiedefiniţiilePASCAL

type FT = file of T;var f : FT; v : T;

princareaufostintrodusetipulfişier FTcutipuldebazăT,variabiladetipfişi- er f şivariabilav detipulT.

Pentru a deschide unfişier secvenţialde ieşire, se apeleazăprocedura rewrite(f).Încontinuareînfişierseînscriucomponentelerespective.Ocompo-nentăseînscrieprintr-unapeldeforma:

Page 72: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

72

write(f, e),

undeeesteoexpresiedetipulT.Oinstrucţiunedeforma

write(f, e1, e2, ..., en)

esteechivalentăcusecvenţadeinstrucţiuni

write(f,e1) ; write(f,e2); ...; write(f,en).

Dupăînscriereaultimeicomponentefişierultrebuieînchis.Exemplu:

Program P90; Crearea unui fisier cu componente de tipul Elev type Elev = record Nume : string; Prenume : string; NotaMedie : real; end; FisierElevi = file of Elev;var FE : FisierElevi; E : Elev; str : string; i, n : integer;begin write(’Dati numele fisierului de creat: ’); readln(str); assign(FE, str); asociaza FE cu numele din str rewrite(FE); deschide FE pentru scriere

write(’Dati numarul de elevi: ’); readln(n);

for i:=1 to n do begin writeln(’Dati datele elevului ’, i); citeste cimpurile variabilei E de la tastatura write(’Numele: ’); readln(E.Nume); write(’Prenumele: ’); readln(E.Prenume); write(’Nota medie: ’); readln(E.NotaMedie); scrie valoarea variabilei E in fisierul FE write(FE, E); end; close(FE); inchide fisierul FE readln;end.

Page 73: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

73

Pentruadeschideunfişiersecvenţialdeintrare,seapeleazăprocedurareset(f).Componentacurentăseciteştedinfişierprintr-unapeldeforma:

read(f, v).

Oinstrucţiunedeforma

read(f, v1,v2,...,vn)

esteechivalentăcusecvenţadeinstrucţiuni

read(f,v1); read (f,v2); ..., read (f,vn).

Sfârşituldefişierestesemnalizatdefuncţiabooleanăeof(f),careiavaloareatruedupăcitireaultimeicomponente.

Exemplu:

Program P90; Citirea unui fisier cu componente de tipul Elev type Elev = record Nume : string; Prenume : string; NotaMedie : real; end; FisierElevi = file of Elev;var FE : FisierElevi; E : Elev; str : string;begin write(’Dati numele fisierului de citit: ’); readln(str);

assign(FE, str); asociaza FE cu numele din str reset(FE); deschide fisierul FE pentru citire while not eof(FE) do begin citeste E din fisierul FE read(FE, E); afiseaza E pe ecran writeln(E.Nume, ’ ’, E.Prenume, ’:’, E.NotaMedie : 5:2); end; close(FE); inchide fisierul FE readln;end.

Subliniemfaptulcăelaborareaprogramelordeprelucrareafişierelorsecvenţia-leesteposibilăfărăacunoaştenumăruldecomponentealefişierelorrespective.Teoretic,număruldecomponentecepotfiscriseîntr-unfişiersecvenţialdeieşire

Page 74: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

74

estenelimitat.Practicînsă,acestnumărestelimitatdecapacitateadememorareasuportuluiexterndeinformaţii.Încazulfişierelordeintrare,programultrebuiesăterminecitireaconsecutivăacomponentelorunuifişiersecvenţialimediatcumseajungelaelementulEOF.

Încazulunuifişiersecvenţial,componenteleacestuiapotfiaccesatenumaiunadupăalta,începândcuprima.Programulceurmeazăilustreazămoduldecreareaunuifişiersecvenţial.

// Crearea unui fisier secvential#include<iostream> //pentru utilizare cout#include<fstream> //pentru utilizare ofstreamusing namespace std;int main() ofstream f(„test.out”); // deschide fişier pentru scriere f << „Primul meu fisier!” << endl; //scrie in fisier cout << „Fisierul a fost creat” << endl; return 0;

Dupăexecuţiaacestuiprogram,pemonitorvaaparemesajulFisierul a fost creat,iarîndosarulproiectuluivomgăsifişierultest.outpecareîlputemciticuoriceeditordetexte,deexemplu,cuaplicaţiaNotepaddinsistemuldeoperareWindows.Deasemenea,fişierulnou-creatpoatefideschisşicuajutorulcomenziiOpendinmeniulFilealmediuluidedezvoltareaprogramelorC++.Evident,fişierulîncauzăvaconţinetextulPrimul meu fisier!.

Dupăcums-aaccentuatînparagrafulprecedent,înlimbajulC++fişierelesunttratatecasecvenţedeocteţi.Prinurmare,grupareadatelordinfişiereînunităţilexicale(numereîntregi,numerereale,şiruridecaractereetc.)cadeînsarcinaprogramatorului.Pentruoînţelegeremaiprofundăaacesteiabordări,încalitatedeexempluvomexaminaurmătoareaproblemăpractică, frecvent întâlnită înviaţacotidiană.

Problemă: Pentrufiecaredintreeleviiuneiclasesuntcunoscuteurmătoareledate:numele,prenumele,notamedielaoanumitădisciplinăşcolară.Secerecadatelerespectivesăfiestocateîntr-unfişiersecvenţialşiafişatepeecran.

Rezolvare:Înprogramulceurmeazădatelerespectivesuntcititedelatastatură,sememoreazăîntabloule[50]şi,totodată,suntstocateînfişierulelevi.in.

// Program P90// Crearea fisierului ce contine date despre elevi#include <iostream>#include <fstream>#include <cstring>using namespace std;

Page 75: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

75

int main() ofstream f(„elevi.in”); struct elev char nume [15]; char prenume[20]; float NotaMedie; ; int i,n; elev e[50]; cout<<"Dati numarul de elevi"; cin>>n; cin.get(); for (i=1;i<=n;i++) cout<<"Introduceti numele elevului "<<i<<" "; cin.get(e[i].nume,15); cin.get(); cout<<"Introduceti prenumele elevului "<<i<<" "; cin.get(e[i].prenume,20); cin.get(); cout<<"Introduceti nota medie "; cin>>e[i].NotaMedie; cin.get(); f<<e[i].nume<<' '<<e[i].prenume<<' '<<e[i].NotaMedie<<endl; f.close(); return 0;

Înacestprogram,extragereanumeluişiprenumeluielevuluicurentdinfluxuldeintrarecinsau,cualtecuvinte,citireavalorilorvariabilelorNumeşiPrenume delatastaturăseefectueazăcuajutorulfuncţieiget.Dacălistadeargumentedinapelulacesteifuncţiinuestevidă,eaextrage(citeşte)dinfluxulsupusprelucrăriiunşirdecaractereşiîldepuneînvariabilarespectivă.Încazulunuiapelfărăargumente,funcţiagetpurşisimplutrece(mutăcursorul)pesteuncaracter,încazulnostru–pestecaracterulspecialEOL.AmintimcăcaractereleEOLaparînfluxulcinlaacţionareatastei<ENTER>.

ValoareacurentăavariabileiNotaMedieseextragedinfluxuldeintrarecin cuajutoruloperatorului>>.Acestoperatorciteşte,începândcupoziţiacurentăacursorului,unnumărrealdinfluxulsupusprelucrăriişiîldepuneînvariabilaNotaMedie.După citire, cursorul vafimutatdupăultima cifrăanumăruluirespectiv,încazulnostru,înfaţasimboluluiEOL.Pentruamutacursorulpesteacestsimbol,seapeleazădinnou,evident,fărăargumente,funcţiaget.

Dupăcitireadelatastatură,dateledespreelevulcurentsuntincluse(scrise)înfluxuldeieşiref,careesteasociatcufişierulexternelevi.in.

Page 76: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

76

ÎntrucâtînlimbajulC++oricefluxreprezintădoarosuccesiunedecaractere,fărăaaveaoanumităstructură,simplaincludereaşirurilordecaractereNume, PrenumeşianumăruluirealNotaMedieîntr-unfluxdeieşirenuvafisuficientă.ProblemaconstăînfaptulcăoriceprogramcarevacitifişierulrespectivnuvaştiundeseterminăşiruldecaractereNumeşiundeîncepeşiruldecaracterePre-nume.Pentruarezolvaaceastăproblemă,înprogramuldemaisus,înfluxuldeieşire,dupăfiecaredinvalorileNume,Prenume,seincludecâteunspaţiu,iardupăfiecaredinvalorileNotaMedie–câteuncaracterspecialEOL(sfârşitdelinie).

Evident,dupăterminareaprocesuluideexecuţieaprogramuluiP90,dateledintabloule[5]vorfipierdute,pecândceledinfişierulnou-createlevi.invorfipăstratepesuportulexterndeinformaţii.Citireadatelordinacestfişierşiafişarealorlaecranpoatefifăcutăcuajutorulprogramuluiceurmează.

// Program P91// Citirea fisierului ce contine date despre elevi#include <iostream>#include <fstream>using namespace std;int main() ifstream f(„elevi.in”); //se deschide fisierul „elevi.in” struct elev char nume [15]; char prenume[20]; float NotaMedie; ;

elev e; f>>e.nume>>e.prenume>>e.NotaMedie; while (!f.eof()) cout<<e.nume<<’ ‚<<e.prenume<<’ ‚<<e.NotaMedie<<endl; f>>e.nume>>e.prenume>>e.NotaMedie; f.close(); //se inchide fisierul return 0;

Dateledinfluxuldeintrarefsuntextrase(citite)pânăcândfuncţiaeofnuvasemnalafaptulcăs-aajunslacaracterulEOF,adicălasfârşitulfişieruluiexternelevi.in.

Subliniemfaptulcănumăruldecomponentealeunuifişiernuestecunoscutdindeclaraţiatipuluirespectiv.Teoretic,într-unfişiersecvenţialdeieşirepotfiînscriseunnumărinfinitdecomponente.Practic,numărulcomponentelorestelimitatdecapacitateadememorareasuportuluiexternde informaţie.CitireaconsecutivăacomponentelorunuifişiersecvenţialdeintrareseîncheiecândseajungelaelementulEOF.

Page 77: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

77

Întrebări şi exerciţiiÊ Câtecomponentepoateaveaunfişier?Înceordinesescriu/citesccomponentele

unuifişiersecvenţial?Ë EXERSEAZĂ!Seconsiderăurmătoareletipuridedate:

PA S C A L C + +type Data = record Ziua : 1..31; Luna : 1..12; Anul : integer; end; Persoana = record NumePrenume : string; DataNasterii : Data; end; FisierPersoane = file of Persoana;

struct Data int Ziua, Luna, Anul; ;struct elev char NumePrenume [40]; Data DataNasterii; ;

Elaboraţiunprogramcareciteştedelatastaturădatelereferitoarelanpersoaneşileînscrieîntr-unfişier.CreaţifişiereleFILE1.PRS,FILE2.PRS,FILE3.PRS caretrebuiesăconţinădatelereferitoare,respectiv,la2,7şi10persoane.

Ì REZOLVĂ!Elaboraţiunprogramcareciteştefişierecreatedeprogramuldinexerciţiulprecedentşiafişeazăpeecran:

a) toatepersoaneledinfişier; b) persoanelenăscuteînanula; c) persoanelenăscutepedataz.l.a; d) persoanaceamaiînvârstă; e) persoanaceamaitânără.Í REZOLVĂ!Elaboraţiunprogramcareafişeazăpeecranmediaaritmeticăa

numerelorînscriseîntr-unfişierdenumerereale. REZOLVĂ!Într-unfişiersuntînscrisecaracterearbitrare.Elaboraţiunprogram

careafişeazăpeecrannumărulvocalelordinfişier. OBSERVĂ!Comentaţiurmătorulprogram:

PA S C A L C + +Program P92; Eroare type FisierNumere = file of integer;var FN : FisierNumere; i : integer; r : real; s : string;begin Writeln(’Daţi numele fisierului: ’); readln(s);

// Program P92// Eroare#include <iostream>#include <fstream>using namespace std;int main() char s[10]; cout<<”Dati numele fisierului : \n”; cin>>s; ifstream FN(s); int i;

Page 78: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

78

assign(FN, s); rewrite(FN); i:=1; write(FN, i); i:=10; write(FN, i); r:=20; write(FN, r); close(FN);end.

float r; i=1; FN<<i; i=10; FN<<i; r=20; FN<<r; FN.close(); return 0;

1.9. Fişiere textE cunoscut faptul cădatelefişierelor logice dinprogramele scrise într-un

limbajdenivelînaltsereprezintăprinsecvenţedecifrebinare.Acestmoddereprezentareadateloresteconvenabilîncazulmemoriilorexterne(discurileşibenzilemagnetice,discurileoptice,memoriiledetipflashş.a.).Încazulechipa-mentelordeintrare/ieşire(tastatura,ecranul,imprimantaetc.),datelerespectivetrebuiereprezentateîntr-oformăînţeleasădeom,şianume,prinsecvenţedecaractere.

Pentruafacilitainteracţiuneadintreomşisistemuldecalcul,înlimbajeledenivelînaltinformaţiadestinatăutilizatoruluisereprezintăînformădefişieretext. Unfişiertextesteformatdintr-osecvenţădecaracteredivizatăînlinii(fig. 1.9). Lungimealiniilorestevariabilă.Sfârşitulfiecăreiliniiesteindicatdeunelementspecial,notatEOL (End Of Line–sfârşitdelinie).Întrucâtlungimealiniilorestevariabilă,poziţiauneiliniiîncadruloricăruifişiertextnupoateficalculatădintimp.Înconsecinţă,accesullacomponentelefişierelortext este secvenţial.Cualtecuvinte,scriereasaucitireauneicomponente,adicăaunuicaractersauauneilinii,esteposibilădoardupăceafostcitităsauscrisăcomponentaprecedentă.

Fig. 1.9. Structura unui fișier text

ÎncadruldisciplineişcolareInformaticasestudiazăurmătoarelemodalităţidescriere/citireafişierelortext:

–laniveldecaractere;–laniveldelexeme;–laniveldelinii.

Page 79: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

79

Încazulprelucrărilorlaniveldecaractere,dateledinfişierulexternsuntcitite/scrisecaracterdupăcaracter,fiecaredintrecaracterefiindpăstratîntr-ovariabilădetipchar.Asamblareaacestorcaractereînnumeresauşirurideca-racterecadeînsarcinaprogramatorului.

Deasemenea,totprogramatorultrebuiesăaibăgrijădeprelucrareaelemen-telorspecialeEOL(sfârşitdelinie).

Încazulprelucrărilorlaniveldelexeme,scriereaşicitireadatelorseefec-tueazăcuajutorulunorfuncţiişiproceduricare„asamblează”dateledinfişierulexternînnumereşişirurişilepăstreazăînvariabileîntregi,reale,caracterialesauşiruridecaractere,dupăcaz.Evident,lexemeleîncauzătrebuiesăfiedeli-mitateprincaracterealbe(spaţiu,tabulatorsausfârşitdelinie).

Deexemplu,presupunemcăfişieruldeintrareconţineurmătoareledate:

82 3.14 ACCEPTAT<EOL><EOF>

Intuitiv,esteclarcăfişieruldeintrareconţinenumărulîntreg82,numărulreal3,14şişiruldecaractereACCEPTAT.

Prelucrareaacestuifişierlaniveldecaractereconstăîncitireaconsecutivăafiecăruiadintrecaractereleceseconţinînel:

8 2 3 . 1 4 A C C E P T A T

şidepunerealorînvariabileledetipchardinprogram.Încontinuare,programa-torulvatrebuisăscriesuplimentarosecvenţădeinstrucţiunicaretransformăcaracterelecititeînvaloriledecareelarenevoie.

Prelucrareaaceluiaşifişierlaniveldelexemeconstăîncitireacaracterelordinfişieruldeintrareşigrupareaacestoraîntreilexeme:

82 3.14 ACCEPTAT

Ulterior,lexemeleastfelobţinutesuntînmodautomattransformateînreprezen-tareainternăşidepuseînvariabileledetipulrespectiv:integer/int,real/float şişir de caractere.

Încazulprelucrărilorlaniveldelinii,dateledinfişierulexternsuntcitite/scriseliniedupălinie,fiecaredinliniifiindpăstrateîntr-ovariabilădetipşir de caractere.

Îngeneral,prelucrărilelaniveldecaracteresuntutileînprogramareaalgo-ritmilordeprocesareatextelor,deexemplu,secvenţiereaîncuvinteşipropoziţii,împărţireacuvintelorînsilabeetc.,iarceledeprelucrarelaniveldelexeme–încazulprogramării algoritmilordeprocesareadatelorpreponderentnumerice.Prelucrărilelaniveldeliniioferăutilizatoruluiposibilitateasămanipulezeatâtcucaractereseparate,câtșiculexeme,utilizândînacestscopfuncţiilepredefinite,destinateprocesăriişirurilordecaractere.

ÎnlimbajulPASCAL,unfişiertextsedefineşteprintr-odeclaraţiedeforma:

var f : text;

încaretipulpredefinittextfiindcunoscutoricăruiprogram.Subliniemfaptulcătipuriletextşifile of charsuntdistincte,întrucâtfişierulfile of char

Page 80: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

80

nuincludeelementeEOL.Pentruaneconvingedeacestlucruestesuficientsăcomparămstructurilefişierelorrespective,prezentateînfigurile 1.8 şi1.9.

Fişiereledetiptextpotfiprelucratecuajutorulprocedurilorcunoscute,apli-cabileoricăruitipdefişiere:assign,reset,rewrite,read,write,close. În completare, limbajulPASCALincludeprocedurispeciale,destinateprelucrăriielementelorEOL:

writeln(f)–înscrieînfişierelementulEOL(sfârşitdelinie);readln(f)–trecelaliniaurmătoare.Sfârşituldelinieestesemnalatdefuncţiabooleanăeoln(f ),careiavaloarea

truedupăcitireaultimuluicaracterdinlinie.Oinstrucţiunedeforma

writeln(f,e1,e2,...,en)

esteechivalentăcusecvenţadeinstrucţiuni

write(f,e1,e2,...,en); writeln(f).

Oinstrucţiunedeforma

readln(f,v1,v2,...,vn)

esteechivalentăcusecvenţadeinstrucţiuni

read(f,v1,v2,...,vn); readln(f).

Pentruintroducereaşiextragereadatelor,deregulă,seutilizeazăfişiereletext predefiniteInputşiOutput,cunoscuteoricăruiprogramPASCAL.FişierulInput estedestinatnumaipentruoperaţiidecitireşiesteasociatcufişieruldeintrarealsistemuluideoperare(deregulă,tastatura).FişierulOutputestedestinatnumaipentruoperaţiidescriereşiesteasociatcufişierulstandarddeieşirealsistemuluideoperare(deregulă,ecranul).Acestefişieresuntdeschiseşiînchiseautomatlaînceputulşi,respectiv,lasfârşitulexecuţieiprogramului.Dacănumelefişieruluinuestespecificatînlistaparametrilorunuiapeldesubalgoritm,sepresupunecăfişierultextimplicitesteInputsauOutput,înfuncţiedenaturasubalgoritmului.De exemplu,read(c) este echivalent curead(Input,c), iarwrite(c) este echivalentcuwrite(Output,c).

Pentruexemplificare,prezentămîncontinuareunprogramcarecreeazăfişierulexternLISTA.TXTceconţinenumeleşiprenumeleanelevi,numărulacestoranefiindcunoscutlamomentulscrieriiprogramului.

Program P93; Crearea fisierului text LISTA.TXT prin prelucrari la nivel de linii var F : text; fisierul logic n : integer; numarul de elevi NP : string; numele si prenumele elevului i : integer; contor ciclu

Page 81: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

81

begin asocierea fisierului logic F cu fisierul extern assign(F, 'LISTA.TXT'); Deschiderea fisierului F pentru scriere rewrite(F); Citirea numarului de elevi de la tastatura write('Dati numarul de elevi n='); readln(n); Scrierea numarului de elevi in fisierul F writeln(F, n); ciclu pe numarul de elevi for i:=1 to n do begin Citirea numelui si prenumelui de la tastatura writeln('Dati numele si prenumele elevului ', i, ':'); readln(NP); Scrierea numelui si prenumelui in fisierul F writeln(F, NP); end; Inchiderea fisierului F close(F); writeln('Ati introdus ', n, ' elevi'); readln;end.

În continuarea exemplului precedent, prezentămmai josunprogram careciteşteconţinutulfişieruluiexternLISTA.TXTşiîlafişeazăpeecran.

Program P94; Citirea fisierului text LISTA.TXT prin prelucrari la nivel de linii var F : text; fisierul logic F n : integer; numarul de elevi NP : string; numele si prenumele i : integer; contor ciclu begin Asocierea fisierului logic F cu fisierul extern assign(F, 'LISTA.TXT'); Deschiderea fisierului F pentru citire reset(F); Citirea numarului de elevi n din fisierul F readln(F, n); Afisarea numarului de elevi n la ecran writeln('Numarul de elevi n=', n); Ciclu pe numarul de elevi for i:=1 to n do

Page 82: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

82

begin readln(F, NP); citirea NP din fisierul F writeln(NP); afisarea NP la ecran end; close(F); inchiderea fisierului F readln;end.

PrelucrărilaniveldecaractereFişiereletextpotficititeşiscrisecaractercucaracter.Înacestscop,variabi-

la vdinapelurileread(f,v)şiwrite(f,v) trebuiesăfiedetipchar.Evident,prelucrareacaracterelorspecialeEOLşiEOFcadeînsarcinaprogramatorului.

Pentruexemplificare,prezentămprogramulP95,carecreeazăpedisculcurentfişierultextFILE.TXT.şidepuneînelliniilecititedelatastatură.Lamomentulscrieriiprogramului, lungimeafiecăreiadintre liniişinumărulacestoranusecunoaşte.Laintroducereadatelordelatastatură,sfârşitullinieicurenteseindicăprinacţionareatastei<ENTER>,iarsfârşitulfişieruluiprinacţionareatastelor<CTRL+Z>,<ENTER>.

Program P95; Crearea fisierului text FILE.TXT prin prelucrari la nivel de caractere var F : text; fisierul logic F C : char;begin assign(F, 'FILE.TXT'); asociaza F cu FILE.TXT rewrite(F); deschide F pentru scriere while not eof do verifica daca-i <CTRL+Z> begin while not eoln do verifica daca-i <ENTER> begin read(C); citeste C de la tastatura write(F, C); scrie C in fisierul F end; writeln(F); scrie EOL in fiserul F readln; trece la linia urmatoare end; close(F); scrie EOF in fisierul F end.

AccentuămfaptulcăînprogramuldemaisuscomponentelefişieruluideintrareInput(tastatura)secitesclaniveldecaractere,iarsfârşitulfiecăreiadintrelinii(elementul specialEOL) sedepistează cuajutorul funcţieieoln. Într-unmodsimilar,sfârşitulfişieruluideintrare(elementulspecialEOF)sedepisteazăcuajutorulfuncţieieof.

ProgramulceurmeazăafişeazăconţinutulfişieruluiexternFILE.TXTpeecran.

Page 83: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

83

Program P96; Citirea fisierului text FILE.TXT prin prelucrari la nivel de caractere var F : text; fisierul logic F C : char;begin assign(F, 'FILE.TXT'); asociaza F cu FILE.TXT reset(F); deschide F pentru citire while not eof(F) do testeaza daca-i EOF in F begin while not eoln(F) do testeaza daca-i EOL in F begin; read(F, C); citeste C din F write(C); afiseaza C la ecran end; readln(F); in F trece la linia urmatoare writeln; pe ecran trece la o linie noua end; close(F); inchide fisierul F readln;end.

Înprogramuldemaisus,componentelefişieruluideieşireOutput(ecranul)sescriulaniveldecaractere.SfârşitulEOLalfiecăreiadintreliniiseînscrieprinapelulproceduriireadln,iarsfârşituldefişierEOF–prinapelulproceduriiclose.

PrelucrărilaniveldelexemeExplorareacaractercucaracterafişierelortextestegreoaieînsituaţiaîncaresec-

venţeledecaracteredintexttrebuieinterpretatecaformânddatedetipinteger, real,boolean,şir de caractere.Conversiaîntreformaexternăşireprezentareainternăa acestor tipuri ar cădea în sarcinaprogramatorului.Pentruauşuramuncaacestuia,proceduriledecitire/înscriereaufostextinseînfelulurmător.

Încazulfişierelor text,variabilavdintr-unapelread(f,v)poatefidetipulinteger,real,charsauşir de caractere.Lacitire,secvenţadecaracterecarereprezintăvariabilavvafitransformatăînreprezentareainternă.

Expresiaedintr-unapelwrite(f,e)poatefiurmatădespecificatorideformat.Valoareaexpresieipoatefidetipulinteger,real,boolean,charsauşir de caractere.La scriere,valoarea respectivăeste transformatădin reprezentareainternăîntr-osecvenţădecaractere.

Secvenţeledecaracterecitite/scrisedeprocedurileread/writeseconformeazăsintaxeiconstantelordetipulvariabilei/expresieiv/e.

Pentruexemplificare,prezentămprogramulP97care:1)citeştedelatastaturăoliniececonţinenumererealea,b,c–lungimile

laturilorunuitriunghi;2)scrienumerelecititeînliniacurentăafişieruluitext IN.TXT;3)repetăpaşii1-2pânăcândutilizatorulnuvatasta<CTRL+Z > <ENTER>;4)citeştedinliniacurentăafişieruluitext IN.TXTnumerelerealea,b,c;5)calculeazăsemiperimetrulpşiariasaletriunghiuluirespectiv;

Page 84: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

84

6)scrienumerelerealea,b,c,p,sînfişierultext OUT.TXT;7)repetăpaşii4-6pânăcândvaficitităultimaliniedinfişierultext OUT.TXT;8)afişeazăconţinutulfişieruluiOUT.TXTpeecran.

Program P97; Prelucrarea triunghiurilor Scrierea si citirea la nivel de lexeme var F, G : text; fisiere logice a, b, c, p, s : real; Str : string;begin

Citirea datelor de la tastatura si stocarea lor in F assign(F, 'IN.TXT'); asociaza F cu IN.TXT rewrite(F); deschide F pentru scriere writeln('Dati numerele reale a, b, c:'); while not eof do begin readln(a, b, c); citeste a, b, c de la tastatura writeln(F, a:8:2, b:8:2, c:8:2); scrie a, b, c in F end; close(F); inchide F

Citirea datelor din F, efectuarea calculelor si stocarea rezultatelor in G reset(F); deschide F pentru citire assign(G, 'OUT.TXT'); asociaza G cu OUT.TXT rewrite(G); deschide G pentru scriere while not eof(F) do begin readln(F, a, b, c); citeste a, b, c din F write(G, a:8:2, b:8:2, c:8:2); scrie a, b, c in G p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); writeln(G, p:15:2, s:15:4); scrie p, s în G end; close(F); inchide F close(G); inchide G Citirea rezultatelor din G si afisarea lor la ecran reset(G); deschide G pentru citire while not eof(G) do begin readln(G, Str); citeste Str din G writeln(Str); afisează Str pe ecran end; close(G); inchide G readln;end.

Page 85: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

85

Pentrudateledeintrare1 1 1 <ENTER>3 4 6 <ENTER><CTRL+Z ><ENTER>

programulP97afişeazăpeecran:1.00 1.00 1.00 1.50 0.43303.00 4.00 6.00 6.50 5.3327

Accentuămfaptulcăprogramuldemaisusestedestinatpentruprelucrareadatelorreferitoarelaunnumărnecunoscutdetriunghiuri,faptce-ioferăoflexi-bilitatemaimareînutilizare.Aceastăflexibilitatesedatoreazăutilizăriifuncţieieof.Cuajutorulacesteifuncţiisetesteazădacăînprocesulcitiriis-aajunslasfârşitulfiecăruiadintrefişiereleInput(tastatura)şiIN.TXT.

ÎnlimbajulC++,unfişiertextconţinenumaicaractereASCIIorganizatepeliniidelungimidiferite.ElementulEOLsereprezintăprincaracterulescape “\n”(new line,linienouă).SfârşitulfişieruluiestespecificatprinelementulEOF.Întrucâtlungimealiniilorestevariabilă,poziţiauneiliniiîncadrulfişieruluinupoatefical-culatădintimp.Înconsecinţă,accesullacomponentelefişierelortextestesecvenţial.

ÎntrucâtlimbajulC++nuimpuneniciostructurăasupraconţinutuluifişierelor,secvenţierealorînlexeme(numere,şiruridecaractere)şiliniicadeînsarcinaprogramatorului.Înacestscoppotfifolositetoatefuncţiiledestinateprelucrăriifişierelorsecvenţialestudiateînparagraful1.8.

Pentruexemplificare,prezentămîncontinuareprogramulP93,carecreeazăpedisculcurentunfişiertext,numelecăruiaestedatdelatastatură.Liniilefişi-eruluisuntdelimitateprinacţionareatastei<ENTER>,iarsfârşitulfişierului– prinacţionareatastelor<CTRL+Z > <ENTER>.

// Program P93// Crearea unui fişier text#include <iostream>#include <fstream>using namespace std;int main() char nume_fisier[80]; char c; cout << "\n\tProgramul creeaza un fisier text\n"; cout << "\n\tIntroduceti numele fisierului: "; cin.getline(nume_fisier,80); ofstream f(nume_fisier); cout << "\n\tIntroduceti caractere.Sfarsit Enter CTRL+Z\n"; while(cin.get(c)) f << c; f.close(); return 0;

Page 86: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

86

PrelucrărilaniveldecaractereReamintimcălacitireacuoperatorul>>suntignoratecaracterelealbe(spaţiul,

tabulatorul,sfârşituldelinie).Prinurmare,dacăintenţionămsăcitimunuldupăaltultoatecaractereledinfişier,inclusivcelealbe,vomutilizafuncţiaget().

// Program P94// Citirea dintr-un fisier text#include <iostream>#include <fstream>using namespace std;int main() char nume_fisier[80]; char c ; cout << "\n\tProgramul citeste un fisier text\n"; cout << "\n\tIntroduceti numele fisierului: "; cin.getline(nume_fisier,80); ifstream f(nume_fisier); f.get(c); while(!f.eof()) f.get(c); cout<<c; f.close();return 0;

Pentruaverificadacăpoziţiacurentădecitire/scriereaajunslasfârşitulunuifişier,sefoloseştefuncţiaeof(),careîntoarcevaloarea0dacăpoziţiacurentănuestelasfârşitulfişieruluişiovaloarediferităde0dacăpoziţiaactualăindicăsfârşituldefişier.

Programuldemaijoscopiazăcaractercucaracterdateledinfişierultext IN.TXT înfişierultext OUT.TXT.

// Program P95// Copierea caracter cu caracter a fisierelor text#include <iostream>#include <fstream>using namespace std;int main()char c ;ifstream f("in.txt"); // fluxul f se asociaza cu in.txtofstream g("out.txt"); // fluxul g se asociaza cu out.txtf.get(c); // din f se citeste primul caracterwhile(!f.eof()) // ciclu pe caracterele din f

Page 87: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

87

g.put(c); // caracterul citit se scrie in g f.get(c); // din f se citeste caracterul urmator f.close(); // inchiderea fisierului in.txtg.close(); // inchiderea fisierului out.txtreturn 0;

PrelucrărilaniveldeliniiÎncazulîncareşiruriledecaracteredinfişieruldeintrare,inclusivcaracterele

albe,trebuiecititelinieculinie,seutilizeazăfuncţiagetline.Programuldemaijoscopiazălinieculiniedateledinfişierultext IN.TXTîn

fişierultext OUT.TXT.

// Program P96// Copierea linie cu linie a fisierelor text#include <iostream>#include <fstream>using namespace std;int main()char linie[80];ifstream f("in.txt"); // fluxul f se asociaza cu in.txtofstream g("out.txt"); // fluxul g se asociaza cu out.txtwhile(!f.eof()) // ciclu pe liniile din f f.getline(linie,80); // din f se citeste linia curenta g<<linie<<endl; // linia citita este scrisa in g f.close(); // inchiderea fisierului in.txtg.close(); // inchiderea fisierului out.txt

return 0;

PrelucrărilaniveldelexemeProgramulceurmeazăutilizeazăfuncţiiledestinateprelucrăriifişierelorC++

pentrusecvenţiereaacestoraînlexeme.Maiexact,acestprogram:1)citeştedelatastaturăoliniececonţinenumererealea,b,c–lungimile

laturilorunuitriunghi;2)scrienumerelecititeînliniacurentăafişieruluitext in.txt;3)repetăpaşii1-2pânăcândutilizatorulnuvatasta<CTRL+Z > <ENTER>;4)citeştedinliniacurentăafişieruluitext in.txtnumerelerealea,b,c;5)calculeazăsemiperimetrulpşiariasaletriunghiuluirespectiv;6)scrienumerelerealea,b,c,p,sînfişierultext out.txt;

Page 88: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

88

7)repetăpaşii4-6pânăcândnuvaficitităultimaliniedinfişierultext out.txt;8)afişeazăconţinutulfişieruluiout.txtpeecran.

//Program P97//Prelucrarea triunghiurilor//Scrierea si citirea la nivel de lexeme#include <iostream>#include <iomanip>#include <cmath>#include <fstream>using namespace std;int main() float a,b,c; float p,s; int i,n; char linie[80];

//Citirea datelor de la tastatura si stocarea lor in f ofstream f("in.txt"); //deschide f pentru scriere cout<<"Dati numerele reale a,b,c \n"; cin>>a>>b>>c; // citeste a, b, c de la tastatura while (!cin.eof()) //repeta pana la tastarea <CTRL+Z >

<ENTER> f<<a<<" "<<b<<" "<<c<<endl; // scrie a, b, c in f cin>>a>>b>>c; // citeste a, b, c de la tastatura f.close(); // inchide f

//Citirea datelor din f, efectuarea calculelor si // stocarea rezultatelor in g ifstream f("in.txt"); // deschide f pentru citire ofstream g("out.txt"); // deschide g pentru scriere f>>a>>b>>c; // citeste a,b,c din f while(!f.eof()) g<<a<<" "<<b<<" "<<c<<" "; // scrie a,b,c in g p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); g<<p<<" "<<s<<"\n"; // scrie p si s in g f>>a>>b>>c; // citeste a,b,c din f f.close(); // inchide f g.close(); // inchide g

Page 89: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

89

// Citirea rezultatelor din g si afisarea lor la ecranifstream g("out.txt"); // deschide g pentru citirewhile(!g.eof()) g.getline(linie,80); // citeste din g linia curenta cout<<linie<<endl; // afiseaza linia citita la ecran g.close(); // inchide greturn 0;

Pentrudateledeintrare

1 1 1 <ENTER>3 4 6 <ENTER><CTRL+Z ><ENTER>

programulP97afişeazăpeecran:

1 1 1 1.5 0.4330133 4 6 6.5 5.332684

Accentuămfaptulcăprogramuldemaisusestedestinatpentruprelucrareadatelorreferitoarelaunnumărnecunoscutdetriunghiuri,faptce-ioferăoflexi-bilitatemaimareînutilizare.Aceastăflexibilitatesedatoreazăutilizăriifuncţieieof.Cuajutorulacesteifuncţiisetesteazădacăînprocesulcitiriis-aajunslasfârşitulfiecăruiadintrefişiereleInput(tastatura)şiIN.TXT.

Întrebări şi exerciţiiÊ EXERSEAZĂ!Desenaţioschiţăcareredăstructuraunuifişiertext.Explicaţi

destinaţiafiecăruielementgraficalschiţeirespective.Ë ANALIZEAZĂ!Seconsiderăurmătorulfişiertextdeintrare:

Date 9.8 12 23.67 STOP<EOL><EOF>

Explicaţicumvorficititedateledinacestfişierşicetransformărivoravealocîncazulurmătoarelorprelucrări:(a)laniveldecaractere;(b)laniveldelexeme.

Ì ANALIZEAZĂ!Seconsiderăurmătorulfişiertextdeintrare:

5.1 9.3 Admis<EOL>6.4 4.3 Respins<EOL><EOF>

Explicaţicumvorficititedateledinacestfişierşicetransformărivoravealocîncazulurmătoarelorprelucrări:(a)laniveldecaractere;(b)laniveldelexeme.

Í CREEAZĂ!Daţiexempledefişieredeintrarececonţindateleiniţialealeuneiproblemedinfizicăşialealteiadinbiologieşidescrieţiprocesuldecitireada-telordinelelaniveldecaractereşilaniveldelexeme.

Page 90: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

90

ANALIZEAZĂ!Careestediferenţadintreprelucrareaunuifişiertextlaniveldecaractereşiprelucrareaaceluiaşifişier lanivelde lexeme?Daţiexempledealgoritmicenecesităimplementareaprinprelucrărilaniveldecaractereşiprelucrărilaniveldelexeme.

ÎNVAŢĂSĂÎNVEŢI!Porninddelaceledouămodalităţidecitireafişierelordeintrarelaniveldecaractereşilaniveldelexeme,explicaţimodalităţileres- pectiveîncazulfişierelortextdeieşire.Daţiexemple.

EXPLICĂ!ExplicaţisemnificaţiaelementelorEOLşiEOF.Cumsuntprelucrateacesteelemente?

EXPLICĂ!Explicaţicumseefectueazăscriereaşicitireadatelorîncazulfişie-relortext.Careproceduri/funcţiisuntutilizateînacestscop?

OBSERVĂ!Lansaţiînexecuţieurmătorulprogram:PA S C A L C + +

Program P98; Asocierea fişierului FN cu consola type FisierNumere = file of in-teger;var FN : FisierNumere; i : integer;begin assign(FN, ’CON’); rewrite(FN); i:=1; write(FN, i); i:=2; write(FN, i); i:=3; write(FN, i); close(FN); readln;end.

// Program P98// Asocierea fişierului FN// cu consola#include <iostream>#include <fstream>using namespace std;int main() int i; ofstream FN („CON”); i=1; FN<<i; i=2; FN<<i; i=3; FN<<i; FN.close(); return 0;

Explicaţirezultateleafişatepeecran. ANALIZEAZĂ!Seconsiderăfişierullogicf.Caredinurmătoareleinstrucţiuni

destinatedepistăriisfârşituluidefişiersuntcorecte?

PA S C A La) if eoln(f) then

write (’Sfarsit de fisier’)else write (’Nu-i sfarsit de fisier’);

b) if eof(f) then write (’Sfarsit de fisier’)else write (’Nu-i sfarsit de fisier’);

c) if eoln(f)=false then write (’Sfarsit de fisier’)else write (’Nu-i sfarsit de fisier’);

d) if not eof(f) then write (’Sfarsit de fisier’)else write (’Nu-i sfarsit de fisier’);

Page 91: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

91

C + +a) if (eof(f))

cout << ”Sfarsit de fisier”;else cout << ”Nu-i sfarsit de fisier”;

b) if (f.eof()) cout << ”Sfarsit de fisier”;else cout << ”Nu-i sfarsit de fisier”;

c) if (!eof(f)) cout << ”Sfarsit de fisier”;else cout << ”Nu-i sfarsit de fisier”;

d) if (!f.eof()) cout << ”Nu-i sfarsit de fisier”;else cout << ”Sfarsit de fisier”;

APLICĂ!Elaboraţiunprogramcareafişeazăpeecranconţinutuloricăruifişiertext.

REZOLVĂ!Elaboraţiunprogramcareafişeazăpeecrannumăruldevocaledintr-unfişiertext.

PROGRAMEAZĂ!Dateledeintrarealeunuiprogramsuntînmagazinateîntr-unfişiertext.Fiecarelinieafişieruluiconţinedouănumereîntregişitreinumererealeseparateprinspaţii.Elaboraţiunprogramcareafişeazăsumanumerelorîntregişisumanumerelorrealedinfiecareliniepeecran.

PROGRAMEAZĂ!Dateledeintrarealeunuiprogramsuntînmagazinateîntr-unfişiertext.FiecarelinieafişieruluiconţinetreinumererealeseparateprinspaţiuşiunuldincuvinteleADMIS,RESPINS.Elaboraţiunprogramcare:

a) afişeazăconţinutulfişieruluiînstudiupeecran; b) creeazăocopiederezervăafişierului; c) creeazăunfişiertextliniilecăruiaconţinmediacelortreinumererealedin

liniilerespectivealefişieruluideintrare; d) afişeazăpeecranliniilefişieruluideintrare,precedatedenumereledeordine

1,2,3ş.a.m.d. PROGRAMEAZĂ!Fiecare linie aunuifişier text conţineurmătoarele date,separateprinspaţii:

–număruldeordine(numărîntreg); –numele(unşirdecaracterecenuconţinespaţii); –prenumele(unşirdecaracterecenuconţinespaţii); –notaladisciplina1(numărreal); –notaladisciplina2(numărreal); –notaladisciplina3(numărreal). Elaboraţiunprogramcare:

a) creeazăocopiederezervăafişieruluiînstudiu;b) afişeazăconţinutulfişieruluipeecran;c) creeazăunfişiertextliniilecăruiaconţinurmătoareledateseparateprinspaţii:

–număruldeordine(numărîntreg); –numele(unşirdecaracterecenuconţinespaţii); –prenumele(unşirdecaracterecenuconţinespaţii); –notamedie(numărreal);Fişierulcreatînpunctulctrebuieafişatpeecran.

Page 92: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

92

INFORMAŢIA

2.1. Cantitatea de informaţieSensuluzualal cuvântului informaţie „ştire, comunicareverbală, scrisăsau

transmisăprinaltemetodedespreanumite fapte,evenimente,activităţietc.” seconcretizeazăîntr-uncompartimentspecialalmatematicii,denumitteoriainfor-maţiei.Conformacesteiteorii,sursadeinformaţiesedescrieprintr-ovariabilăScarepoateluavaloridintr-omulţimefinitădeelementedistinctes1,s2,...,sn. Se considerăcăvalorilecurentealevariabileiSnusuntcunoscutedintimp.Ecunoscutănumaimulţimeas1,s2,...,sn,denumitămulţimeamesajelorposibile.

Deexemplu,semaforuldecirculaţiepoatefireprezentatcaosursădeinfor-maţie,mulţimeademesajeposibilealecăruiaesteverde, galben, roşu.Aparatuldetelegrafiatreprezintăosursădeinformaţie,mulţimeademesajeposibilealecăruiaincludelitereleA, B, C, ..., Z, cifrele0, 1, 2, ..., 9şisemneledepunctuaţie.Mesajeleposibilealetastaturiisunt:„Este acţionată tasta A”, „Este acţionată tas-ta B”, ..., „Este acţionată tasta F1”, „Este acţionată tasta F2”, ..., „Sunt acţionate concomitent tastele CTRL şi BREAK”etc.

Mesajelesetransmitdelasursăcătredestinatarprintr-unmediufizic,numitcanalde transmisie (fig. 2.1).De exemplu,mesajele telegrafice se transmitprinfir,mesajeleradioprineter,mesajeletastaturiiprintr-unsetdeconductori.Perturbaţiile(zgomotele)dinmediulfizicamintitpotalteramesajeletransmise.

Fig. 2.1. Schema generală a unui sistem de transmisie a informaţiei

Evident,valoareacurentăavariabileiSdevinecunoscutădestinataruluinumaidupărecepţionareamesajuluirespectiv.

CantitateadeinformaţieI ceesteconţinutăîntr-unmesajemisdesursăsedeterminădinrelaţia:

Capitolul 2

Page 93: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

93

I = loga n,undenestenumăruldemesajeposibilealesursei.Valoareaconcretăaconstan- tei asestabileşteprinalegereaunităţiidemăsurăacantităţiideinformaţie. Deobicei,caunitatedemăsurăseutilizeazăbitul.

Un bit este cantitatea de informaţie din mesajul unei surse cu numai două mesaje posibile.Prinurmare,caşiîncazulaltormărimi(lungimea,masa,temperaturaetc.),

cantitateadeinformaţiesemăsoarăprincomparareacuetalonul.Întrucâtpentrusursa-etalonn=2,dinecuaţia:

loga 2 =1(bit)obţinema=2.Înconsecinţă,cantitateadeinformaţieI,măsuratăînbiţi,sede-terminădinrelaţia:

I = log2 n (bit).În tabelul 2.1 suntprezentatevalorilefrecventutilizatealefuncţieilog2 n.

Tabelul 2.1Valorilefuncţieilog2n

n log2 n n log2 n1 0,000 21 4,3922 1,000 22 4,4593 1,585 23 4,5244 2,000 24 4,5855 2,322 25 4,6446 2,585 26 4,7007 2,807 27 4,7558 3,000 28 4,8079 3,170 29 4,85810 3,322 30 4,90711 3,459 31 4,95412 3,585 32 5,00013 3,700 33 5,04414 3,807 34 5,08715 3,907 35 5,12916 4,000 36 5,17017 4,087 37 5,20918 4,170 38 5,24819 4,248 39 5,28520 4,322 40 5,322

Page 94: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

94

Săanalizămcâtevaexemple.Cantitateadeinformaţieaunuimesajdesemaforestede

I = log2 3 ≈1,585 biţi.CantitateadeinformaţieauneilitereaalfabetuluilatinA, B, C, ..., Z,n=

=26,estedeI = log2 26 ≈ 4,700 biţi.

CantitateadeinformaţieauneilitereaalfabetuluigrecA, B, Γ, ∆ , ..., Ω, n=24,estede

I = log2 24 ≈ 4,585 biţi.DacăsecunoaştecantitateadeinformaţieI ceesteconţinutăîntr-unmesaj,

cantitateatotalădeinformaţieemisădesursăsedeterminădinrelaţia:V = N I,

undeNestenumăruldemesajetransmise.Cantităţilemarideinformaţieseexprimăprinmultipliiunuibit:

1 Kilobit (Kbit) =210 =1024biţi (≈103 biţi);

1 Megabit (Mbit)=220 =1048576biţi (≈106 biţi);

1 Gigabit (Gbit) =230 ≈109 biţi;

1 Terabit (Tbit)=240 ≈1012 biţi;

1 Petabit (Pbit)=250 ≈1015 biţi.

Întrebări şi exerciţiiÊ Cumsedefineşteosursădeinformaţie?Daţicâtevaexemple.Ë Careestedestinaţiacanaluluidetransmisie?Ì Cumsedeterminăcantitateadeinformaţiedintr-unmesaj?DardinNmesaje?Í Careesteunitateademăsurăainformaţieişicesemnificaţieareea? Determinaţicantitateadeinformaţieîntr-unmesajalsurselorcuurmătoarele

mesajeposibile:a)literelemarişimicialealfabetuluilatin;b)literelemarişimicialealfabetuluigrec;c)literelemarişimicialealfabetuluiromân;d)cifrelezecimale0,1,2,...,9;e)cifrele0,1,2,...,9,semnele+,–,×,/şiparantezele();f) indicaţiilenumericedeformahh:mm (hh–ora,mm–minutele)aleunuiceaselectronic;

g) indicaţiilenumericedeformahh:mm:ss (ss–secundele)aleunuiceaselectronic;h) indicaţiilenumericedeformazz.ll.aa (zz–ziua,ll–luna,aa–anul)aleunuicalendarelectronic.

Pentrufiecaredintresurseleindicateînexerciţiul5determinaţicantitateadeinformaţieceesteconţinutăîn1000demesajeemisedesursă.

ElaboraţiunprogramcarecalculeazăcantitateadeinformaţiedinNmesajeemisedeosursăcunmesajeposibile.

Page 95: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

95

2.2. Codificarea şi decodificarea informaţieiSenumeştesemnunelementaluneimulţimifinitedeobiectecesepotdistinge.

Omulţimedesemneordonateliniarsenumeştealfabet.Prezentămîncontinuareuneledintrenenumăratelealfabetefolositedeoameni:a)alfabetulcifrelorzecimale:0,1,2,...,9;b)alfabetulliterelorlatinemari:A, B, C, ..., Z;c)mulţimeasemnelorzodiacului;d)mulţimeafazelorlunii.Oimportanţădeosebităoaualfabeteledenumaidouăsemne.Acestealfabete

senumescalfabetebinare,iarsemnelerespective–semnebinare.Prezentămcâtevaexempledealfabetebinare:a)cifrele0, 1;b)perecheadeculoriroşu, galben;c)perecheadestăriînchis, deschis;d)perecheaderăspunsurida, nu;e)perecheadetensiuni0V,2V;f)perecheadestărimagnetizat, nemagnetizat;g)perecheadesemne+,–etc.S-a convenit ca semneleunui alfabet binar săfie reprezentateprin cifrele

0, 1,denumitecifrebinare (binary digit).Unşirfinitdinmsemne,dintrecareunelesepotrepeta,formeazăuncuvânt,

m reprezentând lungimeacuvântului.Cuvintele formatedin semnebinaresenumesccuvintebinare.Evident,cuvintelepotavealungimevariabilăsauconstantă.Înultimulcazelesenumesccuvintem-poziţionale.Încontinuareprezentămunelemulţimidecuvinteculungimeconstantă:

1-poziţionale:0,1;2-poziţionale:00,01,10,11;3-poziţionale:000,001,010,011,100,101,110,111;4-poziţionale:0000,0001,...,1110,1111.Seobservăcăcuvintele(m+1)-poziţionaleseformeazăcâtedouădincuvin-

tele m-poziţionaleprinadăugareacifrelorbinare0şi1.Prinurmare,mulţimeacuvintelorm-poziţionaleinclude2m cuvintedistincte.

Cuvintelebinareseutilizeazăpentrureprezentarea,transmiterea,păstrareaşiprelucrareamesajelors1,s2,...,snalesurseideinformaţie(fig. 2.2).

Fig. 2.2. Codificarea şi decodificarea mesajelorîn sistemele de transmisie a informaţiei

Page 96: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

96

Regula de transformare a mesajelor în cuvinte se numeşte cod, iar ope-raţia respectivă – codificare. Operaţia inversă codificării se numeşte decodificare. Dispozitivele tehnice care realizează operaţiile în cauză se numesc, respectiv, codificator şi decodificator.Celmaisimpluestecodulîncaremesajelorposibiles1,s2,...,snlecorespund

cuvintebinaredelungimeconstantăm.Acestcoddenumitcod m-poziţionalpoatefidefinitcuajutorulunuitabel.Înfigura 2.3suntprezentatetabelelerespectivepentrusursecun =2,3,4,...,8mesajeposibile.

Fig. 2.3. Coduri de cuvinte cu lungime constantă (coduri m-poziţionale)

Operaţiiledecodificareşidecodificareconstauînextragereadatelornecesaredintabel.Evident,decodificareavafiunivocănumaiatuncicândcuvintelebinareincluseîntabelsuntdistincte.Acestlucruesteposibildacălungimeamacuvin-telordecodsatisfaceinegalitatea

2m ≥ n.Dupălogaritmareobţinem:

m ≥ log2 n.Întrucâtexpresialog2 n exprimăcantitateadeinformaţie,sepoateafirma:Lungimea cuvintelor unui cod poziţional trebuie să fie mai mare sau egală cu cantitatea de informaţie a unui mesaj.Deexemplu,lungimeacuvintelorpentrucodificarealiterelormarialealfabe-

tuluilatinA,B, C, ...Z,n =26,sedeterminădinrelaţiam ≥log2 26 ≈4,700.

Stabilindm=5,putemformacuvintelebinarealecodului5-poziţional:A–00000B–00001C–00010

n=2, m=1s1s2

01

n=3, m=2s1s2s3

000110

n=4, m=2s1s2s3s4

00011011

n=5, m=3s1s2s3s4s5

000001010011100

n=6, m=3s1s2s3s4s5s6

000001010011100101

n=7, m=3s1s2s3s4s5s6s7

000001010011100101110

n=8, m=3s1s2s3s4s5s6s7s8

000001010011100101110111

Page 97: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

97

D–00011E–00100

...Z –11001.

UnastfeldecodafostpropusdefilosofulşiomuldestatenglezFrancisBaconîncăînanul1580.

Algoritmiideelaborareacodurilorcucuvintedelungimevariabilăsuntmultmaicomplicaţişisestudiazăîncursurileavansatedeinformatică.

Întrebări şi exerciţiiÊ Ceesteunalfabet?Daţiexempledealfabetebinare.Ë Cumsereprezintăsemneleoricăruialfabetbinar?ÌExplicaţicumpotfiformatecuvintelebinare(m+1)-poziţionale.Careestenu-

mărulcuvintelorbinarem-poziţionaledistincte?Í Careestedestinaţiaunuicod?Cumsedefineştecodulm-poziţional? Cumseefectueazăcodificareaşidecodificareamesajelorîncazurilecândcodul

estedefinitprintr-untabel? Codificaţimesajeles3,s4şis6aleuneisursecu7mesajeposibile.Utilizaţicodul

3-poziţionaldinfigura 2.3. Decodificaţimesajele100,000şi010,reprezentateîncodul3-poziţionaldin

figura 2.3,n=5. Cumsedeterminănumăruldesemnebinarenecesarepentruformareacuvin-

telordelungimeconstantăaleunuicod? Utilizândcodul3-poziţionaldinfigura 2.3,n=6,codificaţişiruldemesajes1,

s2,s6,s5,s3,s6,s3,s2,s1. Cuminfluenţeazăcantitateadeinformaţieaunuimesajasupralungimiicu-

vintelordecod? Explicaţisensultermenilorcantitatedeinformaţieşiinformaţie. Elaboraţiunprogramcarecodificăşidecodificăliterelealfabetuluilatin.SevautilizacodulpropusdeFrancisBacon.

Elaboraţiunprogramcarealcătuieştetabelulunuicodm-poziţionalpentruosursăcunmesajeposibile.

2.3. Coduri frecvent utilizateOricecod,utilizatpentrureprezentarea,transmiterea,păstrareaşiprelucrarea

informaţiei,trebuiesăfieeconomşiinsensibillaperturbaţii,iarechipamentelerespectivedecodificareşidecodificare–săfiesimple.Peparcursuldezvoltăriitehniciidecalculaufostelaboratemaimultecoduri.Acestecoduriseclasificăîncodurinumericeşicodurialfanumerice.

Codurilenumericeoferăposibilitateareprezentăriicifrelor 0,1,2, ...,9princuvintebinare4-poziţionale.Exempledecodurinumericesuntprezentateîntabelul 2.2,p.98.

Page 98: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

98

Tabelul 2.2 Codurinumerice

CifraDenumireacodului

Direct Gray Aiken Exces 30 0000 0000 0000 00111 0001 0001 0001 01002 0010 0011 0010 01013 0011 0010 0011 01104 0100 0110 0100 01115 0101 0111 1011 10006 0110 0101 1100 10017 0111 0100 1101 10108 1000 1100 1110 10119 1001 1101 1111 1100

Codurilealfanumericereprezintăprincuvintebinarecifrele0,1,2,...,9,literelemarişimicialealfabetului,semneledepunctuaţie,semneleoperaţiiloraritmeticeetc. În tabelul 2.3 esteprezentatcodulASCII (American Standard Code for Information Interchange),inventatînanul1968.

Tabelul 2.3 Codul ASCII

Simbol Cuvântbinar

Echivalentzecimal Simbol Cuvânt

binarEchivalentzecimal

Spaţiu 0100000 32 P 1010000 80

! 0100001 33 Q 1010001 81

″ 0100010 34 R 1010010 82

# 0100011 35 S 1010011 83

$ 0100100 36 T 1010100 84

% 0100101 37 U 1010101 85

& 0100110 38 V 1010110 86

’ 0100111 39 W 1010111 87

( 0101000 40 X 1011000 88

) 0101001 41 Y 1011001 89

* 0101010 42 Z 1011010 90

+ 0101011 43 [ 1011011 91

, 0101100 44 \ 1011100 92

- 0101101 45 ] 1011101 93

. 0101110 46 ^ 1011110 94

Page 99: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

99

Simbol Cuvântbinar

Echivalentzecimal Simbol Cuvânt

binarEchivalentzecimal

/ 0101111 47 _ 1011111 95

0 0110000 48 ` 1100000 96

1 0110001 49 a 1100001 97

2 0110010 50 b 1100010 98

3 0110011 51 c 1100011 99

4 0110100 52 d 1100100 100

5 0110101 53 e 1100101 101

6 0110110 54 f 1100110 102

7 0110111 55 g 1100111 103

8 0111000 56 h 1101000 104

9 0111001 57 i 1101001 105

: 0111010 58 j 1101010 106

; 0111011 59 k 1101011 107

< 0111100 60 l 1101100 108

= 0111101 61 m 1101101 109

> 0111110 62 n 1101110 110

? 0111111 63 o 1101111 111

@ 1000000 64 p 1110000 112

A 1000001 65 q 1110001 113

B 1000010 66 r 1110010 114

C 1000011 67 s 1110011 115

D 1000100 68 t 1110100 116

E 1000101 69 u 1110101 117

F 1000110 70 v 1110110 118

G 1000111 71 w 1110111 119

H 1001000 72 x 1111000 120

I 1001001 73 y 1111001 121

J 1001010 74 z 1111010 122

K 1001011 75 1111011 123

L 1001100 76 | 1111100 124

M 1001101 77 1111101 125

N 1001110 78 ~ 1111110 126

O 1001111 79 Del 1111111 127

Acest cod este 7-poziţional şi include27 = 128de simboluri.Primele32desimboluri (cuvintelebinare0000000,0000001,0000010,…,0011111)specificădetaliiletehnicealetransmisiunilordeinformaţiişinuaufostincluseîntabel.

Continuarea tab. 2.3

Page 100: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

100

Cuvintelebinare0100000,0100001,0100010,…,1111110reprezintăcaractereleimprimabiledintexteleînlimbaengleză.Cuvântul1111111reprezintăcaracterulneimprimabilDelete (Anulare).

Codificarea mesajelorserealizeazăprinînlocuireasimbolurilorcucuvintelebinarerespective.Deexemplu,cuvântulSTARTsereprezintăîncodulASCIIprinurmătoareasecvenţădecuvintebinare:

10100111010100100000110100101010100.Evident,decodificareasevarealizaînordineinversă.Deexemplu,secvenţa

decuvintebinare1010011101010010011111010000

reprezintăîncodulASCIIcuvântulSTOP.Deregulă,limbajeledeprogramareopereazănucucuvintelebinarepropriu-zise,

darcuechivalentelelorzecimale.ÎnprogramelePASCALechivalentelezecimalealecaracterelorpotfiaflatecuajutorulfuncţieipredefiniteord.Deexemplu:

ord(’S’)=83; ord(’T’)=84; ord(’A’)=65; ord(’R’)=82

etc.Funcţiapredefinităchrreturneazăcaracterulcarecorespundeechivalentuluizecimalindicat.Astfel,

chr(83)=’S’; chr(84)=’T’; chr(65)=’A’; chr(82)=’R’.

Într-unmodsimilar,înprogrameleC++scriem:int(’S’)=83; int(’T’)=84; int(’A’)=65; int(’R’)=82

char(83)=’S’; char(84)=’T’; char(65)=’A’; char(82)=’R’.

Orientatlatexteleengleze,codulASCIInuincludeliterelecusemnediacriticeşicaracterelegraficespecialeîntâlniteîndiferitelimbieuropeneşiînlucrărileştiinţifice.Deaceeapentrucalculatoarelemodernes-auelaboratversiunidedi-catealecoduluiASCII,denumitecoduriASCIIextinse.Codurileextinsesunt8-poziţionaleşiinclud28=256desimboluri.Structuracodurilorrespectiveesteprezentatăîntabelul 2.4.

Tabelul 2.4 StructuracodurilorASCIIextinse

Simbol Cuvântbinar

Echivalentzecimal Observaţii

Spaţiu 00100000 32

Partea1:–simbolurilecoduluiASCII

! 00100001 33

″ 00100010 34

# 00100011 35

… … …

01111101 125

~ 01111110 126

Del 01111111 127

Page 101: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

101

Simbol Cuvântbinar

Echivalentzecimal Observaţii

A 10000000 128

Partea2:–simbolurispecificelimbilornaţionale;–caracteregrafice;–caractereştiinţifice

Б 10000001 129

В 10000010 130

… … …

11110000 240

Ă 11110001 241

ă 11110010 242

 11110011 243

â 11110100 244

Î 11110101 245

î 11110110 246

Ș 11110111 247

ş 11111000 248

11111001 249

11111010 250

√ 11111011 251

Ț 11111100 252

ţ 11111101 253

11111110 254

11111111 255

Partea 1afiecăruicodextins includesimbolurilede la0 la127oferitedecodulASCII.Partea a 2-aestespecificăfiecăreiţărişiincludesimboluriledela128la255.Acestesimbolurisuntutilizatepentrureprezentarealitereloral-fabetelornaţionale,precumşiacaracterelorştiinţificefrecventutilizate.Pentruexemplificare,întabelul 2.4suntprezentatecodurileliterelorĂ, ă, Â, â, Î, î, Ş, ş, Ţ, ţ dinalfabetullimbiiromânepropuseînanul1992defirmaTISH(Chişinău).Estefiresc cautilizarea codurilor extinse săasigureprelucrarea informaţiilorprezentateîndiferitelimbi.

Unaltexempludecodalfanumericestecodulbinar8-poziţionalEBCDIC (Exten-ded Binary Coded Data Interchange Code),careseutilizeazăpecalculatoarelemari.

Menţionămcăextindereadomeniuluideaplicareacodurilor8-poziţionaleafavorizatutilizareaoctetuluişiamultiplilorluipentrumăsurareacantităţiideinformaţie:

1 octet =23 =8biţi; 1Gigaoctet =230≈109octeţi;

1 Kilooctet =210≈103 octeţi; 1Teraoctet =240≈1012 octeţi;

1 Megaoctet =220≈106 octeţi; 1Petaoctet =250≈1015 octeţi.

Continuarea tab. 2.4

Page 102: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

102

ÎnliteraturadespecialitateoctetulestenotatprinB (byte),iarmultipliires-pectiviprinKB, MB, GB, TB şi PB.

Estecunoscutfaptulcăinformaticaestesupusăîntr-omăsurăfoartemarefeno-menuluiglobalizării,produsele-programşiechipamenteledigitalefiindconceputeînaşamod,încâtelepotprocesainformaţiiprezentateîndiverselimbi.Pentrureprezentareapecalculatoracaracterelordinaproapetoatelimbileglobului,celmaidesseutilizeazăcodulUNICODE,lungimeacuvintelorcăruiapoateajungepânăla32decifrebinare.

Întrebări şi exerciţiiÊ Câtemesajeposibilepotficodificatecuajutorulunuicodm-poziţional?Ë Determinaţicodurileadmisedesistemuldeoperarecucarelucraţidvs.Ì CodificaţiîncodulGrayurmătoareleşiruridecifrezecimale:123,461,952,783,

472.Í DecodificaţimesajelereprezentateîncodulAiken: a) 0011 1111 0100 d) 1110 0010 1101

b) 1111 0000 0100 e) 0011 1100 1111

c) 0010 0001 1011 f) 1111 1101 0000

CodificaţiîncodulASCIIexpresiile:

a) A+B d) NEXT I

b) FOR I=1 TO N e) PAUSE

c) PRINT A$ f) PROGRAM

DecodificaţimesajelereprezentateîncodulASCII:

a) 1000010 1100101 1100111 1101001 1101110;

b) 1010011 1110100 1101111 1110000;

c) 1000101 1101110 1100100;

d) 1101001 0111010 0111101 0110001 0111011.

Elaboraţiunprogramcareafişeazăpeecrancodurileurmătoarelorcaractere,introdusedelatastatură:

a)cifrelezecimale0,1,2,...,9; b)literelelatinemariA,B,C,...,Z; c)literelelatinemicia,b,c,...,z; d)semneleoperaţiiloraritmetice; e)caracterelespeciale;,<,=,>,?,[,],,,/,\. STUDIUDECAZ.Cuajutorulunuimotordecăutare,găsițipeInternetdescrie-

rilecodurilorfrecventutilizate.Stabilițiparcursulistoricalcodurilorrespective,avantajeleşineajunsurileacestora,domeniilelordeutilizare.

Page 103: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

103

Fig. 2.4. Discretizarea mesajelor continue: a – mesaj continuu; b – mesaj discretizat în timp (eşantionat); c – mesaj eşantionat şi discretizat în valoare (cuantificat)

2.4. Informaţia mesajelor continueSurseledeinformaţiestudiatepânăînprezentsedefinescprintr-ovariabilăS,

carepoateluavaloridintr-omulţimefinitădeelementedistinctes1,s2,...,sn,denumitămulţimeamesajelorposibile.Practicanedemonstreazăcănutoatesur-seledeinformaţiepotfidefinitedirectînacestmod.Dreptexempluvomremarcatermometrelecumercursaualcool,vitezometreleautomobilelor,microfoanele,camerelede luatvederietc.Astfeldesursepotfidefiniteprintr-ovariabilăS (temperatura,vitezamomentană,tensiunealaborneledeieşirealemicrofonuluietc.)carepoateluaoricevaloareîntr-unanumitinterval[smin,smax].

Page 104: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

104

Surselede informaţie caresuntdefiniteprintr-ovariabilăSceiavaloridintr-omulţimefinitădeelementedistinctesenumescsursecumesajediscrete. Surselecaresedefinescprintr-ovariabilăScepoateluaoricevaloriîntr-unanumitintervalsenumescsursecumesajecontinue.

Caşiîncazulsurselordiscrete,mesajelecontinueseproducîntimp.Prinur-mare,Sesteofuncţiedetimp,S=S(t).Înscopulevaluăriicantităţiideinformaţieînmesajelecontinue,vomanalizavalorilefuncţieiS(t)numaiînmomenteledetimp t1,t2,...,tm (fig. 2.4).Valoriledate,notateprinS(t1),S(t2),...,S(tm),senumesceşantioane(dinfrancezăechantillion„cantitatemicăluatădintr-unproduspen-truadeterminacalitatealui”).

Deobicei,momenteledetimpt1,t2,...,tm sedefinescconformrelaţiei:ti = ti-1 + ∆t.

Mărimea∆t senumeşteperioadadeeşantionare.Valoareaconcretăape-rioadeideeşantionare∆t estedeterminatădevitezacucareS(t)variazăîntimp.

Deexemplu,înmeteorologieschimbăriledetemperaturăseproducpeparcursdeoreşi∆t = 1 h,iarîntehnicaprelucrăriisemnalelorsonore∆t = 5 ·10–5 s.

Operaţia de transformare a mesajelor continue în eşantioane se numeşte discretizare în timp sau eşantionare.Evident,pânălarecepţiamesajuluicontinuu,valorileconcretealeeşantioa-

nelorS(t1),S(t2), ...,S(tm)suntnecunoscutedestinatarului.Secunoaştenumaiintervalul[smin,smax]încarepoateluavaloriarbitrareoriceeşantion.Înscopulevaluăriicantităţiideinformaţiedintr-uneşantion,vomrotunjivaloareaS(ti) la unadinvalorileprestabilites1,s2,...,sn (fig. 2.4).

Valorileprestabilites1,s2,...,snsenumesccuante,iaroperaţiadetransformareavalorilorcurentealemesajelorcontinueîncuantesenumeştediscretizareînvaloaresaucuantificare.

Deobicei,s1 = smin, s2 = smin + ∆s, ..., si = si–1 + ∆s, ..., sn = smax.

Mărimea∆sreprezintăpasulsauintervaluldecuantificare.Valoareacon-cretăaintervaluluidecuantificaredepindedenaturafizicăasurseideinformaţie,preciziademăsurare,putereaderezoluţieadestinataruluietc.

Deexemplu,pentruuntermometrumedicalsmin =34o,smax=42

o şi∆s =0,1o. În

meteorologiesmin =–60o,smax=+60

o, ∆s =1o.Pentruvitezometrulunuiautomobil

smin =0,smax=150km/h,∆s =5km/h.Număruleşantioanelormşinumărulcuantelornsedeterminădinurmătoarele

relaţii(fig. 2.4 bşic):

undeTesteduratamesajuluicontinuu.Întrucâtcuanteles1,s2,...,snpot ficonsideratemesajediscrete,cantitateade

informaţieîntr-uneşantion

Page 105: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

105

iarcantitateadeinformaţieîntr-unmesajcontinuu:

Deexemplu,pentrutermometrulmedical

iarpentruvitezometrulautomobilului

Cantitateadeinformaţiedintr-oînregistrareaudio,pentrucaren=256,∆t= =5·10–5 sşiT=45min. este

Dacăpreciziademăsurareşiputereaderezoluţieadestinataruluicresc,peri-oadadeeşantionare∆t şi pasuldecuantificare∆spotfimicşorate.Înconsecinţă,vacreşteşicantitateadeinformaţiedintr-unmesajcontinuu.

Informaţiamesajelorcontinuepoatefireprezentatăprintr-unsetdecuvintebinare.Pentruaceasta,cuanteles1,s2,...,snsecodificăexactlafelcaşioricarealtemesajediscrete.Deexemplu,indicaţiileunuitermometrumedical(I ≈6,34biţi) potficodificatecuuncod7-poziţional.Celmaifrecventseutilizeazăcodurilenumerice directe (tab. 2.2), cuvântul de cod reprezentând numărul cuanteirespective. Înuneleaplicaţii seutilizeazăcodulGray, careeste insensibil laperturbaţii.

Dispozitivulcaretransformămesajulcontinuuaplicatlaintrareîntr-osuccesi-unedecuvintedecodsenumeşteconvertoranalog-numeric.Operaţiainversă,şianumetransformareacuvintelordecodaplicatelaintrareînvalorilecuante-lorrespective,seefectueazăcuajutorulconvertoarelornumeric-analogice. Utilizareaconvertoarelorestenecesarăîncazurileîncareinformaţiadeprocesatestereprezentatăprinmesajecontinue:controlulproceselortehnologice,dirijareaobiecteloraflateînmişcare,monitorizareaparametrilorfiziologiciînmedicină,filtrareaşimixajulsemnaleloraudioetc.

Întrebări şi exerciţiiÊ Careestediferenţadintresurselecumesajediscreteşisurselecumesajecontinue?Ë Daţicâtevaexempledesursecumesajecontinue.Concretizaţiintervalulîncare

iavalorivariabilacedefineştesursa.Ì Explicaţicumseefectueazăoperaţiadeeşantionare.Cumsealegeperioadade

eşantionare?Í Explicaţicumseefectueazăoperaţiadecuantificare.Cumsealegepasulde

cuantificare?

Page 106: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

106

Cuminfluenţeazăvalorileperioadeideeşantionareşialepasuluidecuantificarecantitateadeinformaţieextrasădintr-unmesajcontinuu?

Altimetrulcuimpulsurialunuiavionpoatemăsuraînălţimidela100mpânăla20km.Eroareademăsurarenudepăşeşte1m.Pentruaefectuaomăsuraresuntnecesare10–3 s.Determinaţicantitateadeinformaţiefurnizatădealtimetrutimpde5oredezbor.

Temperaturadininteriorulunuireactorchimicseînregistreazăpeobandădehârtiemilimetrică.Peaxaabsciselorseindicătimpul(1mmreprezintăooră),iarpeaxaordonatelor–temperatura(1mmreprezintă10oC).Câtăinformaţieconţineoînregistrareefectuatătimpde30dezile,dacătemperaturapoatevariadela80pânăla1000oC?

Pentru înregistrareasunetului seutilizeazămicrofoane, tensiuneade ieşireacăroravariazădela0pânăla100µV.Aparatuldeînregistrarenudistingetensiunilevalorilecăroradiferăcumaipuţinde0,1µV.Pentruaasiguraore-producerefidelă,înfiecaresecundăseiau40000deeşantioane.Câtăinformaţievafurnizamicrofonuldattimpde3ore?

Careestedestinaţiaconvertoareloranalog-numericeşinumeric-analogice? Elaboraţiunprogramcareintroducedelatastaturăvalorilecurentealeeşan-

tioanelorşiafişeazăpeecrancodurilecuantelorcorespunzătoare. Elaboraţiunprogramcaresimuleazăfuncţionareaunuiconvertornume-ric-analog.

CERCETEAZĂ!Utilizândunmotordecăutare,găsițipeInternetdescriereaaparatelordeînregistraredigitalăasunetelor.Aflațiperioadadeeşantionareşipasuldecuantificareutilizateîndigitalizareamesajelorsonore,realizatădefiecaredintreaparatelerespective.

STUDIUDECAZ.Cuajutorulunuimotordecăutare,găsițipeInternetdes-crierileaparatelordeînregistraredigitalăasunetelor,propusedeunităţiledecomerţ.Comparați acesteaparatedinperspectivamoduluidedigitalizareamesajelorsonore.Aflațicumparametriidediscretizareinfluenţeazăcosturileaparatelorde înregistrarea sunetelor, care suntavantajele,neajunsurile şidomeniiledeutilizareaacestora.

2.5. Cuantizarea imaginilorImaginesenumeştereprezentareaunuiobiect,executatăpeosuprafaţăprin

acţiuneadirectăautilizatoruluisauprinintermediulunuiechipament.Cutitluldeexempluamintimdesenele,fotografiile,imaginileformatedediversesistemeoptice,optico-mecanicesauoptico-electronice:microscopul,telescopul,aparatelecinematografice,televiziuneaetc.

Pentruaevaluacantitateadeinformaţie,imagineaesteîmpărţităînmicrozo-ne,numitedecelemaimulteoripunctesaupixeli.Descompunereaimaginiiînpuncteserealizeazăcuajutorulunuirastru(delacuvântullatinraster„greblă”).Rastrulreprezintăosuprafaţăplană,îngeneraldreptunghiulară,pecaresunttrasatedouăseturideliniiparalele,perpendiculareîntreele(fig. 2.5). Densitatea

Page 107: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

107

liniilorşi,respectiv,densitateapunctelorcaracterizeazăputereaderezoluţieaechipamentelorpentrureproducereasauformareaimaginilor.

Fig. 2.5. Descompunerea imaginii în microzone

Deexemplu,pentruilustraţiiledegazetăsefolosescrastrecurezoluţia24- 30linii/cm(576-900depunctepe1cm2 ),iarpentrureproducereatablourilor–rastrecu54-60linii/cm.Rastrulvizualizatorului,adicădesenulpecare-lformeazăfascicululdeelectronipeecranultubuluicatodic,poateinclude640×480,800× ×600,720×400,...,1024×1024depuncte.

Descompunerea imaginii în puncte (microzone) reprezintă o procedură de discretizare în spaţiu.Încazulimaginilormonocrome(alb-negru),fiecaremicrozonăsedescrieprinlu-

minanţa(strălucirea)sa,careîngeneralesteomărimecontinuă.Aceastămărimepoatefidiscretizatăînvaloare(cuantificată).Numărulcuantelornvacaracterizaputereaderezoluţieaechipamentelorpentrureproducereasauformareaimagi-nilor.Prinurmare,cantitateadeinformaţieauneiimaginimonocrome:

I = mxmylog2n,undemxşimy reprezintănumăruldemicrozonealerastruluirespectivpeorizon-talăşiverticală(fig. 2.5).

Întrucâtculorilepotfiredateprinsuprapunereaatreireprezentărialeaceleiaşiimaginiînroşu,verdeşialbastru,cantitateadeinformaţiedintr-oimaginecolorsedeterminădinrelaţia:

I = 3 mxmylog2n.Imaginileobiectelorînmişcaresediscretizeazăîntimp,deobicei24(ci-

nematograful)sau25(televizorul)decadrepesecundă.Prinurmare,cantitateadeinformaţieaunuifilmcudurataTsedeterminădinrelaţia:

V = T f I,undef estefrecvenţacadrelor,iarI cantitateadeinformaţiedintr-unsingurcadru.

Page 108: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

108

Deexemplu,înteleviziunemx ≈ my=625,n =32şif=25decadrepesecundă.Uncadrucolorvaconţine:

I = 3 · 625 · 625 · log232 ≈ 5,6 Mbiţi.Unfilmcolorcuduratade1,5orevaconţine:

V = 1,5 · 3 600 · 25 · I ≈ 791 Gbiţi.

Setul de cuvinte binare care reprezintă informaţia microzonelor se numeşte imagine numerică. Operaţia de transformare a imaginii într-un set de cuvinte binare se numeşte cuantizarea imaginii.Imaginilepreluatedecamerelevideosecuantizeazăcuajutorulconvertoarelor

analog-numerice.Imaginiledepehârtiepotficuantizatecuajutorulunuidispozitivspecial,numitscaner.Acestdispozitivconţinecelulefotosensibile,convertoareanalog-numericeşimecanismedeavansareahârtiei.

Imaginilenumericesetransformăînimaginipropriu-zisecuajutorulconver-toarelornumeric-analogice şi al echipamentelor de formarea rastrului: tubulcatodicşisistemuldebaleiereînvizualizatoare,matriceadeaceînimprimantelemecaniceetc.

Întrebări şi exerciţiiÊ Numiţioperaţiilenecesarepentruacuantizaimaginea.Ë Careestedestinaţiarastrului?Dincareconsiderentesealegedensitatealiniilor

unuirastru?Ì Cumseevalueazăcantitateadeinformaţiedintr-oimaginemonocromă?Í Cumpotfiredateculorileuneiimaginimulticolore?Cumseevalueazăcantitatea

deinformaţiedintr-oimaginecolor? Evaluaţicantitateadeinformaţiedintr-ofotografiedeziarcudimensiunile

10×10cm,redatăcuajutorulunuirastruceconţine24depuncte/cm.Fiecarepunctpoateaveaurmătoarelenuanţe:alb,gri-deschis,gri-închis,negru.

Câtăinformaţieconţineofotografiecolorcudimensiunile20×20cm,reprodusăcuajutorulunuirastruceconţine60depuncte/cm?Potfiredatepânăla256denivelurideluminanţăalepunctelorrespective.

Rastruluneicameredeluatvederiesteformatdin1024×1024depuncte.Potfiredatepânăla64denivelurideluminanţăalepunctelorrespective.Câtăinformaţievaconţineunfilmvideocuduratade3ore?

Imagineanumericăconţinecâteuncuvântbinarpentrufiecarepunctalras-truluiunuivizualizator.Câtenivelurideluminanţăpotfiredatepeecrandacăcuvinteleimaginiinumericesunt3-poziţionale?5-poziţionale?8-poziţionale?

CERCETEAZĂ!Utilizândunmotordecăutare,găsițipeInternetdescriereaaparatelordigitalefotografice.Aflațiputereaderezoluţierealizatădefiecaredintreaparatelerespectiveînscopuldigitalizăriiimaginilorstatice.

STUDIUDECAZ.Cuajutorulunuimotordecăutare,găsițipeInternetdescri-erileaparatelorfotograficedigitale,propusedeunităţiledecomerţ.Comparați aceste aparatedinperspectivamodului dedigitalizare a imaginilor statice.

Page 109: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

109

Aflăcumparametriidediscretizareinfluenţeazăcosturile,avantajele,neajun-surileşidomeniiledeutilizareaaparatelorfotograficedigitale.

CERCETEAZĂ!Utilizândunmotordecăutare,găsițipeInternetdescriereacamerelorvideodigitale.Aflațiputereaderezoluţierealizatădefiecaredintrecamerelerespectiveînscopuldigitalizăriiinformaţiilordinamice.

STUDIUDECAZ.Cuajutorulunuimotordecăutare,găsițipeInternetdescri-erilecamerelorvideodigitalepropusedeunităţiledecomerţ.Comparațiacestecameredinperspectivamoduluidedigitalizareaimaginilordinamice.Aflați cumparametriidediscretizareinfluenţeazăcosturilecamerelorvideodigitale,caresuntavantajele,neajunsurileşidomeniiledeutilizareaacestora.

2.6. Reprezentarea şi transmiterea informaţieiObiectulmaterial folosit pentru păstrarea, transmiterea sau prelucrarea

informaţieisenumeştepurtătordeinformaţie.Deosebimpurtătoristaticişipurtătoridinamicideinformaţie.

Purtătorii statici seutilizeazăpentrupăstrarea informaţiei sau, cu altecuvinte,pentrutransmitereaeiîntimp.Informaţiaînregistratăpeunpurtătorstaticpoateficitităînscopulprelucrăriisauutilizăriiulterioare.Primiipurtătoristatici folosiţideomenireaufostpietrele,plăciledelutars,papirusul.Unaltpurtătorstaticdeinformaţieîlconstituiehârtia.Mesajeleînregistratepehârtiesubformădemanuscrise,desenesautextetipăritepotfipăstrateuntimpfoarteîndelungat.Încalculatoare,capurtătoristatici,seutilizează:

–hârtiapentruimprimantelemecanice,cujetdecerneală,laseretc.;–straturileactivealebenzilor,alediscurilormagnetice;–mediilereflectoarealediscuriloropticeetc.Transmiterea informaţiei în spaţiu se realizează cuajutorulpurtătorilor

dinamici.Încalitatedepurtătoridinamicitehnicaactualăfoloseşte:–undeacusticeîngaze(aer)saulichide;–tensiunişicurenţielectrici;–undeelectromagneticeetc.Întrucât transmiterea informaţiei seproduce în spaţiu şi timp, cel puţin o

mărimefizicăapurtătoruluideinformaţietrebuiesăseschimbe.Se numeşte semnal variaţia mărimii fizice ce asigură transmiterea mesajelor. Caracteristica semnalului folosită pentru reprezentarea (descrierea) mesajelor se numeşte parametru informaţional al sem-nalului.Deexemplu,întransmisiunileradioşiTV,încalitatedepurtătoriseutilizează

undeleelectromagnetice.Amplitudineasaufrecvenţaacestorundepoatevariaîntimp(fig. 2.6,p.110).Înprimulcaz,parametrul informaţional îlconstituieamplitudineaoscilaţiilor,iarînaldoilea–frecvenţalor.

Încalculatoareleelectroniceîncalitatedepurtătordeinformaţiesefoloseşte,deobicei,curentulelectric,tensiuneaşiintensitateacurentuluifiindparametrii

Page 110: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

110

informaţionali ai semnalului. Semnalele respective au formele prezentate înfigura 2.7.Încazulnivelurilordetensiune,uneivaloriatensiuniiiseasociazăcifrabinară0,iaralteiacifrabinară1.Cifrelebinare0şi1potfideasemeneaasociate,respectiv,cuabsenţăsauprezenţădeimpulssaucuimpulsnegativşiimpulspozitiv.

Fig. 2.6. Parametrii informaţionali ai undelor electromagnetice: a – amplitudinea; b – frecvenţa

Fig. 2.7. Semnale utilizate în tehnica de calcul

Semnalul se numeşte discret, dacă parametrul informaţional respectiv poate lua numai un număr finit de valori. Semnalul se numeşte con-tinuu, dacă parametrul informaţional poate lua orice valoare într-un anumit interval.

Page 111: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

111

Deexemplu,semnaleledinfigura 2.6suntsemnalecontinue,iarsemnaleledinfigura 2.7suntsemnalediscrete.Evident,semnalelediscreteşicontinuesuntformedereprezentareamesajelorrespective.

Oricesistemtehnicutilizeazăacelesemnalecare-iasigurăorealizarecâtmaibunăafuncţiilorpentrucareafostconceput.Calculatoareleactualeutili-zeazăniveluridetensiune,reţeleletelefonice–curenţielectrici,iarradioulşiteleviziunea–undeelectromagneticeetc.Practicademonstreazăcăsemnalelecontinuepotfitransmiseladistanţemultmaimaridecâtcelediscrete.Prinurmare,pentruaasiguralegăturadintrecalculatoareleaflateladistanţă,laemisiesemnalelediscretevorfitransformateînsemnalecontinue.Larecepţiese va realiza transformarea inversă: semnalul continuu va fi transformatîntr-unsemnaldiscret.

Operaţia prin care parametrul informaţional al semnalului continuu se modifică în funcţie de valorile semnalului discret se numeşte modulare.Dispozitivultehniccarerealizeazăoperaţiaîncauzăsenumeştemodulator.

Pentru exemplificare, în figura 2.8 suntprezentate operaţiile demodulare înamplitudineşifrecvenţă.

Fig. 2.8. Modularea semnalelor continue

Operaţia de extragere a semnalului discret dintr-un semnal continuu în funcţie de procedeul de modulare adoptat se numeşte demodulare.Dispozitivul tehnic care realizează operaţia respectivă senumeştedemo-

dulator.

Page 112: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

112

Schemadetaliatăasistemuluidetransmisieainformaţieiesteprezentatăînfigura 2.9.

Fig. 2.9. Schema detaliată a unui sistem de transmisie a informaţiei

Amintimdestinaţiacomponentelorsistemuluiexaminat:codificatorul–transformămesajeleemisedesursăîncuvintebinare;modulatorul–transformăsemnalelediscretecereprezintăcuvintelebinare

însemnalecontinue;mediul fizic – reprezintă conductorii, fibrele optice, eterul etc. prin care se

propagăsemnalelecontinue;demodulatorul–transformăsemnalelecontinueînsemnalediscrete;decodificatorul–transformăcuvintelebinareînmesaje.Evident, în cazulutilizării codurilor corectoare şi a codurilordetectoarede

erori,sistemuldetransmisievafiinsensibillaperturbaţii.Caracteristicaprincipalăaoricăruisistemde transmisiea informaţieieste

capacitatea de transmisie, exprimată înbiţi pe secundă.Capacitateadetransmisiedepindedecaracteristicilefizicealecomponentelorsistemului,me-todeledemodulare-demodulare,caracteristicilestatisticealeperturbaţiilor.Deexemplu,capacitateadetransmisieaunuicanaltelefonicestedecirca34Kbit/s;capacitateaunuicanalradio,cuundecentimetrice–decirca1Gbit/s;capacitateaunuicanaloptic–de1Tbit/s.

Întrebări şi exerciţiiÊ Careestedeosebireadintrepurtătoriistaticişipurtătoriidinamicideinformaţie?Ë Determinaţitipulurmătorilorpurtătorideinformaţie: a) carteleperforate; e) peliculefotosensibile; b) undeultrasonore; f) undegravitaţionale; c) benziperforate; g) hârtiefotografică. d) undeacustice;

Page 113: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

113

Ì Numiţiparametriiinformaţionaliaisemnaleloremisedeurmătoarelesurse: a) microfonul; b) staţiaderadio,undelungi,mediisauscurte; c) instrumentulmuzical; d) staţiaderadio,undeultrascurte; e) cameradeluatvederi.Í Descrieţipurtătoriideinformaţieşisemnaleleutilizateîncalculatoareleactuale. Explicaţioperaţiiledemodulareşidemodulareasemnalelor. Careestedestinaţiamodulatorului?Darademodulatorului? În figura 2.8 sunt redate semnalele continue ce reprezintă cuvântul binar

1001101. În codulASCII (tab. 2.3) acestui cuvânt îi corespunde simbolulM. Redaţipeundesensemnalelecontinuececorespundurmătoarelorsimboluri:

a) >; e) <;

b) r; f) K;

c) W; g) a;

d) 9; h) @.

Decedepindecapacitateadetransmisieacanalului?Înceunităţisemăsoarăea? Cuminfluenţeazăperturbaţiileasupracapacităţiidetransmisieacanalului? CERCETEAZĂ!Aflațicapacităţiledetransmisieacanalelordincomponenţa

sistemelorinformaticelacareaiaccesladomiciliu,liceu,înlocurilepublice.

Page 114: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

114

BAZELE ARITMETICE ALE TEHNICII DE CALCUL

3.1. Sisteme de numeraţieÎn calculatoarele digitale informaţia de orice categorie este reprezentată,

stocatăşiprelucratăînformănumerică.Numerelesereprezintăprinsimbolurielementaredenumitecifre.

Totalitatea regulilor de reprezentare a numerelor, împreună cu mul- ţimea cifrelor poartă denumirea de sistem de numeraţie. Numărul cifrelor defineşte baza sistemului de numeraţie. Prezentămcâtevaexempledesistemedenumeraţie:–sistemulzecimalesteunsistemdenumeraţieînbaza10,număruldecifre

utilizatefiind10,respectiv,0,1,2,...,9;–sistemulbinaresteunsistemdenumeraţieînbaza2,număruldecifre

utilizateeste2,adică0şi1.Cifrelerespectivesenumesccifrebinaresaubiţi;–sistemulternaresteunsistemdenumeraţieînbaza3,număruldecifre

utilizatefiind3,respectiv,0,1şi2;–sistemuloctalesteunsistemdenumeraţieînbaza8,conţinând8cifre:

0,1,2,...,7;–sistemul hexazecimalesteunsistemdenumeraţieînbaza16şiconţine

16cifre:0,1,2,...,9,A(zece),B(unsprezece),C(doisprezece),D(treisprezece), E(paisprezece),F(cincisprezece).

În tabelul 3.1suntdatereprezentărileunoraşiaceloraşinumereîndiferitebaze.Tabelul 3.1

Reprezentareaunornumereîndiferitebaze

Capitolul 3

Zecimal Binar Octal Hexa-zecimal

0 0 0 01 1 1 12 10 2 23 11 3 34 100 4 45 101 5 56 110 6 6

Zecimal Binar Octal Hexa-zecimal

7 111 7 78 1000 10 89 1001 11 910 1010 12 A11 1011 13 B12 1100 14 C13 1101 15 D

Page 115: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

115

Reguladereprezentareanumerelorînsistemulzecimalrezultădinur-mătorulexemplu:

(3856,43)10=3·103+8·102+5·101+6·100+4·10–1+3·10–2.

Se observă că în această reprezentare semnificaţia (valoarea)fiecărei cifredepindedepoziţiapecareoocupăînnumăr.Deexemplu,cifra3seîntâlneştede2ori:primadatăaresemnificaţia3000,iaradouaoară–semnificaţia0,03.

Sistemele în care semnificaţia cifrelor depinde de poziţia ocupată în cadrul numerelor se numesc sisteme de numeraţie poziţionale.PresupunemcănumărulNareparteaîntreagăformatădinn+1cifre,iarpartea

fracţionară–dinmcifre:

N =cncn–1...c1c0,c–1c–2 ...c–m .

Valoareaacestuinumărseevalueazăînfuncţiedebazasistemului:(N )b=cnb

n+cn–1bn–1+...+c1b

1+c0b0+c–1b

–1+c–2b–2+...+c–mb–m.

Efectuândcalculelerespective,sevarealizaconversiuneanumărului(N)b dinbazabînsistemulzecimal.

Deexemplu,

(101,1)10=1·102+0·101+1·100+1·10–1=101,1;

(101,1)2=1·22+0·21+1·20+1·2–1=5,5;

(101,1)3=1·32+0·31+1·30+1·3–1=10,333...;

(101,1)8=1·82+0·81+1·80+1·8–1=65,125;

(101,1)16=1·162+0·161+1·160+1·16–1=257,0625.

Zecimal Binar Octal Hexa-zecimal

14 1110 16 E15 1111 17 F16 10000 20 1017 10001 21 1118 10010 22 1219 10011 23 1320 10100 24 14. . . . . . . . . . . .30 11110 36 1E. . . . . . . . . . . .40 101000 50 28. . . . . . . . . . . .

Zecimal Binar Octal Hexa-zecimal

50 110010 62 32. . . . . . . . . . . .60 111100 74 3C. . . . . . . . . . . .70 1000110 106 46. . . . . . . . . . . .80 1010000 120 50. . . . . . . . . . . .90 1011010 132 5A. . . . . . . . . . . .100 1100100 144 64. . . . . . . . . . . .

Page 116: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

116

Formal,sistemulzecimalnuprezintăniciunavantajdeosebitfaţădealtesis-temedenumeraţie.Sepresupunecăacestsistemafostadoptatîncădincelemaivechitimpuridatorităfaptuluicăprocesuldenumărareafolositcainstrumenteiniţialedegetelemâinilor.

Uncalculatorpoatefiprevăzutsăfuncţionezeînoricesistemdenumeraţie.Peparcursuldezvoltăriitehniciidecalcul,s-astabilitcăcelmaiavantajosestesistemulbinar.Acestsistemafostpreferatdinurmătoarelemotive:

–simplitatearegulilorpentruoperaţiilearitmeticeşilogice;–materializareafizicăacifrelorînprocesulprelucrăriisaustocăriinumerelor

sefacemaiuşorpentrudouăsimboluridecâtpentruzece:perforat–neperforat,contactînchis–contactdeschis,prezenţăsauabsenţădecurentetc.;

–circuitelecaretrebuiesădiferenţiezenumaiîntredouăstărisuntmaisigureînfuncţionaredecâtcelecaretrebuiesădiferenţiezeîntrezecestări.

Menţionămcăînprocesuldezvoltăriicivilizaţieiumaneaufostcreateşisiste-medenumeraţienepoziţionale.Dreptexemplupoateservisistemulroman,careutilizeazăcifreleI, V, X, L, C, D, M.Întrucâtreguliledereprezentareanu-merelorşideefectuareaoperaţiiloraritmeticesuntfoartecomplicate,sistemelenepoziţionaleauoutilizarefoarterestrânsă.

Întrebări şi exerciţiiÊ Cumsedefineşteunsistemdenumeraţie?Ë Careestedeosebireadintresistemeledenumeraţiepoziţionaleşinepoziţionale?Ì Daţiexempledesistemedenumeraţiepoziţionale.Cumsedefineştebazasis-

temuluidenumeraţie?Í Evaluaţinumărul(101,1)bscrisînurmătoarelesistemedenumeraţie:

b=4,5,6,7,9,11,12,13,14şi15. Evaluaţinumereleceurmează:

a) (328)9; i) (1010,01)3; q) (341,02)8;

b) (516)7; j) (201,12)4; r) (ABCD)16;

c) (1010,01)2; k) (341,02)6; s) (328)16;

d) (201,12)3; l) (1111)16; t) (516)16;

e) (341,02)5; m) (328)11; u) (1010,01)16;

f) (FFFF)16; n) (516)9; v) (201,12)16;

g) (328)10; o) (1010,01)8; w) (341,02)12; h) (516)8; p) (201,12)8; x) (F001)16.

Carefactoriaucontribuitlautilizareaîntehnicadecalculasistemuluibinar? Elaboraţiunprogramcareevalueazănumerelescriseînbazab,b≤10. Elaboraţiunprogramcareevalueazănumerelescriseînbazab,10≤b≤36.

Page 117: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

117

CERCETEAZĂ!Explorândspaţiuldigitalvirtual,aflațicesistemedenumeraţieutilizaumarilecivilizaţiiantice.Cumauinfluenţatacestesistemedenumeraţiecivilizaţiilemoderne?

3.2. Conversiunea numerelor dintr-un sistem în altulConversiuneanumărului(N)b înechivalentulsăuzecimalseefectueazăconform

formuleidinparagrafulprecedent:

(N )b=cnbn+cn–1b

n–1+...+c1b1+c0b

0+c–1b–1+c–2b

–2+...+c–mb–m.

Conversiuneanumăruluizecimal(N)10înechivalentulsăuînbazabseefec-tueazăconformurmătoarelorreguli:

–seîmpartelabazarespectivăparteaîntreagăşicâturileobţinutedupăfi-ecareîmpărţire,pânăseobţinecâtulzero;rezultatulconversiuniipărţiiîntregiesteconstituitdinresturileobţinute,considerateînordineainversădeapariţie;

–seînmulţeştecubazaparteafracţionară,apoitoatepărţilefracţionareobţi-nutedinprodusulanterior,pânăcândparteafracţionarăaunuiprodusestezerosaupânălaobţinereaunuinumărdecifrefracţionaredorit;rezultatulconversiuniipărţiifracţionareesteconstituitdinpărţileîntregialeproduselor,considerateînordineaapariţiei.

Săanalizămcâtevaexemple.1)Săsetransformenumărulzecimal53,40625înechivalentulsăubinar.53:2=26+1/2;26:2=13+0/2;13:2=6+1/2;6:2=3+0/2;3:2=1+1/2;1:2=0+1/2.

Prinurmare,parteaîntreagăanumăruluibinarvafi110101.0,40625×2=0,8125;0,8125×2=1,625;0,625×2=1,25;0,25×2=0,5;0,5×2=1,0.

Parteafracţionarăanumăruluibinarvafi01101.Prinurmare,

(53,40625)10=(110101,01101)2.

2)Săsetransformenumărul23,7dinsistemulzecimalînsistemulbinar.

23:2=11+1/2;11:2=5+1/2;5:2=2+1/2;

Page 118: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

118

2:2=1+0/2;1:2=0+1/2;

0,7×2=1,4;0,4×2=0,8;0,8×2=1,6;0,6×2=1,2;0,2×2=0,4;0,4×2=0,8;...

Seobservăcăoperaţiapoateficontinuatălainfinit,adicănuexistăoconver-siuneexactăanumăruluianalizat.Prinurmare,

(23,7)10=(10111,101100...)2.

3)Săseefectuezeconversiuneanumărului1996,0625dinsistemulzecimalînsistemuloctal.

1996:8=249+4/8;249:8=31+1/8;31:8=3+7/8;3:8=0+3/8; 0,0625×8=0,5;0,5×8=4.

Prinurmare,

(1996,0625)10=(3714,04)8.

4)Săsetransformenumărul2914,25dinsistemulzecimalînsistemulhexa-zecimal.

2914:16=182+2/16;182:16=11+6/16;11:16=0+11/16;

0,25×16=4.Prinurmare,

(2914,25)10=(B62,4)16.

Întrebări şi exerciţiiÊ Cumseefectueazăconversiuneaunuinumărdintr-unsistemcubazabînsis-

temulzecimal?Ë Transformaţiînsistemulzecimalnumereleceurmează:

a) (100001,01111)2; b) (328,678)9; c) (100,100)16;

Page 119: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

119

d) (10,01)16; g) (1221,1112)3; j) (4231,124)5;

e) (AAA,BBB)16; h) (1321,1312)4; k) (50,505050)6;

f) (EE,00F)16; i) (124,521)7; l) (7777,001)8.

Ì Cumseefectueazăconversiuneaunuinumărzecimal înechivalentulsău înbazab?

Í Transformaţiînsistemulbinarnumerelezecimaleceurmează:

a) 13,889; e) 93,447; i) 58,749;

b) 38,668; f) 70,212; j) 4,345;

c) 53,536; g) 8,347; k) 3,156;

d) 29,261; h) 39,764; l) 91,428. Verificaţirezultateleefectuândconversiuneabinar-zecimală. Transformaţiînsistemuloctalnumerelezecimaleceurmează:

a) 358,932; e) 886,526; i) 795,128;

b) 479,093; f) 971,258; j) 680,895;

c) 591,241; g) 515,914; k) 256,453;

d) 649,113; h) 347,607; l) 838,261. Verificaţirezultateleefectuândconversiuneaoctal-zecimală. Transformaţiînsistemulhexazecimalnumerelezecimaleceurmează:

a) 1424,699; e) 5818,961; i) 4985,995;

b) 3517,315; f) 9336,491; j) 9721,678;

c) 9607,201; g) 3442,722; k) 5292,837;

d) 8974,664; h) 4521,449; l) 2734,592. Verificaţirezultateleefectuândconversiuneahexazecimal-zecimală. Elaboraţiunprogramcaretransformănumerelezecimaleînechivalenteleres-

pectivedinsistemuldenumeraţieînbazab,b<10. Elaboraţiunprogrampentrutransformareanumerelorzecimaleînnumeredin

sistemulînbazab, 10<b≤36.

3.3. Conversiunea din binar în octal, hexazecimal şi inversÎntrucât8=23,conversiuneabinar-octalăşioctal-binarăsepoateface

direct.Oricecifrăoctalăsereprezintăprin3cifrebinare:

0=000; 1=001;

Page 120: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

120

2=010; 5=101;

3=011; 6=110;

4=100; 7=111.

Dacăestedatunnumăroctal,pentruconversiunea lui înbinarsevascriefiecarecifrăoctalăprin3cifrebinare.

Exemple:(247,315)8=(010100111,011001101)2;

(512,07)8=(101001010,000111)2;

(3,146)8=(011,001100110)2.

Dacăesteconsideratunnumărbinar,pentruconversiunealuiînoctalsevorgrupacâte3cifrebinareporninddelapoziţiavirguleisprestângapentruparteaîntreagă,respectivdreaptapentruparteafracţionară,aflândcorespondentulînoc-tal.Pentrucompletareaunuigrupdetreicifrebinare,zerouriledinfaţanumărului,respectivdupăultimacifrăapărţiifracţionare,numodificăsemnificaţianumărului.

Exemple:(11,011101)2=(011,011101)2=(3,35)8;

(10,11011)2=(010,110110)2=(2,66)8;

(1001,01011)2=(001001,010110)2=(11,26)8.

Înmodsimilarseprocedeazăşiîncazulsistemuluihexazecimal,bazacăruiaeste16=24.Oricecifrăhexazecimalăsereprezintăprin4cifrebinare:

0=0000; 8=1000;

1=0001; 9=1001;

2=0010; A=1010;

3=0011; B=1011;

4=0100; C=1100;

5=0101; D=1101;

6=0110; E=1110;

7=0111; F=1111.

Exemple:(6AF3,B2)16=(0110101011110011,10110010)2;

(6F1,3CA)16=(011011110001,001111001010)2;

(11,01101)2=(0011,01101000)2=(3,68)16;

(10001,01011)2=(00010001,01011000)2=(11,58)16.

Page 121: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

121

Întrebări şi exerciţiiÊ Cumseefectueazăconversiuneaoctal-binarăşibinar-octală?Ë Transformaţiînsistemulbinarnumereleoctaleceurmează:

a) 15,006; e) 21,626; i) 42,322;

b) 13,06; f) 6,3415; j) 44,523;

c) 43,15; g) 771,25; k) 32,271;

d) 10,01; h) 12,121; l) 73,536.

Ì Transformaţiînsistemuloctalnumerelebinareceurmează:

a) 1,1; e) 1101,1; i) 10110,001011;

b) 101,10101; f) 1,000001; j) 11111,0010001;

c) 1111,000101; g) 11110001,101; k) 11001,00101;

d) 10101110,1001; h) 0,00001; l) 1011,0001011.

Í Elaboraţiunprogrampentruconversiuneabinar-octalăşioctal-binară. Cumseefectueazăconversiuneahexazecimal-binarăşibinar-hexazecimală? Transformaţiînsistemulbinarnumerelehexazecimaleceurmează:

a) FFF,AAA; e) 3,1AB; i) C,DC1;

b) F,1A; f) AABB,0000F; j) 942,14A;

c) 1,009; g) 81,91A; k) CAA,B;

d) 0,00F; h) 10,01; l) DAD,ABA.

Transformaţiînsistemulhexazecimalnumerelebinareceurmează:

a) 1001011101,01101; e) 1011101,011; i) 1011,0101;

b) 111,01; f) 11,001011101; j) 11001,0110;

c) 1,1; g) 11110,01111; k) 0,00001;

d) 10101110111,00101; h) 111011,0010000; l) 101,01011.

Elaboraţi unprogrampentru conversiuneabinar-hexazecimală şi hexazeci- mal-binară.

Transformaţiînsistemulhexazecimalnumereleoctaleceurmează:

a) 13,146; e) 451,35; i) 644,031;

b) 613,12; f) 12,357; j) 5,4312;

c) 541,723; g) 53,627; k) 675,542;

d) 104,527; h) 572,004; l) 372,271.

Page 122: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

122

Transformaţiînsistemuloctalnumerelehexazecimaleceurmează:

a) AA; e) 15F,6A1; i) BBB;

b) A2B,1F; f) 3,281; j) AF,31B;

c) F,3A; g) 9,AF; k) 2C,ACB;

d) FFFF; h) 3,418F; l) A1B,39E.

Elaboraţiunprogrampentruconversiuneaoctal-hexazecimalăşihexazecimal- octală.

3.4. Operaţii aritmetice în binarOperaţiilearitmeticecunumerelebinaresuntfoartesimple.Reguliledeoperare

însistemulbinarsuntprezentateîntabelele 3.2, 3.3şi3.4.

Tabelul 3.2Adunareabinară

Tabelul 3.3Scădereabinară

Tabelul 3.4Înmulţireabinară

Exemple:1)Sepropuneadunareaînbinaranumerelorzecimale29şi43: (29)10=(11101)2; (43)10=(101011)2; 11101 + 101011 1001000Verificare: (1001000)2=(72)10,rezultatulestecorect,întrucât(29)10+(43)10=

=(72)10. 2)Sepropunescădereaînbinaranumăruluizecimal37dinnumărulzecimal46: (37)10=(100101)2; (46)10=(101110)2; 101110— 100101 1001Verificare:(1001)2=(9)10,rezultatulestecorect,întrucât(46)10–(37)10=(9)10. 3)Sepropuneînmulţireaînbinaranumerelorzecimale3,25şi7,125: (3,25)10=(11,01)2; (7,125)10=(111,001)2;

0+0=00+1=11+0=11+1=10

0–0=01–0=11–1=010–1=1

00=001=01 0=01 1=1

Page 123: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

123

11010011 11 11 1000110 00100 11 11 11 01

Verificare:(10111,00101)2=(23,15625)10,rezultatulestecorect,întrucât(3,25)10× ×(7,125)10=(23,15625)10.

4)Sepropuneîmpărţireaînbinaranumăruluizecimal211lanumărulze-cimal3:

(211)10=(11010011)2; (3)10=(11)2;

11,01 × 111,001 1101 0000 0000 1101 1101110110111,00101

Deci11010011:11=1000110,rest1.Verificare: (1000110)2=(70)10,rezultatulestecorect,întrucât(211)10:(3)10=

=(70)10+(1)10. Menţionămcăatâtlaînmulţire,câtşilaîmpărţire,fixareavirguleicaredesparte

parteaîntreagădeceafracţionarăsefacelafelcaşiînsistemuldenumeraţiezecimal.

Întrebări şi exerciţiiÊ Cumseexecutăoperaţiilearitmeticeînsistemulbinar?Ë Calculaţiînsistemulbinar:

a) 34+251; f) 1996–51; k) 0,5×0,5;

b) 68–7; g) 2015+1995; l) 1:0,5;

c) 1512+620; h) 28,5+0,75; m) 40:0,125;

d) 14 ×8; i) 63,125–4,125; n) 32:2;

e) 63:3; j) 3,0625×2,125; o) 32:16;

Page 124: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

124

p) 401×8; r) 401×4; t) 401×2;

q) 32:8; s) 32:4; u) 933:3.

Numereleanalizatesuntscriseînsistemulzecimal.ÌElaboraţiunprogrampentruadunareaşiscădereanumerelorbinare.Í Elaboraţiunprogrampentruînmulţireaşiîmpărţireanumerelorbinare.

3.5. Reprezentarea numerelor naturale în calculatorCalculatoareleactualeutilizeazăsistemuldenumeraţiebinar.Reprezentarea

numerelornaturaleN=0,1,2,...serealizeazăpeunnumărfixdepoziţiibinare,deregulă,8,16,32sau64(fig. 3.1).

Înpoziţiile0,1,...,n–1suntînscrisecifrelebinarealenumăruluinaturalrepre-zentatînsistemuldenumeraţiebinar.Aliniereanumerelorbinareserealizeazăladreapta,eventualelezerourinesemnificativesuntplasateînfaţanumăruluibinar.

Dreptexemplu,înfigura 3.2esteredatăreprezentareanumăruluinatural

1039=(10000001111)2peunnumărde16poziţiibinare.

Fig. 3.1. Reprezentarea numerelor naturale pe n poziţii binare

Fig. 3.2. Reprezentarea numărului natural 1039 pe 16 poziţii binare

Numărulmaximcepoatefireprezentatpenpoziţiibinare(fig. 3.3 ) este

1·20+1·21+1·22+...+1·2n–1=2n–1.

Prinurmare,penpoziţiibinarepotfireprezentatenumerenaturaledinin-tervalul[0;2n–1].

Page 125: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

125

Fig. 3.3. Reprezentarea numărului natural maxim pe n poziţii binare

Întrebări şi exerciţiiÊ Cumsereprezintănumerelenaturaleîncalculator?Ë Reprezentaţinumerelenaturale3,112,191,204,255pe8poziţiibinare.Ì Reprezentaţinumerelenaturale3,255,1024,2048,4096,65535pe16poziţiibinare.Í Calculaţinumerelenaturalemaximecepotfireprezentatepe4,8,12,16,24,

32şi64depoziţiibinare. CERCETEAZĂ!Aflațipecâtepoziţiibinaresuntreprezentatenumerelenaturale

înechipamenteledigitalecucarelucrați.

3.6. Reprezentarea numerelor întregiÎn calculatornu existăposibilitatea introducerii directe a semnelor+ şi –,

ataşatenumerelorpozitiveşinegative.Dinacestmotiv,reprezentareasemnuluinumăruluixsefacecuajutoruluneicifrebinare,denumităcifră-semn,aşezatăînpoziţian–1(fig. 3.4):

Fig. 3.4. Reprezentarea numerelor întregi pe n poziţii binare

Numerelecusemnsereprezintăcelmaidesnuînsistemulbinardirect,ciîntr-unsistembinarcodificatcareoferăanumiteavantajeînexecutareaoperaţiiloraritmeticecunumerealgebrice.Dinacestpunctdevedere,secunosctreimoduridereprezentare,denumitecoduribinarepentrunumerealgebrice.

Coduldirect(codulmărimeşisemn).Scriereaunuinumărînacestcodestefoartesimplă:încifra-semnsescrie0,dacănumărulestepozitiv,şi1,dacăelestenegativ;înparteadevaloareseînscrienumărulînsistemulbinarobişnuit.

Dreptexemplu,înfigura 3.5,p.126suntredatereprezentărilenumerelor+52şi–52pe8poziţiibinare.

Page 126: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

126

Fig. 3.5. Reprezentarea numerelor +52 şi –52 în cod direct

Încoduldirect,penpoziţiibinaresepotreprezentanumereîntregipozitiveşinegativeN,astfelîncât:

–(2n–1–1)≤ N ≤ (2n–1–1).

Menţionămcă în coduldirectexistădouăreprezentăribinarepentrunumă- rul0:00...0şi10...0.Coduldirectesterarutilizatîncalculatoare,deoarecenecesităalgoritmicomplicaţideexecutareaoperaţiiloraritmeticeşiverificarearezultatelor.

Codulinvers.Pentrunumerelepozitivescriereaîncodinversesteidenticăcuceadincoduldirect.Dacănumărulestenegativ,elsescriemaiîntâicaşicumarfipozitiv,apoiseinverseazăfiecarecifrăbinară,adică1devine0şi0devine1.

În figura 3.6suntredatereprezentărilenumerelor+52şi–52încodinverspe8poziţiibinare.

Fig. 3.6. Reprezentarea numerelor +52 şi –52 în cod invers

SepoateuşorconstatacăintervalulnumerelorîntregiNcaresepotreprezentaîncodinversesteacelaşicaşipentrureprezentareaîncoddirect,iarnumărul0aredouăreprezentăribinare:00...0şi11...1.

Codulcomplementar.Înacestcodnumerelepozitiveauaceeaşireprezentarecaşiîncoduldirectşicodulinvers.Dacănumărulestenegativ,elsescriemaiîntâiîncodulinvers,apoiseadună1lacifraceamaipuţinsemnificativă(poziţiabinară0).

Page 127: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

127

Fig. 3.7. Reprezentarea numerelor +52 şi –52 în cod complementar

Dreptexemplu,înfigura 3.7suntredatereprezentărilenumerelor+52şi–52încodcomplementar.

Codulcomplementaresteutilizatînmareamajoritateacalculatoarelordatorităfacilităţilorpecareleoferălaefectuareaoperaţiiloraritmeticeşiuşurinţeicucaresefaceverificarearezultatelor.Înacestcodpenpoziţiibinarepotfireprezentatenumereîntregidinintervalul[–2n–1,2n–1–1].

Întrebări şi exerciţiiÊ Cumpotfireprezentateîncalculatornumereleîntregi?Explicaţicumsescriu

numerelenegativeîncoddirect,codinversşicodcomplementar.Ë Reprezentaţiîncoddirectpe8poziţiibinare:

a) +12; d) –12; g) +21;

b) –21; e) –64; h) –68;

c) +68; f) +105; i) –112.

Ì Reprezentaţiîncodinverspe8poziţiibinare:

a) +10; d) –10; g) +65;

b) –65; e) +101; h) –101;

c) +112; f) –112; i) –105.

Í Reprezentaţiîncodcomplementarpe8poziţiibinare:

a) +40; c) +109; e) –40;

b) +27; d) –16; f) –27;

Page 128: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

128

g) –109; i) +16; k) +111;

h) –101; j) +101; l) –111.

Elaboraţiunprogramcareafişeazăpeecranreprezentărileîncoddirect,codinvers şi cod complementaralenumerelor întregi introdusede la tastaturăpentrun=8,16şi32.

Cumsereprezintănumărul0încoddirect,codinversşicodcomplementar?Câtereprezentăriarenumărul0încodurileexaminate?

Determinaţinumărulmaximcepoatefireprezentatpenpoziţiibinareîncoddirect,codinversşicodcomplementar.

CERCETEAZĂ!Aflațipecâtepoziţii şicecoduribinarepentrunumerealgebricesuntutilizatepentrureprezentarenumereleîntregiînechipamenteledigitalecucarelucrați.

3.7. Reprezentarea numerelor realeNumerelerealesereprezintăîncalculatorsubformăfracţionarăprininterme-

diulreprezentăriiînvirgulăfixăsauînvirgulămobilă(virgulăflotantă).Reprezentareaînvirgulăfixă.Înacestcazseconsiderăcătoatenumerele

auvirgulaplasatăînaceeaşipoziţie,chiardacăacestlucrunucorespundefor-meiexternedereprezentare.Procesuldetranslataredinformaexternăînformainternăşiinversserealizeazăcuajutorulunorcoeficienţidescalarealeşiînmodcorespunzătordeprogramator.

Deobicei,seconsiderăcăvirgulaesteplasatăimediatdupăpoziţiacifrei-semn,cazîncarenumerelesuntfracţiipure(fig. 3.8).

Fig. 3.8. Reprezentarea numerelor reale în virgulă fixă

Virgulaînsăşinuestematerializatăfizicîncalculator.Dinfigura 3.8rezultăcăpe npoziţiibinarepotfireprezentatenumerereale,valoareaabsolutăacăroraeste

0,00...0≤ |x| ≤0,11…1

sau,însistemulzecimal,0≤ |x| ≤1–2–(n–1).

Page 129: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

129

Caşiîncazulnumerelorîntregi,numerelesubunitarecusemnpotfireprezen-tate,cuunelemodificări,încoddirect,codinverssaucodcomplementar.

Dreptexemplu,înfigura 3.9esteredatăreprezentareanumerelor+0,9375=+15/16=(0,1111)2,–0,9375=–15/16=(–0,1111)2

învirgulăfixăpe8poziţiibinareîncoddirect.

Fig. 3.9. Reprezentarea numerelor +0,9375 şi –0,9375 în virgulă fixă în cod direct

Avantajulprincipalalreprezentăriiînvirgulăfixăconstăînfaptulcăoperaţi-ilearitmeticecunumererealepotfiefectuatededispozitivularitmeticdestinatoperăriicunumereîntregi.

Reprezentareaînvirgulămobilă.Operaţiileînvirgulăfixăsuntcomodepentrucircuiteleomogenededate,cândtoatenumerelerealesuntsubunitare.Însăaceastăreprezentareesteineficientăîncalculeleştiinţifice,undeselucreazăsimultancunumerefoartemarişinumerefoartemicialcărorordindemărimeadeseaesteimprevizibil.Pentruastfeldeproblemeseutilizeazăreprezentareaînvirgulămobilă.

Numerelereprezentateînvirgulămobilăpotfinumereîntregisaufracţionareacărorvaloareestedatăderelaţia:

x = M × bE,

undebestevaloareabazei,Mesteunnumărsubunitarnumitmantisă,iarE este unexponent.Încalculatoareleactualeseutilizeazăb=2sau16.

Numărulreprezentatînvirgulămobilăestenormalizatdacăprimacifrădupăvirgulăamantiseiestediferitădezero.

Exemple:1)Numărul23sevaexprimaînvirgulămobilăastfel:

23=(10111)2=0,10111×25,

undeM=0,10111;b=2;E=5.

Page 130: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

130

2)Numărul4,9375sescrieînvirgulămobilăînfelulurmător:

4,9375=(100,1111)2=0,1001111×23,

M=0,1001111;b=2;E=3.3)Numărul–0,375sescrieînvirgulămobilădupăcumurmează:

–0,375=(–0,011)2=–0,11×2–1,

M=–0,11;b=2;E=–1.Seobservăcăpoziţiarealăavirguleiîncadrulnumăruluidepindedevaloarea

exponentului,adicăvirgulaestemobilă(flotantă).Existămaimultevariantedereprezentareamantiseişiaexponentuluipen

poziţiibinare.Înfigura 3.10esteredatăreprezentareaînvirgulămobilăînfor-matulexponent-mantisă.

Fig. 3.10. Reprezentarea în virgulă mobilă, formatul exponent-mantisă

Fig. 3.11. Reprezentarea în virgulă mobilă, formatul caracteristică-mantisă

Numărul poziţiilor binarenE alocate exponentului determinădomeniul demărimealnumerelorcarepotfireprezentate,întimpcenumărulbiţilorpentrumantisănM determinăpreciziadeexprimareanumărului.Încalculatoareleac-tualenE =6...15şinM =24...64,faptcepermitereprezentareanumerelorîntr-undomeniufoartelargalordinuluidemărime.

În figura 3.11esteredatăreprezentareanumerelorînformatulcaracteris-tică-mantisă.

CaracteristicaCconstituieoformădeexprimareaexponentuluiEşisedeter-minădinrelaţia

C = E + K.

Page 131: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

131

ÎncalculatoarelepersonaleK = 2nc –1 – 1,

undenC estenumăruldepoziţiibinarealocatecaracteristicii.Înaceastărepre-zentarecaracteristica,spredeosebiredeexponent,nupoateluavalorinegative,faptcesimplificăstructuradispozitiveloraritmetice.

Înparticular,pentrun=8,caracteristicaestecalculatăastfel:

C = E + 127,

indicândpracticsemnulexponentului:–dacăC ≥127,atunciE ≥0;–dacăC<127,atunciE<0.În tabelul 3.5 suntprezentate formatelecaracteristică-mantisă,utilizate în

majoritateacalculatoarelorpersonale.Tabelul 3.5

Formatelecaracteristică-mantisăîncalculatoarelepersonale

Denumireaformatului n nC nM

Preciziamantisei,cifre

zecimaleDomeniuldemărime

al numerelor

Simplăprecizie 32 8 23 6sau7 10–37...1038

Dublăprecizie 64 11 52 15sau16 10–307...10308

Precizieextinsă 80 15 64 19 10–4932...104932

Întrucât,conformcondiţieidenormalizare,primacifrăamantiseiîntotdeaunaestecifra1,acestbitpoatesăsereprezinte(săocupeopoziţie)saunuînmemoriacalculatorului.Încazulîncarenusereprezintă,acestbitsenumeştebitascuns. Accentuămcătehnicabituluiascunssereferădoarlareprezentareanumerelorînmemoriacalculatorului,nuşilaoperaţiileefectuatededispozitivularitmetic.

Întrebări şi exerciţiiÊ Careestedeosebireadintrereprezentareaînvirgulăfixăşireprezentareaîn

virgulămobilă?Ë Reprezentaţiînvirgulăfixăpe8poziţiibinareîncoddirect:

a) +0,875; e) –0,875; i) +0,125;

b) –0,125; f) +0,3; j) –0,3;

c) +0,4; g) –0,4; k) +0,15625;

d) –0,15625; h) +0,21875; l) –0,21875.

Ì Caresuntavantajeleşidezavantajelereprezentăriiînvirgulăfixă?Í Cumsereprezintănumerelerealeînvirgulămobilă?Carenumerereprezentate

învirgulămobilărespectăcondiţiadenormalizare? Cumseefectueazănormalizareanumerelorreprezentateînvirgulămobilă?

Page 132: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

132

Exprimaţiînvirgulămobilăurmătoarelenumere:

a) +1,5; e) –1,5; i) –0,0625;

b) +0,0625; f) +3,25; j) +2,7;

c) –3,25; g) –32,87; k) –2,7;

d) –6,25; h) +6,25; l) –0,147.

Decedepindepreciziaşidomeniuldemărimealenumerelorreprezentateînvirgulămobilă?

Careestedeosebireadintreformateleexponent-mantisăşicaracteristică-mantisă?Cumsecalculeazăcaracteristicilenumerelorreprezentateînvirgulămobilă?

Calculaţicaracteristicilenumerelordinexerciţiul6.SeconsiderăcănC=8. Explicaţitermenul„bitascuns”.Caresuntavantajeleacesteireprezentări?

CERCETEAZĂ!Aflați cumsereprezintănumerelenaturale, întregişi realeîncalculatorulșiechipamenteledigitale la/cucare lucraţidvs.?Determinaţinumăruldepoziţiibinarealocatefiecăreireprezentări.

Page 133: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

133

ALGEBRA BOOLEANĂ

4.1. Variabile şi expresii logiceAlgebra booleanăsaualgebralogicăesteuncompartimentalmatematiciiîn

carelegilegândirii–obiectuldestudiuallogiciiclasice–suntstudiatecuajutorulmetodelorsimbolice.DenumireaaceastaafostdatăînonoareamatematicianuluienglezGeorgeBoole,careînlucrareaThe Laws of Thought („Legilegândirii”),publicatăîn1853,apusbazeleacesteialgebre.Mulţianialgebrabooleanăafostconsideratădreptosimplăcuriozitatematematică,fărăaisegăsioutilizareîn-tr-unanumitdomeniualştiinţeloraplicate.Eaarevenitînactualitateodatăcuapariţiacentralelortelefoniceautomateşiacalculatoarelornumerice.

Dinpunctdevedereformal,algebrabooleanăpoatefidefinităprintr-omulţi-meaelementelor0,1,omulţimeaoperatorilorelementari‾,&,∨şiprintr-unsetdepostulate.Prinurmare,înalgebrabooleanăoricevariabilănupoateaveadecâtunadintreceledouăvaloriposibile,notatesimbolicprin0şi1,altevalorineavândniciosemnificaţie.

Variabilelealgebreibooleenesenoteazăprinx, y, z, x1,x2,...cusaufărăindicii,iarelementele0şi1senumescconstantelogice.

Operatoriielementariaialgebreibooleeneauurmătoareledenumiri:‾–negaţia(inversia,operaţialogicăNU);&–conjuncţia(produsullogic,operaţialogicăŞI);∨–disjuncţia(sumalogică,operaţialogicăSAU).Operatorii elementari se definesc cu ajutorul unor tabele speciale, numite

tabeledeadevăr.Tabelul de adevăr este un tabel care include toate combinaţiile posibile ale valorilor variabilelor faţă de care este definit operatorul şi rezul-tatul operaţiei respective.În figura 4.1 suntprezentate tabeleledeadevăralenegaţiei, conjuncţiei şi

disjuncţiei.

Capitolul 4

x0 11 0

x y x & y0 0 00 1 01 0 01 1 1

x y x ∨ y0 0 00 1 11 0 11 1 1

Fig. 4.1. Tabelele de adevăr ale operatorilor elementari

Page 134: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

134

Menţionămcăînalgebrabooleanănegaţiaseindicăprintr-olinieorizontalăamplasatădeasupravariabileirespective.

Întrucâtvariabilaxpoateaveanumaivaloarea0sau1,tabeluldeadevăralnegaţieiconţinedouărânduri.Încazurileconjuncţieişidisjuncţieitabeleledeadevărconţinpatrurânduri,câteunrândpentrufiecaredincombinaţiileposibi- le00,01,10şi11alevariabilelorxşiy.

Variabileleşiconstantelelogice,reunitecuajutoruloperatorilor‾,&şi∨for-meazăexpresiilogice,deexemplu:

1) x & y ∨ z; 4) 1 & x ∨ y;

2) x ∨ y & z; 5) 0∨ x ∨ y.

3) & y ∨ z; 6) 1 ∨0.

Valorile expresiilor logice pot fi calculateutilizând tabelele de adevăr aleoperatorilorelementari.Pentruevaluareaexpresiilorsestabileşteurmătoareaprioritateaoperaţiilorlogice:

1)negaţia;2)conjuncţia;3)disjuncţia.Deexemplu,înexpresia

x ∨ y&zmaiîntâiseexecutăoperaţia&,iardupăaceeaoperaţia.Înexpresia

x&y ∨ seexecutănegaţia,încontinuareconjuncţiaşi,însfârşit,disjuncţia.

Ordineaexecutăriioperaţiilorlogicepoatefischimbatăcuajutorulparantezelor„(”şi„)”.Evident,înprimulrând,seexecutăoperaţiiledintreparanteze.

Deexemplu,încazulexpresieilogicex ∨ y & ∨ z

seexecutănegaţia,conjuncţiaşidisjuncţiilerespective,iarîncazulexpresiei(x ∨ y) &( ∨ z)

dupănegaţiesevorexecutadisjuncţiileşi,peurmă,conjuncţia.Pentruasistematizacalculele,evaluareaexpresiilor logiceseefectueazăîn

tabelespeciale,numitetabeledeadevăraleexpresiilorlogice.Tabelul de adevăr al expresiei logice include toate combinaţiile posi-bile ale valorilor variabilelor din expresia examinată şi rezultatele operaţiilor logice în ordinea calculării lor.

Deexemplu,înfigura 4.2estereprezentattabeluldeadevăralexpresiei,&y ∨ z,

iarînfigura 4.3–tabeluldeadevăralexpresieix&y ∨ z.

Page 135: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

135

Fig. 4.3. Tabelul de adevăr al expresiei logice x&y ∨ z

Menţionămcă,pentruasimplificanotaţiile,seadmitecasimboluloperatorului&săfieomisdinexpresiilelogice.Deexemplu,expresiilelogice

&y ∨ z,(x ∨ y) &( ∨ z)

potfiscriseşiînforma:y ∨ z,

(x ∨ y)( ∨ z).

Întrebări şi exerciţiiÊ Cevaloripoateaveaovariabilălogică?Ë Caresuntoperatoriielementariaialgebreibooleeneşicumsedefinescei?Ì Memorizaţitabeleledeadevăralenegaţiei,conjuncţieişidisjuncţiei.Í Cumseformeazăexpresiilelogice?Careesteprioritateaoperaţiilorlogice? Explicaţirolulparantezelordincomponenţaexpresiilorlogice.

x y z & y & y ∨z000 1 0 0001 1 0 1010 1 1 1011 1 1 1100 0 0 0101 0 0 1110 0 0 01 1 1 0 0 1

x y z x & y x & y ∨z x & y ∨z000 0 0 1001 0 1 0010 0 0 1011 0 1 0100 0 0 1101 0 1 0110 1 1 01 1 1 1 1 0

Fig. 4.2. Tabelul de adevăr al expresiei logice &y ∨ z

Page 136: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

136

Alcătuiţitabeleledeadevăraleurmătoarelorexpresiilogice:

a) y; h) y;

b) ∨ y; i) xyz;

c) x ∨ y; j) x ∨ y ∨ z;

d) ; k) xy ∨ z;

e) x; l) x (y ∨ z);

f) xy; m) ∨ y ∨ z;

g) ∨x; n) (y ∨ z).

Elaboraţiunprogramcareintroducevalorile logicealevariabilelorx, y, zşiafişeazăvalorileuneiadintreexpresiileceurmează:

a) ; f) x ∨ y ∨ z;

b) xy; g) xy ∨ z;

c) x ∨ y; h) x ∨ y ∨ z;

d) (x ∨ y) z; i) x ∨ xy;

e) xy ∨ z; j) ∨ y ∨ z.

Elaboraţiunprogramcareafişeazătabeleledeadevăraleconjuncţieişidisjun-cţiei.

Elaboraţiunalgoritmrepetitivcareformeazătoatecombinaţiileposibilealevalorilorvariabilelorx, yşiz.Afişaţicombinaţiilerespectivepeecran.

Pentrufiecaredintreexpresiilelogiceceurmeazăelaboraţicâteunprogramcarealcătuieştetabeluldeadevărrespectiv:

a) x ∨ ; f) y;

b) x ; g) x ∨ y ∨ z;

c) x ∨ y; h) xyz;

d) xy; i) (x ∨ y)( ∨ y);

e) ∨ y; j) (x ∨ y)(x ∨ y).

CREEAZĂ!Colectațiinformaţiilenecesareşiscriețiuneseudespreviaţa,studiileşicarieraprofesionalăamatematicianuluienglezGeorge Boole.

DESCOPERĂ!Spredeosebiredelogicabinară,adicălogicaceopereazădoarcudouăvaloriposibile,existăşiextensiunialeacesteia,careopereazăcutreişichiarcumaimultevalori.Explorânddiversesursedeinformaţii,aflațiacesteextensiunişidomeniileîncareelesuntutilizate.

Page 137: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

137

4.2. Funcţii logiceNoţiuneadefuncţielogicăsaufuncţiebooleanăsedefineşteînacelaşimod

caşiîncazulalgebreiclasice.Vomnotaprinx1,x2,...,xn ungruparbitrardevariabilebooleene,unden=1,2,

3,....Întrucâtfiecarevariabilăbooleanăpoateaveanumaivalorile0sau1,numă-rultuturorcombinaţiilorposibilealevalorilorvariabilelorx1,x2,...,xn estede2

n.Fireşte,pentrun=1avem2combinaţii(0şi1);pentrun=2sunt22=4com-

binaţii(00,01,10şi11);pentrun=3există23=8combinaţii(000,001,010,011,100,101,110şi111)etc.

Funcţia logică de n variabile y = f (x1, x2, ..., xn) este o aplicaţie care pune în corespondenţă fiecărei combinaţii de valori ale variabilelor x1, x2, ..., xn valoarea 0 sau 1 a variabilei y. Variabilelex1,x2,...,xn senumescvariabile independentesauargumente,

iarvariabilay –variabilă dependentăsaufuncţiedeargumentex1,x2,...,xn.Prinurmare,domeniuldedefiniţiealfuncţieiy=f (x1,x2,...,xn)estemulţi-

meatuturorcombinaţiilorposibile00...000...1

...1 1 ... 1

alevalorilorargumentelorx1,x2,...,xn,întotal2n combinaţii,iardomeniulva-

lorilorfuncţieilogiceestemulţimea0,1.Caşiîncazulalgebreiclasice,funcţiilelogicepotfidefiniteprintabele,for-

muleşimetode grafice.Tabelul de adevăr al funcţiei logice y = f (x1, x2, ..., xn) este un tabel care include toate combinaţiile posibile ale valorilor argumentelor x1, x2, ..., xn şi valorile corespunzătoare ale variabilei dependente y.Deexemplu,înfigura 4.4esteprezentattabeluldeadevăraluneifuncţiilogice

de3variabile.

Fig. 4.4. Tabelul de adevăr al unei funcţii logice de 3 variabile

x1 x2 x3 y000 1001 0010 1011 0100 1101 0110 01 1 1 0

Page 138: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

138

Tabelul include23 = 8 rânduri şi are2 coloane: primapentru combinaţiileposibilealevalorilorargumentelorx1,x2,x3 şiadouapentruvalorilecorespunză-toarealevariabileidependentey.Conformtabeluluianalizat,combinaţieix1 =0, x2 =0,x3 =0îicorespundevaloareay= f (0,0,0)=1;combinaţieix1 =0,x2 =0, x3 =1–valoareay=f(0,0,1)=0etc.

Definireafuncţieilogiceprinformulesefaceatribuindvariabileidepen-denteyvalorileexpresiilorlogicececonţinargumentelex1,x2,...,xn.

De exemplu, 1) y=x; 3) y= 1x2 ∨ x3; 2) y=x1x2; 4) y=x1x2 ∨ x3.Natural,cunoscândformulauneifuncţiilogice,poateficalculattabeluleide

adevăr.Deexemplu,tabeluldeadevăralfuncţieiy=x1x2 ∨ x3

vaficelprezentatînfigura 4.4.Casăneconvingemdeacestfapt,esuficientsăcalculămtabeluldeadevăralexpresieilogice

x1x2 ∨ x3

prezentat,prinaltenotaţii,înfigura 4.3dinparagraful4.1.Existămaimultemetodegraficededefinire afuncţiilorlogice.Aceste

metodesebazeazăpediagrameleutilizateînteoriamulţimilorşisestudiazăîncursurileavansatedeinformatică.

Întrebări şi exerciţiiÊ Formulaţidefiniţianoţiuniifuncţie logică.Ë Caresuntdomeniuldedefiniţieşidomeniuldevalorialeuneifuncţiilogice?Ì Princemetodepoatefidefinităofuncţielogicădenvariabile?Í Cumsealcătuieştetabeluldeadevăraluneifuncţiidenvariabile?Câterânduri

conţineacesttabel? Cumpoatefialcătuittabeluldeadevăralunei funcţii logiceatuncicândse

cunoaşteformulaei? Funcţialogicăde3variabiley = f (x1, x2, x3) estedefinităprintabeluldeadevăr

dinfigura 4.4.Numiţicombinaţiilevalorilorargumentelorx1,x2,x3pentrucarefuncţiadatăarevaloareay=1.Numiţicombinaţiilerespectivepentruvaloareafuncţieiy=0.

Alcătuiţitabeleledeadevăraleurmătoarelorfuncţiilogice:

a) y = x; f) y = x1 ∨ x2;

b) y = ; g) y = x1x2x3;

c) y = x1x2; h) y = x1(x2 ∨ 3);

d) y = x1 ∨ x2; i) y = 1 ∨ x2 x3;

e) y = x1x2; j) y = x1 ∨ x2 x3.

Page 139: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

139

Elaboraţiunprogramcareintroducevalorilelogicealevariabilelorx1,x2,x3,x4 şiafişeazăvalorileuneiadintrefuncţiileceurmează:

a) y = x1x2 ∨ x3x4; g) y = x1 2 ∨ x3 4; b) y = (x1 ∨ x2)(x3 ∨ x4); h) y = 1x2 ∨ 3x4; c) y = x1x2x3x4; i) y = 1 2 ∨ 3 4; d) y = x1 ∨ x2 ∨ x3 ∨ x4; j) y = x1x2x3x4 ∨ 2x3x4;

e) y = x1x2 ∨ x3x4; k) y = x1 ∨ x2 x3 ∨ x4; f) y = (x1 ∨ x2)(x3 ∨ x4); l) y = x1 ∨ x2 ∨ x3 ∨ 1 2 3 4. Elaboraţiunprogramcarealcătuieştetabeluldeadevăraluneiadintrefuncţiile

ceurmează: a) y = x; h) y = 1 2; b) y = ; i) y = x1x2x3; c) y = x1x2; j) y = 1 ∨ 2 ∨ 3;

d) y = x1 ∨ x2; k) y = x1 ∨ x2 ∨ x3; e) y = x1x2; l) y = 1 2 3; f) y = 1 ∨ 2; m) y = x1 ∨ x2 ∨ 1 2 3 4; g) y = x1 ∨ x2; n) y = x1(x2 ∨ 3 ∨ 4).

4.3. Funcţii logice frecvent utilizateSăadmitemnvariabileindependentex1,x2,...,xn.Apareîntrebarea,câtefun-

cţiilogicedenvariabileexistăînalgebrabooleană?Numărulfuncţiilorlogiceposibilepoatefideterminatprinurmătoareleraţionamente.

Întrucâtoricefuncţielogicăpoatefidefinităcuajutorultabeluluideadevăr,numă-rulfuncţiilorposibiledenvariabilecoincidecunumărultabelelordistinctedeadevăr.

Pentruadefiniofuncţielogică,încoloanay atabeluluideadevărseindicăvalorilefuncţiei–0sau1pentrufiecaredintrecele2ncombinaţiialevalorilorargumentelor.Întrucâttabeluldeadevărare2n rânduri,există

m=22n

funcţiilogicedenvariabile.Funcţiilerespectivesenoteazăprinyj , j = 0,1,...,m –1.Deexemplu,încazulîncaren=1,existăm=221

=22=4funcţiilogice,repre-zentateînfigura 4.5.

Fig. 4.5. Funcţii logice de o singură variabilă

x y0 y1 y2 y3

0 0 1 0 11 0 0 1 1

Page 140: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

140

Evident,y0=f (x)=0;y1=f (x)= ;y2=f (x)=x;y3=f (x)=1.

Funcţiiley0şiy3senumescfuncţia constanta 0şi,respectiv,constanta 1. Funcţiay1 este funcţia logică NUsaunegaţia,iarfuncţiay2senumeştefuncţia de repetare.

Pentrun=2existăm=222

=24 =16

funcţiilogice,reprezentateînfigura 4.6.

Fig. 4.6. Funcţii logice de două variabile

Funcţiiley0şiy15suntfuncţiiledejacunoscute,constanta0şi,respectiv,con-stanta1:

y0=f (x1, x2)=0;y15=f (x1, x2)=1.

Funcţiay8poatefiscrisăînforma:y8=f (x1, x2)=x1x2.

Înmodfiresc,funcţiay8vaaveadenumireafuncţia logică ŞIsauconjuncţia.Funcţiay14poatefiscrisăînforma:

y14=f (x1, x2)=x1 ∨ x2.Prinurmare,funcţiay14vaaveadenumireafuncţia logică SAUsaudisjuncţia.Funcţiile logice NU, ŞI, SAU, induse de operatorii elementari, respectiv, ‾, &, ∨ se numesc funcţii logice elementare.Din figura 4.6seobservăcă

y1=x1 ∨ x2.FuncţiadatăsenumeştefuncţialogicăSAU-NU.Înmodsimilar,funcţiay7poatefiexprimatăînforma

y7=f (x1, x2)=x1x2.FuncţiaîncauzăsenumeştefuncţialogicăŞI-NU.Funcţia

y9=f (x1, x2)= 1 2 ∨ x1x2

arevaloarea1numaicândx1 = x2=0saux1 = x2=1.Aceastăfuncţiesenumeştefuncţia logică COINCIDENŢĂsauechivalenţăşisenoteazăprinsimbolul„≡”.

x1 x2 y0 y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12 y13 y14 y15

00 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 101 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 101 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 11 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

Page 141: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

141

Analizândtabeluldinfigura 4.6,maiobservămcăy3=f (x1, x2)= 1(negaţiavariabileix1);y12=f (x1, x2)=x1 (repetareavariabileix1);y5=f (x1, x2)= 2 (negaţiavariabileix2);y10=f (x1, x2)=x2 (repetareavariabileix2).

Pentruafimaiuşormemorizate, în figura 4.7 suntprezentate tabeleledeadevăralefuncţiilorlogiceNU, ŞI, SAU, ŞI-NU, SAU-NUşiCOINCIDENŢĂ.

Fig. 4.7. Funcţiile logice frecvent utilizate

Înmodsimilarpotfistudiatefuncţiilelogicede3variabile,numărulcăroraestedem=223

=28=256;funcţiilede4variabile,numărulcăroraestedem= =224

=216=65536etc.Seobservăcă,deşiestefinit,numărulfuncţiilorboole-eneposibileesteenorm.S-ademonstrat însăcăoricefuncţielogicăden variabile,n ≥ 2,poatefiexprimatăprintr-oformulăcareincludenumaioperatoriielementariŻ,&,∨.Aceastăproprietatefaciliteazărealizareateh-nicăadispozitivelordestinatecalculăriifuncţiilorlogicecuunnumărarbitrardeargumente.

Întrebări şi exerciţiiÊ Determinaţinumărulfuncţiilorlogicede5şide6variabile.Ë Numiţifuncţiilelogiceelementareşialcătuiţitabelelerespectivedeadevăr.Ì MemorizaţitabeleledeadevăralefuncţiilorlogicefrecventutilizateNU,ŞI,

SAU,ŞI-NU,SAU-NUşiCOINCIDENŢĂ.Í Elaboraţiunprogramcarevaafişapeecrantabeluldeadevăraluneiadintre

funcţiilelogicey0,y1,y2,y3de2variabile. Elaboraţiunprogramcarevaafişapeecrantabeluldeadevăraluneiadintre

funcţiilelogiceyj den variabile.

NUx0 11 0

ŞIx1 x2 x1x2

0 0 00 1 01 0 01 1 1

ŞI-NUx1 x2 x1x2

0 0 10 1 11 0 11 1 0

SAUx1 x2 x1 ∨x2

0 0 00 1 11 0 11 1 1

COINCIDENŢĂx1 x2 x1 ∨x2

0 0 10 1 01 0 01 1 1

SAU-NUx1 x2 x1 ∨x2

0 0 10 1 01 0 01 1 0

Page 142: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

142

CIRCUITE LOGICE

5.1. Circuite logice elementareCircuitul logicesteundispozitivdestinatcalculăriifuncţiilorlogice.Pentru

arealizacircuitelelogice,enecesarcavalorilebinare0şi1aleargumentelorşifuncţiilorrespectivesăfiereprezentateprinvalorileunormărimifizice,deexemplu:presiune,temperatură,tensiunesaucurentelectric,fluxluminosetc.Înfuncţiedemărimilefiziceutilizate,deosebimdispozitive logicemecanice,pneumatice,hidraulice,electromecanice,electronice,opticeetc.Îndispozitivelehidrauliceşipneumaticevalorilelogice0sau1potfireprezentateprinvalorilemicişi,respectiv,marialepresiuniifluidului,îndispozitiveleelectromecaniceşielectronice–prinprezenţasauabsenţacurentuluielectric,prinniveluridetensiuneetc.

Pentruoînţelegereclarăaprincipiilordefuncţionareadispozitivelorlogice,vomstudiamai întâicircuitelecucontacte.Componenteledebazăaleacestorcircuitesuntelementele de comutare–contacteleelectricenormaldeschiseşicontacteleelectricenormalînchise.

Încazulcontactelor normal deschise,circuitulelectricestedeschisdacăcontactelenusuntacţionateşi–închislaacţionarealor.Încazulcontactelor normal închise,circuitulelectricesteînchisdacăcontactelenusuntacţionateşi–deschislaacţionarealor(fig. 5.1).

Fig. 5.1. Contacte normal deschise şi normal închise

Deexemplu,contacteleunuiîntrerupătorelectricuzualsuntcontactenormaldeschise,iarcontactelebutonuluidepauzăalmagnetofonuluisuntcontactenor-malînchise.

Încircuitelecucontacte,valorilelogicealeargumentelorsuntreprezentateprinstărilecontactelorelectricerespective.Valoriilogice1îicorespundestarea„contactul este acţionat”,iarvaloriilogice0îicorespundestarea„contactul este neacţionat”.

Capitolul 5

Neacţionate Acţionate

Contacte normaldeschise

Contacte normalînchise

Page 143: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

143

Circuitulelectriccarerealizeazăfuncţia logică NUşisimbolulutilizatsuntprezentateînfigura 5.2.

Fig. 5.2. Circuit cu contacte pentru realizarea funcţiei logice NU (a) şi simbolul utilizat (b)

Argumentulxestematerializatprincontactulnormalînchis,iarvalorilevaria-bileidependenteysuntreprezentateprinstărilebeculuielectric:stins(valoarealogică0)sauaprins(valoarealogică1).Seobservăcăbeculvafiaprins(y=1),dacăcontactulnormalînchisnuesteacţionat(x=0).

Funcţia logică ŞIserealizeazăprinconectareaînserieacontactelorelectrice.CircuitulelectriccarerealizeazăfuncţiaŞIdedouăvariabileşisimbolulutilizatsuntprezentateînfigura 5.3.

Fig. 5.3. Circuit cu contacte pentru realizarea funcţiei logice ŞI (a) şi simbolul utilizat (b)

Variabilelex1şix2suntmaterializateprinceledouăcontactenormaldeschise,iarvalorilevariabileiyprinbec.Seobservăcăbeculvafiaprins(y=1),numaidacăambelecontactenormaldeschisesuntacţionate(x1=1 şix2=1).

Funcţia logică SAUserealizeazăprinconectareaînparalelacontactelorelectrice.Circuitulrespectivesteprezentatînfigura 5.4,p.144.

Page 144: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

144

Seconstatăcăbeculvafiaprins(y=1),dacăcelpuţinunuldintreceledouăcontactenormaldeschiseesteacţionat( x1=1 saux2=1).

Întrucâtvitezadeînchidere-deschidereacontactelorelectriceestefoartemică,încalculatoarelemodernevalorile0, 1 suntreprezentateprinniveluridetensiune,iarcaelementdecomutareseutilizeazătranzistorul.

Tranzistorulesteundispozitivelectronicformatînsaupesuprafaţaunuimonocristalsemiconductor.Tehnologiileavansatepermitfabricareaa106–107detranzistoarepeosuprafaţăde1cm2almonocristalului.

În regimde comutaţie, tranzistorul poatefi considerat caun întrerupătorobişnuit,careîntr-ostareconducecurentul(esteînchis),iarînalta–nu(estedes-chis).Spredeosebireînsădeîntrerupătorulobişnuit,închidereasaudeschidereatranzistoruluiserealizeazăcuajutorulcurentuluielectric.

Existămaimultetipuridetranzistoare.Înfigura 5.5esteprezentattranzisto-ruln-p-n(abreviereasereferălastructurainternăatranzistorului)şischemeleechivalenteînregimdecomutaţie.

Fig. 5.4. Circuite cu contacte pentru realizarea funcţiei logice SAU (a) şi simbolul utilizat (b)

Fig. 5.5. Tranzistorul n-p-n

Page 145: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

145

Tranzistoruln-p-naretreiterminale:emitorulE,bazaBşicolectorulC. În regimdecomutaţie,emitorulşicolectorulpotficonsideraţidreptcontactecareseînchidsausedeschidcuajutoruluneitensiuniaplicatelabază.Menţionămcă tranzistoarelemodernepermit efectuareaa106–109 închideri-deschideripesecundă.Caşiîncazulcontactelorelectricestudiatemaisus,utilizareadiferitortipuridetranzistoareşiconectarealorînseriesauînparalelpermiterealizareafuncţiilorlogiceNU,ŞI,SAU.

Circuitele destinate calculării funcţiilor logice frecvent utilizate se numesc circuite logice elementare sau porţi logice. Simbolurileutilizatepentrunotareaporţilorlogicesuntreprezentateînfigura 5.6.

Fig. 5.6. Simbolurile porţilor logice

Ecunoscutfaptulcăoricefuncţielogicăpoatefiexprimatăprintr-oformulăcareincludenumaisimbolurileoperatorilorelementari‾,&,∨.Prin urmare,oricefuncţielogicăcuunnumărarbitrardeargumentepoatefimaterializatăprinconectareaporţilorlogiceNU, ŞI, SAU.Deexemplu,funcţia

y = x1x2 ∨ 2x3

poatefirealizatăcuajutorulurmătoarelorporţilogice:–opoartăNUpentrucalcularea 2;–douăporţilogiceŞIpentrucalculareaconjuncţiilorx1x2şi 2x3;–opoartăSAUpentrucalculareadisjuncţieix1x2 ∨ 2x;Schemacircuituluilogicpentrucalculareafuncţieirespectiveesteprezentată

înfigura 5.7,p.146.

Întrebări şi exerciţiiÊ Cumpotfireprezentatevalorilebinare0şi1?Ë Cumfuncţioneazăcontactelenormaldeschiseşicontactelenormalînchise?Ì Careestereprezentareavalorilorbinare0şi1încircuitelecucontacte?Í EXPERIMENTEAZĂ!Utilizândtrusadinlaboratoruldefizică,montaţicir-

Page 146: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

146

cuiteledin figurile 5.2,5.3şi5.4.Verificaţitabeleledeadevăralefuncţiilorrealizatedecircuiteleîncauză.

CumserealizeazăfuncţiileNU,ŞI,SAUîncazulcircuitelorcucontacteelectrice? Careesterolulelementelordecomutarelarealizareacircuitelorlogice? Careesterolultranzistoruluiîncalculatoarelemoderne? Memorizaţisimbolurileporţilorlogice.Explicaţicumseutilizeazăporţilelogice

larealizareafuncţiilorlogicearbitrare. PROIECTEAZĂ!UtilizândporţileNU,ŞI,SAU, elaboraţicircuitelelogicepentru

calculareaurmătoarelorfuncţii:

a) y = x1x2x3; i) y = x1x2 ∨ x2x3;

b) y = x1 ∨ x2 ∨ x3; j) y = (x1 ∨ x2) (x2 ∨ x3);

c) y = 1x2x3; k) y = x1x2 ∨ 1x3 ∨ x3x4;

d) y = 1 ∨ x2 ∨ x3; l) y = 1x2 ∨ 1x3 ∨ x2x3;

e) y = x1x2 ∨ x3x4; m) y = 1x2 ∨ x1 2;

f) y = (x1 ∨ x2) (x3 ∨ x4); n) y = x1x2 ∨ 1 2;

g) y = x1x2; o) y = x1(x2 ∨ x3 ∨ x4);

h) y = x1 ∨ x2; p) y = x1 ∨ x2x3x4.

CERCETEAZĂ!Releulelectromagneticesteundispozitivcucaresecomandăînchidereasaudeschidereacontactelorelectrice.Contactelerespectivesuntacţionatedeunelectromagnet.CumpoatefiutilizatreleulpentrurealizareafuncţiilorlogiceNU,ŞI,SAU?

EXPERIMENTEAZĂ!Cupieseledintrusadinlaboratoruldefizicăasamblaţiunreleuelectromagneticşiverificaţisoluţiilepropusededvs.

EXPLOREAZĂ!Reprezentândvalorile binareale variabilelorde ieşireprinprezenţa(valoarea1)sauabsenţa(valoarea0)afluidului,elaboraţicircuitelehidraulicepentrurealizareafuncţiilorlogiceNU,ŞI,SAU.Montaţiinstalaţiilerespectiveutilizândrobineteleşifurtunuriledintrusadinlaboratoruldechimie.Verificaţitabeleledeadevăralefuncţiilorlogicerealizate.

Fig. 5.7. Circuitul logic pentru realizarea funcţiei y = x1x2 ∨ ˇ2x3

Page 147: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

147

5.2. Clasificarea circuitelor logiceCircuitelelogiceseclasificăîndouăcategorii:circuitecombinaţionaleşicircuite

secvenţiale.Într-uncircuit combinaţionalvalorilevariabilelordeieşiresuntdetermi-

nate în oricemoment de combinaţia valorilor variabilelor de intrare conformfuncţiilorlogicealecircuitului.Într-uncircuit secvenţialvalorilevariabilelordeieşiredepindnunumaidecombinaţiilevalorilorvariabilelordeintrare,darşideconsecutivitateaaplicăriilor.Altfelspus,circuitelecombinaţionalereprezintăcircuitelogicelipsitedeelementedememorie,iarcircuitelesecvenţialeincludşielementeledememoriebinară.Prinurmare,uncircuitcombinaţionalrealizeazăoprelucrarenumericăainformaţiei,carepoatefiînîntregimeexprimatăprintr-ungrupdefuncţiilogiceîncarenuintervineparametrultimp.

Schema-blocaunuicircuitcombinaţionalesteprezentatăînfigura 5.8.

Fig. 5.8. Schema-bloc a unui circuit logic combinaţional: a – detaliat; b – generalizat

Circuitularenvariabiledeintrare:X=< x1,x2,...,xn >,şimvariabiledeieşi-re:Y=< y1,y2,...,ym >.Conexiuniledestinatetransmiteriivalorilorunuigrupdevariabilesereprezintăprinliniiduble.Dacăenecesar,număruldevariabileseindicălângăobarăcareîntretaieliniadublăagrupuluidevariabile.Deexemplu,înfigura 5.8 bseindicăcăgrupulXincludenvariabile,iargrupulY–mvariabile.

Dinpunctuldevederealteorieiinformaţiei,circuitulcombinaţionalreprezintăunconvertordecod:laintrărileXseaplicăcombinaţiileadmisedeprimulcod,dincaresefaceconversiunea,iarlaieşirileYaparcombinaţiilecorespunzătoareînceldealdoileacod,încaresefaceconversiunea.

Deexemplu,primulcodpoateficodulEBCDIC,iaraldoileacodulASCII.

5.3. SumatorulUnadintreprincipalele sarcini aleunui calculator înmomentulprelucrării

informaţiei constă înefectuareaoperaţiiloraritmeticeelementareşi, înspecial,adunareaşiscăderea.Dispozitiveleîncareaulocacesteoperaţiiaulabazăcircuitecuajutorulcăroraseefectueazăadunarea,respectivscădereaadouăcifrebinare.

Page 148: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

148

Semisumatorulesteuncircuitcombinaţionaldestinatadunăriiadouăcifrebinare.Tabeluldeadevărcarepuneînevidenţăfuncţionareaunuisemisumatorrezultădinreguladeadunareadouăcifrebinareşiesteprezentatînfigura 5.9. Aiciaşibreprezintăceledouăcifrebinarecareseadună,s–cifra-sumăaranguluirespectiv,iart–cifradetransportcătrerangulurmător.

Fig. 5.9. Tabelul de adevăr pentru adunarea a două cifre binare

Pentruaelaboraoschemăposibilăasemisumatorului,exprimămfuncţiiledeieşiresşit:

s = b ∨ a ;t = ab.

Schemacarerealizeazăfuncţiiles,tşisimbolulutilizatsuntprezentateînfigu- ra 5.10.

Fig. 5.10. Schema semisumatorului (1) şi simbolul utilizat (2)

Săluămdouănumerebinare

A=an–1 an–2 ... aj ... a0 şi

B=bn–1 bn–2 ... bj ... b0,

undeajşibjreprezintăcifrelebinaredinrangul(poziţia)j.Laînsumareacifrelorajşibjdinranguljtrebuiesăseiaînconsiderareşicifradetransporttj–1delarangulinferiorj–1:

a b s t0 0 0 00 1 1 01 0 1 01 1 0 1

Page 149: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

149

tj–1 an–1 an–2 ... aj ... a0 + bn–1 bn–2 ... bj ... b0.

Seobţineastfeluncircuitcombinaţionalcarecalculeazăsumatj–1+aj+bj,denumitsumatorelementar.

Sumatorulelementarpoatefirealizatprinconectareaîncascadăadouăsemi-sumatoareSS1şiSS2 (fig. 5.11).

SemisumatorulSS1calculeazăsuma(aj+bj),iarsemisumatorulSS2însumeazătransportultj–1cusuma(aj+bj)calculatădeprimulsemisumator.Transportultj cătrerangulsuperiorj+1secalculeazădepoartalogicăSAU,carereuneştetran-sporturileintermediaredelaieşirilerespectivealesemisumatoarelorSS1şiSS2.

SumanumerelorbinareAşiBsecalculeazăcuajutorulunuicircuitcombi-naţionaldenumitsumator.Un sumatorpoatefi realizatprin conectareaan sumatoareelementare(fig. 5.12,p.150).

SumatorulelementarSM0corespunzătorcifreiceleimaipuţinsemnificativepoatefiînlocuitcuunsemisumator,deoarecepentruaceastăpoziţienuexistăuntransportdelarangulprecedent.TransportuldelaieşireasumatoruluiSMn–1 al ranguluicelmaisemnificativestefolositpentruaindicadepăşireacapacităţiisumatoruluidenbiţi.

Dinanalizafigurilor 5.10,5.11şi5.12rezultăcăundispozitivcomplex–su-matoruldenbiţi,esterealizatprinreunireaaunordispozitivemultmaisimple,adicăansumatoareelementare.Fiecaresumatorelementar,larândullui,esterealizatprinreunireaacâtedouăsemisumatoareşiopoartălogicăSAU.

Metodadeelaborareadispozitivelor complexe (deexemplu, sumatorul)prinreunireamaimultordispozitiveidenticemaisimple(sumatorulelementar)poartădenumireademetodă de proiectare ierarhică.Conformacesteimetode,com-ponentelecalculatoruluisecaracterizeazăprinnivelurideierarhie,deexemplu:

nivelul 1–tranzistoare;nivelul 2–porţilogice;nivelul 3–semisumatoare,sumatoareelementareetc.;nivelul 4–sumatoare,scăzătoareetc.;nivelul 5–unităţiaritmetice,unităţidecomandăetc.

Fig. 5.11. Schema sumatorului elementar (1) şi simbolul utilizat (2)

Page 150: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

150

Componenteledeunnivelierarhicinferiorsuntutilizateîncalitatede„cubuşoa-re”elementarepentrurealizareacomponentelordeunnivelierarhicsuperior.

Teoretic,dispozitiveleunuicalculatornumericpotfielaborateşifărăaplicareametodeideproiectare ierarhică.Deexemplu, în cazul sumatoruluielementar,utilizareasemisumatoruluinuesteobligatorie.Esuficientsăalcătuimtabeluldeadevăralsumatoruluielementar,săexprimămfuncţiiledeieşireprinformuleşisăreunimporţilelogicerespective.

Încazulnivelurilor ierarhicesuperioare,neaplicareametodeideproiectareierarhicăfaceimposibilăelaborareadispozitivelorcomplexe.Deexemplu,încazulunuisumatordenbiţi,tabelulrespectivdeadevărarconţine22nrânduri.Pentrun =16obţinem22·16=232 ≈109rânduri.Evident,formulelefuncţiilordeieşirealesumatoruluide16biţipracticnumaipotfiscrise.Prinurmare,suntemnevoiţisăaplicămmetodadeproiectareierarhicăşisărealizămsumatorulprintr-oreuniredensumatoareelementare.

Fig. 5.12. Schema sumatorului (1) şi simbolul utilizat (2)

Page 151: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

151

Aplicândmetodadeproiectareierarhică,într-unmodsimilarpotfielaboratecircuitelecombinaţionaledestinatescăderiinumerelorbinare:semiscăzătorul,scăzătorul elementarşiscăzătorul.

Întrebări şi exerciţiiÊ Careestedestinaţiasemisumatorului?Darasumatoruluielementar?Şiînfine

asumatoruluidenbiţi?Ë CREEAZĂ!Alcătuiţitabeluldeadevăralsumatoruluielementar.Tabelulva

conţinecincicoloniţe:treipentruintrărileaj,bj,tj–1şidouăpentruieşirilesj,tj .Ì Elaboraţi unprogram care simulează funcţionarea sumatorului elementar.

Cifrelebinareaj,bj şicifradetransporttj–1delarangulinferiorsecitescdelatastatură,iarcifra-sumăsjşicifradetransporttjcătrerangulsuperiorseafişeazăpeecran.

Í Explicaţiesenţametodeideproiectareierarhicăadispozitivelorunuicalcu-latornumeric.Esteoareobligatorieaplicareaacesteimetode?Argumentaţirăspunsuldvs.

CâteporţilogiceNU,ŞI,SAUvaconţineunsumatorde16biţi?Darde32debiţi?

PROIECTEAZĂ!Semiscăzătorulesteuncircuitcombinaţionaldestinatscăde-riiadouăcifrebinare.Circuitulrespectivareintrărilea,bşiieşiriled,i.Printermenuldseînţelegediferenţaa–b,iarprintermenuli–împrumutuldelacifraderangimediatsuperior.Alcătuiţitabeluldeadevărşielaboraţischemasemiscăzătorului.

PROIECTEAZĂ!Scăzătorul elementaresteuncircuitcombinaţionalcapabildeacalculadiferenţadjşiîmprumutulij cătrerangulimediatsuperior,dacăseintroduclaintraredescăzutulaj,scăzătorulbjşiîmprumutulij–1delarangulanterior.Aplicândmetodadeproiectareierarhică,elaboraţischemascăzătoruluielementar.

PROIECTEAZĂ!Aplicândmetodadeproiectareierarhică,elaboraţischemaunuiscăzătordenbiţi.

CâteporţilogiceNU,ŞI,SAUvaconţineunscăzătorde16biţi?Darde32debiţi? ANALIZEAZĂ!Esteoareobligatorieaplicareametodeideproiectareierarhică

încazulelaborăriiunuiscăzătordenbiţi?Argumentaţirăspunsuldvs.

5.4. Circuite combinaţionale frecvent utilizateCircuitelecombinaţionalefrecventutilizatesuntprezentateînfigura 5.13,p.152.Sumatorulesteuncircuitcombinaţionaldestinatadunăriiadouănumere

binare.Tabeluldeadevărşischemasumatoruluiaufoststudiateînparagrafulprecedent.

ComparatorulesteuncircuitcombinaţionalcarecomparănumerelebinareAşiB,indicândprinceletreiieşiriunadintresituaţiileposibile:A < B,A > B sauA=B.

Page 152: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

152

Codificatorulesteuncircuitcombinaţionalcareefectueazăconversiuneame-sajelors1,s2,...,snîncuvintelebinaredincodulrespectiv.Seconsiderăcăfiecaredintremesajelesiestereprezentatprinvalorilex1 =0,..., xi =1,...,xn =0aplicatelaintrareacodificatorului,iarcuvântuldecod–prinvariabileledeieşirey1,y2,...,ym.

Deexemplu,variabilelex1,x2,x3,...potreprezentastareatastelor<A>,<B>,<C>,...aletastaturii.CodificatorulrespectivvafurnizalaieşirecuvântuldecodASCIIcorespunzătortasteiacţionate.

Decodificatorulesteuncircuitcombinaţionalcaregenereazăsemnalullogic1 peoieşiredistinctăpentrufiecarecombinaţieavalorilorvariabilelordeintrare.Cualtecuvinte,decodificatorulefectueazăoperaţiainversăaunuicodificator.

Decodificatoarelesuntutilizatepentruadeterminaoperaţiilepecaretrebuiesăleexecuteprocesorul,pentruselectareaunităţilordeintrare-ieşire,sintetizareasimboluriloretc.

Multiplexorulesteuncircuitcombinaţionaldestinatselectăriifluxurilordedate.În figura 5.13eesteprezentatunmultiplexorcaretransmitelaieşirebiţiinumăruluibinarA (u=0)sauB (u=1).Încalculatoarelemodernemultiplexoareleseutilizeazăpentrutransferulinformaţieidelamaimultesurselaunsingurdestinatar.

DemultiplexoruldistribuiefluxuldedatedelaintrareaXlaunadintreieşi-rileY (u=0)sauZ (u=1).Dreptexempluamintimtransferulinformaţieidelaosingurăsursălamaimulţidestinatari.

Întrebări şi exerciţiiÊ Explicaţidestinaţia circuitelor combinaţionale frecventutilizate: sumatorul,

comparatorul,codificatorul,decodificatorul,multiplexorulşidemultiplexorul.Ë Alcătuiţitabeluldeadevăralunuicomparatorde2biţi.

Fig. 5.13. Circuite combinaţionale frecvent utilizate:a – sumatorul; b – comparatorul; c – codificatorul; d – decodificatorul;

e – multiplexorul; f – demultiplexorul

Page 153: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

153

Ì Câteintrărişicâteieşiripoateaveauncodificator?Câteintrărişicâteieşiripoateaveaundecodificator?

Í CREEAZĂ!PepanouldecomandăalimprimanteisuntmontatebutoaneleON LINE (funcţionare sub controlulunităţii centrale),OFF LINE (funcţionareautonomă),LINE FEED (avansdelinie)şiFORM FEED (avansdepagină).Alcătuiţitabeluldeadevăralcodificatoruluicarefurnizeazălaieşireurmătoa-relecombinaţiibinare:

00 – ON LINE;

01 – OFF LINE;

10 – LINE FEED;

11–FORM FEED.

CREEAZĂ!Pepanouldecomandăalimprimanteisuntmontatebecurile(diodeleluminiscente)indicatoareREADY(disponibilă),PAPER(lipsadehârtie),TEST (regimulde testare)şiLOAD (regimulde încărcarea informaţiei).Alcătuiţitabeluldeadevăraldecodificatoruluicareaprindebecurileîncauză.Stărilerespectivesuntcodificateprinurmătoarelecombinaţiibinare:

00 – READY;

01 – PAPER;

10 – TEST;

11 – LOAD.

CREEAZĂ!Tastaturacalculatoruluiincludetastelefuncţionale<F1>,<F2>,...,<F12>.Alcătuiţitabeluldeadevăralcodificatoruluicarevafurnizalaieşirenumărulbinarcorespunzătortasteifuncţionaleacţionate.

CREEAZĂ!Unităţiledeintrare-ieşirealeunuicalculatorauurmătoareleadrese:

0000–tastatura;

0001–vizualizatorul;

0010–imprimantamecanică;

0011–imprimantacujetdecerneală;

0100–imprimantalaser;

0101–unitateadediscflexibilA;

0110–unitateadediscflexibilB;

0111–unitateadediscrigidC;

1000–unitateadediscrigidD. Alcătuiţitabeluldeadevăraldecodificatoruluicarevaselectaunitateaindicată

deadresarespectivă. CREEAZĂ!Operaţiile aritmetice aleunui calculator ipotetic sunt codificate

dupăcumurmează:

Page 154: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

154

adunarea –000;

scăderea –001;

înmulţirea –010;

împărţirea –011;

compararea –100. Alcătuiţitabeluldeadevăraldecodificatoruluioperaţiiloraritmetice. CREEAZĂ!Alcătuiţitabeluldeadevăralmultiplexoruluicu2liniideintrare.

5.5. Bistabilul RSEcunoscutfaptulcăîntr-uncircuitsecvenţialvalorilevariabilelordeieşire

depindnunumaidecombinaţiilevalorilorvariabilelordeintrare,darşidecon-secutivitatea aplicării lor.Cualtecuvinte,circuitulsecvenţialmemorizeazăinformaţiireferitoarelacombinaţiileaplicatelaintrăriînmomenteleprecedente.Acestlucruesteposibildatorităfaptuluicăcircuitelesecvenţialesuntalcătuitedincircuitecombinaţionaleşielementedememorie binară.

Elementul de memorie binară este un circuit cu două stări distincte, destinat pentru a păstra o informaţie dintr-un singur bit. Circuitul respectiv are denumirea de bistabil.În figura 5.14esteprezentatăschemacircuituluibistabildebazărealizatcu

porţilogiceSAU-NU,denumitbistabil asincron RS.

Fig. 5.14. Schema bistabilului asincron RS (a) şi simbolul utilizat (b)

CircuitularedouăintrărinotatecuRşiS şidouăieşirinotatecuQşi . Se observăcăsemnaleledeieşireQşi suntaplicatelaintrărileporţilorSAU-NU. Conexiunilerespectivesuntnumitereacţii.Tocmaidatorităacestorconexiuni,circuituldataredouăstăridistincteşi,prinurmare,asigurămemorareaunuibitdeinformaţie.

Page 155: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

155

Într-adevăr,admitemcăsemnaleledeintrareR=S=0,iarieşirileQ=1, =0.Datorităreacţiei,valoareaQ=1impuneieşirea =0.Larândulei,totdatorităreacţiei,valoarea =0confirmăieşirea =1.Exactlafel,încazulîncareieşirileQ=0, =1,datorităreacţiei,valoarea =1impuneieşirea =0.Prinurmare,valoriledeintrareR=S=0nuschimbăstareabistabilului,acestapăstrândcifrabinarămemorată.

S-aconvenitcastăriiQ=1, =0să-icorespundăcifrabinară1,iarstăriiQ=0, =1cifrabinară0.IeşireaQestenumităieşiredirectăsauieşireadevărată,iar

ieşirea –ieşireinversăsauieşirenegată.StareabistabiluluiesteindicatădeieşireadirectăQ.

SăexaminămcazulîncareR=0,S=1.Presupunemcăbistabilulseaflăînstarea0,adicăQ=0şi =1.Înacestcaz,valoareaS=1vaimpune =0,care,larândulei,prinreacţie,vaasiguraQ=1.Prinurmare,bistabilultreceînstarea1 (Q=1, =0).Aceastăstare,dupăcums-astabilitanterior,sevapăstraşidupătrecereasemnaluluiSde lavaloarea1 lavaloarea0.IntrareaS,careasigurăfixareabistabiluluiînstarea1,poartădenumireadeintraredesetare.

Înmodsimilarsepoateconstatacăîncazulîncarebistabilulseaflăînsta-rea1(Q=1, =0),iarS=0,şiR =1,bistabilulvatreceînstarea0(Q=0, =1).AceastăstaresevapăstraşidupătrecereasemnaluluiRdelavaloarea1

lavaloarea0.IntrareaR,careasigurăstabilireabistabiluluiînstarea0,poartădenumireadeintrarederesetare.

CombinaţiadeintrareR=1şiS =1impunevaloriledeieşireQ=0şi = 0.ValorilordeieşireQ= = 0nulecorespundeniciostaredistinctăabistabilului.Prinurmare,pentrubistabilulRScombinaţiadeintrareR=S =1esteocom-binaţieinterzisă.

Regimuriledefuncţionareabistabiluluiîncauzăsunttotalizateîntabelul 5.1.Tabelul 5.1

RegimuriledefuncţionareabistabiluluiasincronRS

Adjectivulasincron dindenumirea bistabiluluiRS concretizeazămodul deinfluenţăasemnalelordecomandăRşiSasuprastăriibistabilului.Dinanalizacircuituluiprezentatînfigura 5.14rezultăcăsemnaleledecomandă,aplicatelaintrărileRşiSînmomentearbitrare,potschimbastareabistabilului.

Circuitele secvenţiale în care starea circuitului poate fi schimbată de semnalele de comandă în momente arbitrare de timp se numesc circuite asincrone.

IntrăriR S

Regimde funcţionare Ieşirea Q

0 0 păstrarebit bitmemorat0 1 setare 11 0 resetare 01 1 interzis –

Page 156: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

156

Uncalculatormodernconţinezecidemiidebistabile.Schimbareastăriilorînmomentearbitrare,greudecontrolat,poateficauzaunoreroridefuncţionare.Pen-truaevitaofuncţionaregreşită,s-aconvenitcaaceastăcomportareacircuitelorsecvenţialesăfiedeterminatăînbazavalorilorsemnalelordecomandăaplicatela intrări înmomentediscrete,binedeterminateîntimp.Acestemomentesuntindicatecuajutorulunorimpulsurispeciale,numitesemnale de sincronizare.

Circuitele secvenţiale în care starea circuitului poate fi schimbată de semnalele de comandă numai în momentele indicate de semnalele de sincronizare se numesc circuite sincrone.Deobicei,semnaluldesincronizaresenoteazăprinliteraC(dinenglezăClock

„ceas”)şiestefurnizatdeundispozitivspecial,numitceas de sistem.În figura 5.15esteprezentatăschemaunuibistabilsincrondenumitbistabil

sincron RS.

Fig. 5.15. Schema bistabilului sincron RS (a) şi simbolul utilizat (b)

SchemadatăincludebistabilulasincronRS (fig. 5.14)şidouăporţilogiceŞI carepermitaplicareasemnalelordecomandălaintrărilebistabiluluiasincronnumaiîncazulîncaresemnaluldesincronizareCarevaloarea1.

Întrebări şi exerciţiiÊ Princesedeosebesccircuitelecombinaţionaleşicircuitelesecvenţiale?Ë Careestedestinaţiacircuituluibistabil?Ì CumfuncţioneazăuncircuitbistabilcuporţilogiceSAU-NU?Careestedesti-

naţiareacţiilor?Í ExplicaţiregimuriledefuncţionareabistabiluluiasincronRS.Dececombinaţia

R=S=1nupoatefiaplicatălaintrărilebistabiluluiexaminat? STUDIUDECAZ.Princesedeosebesccircuitelesecvenţialeasincroneşicir-

cuitelesecvenţialesincrone? ExplicaţicumfuncţioneazăbistabilulsincronRS.Careestedestinaţiaporţilor

logiceŞIdincomponenţaacestuibistabil?

Page 157: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

157

În figura 5.16esteprezentatăschemacircuituluibistabildebazărealizatcuporţilogiceŞI-NU,denumitbistabil asincron .

Fig. 5.16. Schema bistabilului asincron (a) şi simbolul utilizat (b)

Circuitulareurmătoareleregimuridefuncţionare: –păstrarebit( =1, =1); –setare( =1, =0); –resetare( =0, =1). Explicaţicumfuncţioneazăbistabilulexaminat.Dececombinaţiadeintrare

=0, =0esteocombinaţieinterzisă? ELABOREAZĂ!Utilizândbistabilulasincron ,elaboraţischemabistabilului

sincron . PROIECTEAZĂ!Desenaţischemadetaliată(lanivelulporţilorlogiceŞI,SAU-

NU)abistabiluluisincronRS.Pentruaceastadecalcaţischemelerespectivedinfigurile 5.14aşi5.15a.

PROIECTEAZĂ!Desenaţischemadetaliată(lanivelulporţilorlogiceŞI, ŞI-NU) abistabiluluisincron .

5.6. Circuite secvenţiale frecvent utilizateRegistrul (fig. 5.17a, p. 158) esteundispozitivnumericdestinatpăstrării

temporareaunuinumărbinar,D=dn–1 ...d1d0.

Registrulesteconstituitdinbistabilelacaresuntataşatecircuitecombinaţio-nalecepermitînscrierea,citireasautransferulinformaţiei.ÎnscriereainformaţieiînregistruseefectueazăprinaplicarealaintrareaW (Write„înscrie”)aimpulsuluirespectiv.Deoarecefiecarebistabilpoatememoraunsingurbit,capacitatea n aunuiregistruestedatădenumărulbistabilelor.

Înanumiteaplicaţii,deexemplu:înmulţireaşiîmpărţireanumerelorbinare,scriereasaucitireadatelorpedisc,transmitereadatelorprinfireletelefoniceetc.,aparenecesitateadeplasăriiînstângasauîndreaptaainformaţieimemorateîntr-un

Page 158: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

158

registru.Înacestscopseutilizeazăregistrele de deplasare (fig. 5.17 b, c).Succesiuneastărilorunuiregistrudedeplasaredeladreaptasprestânga

estedatăînfigura 5.18.

Fig. 5.17. Circuite secvenţiale frecvent utilizate:a – registru; b – registru de deplasare de la dreapta spre stânga; c – registru

de deplasare de la stînga spre dreapta; d – numărător direct; e – numărător invers

Fig. 5.18. Succesiunea stărilor unui registru de deplasarede la dreapta spre stânga

Seconsiderăcăstareainiţialăaregistruluieste0101, iar impulsurilesuntaplicatelaintrareaCînmomenteledetimpt1,t2,t3etc.Fireşte,registrulîncauzăcalculeazăprodusulD × 2.

Înmodsimilar,unregistrudedeplasaredelastângaspredreaptavacalculacâtulD:2.

Numărătoarelesuntcircuitesecvenţialecareînregistreazănumăruldeim-pulsuriaplicatlaintrare.Numărătoareleseclasificădupăurmătoarelecriterii:

–moduldecodificareainformaţiei(binar,binar-zecimaletc.);–moduldemodificareastărilornumărătorului(numărătoaredirecte,inverse

şireversibile).

Timpul d3d2d1d0

iniţialt1

t2

t3

t4

t5

...

010110100100100000000000

...

Page 159: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

159

Îngeneral,numărătoarelesuntrealizateprinasociereacircuitelorbistabilecucircuitecombinaţionalecaredeterminămodulcorectîncarenumărătoareleurmeazăsă-şimodificestarealafiecarenouimpulssositlaintrare.

Un numărător binarînregistreazăsuccesiuneaimpulsuriloraplicatelaintrareînsistemuldenumeraţiebinar.Capacitatea de numărareanumărătoruluibinardepindedenumărulbistabilelor.Considerândpentrufiecarenumărostaredistinc-tă,rezultăcăacestapoatenumăraîngama0la2n–1,nfiindnumărulbistabilelor.

În figura 5.17d esteprezentatnumărătorul binar direct,iarînfigura 5.19 tabelulsuccesiuniistărilorunuinumărătorbinardirectde3biţi.

Numărătoarelecareîşischimbăstareaconformtabeluluidinfigura 5.19sunt

Fig. 5.19. Succesiunea stărilor unui numărător binar direct de trei biţi

denumitedirecte,deoarececonţinutulnumărătoruluicreştecuounitate,lafiecarenouimpulssositlaintrarea+1.Dacăîntr-unnumărătorseintroduceiniţialunnumărşilafiecareimpulsaplicatlaintrarea–1conţinutulsăuscadecuounitate,seobţineunnumărător invers (fig. 5.17e).

Întrebări şi exerciţiiÊ Careestedestinaţiaregistrului?Decedepindecapacitateaunuiregistru?Ë ANALIZEAZĂ!Înregistruldedeplasaredeladreaptasprestânga(fig. 5.17b)

esteîncărcatnumărulbinar1001.Carevaficonţinutulregistruluidupăapli-carealaintrareaCaunuiimpuls?Daradouăimpulsuri?

Ì Înregistruldedeplasaredelastângaspredreaptaesteîncărcatunuldintreurmătoarelecuvintebinare:

a) 00000; d) 00100;

b) 10000; e) 00010;

c) 01000; f) 00001;

Timpul d2d1d0

iniţialt1

t2

t3

t4

t5

t6t7

t8

t9...

000001010011100101110111000001

...

Page 160: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

160

g) 10001; i) 01100;

h) 01010; j) 00110.

CarevaficonţinutulregistruluidupăaplicarealaintrareaCadouăimpulsuriconsecutive?

Í PROGRAMEAZĂ!Elaboraţi unprogram care simulează funcţionareaunuiregistrudedeplasaredelastângaspredreaptadenbiţi.

STUDIUDECAZ.Careestedestinaţianumărătoarelor?Cumseschimbăstărileunuinumărătordirect?Daraleunuinumărătorinvers?

ANALIZEAZĂ!Unnumărătordirectde4biţiseaflăiniţialînunadintreur-mătoarelestări:

a) 0000; f) 1010;

b) 0010; g) 1100;

c) 0100; h) 1111;

d) 1000; i) 0101;

e) 1001; j) 0110.

Carevafistareanumărătoruluidupăaplicareaa5impulsurideintrare?Dara8impulsuri?

ANALIZEAZĂ!Unnumărătorinversde4biţiseaflăînstareainiţială1001.Carevafistareanumărătoruluidupăaplicareaamimpulsurideintrare?Numă- rulmpoateaveavalorile1,4,5,8,11,17.

PROGRAMEAZĂ!Elaboraţi unprogram care simulează funcţionareaunuinumărătordirectdenbiţi.

5.7. Generatoare de impulsuriImpulsurileseutilizeazăînechipamentelenumericepentruaasigurafuncţio-

nareasecvenţialăaacestora.Deobicei,generatoareledeimpulsuriserealizeazăpebazaporţilorlogiceşiaelementelordeîntârziere.

Elementulde întârziere reprezintăun circuit electronic care realizează funcţialogicăderepetarey=x,însăsemnaluldeieşireyrepetăsemnaluldein-trarexcuoîntârzierede∆unităţidetimp.

Dincursuldefizicăecunoscutfaptulcăvitezadepropagareasemnalelorestefinită.Prinurmare,oriceconductorpoatefitratatcaunelementdeîntârziere.Pentruamări„inertitatea”circuitelorelectroniceşipentruarealizaîntârzierisemnificative,încomponenţalorseincludcondensatoareşirezistoare.Înacestcazîntârzierea∆ estedeterminatădecapacitateaşirezistenţacomponentelorrespective.

În figura 5.20suntprezentatesimbolulşidiagrameleîntimpaleelementuluideîntârziere.

Page 161: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

161

Schemaunuigeneratordeimpulsuriperiodicerealizatpebazaunuiele-mentdeîntârziereşiaporţiilogiceŞI-NUesteprezentatăînfigura 5.21.Înstareainiţialăx=0şiy=1,iarlaieşireaelementuluideîntârzieresemenţinevaloarealogică1.Cândlaintrareseaplicăsemnaluldepornirex=1,ieşireadevineegalăcu0(fig. 5.22).Încontinuare,valoarealogică0,dupăoîntârziere∆,esteaplicatălaadouaintrareaporţiilogiceŞI-NU.Astfel,ieşireaydevineegalăcu1.Valoarealogică1,dupăoîntârziere∆,vafidinnouaplicatălaintrareaporţiilogiceŞI-NU,impunândlaieşirevaloareay=0etc.

Fig. 5.22. Diagramele în timp ale generatorului de impulsuri periodice

Fig. 5.21. Schema (a) şi simbolul generatorului de impulsuri periodice (b)

Fig. 5.20. Simbolul (a) şi diagramele în timp (b) ale elementului de întârziere

Page 162: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

162

Prinurmare,laieşireayageneratoruluisevaformaosuccesiunedeimpulsuricudurata∆.Procesuldegenerarepoatefiîntreruptprinaplicarealaintrareasemnaluluideoprirex=0.

Întrebări şi exerciţiiÊ Careestedestinaţiaelementuluideîntârziere?Desenaţidiagrameleîntimp

aleelementuluiexaminat.Ë Explicaţicumfuncţioneazăgeneratoruldeimpulsuriperiodice.Decedepinde

durataimpulsurilor?Ì PROIECTEAZĂ!ÎnlocuiţipoartalogicăŞI-NUdincomponenţageneratorului

deimpulsuriperiodiceprezentatînfigura 5.21printr-opoartălogicăSAU-NU. Explicaţicumvafuncţionacircuitulrespectiv.Desenaţidiagrameleîntimpalegeneratoruluiobţinut.

Í CERCETEAZĂ!Ecunoscut faptul căvariaţiilemărimilorfizicenupotavealocinstantaneu.Prinurmare,oricepoartălogicăareoîntârziereδ,denumităîntârziere parazitară,valoareaconcretăacăreiadepindedeparticularităţilecircuituluirespectiv.

Excludeţidinschemaprezentatăînfigura 5.21elementuldeîntârziere,aplicândsemnaluldelaieşireaporţiilogiceŞI-NUdirectlaintrareaei.Explicaţicumvafuncţionacircuitulobţinut.Decedepindedurataimpulsurilorlaieşireaporţiilogice?Desenaţidiagramelerespectiveîntimp.

ANALIZEAZĂ!Circuitulsecvenţialconstădintr-opoartălogicăNU,semnaluldeieşirealcăreiaesteaplicatdirectlaintrareaei.Cumvafuncţionaacestcircuit?

Page 163: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

163

STRUCTURA ŞI FUNCŢIONAREA CALCULATORULUI

6.1. Schema funcţională a calculatoruluiSchemafuncţionalăacalculatoruluinumericesteprezentatăînfigura 6.1.

Fig. 6.1. Schema funcţională a calculatorului

Capitolul 6

Conformacestei scheme, calculatorulnumeric conţineurmătoareleunităţi funcţionale:

–ounitatedememoriepentruaînmagazinadateleiniţiale,intermediareşifinalealeproblemei,precumşiinstrucţiunilecareindicăsecvenţacalculelor;

–undispozitivaritmeticşi logicnecesarefectuăriioperaţiiloraritmeticeşilogiceelementare;

–unulsaumaimultedispozitivedeintrare,respectiv,ieşire,necesarecomu-nicăriidinexteriorcucalculatorul;

–undispozitivcentraldecomandăşicontrolcaregenereazăosuccesiunedesemnaledecomandănecesareexecutăriisecvenţialeainstrucţiunilor.

Dispozitivul aritmetic şi logic şi dispozitivul central de comandă formeazăunitateacentralădeprelucrareainformaţieisau,maipescurt,procesorul.

Memoriacalculatoarelormoderneesteorganizatăîndouăniveluri,şianume: ounitatedememorie internăcuovitezămaredelucruşiunasaumaimulteunităţidememorieexternăcuovitezămairedusă,însăcuocapacitatemultmaimaredecâtceaamemorieiinterne.

Page 164: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

164

Fig. 6.2. Schema-bloc a unui calculator personal

Memoriainternă(numităuneorimemorieprincipală,centralăsauoperativă)păstreazăprogramulîncursdeexecutareşidatelefolositedeacesta,prezenţaeifiindocondiţieesenţialăpentrufuncţionareacalculatorului.

Memoriaexternăareroluldeapăstracantităţimarideinformaţieşipro-gramefolositefrecventpentruaputeafiaduseîntr-unintervaldetimpmicînmemoriainternă.Înprezentcamemoriiexternesuntutilizateunităţilecudiscurisaubenzimagnetice,unităţilecudiscuriopticeetc.

Unităţiledememorieexternăşidispozitivelede intrare-ieşire suntnumiteechipamenteperiferice.

Pentruaasiguraointeracţiuneeficientăaprocesorului,amemorieiinterneşiaechipamentelorperiferice,încazulcalculatoarelorpersonaleschemafuncţionalăserealizeazăfizicconformschemei-blocprezentateînfigura 6.2.

Dinanaliza figurii 6.2rezultăcătoatecalculatoarelemoderneauocon-figuraţie modulară. Fiecaremodúl, şi anume controlerul, imprimantele,unităţiledediscmagnetic etc., funcţioneazăşi, în consecinţă,potfi inclusesau excluse din componenţa calculatorului independent unul de altul. Prinurmare,configuraţiacalculatoruluipoatefimodificatăînfuncţiededestinaţiasistemuluidecalcul.

Deexemplu,unsistemeditorialvaincludemaimultetipurideimprimante:mecanicepentru textele în cursdeprelucrare, laser saucolorpentrupaginilemachetatedeja,cititoarededeseneşifotografii(scanere)etc.Unsistemdesti-natgestionăriirapideaunuivolummarededatevaincludemaimultediscurimagnetice,iaruncalculatorutilizatpentrumontareafilmelorvideovafidotatcucameredeluatvederişivizualizatoaredeorezoluţieadecvată,cutastaturisimilarepupitruluiregizoraletc.

Page 165: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

165

Întrebări şi exerciţiiÊ Numiţiunităţilefuncţionalealecalculatoruluişiexplicaţidestinaţialor.Ë Careesterolulmemorieiinterne?Cumserealizeazămemoriaexternăacalcu-

latoarelormoderne?Ì Numiţiechipamenteleperifericepecarelecunoaşteţidvs.Í Numiţicomponenteleunuicalculatorpersonalşiexplicaţidestinaţialor. Careestestructuraşicuminteracţioneazăcomponenteleunuicalculator? Cumpoatefimodificatăconfiguraţiaunuisistemdecalcul?Caresuntavantajele

configuraţieimodulareacalculatorului? CERCETEAZĂ!Desenaţischema-blocacalculatoruluicucarelucraţidvs.Care

componentesuntobligatoriişicareopţionalepentrufuncţionareacalculatorului? EXPERIMENTEAZĂ!Cumpoateficonectatălauncalculatorpersonalounitate

suplimentarădediscmagnetic?Oimprimantălaser?Uncititordedocumente?Ocamerădeluatvederi?

EXPLOREAZĂ!Utilizândunmotordecăutare,colectațidinInternetinformaţi-ilereferitoarelaevoluţiaschemelorfuncţionalealecalculatoarelordigitaleşiscriețiunmiceseudespreacestsubiect.Punețiînevidenţăfactoriiceauduslautilizareapescarălargăaschemelorfuncţionalecumagistrală.

6.2. Formatul instrucţiunilorPentruarezolvaoproblemă,calculatorultrebuiesăcunoascăînfiecaremoment

atâtoperaţiapecareurmeazăsăoexecute,câtşidatelecareparticipăînoperaţie.Acesteoperaţiisuntcomunicatecalculatoruluiprinintermediulinstrucţiunilor.

Instrucţiunea calculatorului reprezintă o succesiune de cifre binare prin care se indică procesorului operaţia de executat şi amplasamentul (locul) operanzilor.

Fig. 6.3. Formatul instrucţiunilor cu trei (a), două (b) şi o singură adresă (c)

Page 166: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

166

Succesiunea binară respectivă, denumităuneori şicuvânt instrucţiune,esteîmpărţităîncâmpuri,fiecarecâmpavândosemnificaţieprecisă.Numărulşisemnificaţiacâmpurilorpoartădenumireadeformatul instrucţiunii. În figu- ra 6.3,p.165suntprezentateformateleutilizateîncalculatoarelemoderne.

Îngeneral,pentruexecutareauneioperaţiiestenecesarcainstrucţiuneasăconţi-nătreiadrese(fig. 6.3a).PrimeledouăadresesuntfolositepentruobţinereacelordoioperanziasupracărorasevaefectuaoperaţiaspecificatădecâmpulCodul instrucţiunii.RezultatuloperaţieivafidepuspeadresaspecificatădecâmpulAdresă rezultat.

Săanalizămunexemplu.Presupunemcăoperaţiilearitmeticeşilogicesuntcodificatedupăcumurmează(pentrusimplitatevomutilizaechivalentelezecimalealecâmpurilorbinarerespective):

01–adunarea;02–scăderea;03–operaţialogicăŞI;04–operaţialogicăSAU.Instrucţiunea

01100110215

vaimpuneprocesorulsăadunenumereledinlocaţiile100şi110şisădepunăsumaobţinutăînlocaţia215.

Instrucţiunea

02100110215

comunicăprocesoruluicădinnumărulînscrisînlocaţia100sescadenumăruldinlocaţia110.Rezultatulobţinutvafidepusînlocaţia215.

Înmodsimilar,instrucţiunea

03200300100

specificăoperaţialogicăŞIasuprabiţilorcuvintelordinlocaţiile200şi300.Re-zultatuloperaţieivafidepusînlocaţia100.

Seobservăcă într-o instrucţiunenusespecificăvaloarea operanzilor, ciadresele locaţiilorîncarepotfigăsiţioperanziirespectivi.Acestfaptpermiteutilizareaunuiaşiaceluiaşiprogrampentruprelucrareaoricărordateiniţiale.Faptulcăinstrucţiunilelucreazăcuadresealcărorconţinuttrebuieprelucrat,şinucuînsuşiconţinutul,constituieunprincipiufundamentalalcalculatoarelornumerice,carepermitecaunprogramsăfieelaboratşi introdusîncalculatorindependentdedateleconcreteasupracăroraseaplică.

În formatul cu trei adrese (fig. 6.3a), adresele suntspecificate explicit. Pentruoreprezentaremaicompactăainstrucţiunilorseutilizeazăspecificarea implicităaunoradrese.Înacestcaz,cuvântulinstrucţiunenuconţineuncâmpspecialpentruadresaimplicită.

Dacărezultatulobţinutînurmaexecutăriiuneiinstrucţiunisedepunepeadresaunuiadintreoperanzi,formatulrespectivvaaveanumaidouăadrese(fig. 6.3b).Prin

Page 167: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

167

urmare,adresarezultatuluiestespecificatăimplicit.Deexemplu,instrucţiunea

01100110

vaimpuneprocesorulsăadunenumereledinlocaţiile100şi110şisădepunăsumaobţinută în locaţia100.Evident,dupăînscriereasumei,numărul iniţialdinlocaţia100vafisuprimat.

S-aconstatatcăformatulcudouăadrese,înprezentcelmairăspândit,permitescriereadeprogrameavândunnumărdeinstrucţiunicomparabilcucelobţinutatuncicânds-arutilizamaimulteadrese.

Formatulcuosingurăadresă(fig. 6.3c)seutilizeazăîncalculatoareleproce-sorulcăroraincludeunregistruspecial,denumitacumulator.Înacumulatorsepăstreazăprimuloperandşisedepunerezultatulexecutăriioperaţieirespective.Prinurmare, adresaprimului operand şi adresa rezultatului sunt specificateimplicit.Deexemplu,instrucţiuneacuosingurăadresă

01100

vaadunanumăruldinacumulatorcunumăruldinlocaţia100,iarsumaobţinutăvafidepusăînacumulator.Respectiv,număruliniţialdinacumulatorvafisuprimat.

Instrucţiunile cu o singură adresă sunt eficiente din punctul de vedere allungimiicuvântuluişialrapidităţiicalculatorului.Totuşiunprogramscriscuinstrucţiuniavândosingurăadresăvaconţinemaimulteinstrucţiunidecâtîncazulîncaresefolosescinstrucţiunicudouăsautreiadrese.

Menţionămcătoatecalculatoarelemodernepotaveainstrucţiunidediferiteformate.Informaţiareferitoarelaformatulfiecăreiinstrucţiuniseindicăîncâm-pulCodul instrucţiunii.

Întrebări şi exerciţiiÊ Enumeraţiformateleinstrucţiunilorutilizateîncalculatoarelemoderne.Expli-

caţimoduldespecificareimplicităaunoradrese.Ë Explicaţisemnificaţiacâmpurilorinstrucţiunilorcutreisaudouăadrese.Ì Cumsespecificăadreseleoperanzilorşialerezultatuluiîncazulinstrucţiunilor

cuosingurăadresă?Í Explicaţicumvorfiexecutateurmătoareleinstrucţiunicutreiadrese:

a) 01200201202; c) 03100150250;

b) 04202201200; d) 02250300310. Operaţiilearitmeticeşilogicesuntcodificatecaşiînexempluldinparagraful

defaţă. Carevaficonţinutullocaţiei100dupăexecutareainstrucţiunii

01200300100,

dacăînlocaţiile200şi300suntînscrisenumerele17şi,respectiv,31?

Page 168: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

168

Explicaţicumvorfiexecutateurmătoareleinstrucţiunicudouăadrese:

a) 01200201; c) 03100150;

b) 04202201; d) 02250300.

Carevaficonţinutullocaţiei200dupăexecutareainstrucţiunii

01200100,

dacăînlocaţiile100şi200suntînscrisenumerele18şi,respectiv,32? Explicaţicumvorfiexecutateurmătoareleinstrucţiunicuosingurăadresă:

a) 01100; c) 02400;

b) 03200; d) 04150. Carevaficonţinutulacumulatoruluidupăexecutareainstrucţiunii

01100,

dacăiniţialînlocaţia100eraînscrisnumărul12,iarînacumulatornumărul26? Caresuntavantajeleşidezavantajeleformatelorcutrei,douăsaucuosingură

adresă? STUDIUDECAZ.Găseşte pe Internet informaţii referitoare la tipurile decalculatoareceutilizeazăformatecutrei,douăsaucuosingurăadresă.Iden-tificațidomeniiledeutilizare,avantajeleşineajunsuriletipurilorrespectivedecalculatoare.

EXPLOREAZĂ!Utilizândunmotordecăutare,colectațidinInternetinformaţi-ilereferitoarelaevoluţiaformatelorinstrucţiunilorutilizateîncalculatoareledigitaleşiscriețiunmiceseudespreacestsubiect.Punețiînevidenţăfactoriiceauduslautilizareapescarălargăaformatelorutilizateîncalculatoarelepersonale.

6.3. Tipuri de instrucţiuniInstrucţiunileunuicalculatorseîmpartînpatrugrupe:–instrucţiunioperaţionale,careefectueazăoperaţiiaritmeticeşilogiceasupra

datelorspecificateprinoperanzi;– instrucţiuni de transfer, care deplasează informaţia între registre şi/sau

locaţiifărăamodificainformaţiatransferată;–instrucţiunidesalt,careînurmaverificăriiunorcondiţiimodificăanalizaşi

execuţiasecvenţialăainstrucţiunilordinprogram;– instrucţiuni de intrare-ieşire care permit comunicarea calculatorului cu

exteriorul.Instrucţiunile operaţionaleprelucreazădatelepăstrateînlocaţiilememoriei

interneşiînregistreleprocesorului.Celemaicunoscuteinstrucţiunialeacesteigrupesuntcelecareefectueazăoperaţiilearitmeticedebază:adunarea,scăderea,înmulţireaşiîmpărţirea.

Page 169: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

169

Instrucţiunile logice de tipulŞI,SAU,NU sunt instrucţiuni operaţionale careacţioneazăasuprapoziţiilorindividualealeinformaţieibinare.Încategoriainstrucţiuniloroperaţionale întâlnimşi instrucţiunidetipul:şterge conţinutuluneilocaţiisaualunuiregistru,complementeazăconţinutuluneilocaţii,creşte cuounitateconţinutulunuiregistruetc.Înfine,încategoriainstrucţiunilorope-raţionalesuntincluseinstrucţiunilededeplasareainformaţiei,încareparteadeadresăainstrucţiuniiconţineunnumărîntreg,cespecificănumărulpoziţiilorcucaresefacedeplasarea.

Instrucţiunilede transfer deplasează informaţia dintre locaţiilememo-riei interne, între registresau între locaţii şi registre fărăaalteraconţinutulinformaţiei transferate. Instrucţiunea trebuie să specificeexplicit sau implicitadresa-sursăşiadresadedestinaţieatransferului.Întimpultransferuluişidupătransfer,informaţiadinsursărămâneneschimbată.Celemaiuzualeinstrucţiunialeacesteigrupesuntceleprincareconţinutuluneilocaţiitreceîntr-unanumitregistru,registrulacumulator,precumşiinstrucţiuneadetransferinvers:dintr-unregistruîntr-olocaţieamemorieiinterne.

Instrucţiuniledesaltseutilizeazăpentrumodificareaordiniideexecuţieainstrucţiunilor.Înmodnormal,instrucţiunileunuiprogramsuntanalizateşiexecutateînmodsecvenţial,înordineaîncaresuntaşezateînmemorie.Aceastăordinepoatefischimbatăcuajutorulinstrucţiunilordesaltcondiţionatsaune-condiţionat.

Instrucţiuniledesaltcondiţionatpermitalegereacontinuăriiprogramuluipeoanumităramură,înfuncţiedeocondiţiedetestrealizată.Folosireainstrucţiu-nilordesaltcondiţionatdauposibilitateutilizatoruluisăintroducădeciziilogiceînprocesulexecuţieiprogramului.

Oinstrucţiunedesaltnecondiţionatconţine,înparteadeadresă,adresain-strucţiuniicarevafiexecutatăîncontinuare.

Instrucţiuniledeintrare-ieşirepermitcomunicareacalculatoruluicuechi-pamenteleperiferice.Echipamentulcucaresevaefectuaoperaţiadeintrare-ieşiresespecificăînparteadeadresăainstrucţiunii.Deregulă,instrucţiuniledeacesttipconţinatâtinformaţiilegatedenaturaschimbuluidedate,adicăintroducereasauextragerealor,câtşicomenzinecesarefuncţionăriicorecteaperiferiei.Totînacesteinstrucţiunisespecificăşiregistrelesaulocaţiileîncarevorfidepusesaudincarevorfiluatedatelerespective.

Întrebări şi exerciţiiÊ Cumseclasificăinstrucţiunileunuicalculator?Careestedestinaţiainstrucţi-

unilordinfiecaregrupă?Ë Daţicâtevaexempledeinstrucţiunioperaţionale.Estimaţinumărulinstrucţi-

uniloroperaţionaleposibile.Ì Careestedestinaţiainstrucţiunilordetransfer?Estimaţinumărulinstrucţiu-

nilorposibiledetransfer.Í Cândşi cumseutilizează instrucţiuniledesalt?Carecondiţiide testpotfi

analizatedeacesteinstrucţiuni?

Page 170: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

170

Careestedestinaţiainstrucţiunilordeintrare-ieşire?Ceinformaţiiconţinacesteinstrucţiuni?

EXPLOREAZĂ!Aflaţiclasificareaşicomponenţainstrucţiunilorcalculatoarelorcucarelucraţidvs.

6.4. Limbajul cod-calculator şi limbajul de asamblarePentruarezolvaoproblemă,înmemoriacalculatoruluitrebuiesăfieîncărcate

programulrespectivşidateledeprelucrat.Instrucţiunileprogramuluişidateledeprelucratseînmagazineazăînmemoriainternăsubformaunorsuccesiunidecifrebinarepecaredispozitivulcentraldecomandălepoateextrageşiinterpreta.

Programele reprezentate în formă de succesiuni binare direct execu-tabile de calculator se numesc programe în limbaj cod-calculator sau programe în limbaj maşină.Pentruutilizatorprogramulîncod-calculatorpoatefiprezentatînformăde

şiruridecifrebinaresau,maicompact,decifreoctale,zecimalesauhexazecimaleorganizatepelocaţiialememoriei.

Elaborareaprogramelor în limbaj cod-calculator esteun lucruextenuant şiineficient.Pentruasimplificaprocesuldeelaborareaprogramelor,s-aconvenitcainstrucţiunilesăfiescriseîntr-unlimbajsimbolic,denumitlimbajdeasamblare. Înacestlimbajcodurileinstrucţiunilorsereprezintăprintr-ungrupdecaractereastfelales,încâtsăsugerezecâtmaibinenaturaoperaţiei.Acestgrupdecaractere,deregulătrei,estecunoscutsubnumelemnemonicainstrucţiunii.

De exemplu, codurile instrucţiunilor calculatorului ipotetic din paragrafulprecedentpotfinotatesimbolicconformtabelului 6.1.

Tabelul 6.1Mnemonicainstrucţiunilor

Codinstrucţiune Mnemonica Semnificaţia

01020304050607

INCMEMADUSCDSLTSLTCSTP

Încarcă acumulatorulMemorează acumulatorulAdunareScădereSalt necondiţionatSalt condiţionatStop

Adreselelocaţiilormemorieiinternepotfispecificateprindenumirisimbolicealesedeutilizator,denumiricaresugereazăsemnificaţiaconţinutuluilocaţiilorrespective.

Deexemplu,locaţia185,încaresevapăstranumărulx,poatefinotatăprinX,locaţia213pentrunumărulysevanotaprinY,locaţia200,încarevafidepusă

Page 171: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

171

sumax+y,sevanotaprinS.Înlimbajuldeasamblarefragmentuldeprogrampentruadunareanumerelorxşiyvaaveaforma:

INC XADU YMEM S.

Îngeneral,existăocorespondenţădirectăîntrescriereainstrucţiuniiînlimbajuldeasamblareşiscriereaînlimbajulcod-calculator,ceeacefaceuşoarătranslatarea(traducerea)limbajuluideasamblareînlimbajulcod-calculator.

Translatarea constă în înlocuirea mnemonicii instrucţiunii şi a adreselor simbolice prin şirurile binare respective. Această înlocuire este făcută de un program special, denumit program de asamblare sau asamblor.Limbajelecod-calculatorşideasamblaresuntlimbajedependentedecal-

culator.Aceastădependenţăconstăînfaptulcăformatul,codurileşimnemonicainstrucţiunilorexprimăstructurainternăacalculatorului.Programeleelaborateînacestelimbajesuntcelemaiscurteşirapide,însăprocesuldeprogramarenecesităunmarevolumdemuncă.Simplificareaprocesuluideprogramareseasigurăprinutilizarealimbajelorindependentedecalculator(FORTRAN,BASIC,PASCAL,Cetc.),încareoperaţiiledeprelucrareşitipurilededatenusuntlegatedeechi-pamentelecalculatorului.Însă,curegret,detaşareautilizatoruluidestructurainternăacalculatoruluidiminueazăeficacitateaprogramelorrespective.

Întrebări şi exerciţiiÊ Careestediferenţadintrelimbajulcod-calculatorşilimbajuldeasamblare?Ë Cumseexprimăcodurileinstrucţiunilorşiadreselelocaţiilorîntr-unlimbajde

asamblare?Ì Careestedestinaţiaşicumserealizeazătranslatareaprogramelorscriseîntr-un

limbajdeasamblare?Í PROGRAMEAZĂ!SeconsiderăcădenumireasimbolicăXsemnificălocaţia100,

denumireaY–locaţia101,iardenumireaS–locaţia102.Exprimaţiînlimbajuldeasamblare(tab. 6.1)următoareleprograme:

a) 01100 b) 01100 c) 01101 04101 02100 04100 02102 03100 02102 02100 d) 01101 e) 01100 f ) 01100 03101 02101 02102 03101 03101 01101 03101 02100 02100 02102

Carevaficonţinutullocaţiilor100,101şi102pânăşidupăexecuţiafiecăruiprogram?

Page 172: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

172

SeconsiderăcădenumirilesimboliceX,YşiSspecifică,respectiv,locaţiile100,200şi300.Translataţiurmătoareleprogramescriseînlimbajuldeasamblare:

a) INC X b) INC X c) INC Y SCD Y INC X ADU X MEM S SLTC S MEM S INC Y STP STP d) INC Y e) INC X f ) INC X ADU Y MEM S MEM S ADU Y INC Y INC Y ADU Y MEM X MEM X MEM S INC X INC S

Explicaţicumvafiexecutatfiecareprogram. STUDIUDECAZ.Careestediferenţadintrelimbajeledependenteşilimbaje-

leindependentedecalculator?Caresuntavantajeleşidezavantajelefiecăruilimbaj?

EXPLOREAZĂ!UtilizândInternetulîncalitatedesursădeinformare,alcătuiţioscurtăcaracteristicăalimbajelorcod-calculatorşiacelordeasamblarealecalculatoarelorcucarelucraţi:codurileşiinstrucţiunile,clasificareaacestora.

6.5. Resursele tehnice şi resursele programate ale calculatoruluiNumărultotalalinstrucţiunilorunuicalculatordepinde,înprimulrând,de

capacitatealui.Încazulunuisistemmaredecalcul,acestnumărpoatedepăşi 1000,pecândlacalculatoarelefoartemicielnuestemaimarede100.Oanumi-tăoperaţiepoatefiefectuatălaunelecalculatoarecuosingurăinstrucţiune,pecândaceeaşioperaţie,înaltecalculatoare,pentrucarenuexistăoinstrucţiunespecifică,esteefectuatăcuajutoruluneisuccesiunidealteinstrucţiuniexistente.

Operaţiileefectuateinterndecomponenteleelectronicealecalculatoruluisuntcunoscutecaoperaţii implementateprinechipamente,pecândoperaţiileefectuatecuajutoruluneisecvenţedeinstrucţiunisuntcunoscutecaoperaţiiimplementateprinprogram.Deexemplu,operaţiadeextragerearădăciniipătrateîntr-unanumitcalculatorpoatefiefectuatăprinechipamentelectronic,înaltcalculator–printr-unsubprogram.Delimitareaîntreimplementareaprinechipamenteşiprogramdepindedecalculator.În figura 6.4esteprezentatăoastfeldedelimitareîncazulunuicalculatorcuposibilităţimedii.

Operaţiileimplementateprinechipamenteseefectueazăprinexecuţiauneisin-gureinstrucţiuni,pecândooperaţieimplementatăprinprogramnecesităexecuţiamaimultorinstrucţiuni.Prinurmare,operaţiileimplementateprinechipamenteseefectueazămairapid,însăcalculatorulrespectivestemaicomplexşi,înconsecinţă,maiscump.Dincontra,operaţiileimplementateprinprogramseefectueazămailent,însăcalculatoarelerespectivesuntmaisimpleşi,evident,maiieftine.

Page 173: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

173

Dinanalizaprincipiilordefuncţionareaprocesoruluirezultăcătoateechipa-menteleunuicalculatordevininutile înabsenţaprogramelorcareguverneazăefectuareaoperaţiilornecesarepentrurezolvareauneiprobleme.Exactînacelaşimod,programelesuntfărăniciunfolosînabsenţaechipamentelornumericeres-pective.Prinurmare,utilizareatehniciidecalculesteposibilănumaiînprezenţaatâtaechipamentelor,denumiteresursetehnice,câtşiaprogramelorrespective,denumiteresurseprogramate.

Resurseletehnicealeunuisistemdecalculmodernincludprocesorul,me-moriainternă,unităţiledememorieexternă,echipamenteledeintrare-ieşireetc.Resurseleprogramate vor include subprogramele care realizează operaţiileimplementateprinprogram,programelecaresimplificăaccesul launităţiledeintrare-ieşire,asambloarele,editoareledetexte,compilatoarelelimbajeloralgo-ritmiceşi,evident,programeleelaboratedefiecareutilizator.

Menţionămcăînliteraturadespecialitateresurseletehniceuneorisuntdenu-miteprincuvântulenglezhardware(„produsedemetal”),iarresurseleprogra-mate–princuvântulsoftware („produsemoi”).Respectiv, implementareaprinechipamentesenumeşteimplementareprinhardware,iarimplementareaprinprogram–implementareprinsoftware.

Întrebări şi exerciţiiÊDecedepindenumărultotalalinstrucţiunilorunuicalculator?Ë Cumseefectueazăoperaţiileîncazurileimplementăriiprinechipamenteşiîn

celealeimplementăriiprinprogram?Ì EXPLOREAZĂ!Analizând repertoriul instrucţiunilor calculatorului la care

lucraţidvs.,determinaţicumsuntimplementateurmătoareleoperaţii: –înmulţireaşiîmpărţireanumerelorbinare; –adunareaşiscădereanumerelorcuvirgulămobilă;

Fig. 6.4. Delimitarea între implementarea prin echipamente şi prin program

Page 174: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

174

–înmulţireaşiîmpărţireanumerelorcuvirgulămobilă; –extragerearădăciniipătrate; –calculareafuncţiilortrigonometrice.Í STUDIUDECAZ.Caresuntavantajeleşidezavantajeleimplementăriiprin

echipamente?Daraleimplementăriiprinprogram? EXPERIMENTEAZĂ!Numiţi resursele tehnice şi resurseleprogramateale

unuisistemdecalcul.Caresuntresurselerespectiveîncazulcalculatoruluilacarelucraţidvs.?

6.6. Memorii externe pe benzi şi discuri magneticePrincipiuldefuncţionareamemoriilorexaminateconstăînînregistrareain-

formaţieipeunstratmagneticaflatînmişcare.Stratulmagneticestedepuspeunsuportneutru,acestafiind,deregulă,obandădematerialplasticsauundiscdealuminiu.Încalitatedestratmagneticsefoloseştemaifrecventoxiduldefiersaupeliculemetalicesubţiridecobalt-nichelcudepunereînvid.

Înregistrareasaucitireainformaţieiseefectueazăcuajutorulunuicapmag-neticreprezentatînfigura 6.5.

Fig. 6.5. Cap magnetic pentru înscrierea şi citirea informaţiei

Capulconstădintr-unmiez,deregulă,dintole(foiţe)depermalloyfoartesubţiri(0,05mm)şioînfăşurare.

Într-unstratmagneticneînregistrat,câmpurilemagneticealeparticulelordeoxiddefiersuntorientatehaotic,anulându-sereciproc.Pentruaînregis-tra cifrabinară0 sau1, prin înfăşurarea capuluimagnetic se trece impulsulrespectivde curent. Impulsul care traversează înfăşurarea creează în întrefieruncâmpmagneticintenscaremagnetizeazăstratulaflatînmomentulactualsubcap.Direcţiademagnetizare,deciinformaţiabinarăînscrisă,depindededirecţia

Page 175: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

175

curentuluiînînfăşurareacapuluimagnetic.Înfigura 6.6esteprezentatunexempludeînregistrareainformaţieibinare101101peunstratmagneticaflatînmişcare.

Fig. 6.6. Starea stratului magnetic până (a) şi după înregistrare (b)

Distanţabdeterminălungimeaporţiuniinecesarepentruamemoraocifrăbinară.Valoarealuibdepindedevitezademişcareasuportului,deproprietăţilefizicealestratuluimagnetic,deelementeleconstructivealecapuluimagneticetc.

Numărul de elemente de memorie binară pe unitatea de lungime a suportului se numeşte densitatea de înregistrare a informaţiei.Încazulînregistrărilormagnetice,densitateaestedatădemărimea1/b.Valorile

practicevariazădupătipuldispozitivuluidememorareşifirmaconstructoare,fiinddeordinulsutelorşimiilordebiţipemilimetrudelungimeasuportului.

Întimpuloperaţieidecitirecâmpulmagneticalparticulelordeoxiddefier,trecândprindreptulîntrefierului(fig. 6.5),induceînînfăşurareacapuluimagneticunsemnaldeordinul10–3volţi.Acestsemnalesteamplificatşitransformatînsemnal-standardcarereprezintăcifrabinarărespectivă0sau1.

Înmarealormajoritatememoriileexternepebandămagneticăreprezintăechipamenteperifericeautonomecaretransferăinformaţiaspre/delamemoriain-ternădupăreceptareacomenzilorcorespunzătoaredelaprocesorulcalculatorului.Ounitatedememoriepebandămagnetică(fig. 6.7,p.176)includemecanismuldeantrenareabenzii,dispozitivuldescriere-citireşicircuiteledecomandăaferente.

Ooperaţiedecitiresauscriereserealizeazăîntimpuldeplasăriibenzii.Întredouăoperaţiisuccesivebandaesteoprită.Evident,informaţiileînregistratepotficititenumaiînordineaamplasăriilorfizicepebandă.Datorităacestuifapt,unităţiledebandămagneticăsuntdenumiteunităţidememorieexternăcuaccessecvenţial.

Timpul necesar pentru selectarea unei informaţii din multitudinea datelor memorate pe un suport se numeşte timp de acces.Timpuldeaccesalunităţiidebandămagneticădepindedevitezabenziişi

deloculamplasăriiinformaţieidecitit:laînceputul,lasfârşitulsaulamijloculbenzii.Încazulinformaţiilorînregistratelasfârşitulbenzii,timpuldeaccesestedeordinulminutelor.

Page 176: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

176

Fig. 6.7. Unitate de bandă magnetică

Capacitateadememorareauneibenzimagneticedepindededensitateaînregistrării,număruldepiste,lungimeabenziişiarevalorideordinul108octeţi.

Din cauza timpuluimaredeacces şi capacitateadememorie relativmică,benzilemagneticeseutilizează,îngeneral,numaipentruarhivareainformaţieipeperioademaridetimp,pânăla50deani.

Unitateadediscurimagnetice reprezintă laetapaactuală ceamai răs-pânditămemorieexternăacalculatoarelornumerice.Suportulinformaţieiesteformatdintr-unpachetdediscuri,carepoatefifixsauamovibil,rotitcuovitezădeordinulmiilordeturaţiipeminut.Discurilesuntacoperitecuunstratdema-terialferomagnetic.Informaţiaesteînregistratăpeambelefeţede-alungulunorpisteconcentrice.Pentruaceastafiecarefaţăesteexploratăînplanorizontaldeuncapmagneticmobil(fig. 6.8).

Fig. 6.8. Unitate de discuri cu capete mobile

Page 177: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

177

Capetelesuntmontatepeunbraţextensibilşiacţionatedeunmecanismpen-truaajungeîndreptulpisteiselectate.Toatecapeteleuneiunităţidememoriecudiscurisuntpoziţionatesimultan.

Timpuldeaccesalunităţiidediscurisecompunedintimpulnecesardepla-săriiansambluluidecapetemagneticedepecilindrulcurentpecilindrulindicatşidintimpulnecesarcasectorulrespectivaldisculuisăajungăîndreptulcapuluimagnetic.Înpracticăseutilizeazătimpulmediudeacces,carepentruunităţiledediscmoderneestedeordinul10–3secunde.

Amintimcăîncalculatoareledeperformanţăseutilizeazăunităţidediscuricucapetemagneticefixe–câteuncapmagneticpentrufiecarepistă.Acesteunităţiasigurăuntimpdeaccesdeordinul10–4secunde,însăsuntfoartescumpe.

Întrecut,pentruschimbuldeinformaţiiîntrecalculatoareseutilizaudiscurisingularedinmaterialplastic,denumitediscuriflexibilesaudischete.Acestedis-curierauîncorporateîntr-ocasetădinplasticsauînplicurispeciale.Organizareafizicăainformaţieieraaceeaşicaşiîncazulpachetelordediscuri,însăunităţilerespectiveeraumultmaisimpleşi,evident,maiieftine.Pentrualedeosebidediscurileflexibile,discurileconvenţionalealecalculatoarelorpersonaleau fostdenumitediscuririgide,harddiskurisauwincestere.

Capacitateadememorareadiscurilormagneticedepindedenumăruldesupra-feţealepachetului,număruldecilindrişidensitateadeînregistrare.Lamomentulactualesteobţinutăcapacitateadeordinul1012octeţipentruunpachetdediscuri.

Menţionămfaptulcăînultimiiani,înloculsausuplimentarladiscurilerigideauînceputsăfiefolositedispozitivedestocareadatelorcarefoloseştememoriicusemiconductori,denumiteunităţicucipurisauSSD-uri(Solid-StateDrive).SSD-urilesuntmairezistentelaşocurilemecanice,avândtimpuldeaccesmaiscăzut.Lamoment,capacitateadememorareaacestorunităţiestemaimicădecâtadiscurilorrigide,iarcostullorestemaimare.

Întrebări şi exerciţiiÊ Cumsuntreprezentatecifrelebinare0şi1înînregistrărilemagnetice?Ë Careestedestinaţiacapuluimagnetic?Ì Decedepindedensitateadeînregistraremagneticăainformaţiei?Í Cumseciteşteinformaţiaînregistratăpeunstratmagnetic? Explicaţicumfuncţioneazăunitateadememoriepebandămagneticădinfigura 6.7. CERCETEAZĂ!Decedepindecapacitateadememorareauneibenzimagnetice? Obandămagneticăarelungimeade750m.Înregistrareainformaţieiseefectue-

azăpe8pistepluspistabituluideparitate.Capacitateadememorareabenziiestede47Megaocteţi.Determinaţidensitateadeînregistrare.

Vitezabenziimagneticeeste2m/s.Înroladebitoare(fig. 6.7)sunt750mdebandă.Determinaţitimpuldeacceslainformaţiadelamijloculbenzii.

Cumfuncţioneazăounitatedediscuricucapetemobile? Cumesteorganizatăinformaţiapeunpachetdediscurimagnetice?

Page 178: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

178

Careestediferenţadintrememoriileexternecuaccesdirectşicuaccessecvenţial? Decedepindetimpuldeaccesalunităţiidediscurimagnetice? CREEAZĂ!Utilizândsurselede informaredin Internet, scrieţiunmiceseudespreevoluţiadiscurilorflexibile.

EXPERIMENTEAZĂ!Pentruunitateadediscrigidcucarelucraţidvs.deter-minaţi:

–capacitateadiscului; –timpulmediudeacces.

CREEAZĂ!Utilizândsurselede informaredin Internet, scrieţiunmiceseudespreevoluţiadiscurilorrigide.

STUDIUDECAZ.Elaboraţiunmicstudiucarepuneînevidenţăavantajeleşineajunsurilediscurilorrigideşialememoriilorcusemiconductori(SSD-uri-lor).Analizaţifrecvenţeledeutilizareaacestorunităţidestocareadatelorîncalculatoarelepersonalede tipdesktopşiportabile (notebook-uri/laptop-uri)comercializateînţaranoastră.

6.7. Memorii externe pe discuri opticePrincipiuldefuncţionareamemoriilorpediscuriopticeconstăînînregistra-

reainformaţieipeunstratreflectorizantaflatînmişcare.Stratulreflectorizantdinaluminiu,aursauargintestedepuspeunsuporttransparentdinmasăplastică.

Înfuncţiedemoduldescriereşicitireainformaţiei,deosebim:1)Discuriopticenumaipentrucitire.Informaţiapeastfeldediscuriseînscrie

defabricantşinupoatefimodificatădeutilizator.AbreviereaenglezăaacestordiscuriesteCD-ROM (Compact Disc-Read Only Memory).

2)Discuriopticeinscriptibile.Informaţiapeastfeldediscuriseînscriedeutilizatorosingurădată,încontinuaredisculfiinddisponibilnumaipentrucitire.AbreviereaenglezăaacestordiscuriesteCD-R (Compact Disc-Recordable).

3)Discuriopticereinscriptibile.Discurileîncauzăpermitmaimultecicluridescriere/ştergereainformaţiei.AbreviereaacestordiscuriesteCD-RW (Compact Disc-ReWritable).

Pentruaasiguracompatibilitateaunităţilordecitire,formatuldatelorşidi-mensiunilediscuriloropticesuntstandardizate.Înfigura 6.9estereprezentatăstructuradisculuiopticnumai pentru citiredestinatpubliculuilarg.

Înregistrareacifrelorbinarepeastfeldediscuriconstădintr-osuccesiunedeadâncituri(înlimbaenglezăpit)realizatepeunadintresuprafeţelediscului.Acesteadânciturisuntdespărţitedemicipauzeşisuntplasatepesuprafaţadisculuisubformauneipisteînspirală.

Dimensiunileadânciturilorsuntdeordinulunuimicron(1micron=10–3 mili-metri),distanţadintrespireestede1,6microni,lungimeaspiraleifiindde5300m. Disculconţine20000depiste(spire)pecareseaflăcirca6·109adâncituri.Ca-pacitateadememorareadisculuiestede640Megaocteţi.

Page 179: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

179

Citireadisculuiopticserealizeazăcuajutorulunuifasciculdeluminăcare,dupăcesereflectădepesuprafaţaactivă,esteinterceptatdeocelulăfotosensibilă(fig. 6.10).

Fig. 6.10. Citirea discurilor optice

Fig. 6.9. Structura discului optic CD-ROM: a – poziţionarea pistelor pe disc;

b – secţiune a discului perpendiculară pe piste

Parcurgândpistelerespective,fasciculullaserestereflectatcândstratulre-flectorizantseaflăînpunctul de focalizareşinereflectatîncazcontrar.Cualtecuvinte,adâncituriledepesuprafaţaactivăadisculuiopticschimbă(modulează)intensitateafascicululuireflectat. Înconsecinţă, la ieşireacelulei fotosensibileseformeazăunsemnalcareredăsuccesiuneadecifrebinare0,1înregistratăpedisclaetapafabricării.

Page 180: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

180

Fig. 6.11. Structura discurilor optice inscriptibile şi reinscriptibile

Înunităţiledediscopticmodernesursadelumină–laserulşicelulafotosensi-bilă–fotodiodaserealizeazăîntr-undispozitivintegral,denumitcapopticdecitire.Vitezaunghiularăadisculuiestede200–600deturaţiipeminut,iarvitezaliniarăestede1,4m/s.Înpofidavitezelorfoartemari,disculopticpracticnuseuzează,întrucâtîntrecapulopticşidiscnuexistăuncontactmecanicdirect.Prinurmare,duratadeexploatareaunuidiscCD-ROM estedeterminatădecalitateastratuluireflectorizantşiastratuluideprotecţie.Încazulutilizăriialuminiului,dincauzaoxidării,stratulreflectorizantseîntunecă,reducândastfelviaţaunuidiscopticla10-15ani.Încazulunuistratreflectorizantdinaur,numaioacţiuneviolentăcareardistrugestratulprotectorarputeaafectacalitateaunuidiscoptic.

Deregulă,discurileopticeCD-ROMseutilizeazăpentrutirajareasistemelordeoperare,amediilordeprogramare,aenciclopediilor,jocurilorelectroniceşiaaltorinformaţiidestinateunuinumărfoartemaredeutilizatori.

Structuradiscuriloropticeinscriptibileşireinscriptibileesteredatăînfigura 6.11.

Dinfigurăseobservăcădiscurileexaminate conţinunstrat special,denu-mit stratdeînregistrare.Încazuldiscurilor inscriptibile,aceststratesteformatdintr-unmaterialorganic–cyaninsauphtalocyanin,careseîntunecălaîncălzire.Înregistrareainformaţieiserealizeazăcuajutorulunuifascicullaserfoarteputerniccareînnegreşteporţiunilerespectivealestratuluideînregistrare.

Lacitire,porţiunileîntunecateblocheazătrecereafascicululuilasersprestratulreflectorizant,modificândastfel intensitatea luminiicaptatedecelulafotosen-sibilă(fig. 6.10).Întrucâtfasciculullaserfolositlacitireestefoarteslab,disculinscriptibilpoateficititdemaimulteorifărăadistrugeinformaţiaînregistrată.

Încazuldiscurilor reinscriptibile,materialuldincareesteformatstratuldeînregistraredevinedinnoutransparentdacăesteîncălzitpânălaotempera-turăspecială,denumitătemperaturăcritică.Evident,dupăştergere,pedisculreinscriptibilpotfiînscrisedatebinarenoi.DiscurilemoderneCD-RWsuportăpânăla10000decicluridescriere/ştergere.

Neajunsulcomunaldiscurilorinscriptibileşireinscriptibileestefaptulcăelesuntmultmaisensibilelatemperatură,duratalordeexploatarefiindmaimicădecâtadiscurilorCD-ROM.Acestediscurisuntşimaiscumpe,întrucâtpentruocitiresigurăstratulreflectorizantesterealizatdinaursauargint.

Page 181: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

181

Deobicei,discurileopticeCD-RşiCD-RWseutilizeazăpentrudifuzareainfor-maţiiloroperativeunuicercbinedeterminatdeutilizatori–bazededate,pachetespecializatedeprograme,rapoarteleunorcongreseimportante,tablourileuneiexpoziţii,documentemultimediaetc.

MenţionămfaptulcărealizăriletehnologicedinultimuldeceniuauconduslaapariţiadiscuriloropticedetipulDVD (Digital Versatile Disc–DiscDigitalMulti-funcţional).CapacitateaunuidiscDVDestedeaproapeşapteorimaimaredecâtaunuidiscdetipulCD.Ulterior,aufostdezvoltatediscurişimainoi,detipulHVD(HolographicVersatileDisc–DiscHolograficMultifuncţional).CapacitateaunuiastfeldediscestedemiideorimaimaredecâtaunuidiscdetipulCD.

Înprezent,încalculatoarelepersonaledeuzgeneral,discurileopticeşi,une-ori,chiarşicelerigide,suntînlocuitecumemoriidetipflash.Înacestememoriiinformaţiaestestocatăcuajutorulunorcircuiteelectronice,ceasigurăscrierea,citireaşiştergereadatelorlavitezecumultmaimari.

Întrebări şi exerciţiiÊ Cumsuntreprezentatecifrelebinare0,1înînregistrărileoptice?Ë Careestecapacitateadememorareaunuidiscoptic?Ì CumseînregistreazăinformaţiapeundiscopticCD-ROM?Í Decedepindecapacitateadememorareaunuidiscoptic? Ecunoscutfaptulcălungimeaspiraleipecareseînregistreazăinformaţiaunui

discopticestede5300m. Capacitateadememorareadisculuiestede640Me-gaocteţi.Determinaţidensitateadeînregistrareainformaţieipedisculoptic.

CareestedomeniuldeutilizareadiscurilorCD-ROM? Decedepindetimpuldeacceslainformaţiiledepeundiscoptic? Vitezaliniarăadisculuiopticestede1,4m/s.Cunoscânddensitateadeînre-

gistrareainformaţieid=128Kocteţi/m,determinaţivitezadetransmisiea datelorde launitateadedisc launitateacentrală.Amintimcăvitezadetransmisieadatelorsemăsoarăînbiţi,KbiţisauMbiţipesecundă.

Pecele20000depiste(spire)aleunuidiscopticsuntînregistraţicirca640deMegaocteţi.Câtăinformaţieconţineosingurăpistăadisculuioptic?

PeundiscCD-ROMsuntînregistrateînformăbinarăcirca74deminutedemuzică.Determinaţicâtăinformaţievaconţineuncânteccuduratade4minuteşi30desecunde.Câtepistevaocupacânteculrespectiv?

Cumseciteşteinformaţiadepeundiscoptic?Careestedestinaţiacapuluiopticdecitire?

Explicaţidestinaţiastraturilorunuidiscopticinscriptibil.Cumserealizeazăînregistrareainformaţieipedisculîncauză?

DecedepindeduratadeexploatareaunuidiscCD-ROM ?DaradiscurilorCD-Rşi CD-RW ?

Cumseînregistreazăşiseştergeinformaţiadepeundiscopticreinscriptibil? CareestedomeniuldeutilizareadiscurilorCD-RşiCD-RW ? EXPERIMENTEAZĂ!Aflaţiparametriitehniciaiunităţilordediscurioptice

Page 182: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

182

cucare,posibil,erau/suntdotatecalculatoareledinlaboratoruldeinformaticăalliceuluidvs.

CREEAZĂ!Utilizândsurselede informaredin Internet, scrieţiunmiceseudespreevoluţiadiscuriloroptice.

6.8. Vizualizatorul şi tastaturaVizualizatorulesteundispozitivdeieşireprinintermediulcăruiainformaţia

esteprezentatăutilizatoruluipeecranulunuitubcatodic.Schemafuncţionalăavizualizatoruluiesteprezentatăînfigura 6.12.

Fig. 6.12. Schema funcţională a vizualizatorului cu tub catodic

Caşiîncazultelevizoarelorpentrupublicullarg,imagineapeecranultubuluicatodicseformeazădinpuncte.Punctelesuntactivatedeunfasciculdeelectroni.Culoareaşiluminanţafiecăruipunctestecontrolatădesemnalevideo,aplicatela intrările corespunzătoare ale tubului catodic.Parcurgereapunctelor într-oordineprestabilită,deregulă,peliniidelastângaladreaptaşidesusînjos,esteasiguratădedispozitivuldedeflexie.

Fiecăruipunctalecranuluiîicorespundeolocaţieînmemoriavideoavizuali-zatorului.Locaţiileconţininformaţiireferitoarelaculoareaşiluminanţapunctelorrespective.Dispozitivuldecomandăciteştelocaţiilememorieivideoînordineaparcurgeriipunctelordepeecran.Conţinutulfiecăreilocaţiiesteinterpretatdrepto instrucţiunereferitoarelamoduldeactivareapunctuluicareîicorespunde.Semnalelevideo,necesarepentrucomandafascicululuideelectroni,suntformatedeconvertoarenumeric-analogice.

Memoriavideoavizualizatoruluiesteîncărcatădeunitateacentralăacalcula-torului.Înoricemoment,calculatorulpoatemodificaconţinutulacesteimemorii.Înconsecinţă,sevaschimbaşiimagineaafişatăpeecran.Imaginilepotfianimateprinmodificareaconţinutuluimemorieivideolafrecvenţeutilizateîncinematografie.

Vizualizatorulpoatefuncţionaînunuldintreceledouăregimuri:alfanumericsaugrafic.

Înregimalfanumericecranulesteîmpărţitînzoneconvenţionale,numitezone-caracter.Deregulă,acestezoneformează25deliniicu80decaracterepelinie.Înfiecarezonăpoatefiafişatunsingurcaracterdintr-unsetde256de

Page 183: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

183

caractere.Setuldecaractereesteconstituitdinliterelemarişimicialealfabetuluilatin,cifrelezecimale,simbolurilematematice,semneledepunctuaţieşiunelecaractere semigrafice, utilizate la afişarea pe ecran a tabelelor, diagramelor,chenareloretc.Fiecarezonă-caracterpoateaveaoculoarepentrucaracterşialtăculoarepentrufundal,ceeaceîipermiteutilizatoruluisăafişezepeecrantexteculiteredediferiteculori.

Înregimgraficutilizatorulpoatecontrolaafişareapeecranafiecăruipunct.Număruldepunctepeorizontalăşiverticalădeterminărezoluţiavizualizatorului.Deexemplu,expresia„rezoluţia640×200”înseamnăcăvizualizatorulare640depunctepeorizontalăşi200peverticală.

Existămaimultenormeinternaţionalecarereglementeazărezoluţiaşinumăruldeculorialevizualizatoarelor.Acestecaracteristicisuntrecunoscuteşirespectatedefirmeleproducătoare.

Deexemplu,încazulcalculatoarelorpersonale,celemairăspânditesuntnor-meledenumiteEGA,VGAşiSVGA.NormaEGAstipuleazăcăvizualizatorulareorezoluţiede640×350depuncte,permiţândreprezentareaa64deculori.

NormaVGA,păstrândcompatibilitateacuEGA,oferăcafacilităţisuplimentarerezoluţia640×480depuncteşi256deculoridistincte.

Înscopulîmbunătăţiriicalităţiiimaginiiredate,normaSVGAadaugărezoluţiasuplimentarăde1024×768depuncte.

Înprezent,datoritărealizărilortehnologicedinultimiiani,ecranelecutuburicatodiceaufostînlocuitecuecraneplate.Ecranulplatestealcătuitdintr-omatrice(untablou)deceluleemiţătoaredelumină,câteocelulăpentrufiecaredinmicro-zoneleimaginiidigitalefurnizatedecalculator.Utilizareaceluleloremiţătoaredeluminăasigurăoreduceresubstanţialăadimensiunilorvizualizatoruluişioîmbunătăţire semnificativăa rezoluţiei imaginilorafişate.Astfeldevizualiza-toaresecaracterizeazăprintr-unconsumredusdeenergieşirezoluţiidepânăla 2560×2048depuncte.

Tastaturaesteundispozitivdeintrarecaretransformăacţionareauneitasteîntr-uncuvântbinar,accesibilechipamentelorcalculatorului.

Partea electronică aunei tastaturi constădintr-un codificator.La intrărilecodificatoruluiseaplicăsemnalelelogiceprovenitedelataste.Laieşiresefurni-zeazăcuvinteleunuicodbinar,deobiceistandard(ISO,ACSII,UNICODetc.).Uneletipuridetastaturipotfiprevăzutecuungeneratoraudio,carelaacţionareatastelorproduceunsunetspecific.

Lanoi,caşi înţărileanglofone,ceamairăspândităestetastaturadetipulQWERTY,denumireacăreiaprovinedelaamplasareacaracterelorQ,W,E,R,T şiYînrânduldesusaltasteloralfanumerice.ÎnţărilefrancofoneseutilizeazătastaturaAZERTY,înGermania–QWERTZetc.

Deşiloculamplasăriitastelorşinumărullorpotsădifere,destinaţiatasteloresteaceeaşi.

Tastaturadispunedeurmătoarelegrupedetaste:alfanumerice,funcţionaleşispeciale.Grupuldetastealfanumericeincludetastelecifrelorzecimale,tastelecaractereloralfabetuluienglez,tastelesimbolurilormatematiceşialesemnelordepunctuaţie.Grupuldetastefuncţionaleincludetastele<F1>,<F2>,...,<F12>.

Page 184: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

184

Tastelerespectivenuauodestinaţieprestabilităşisemnificaţialorestedefinitădeprogramulcarederuleazăpecalculator.Tastelespecialeseutilizeazăpentrupoziţionareacursoruluivizualizatorului,pentruintroducereaîncalculatoraunorcuvintebinarecarenuautastepropriietc.

Încalculatoareledeperformanţă,vizualizatorulşitastaturapotformaunechi-pamentperifericunitar,denumitconsolă.Consolautilizatădeoperatorpentrudirijareaproceselordecalculsenumeştemonitor.

Încazulcalculatoarelordetiptabletăşiacelorîncorporate,deexemplu,înte-lefoaneleinteligente,echipamenteleindustrialecudirijarenumerică,electrocasni-celeetc.,încalitatededispozitivedeintrare-ieşiresuntutilizateecraneletactile (touchscreen),carepermitatâtafişareainformaţiilorvizuale,câtşiintroducereacomenzilorşidatelorpringlisărişiatingeriaelementelordecontrolafişatepeecran.

Întrebări şi exerciţiiÊ Explicaţicumfuncţioneazăvizualizatorul.Careestedestinaţiapărţilorcompo-

nentealeunuivizualizator?Ë Cumpoatefischimbatăimagineaafişatăpeecranulunuivizualizator?Cum

potfianimateimaginiledepeecran?Ì Princesedeosebescregimuriledefuncţionareavizualizatorului?Í Caresuntindiciiprincipalidecalitateaiunuivizualizator? EXPERIMENTEAZĂ!Determinaţi tipulvizualizatorului la care lucraţidvs.

Aflaţirezoluţiaşinumăruldeculoridisponibile. Caresuntpărţilecomponentealeuneitastaturi?Cumsedeterminătipultastaturii? Numiţigrupuriledetasteşidestinaţialor. CERCETEAZĂ!UtilizândsurseledeinformaţiedinInternet,elaborațiunstudiu

comparativalvizualizatoarelorcutubcatodicşialcelorcuecranplat,punândînevidenţăatâtavantajele,câtşineajunsurilefiecăruiadinele.Indicațidomeniiledeutilizareafiecăruitipdevizualizator.

STUDIUDECAZ.Cuajutorulunuimotordecăutare,găsițipeInternetdescri-erilemonitoarelorpropusedeunităţiledecomerţ.Aflațicumparametriitehniciaimonitoarelor influenţează costurile, care sunt avantajele, neajunsurile şidomeniiledeutilizareaacestora.

CREEAZĂ!UtilizândInternetulîncalitatedesursădeinformaţie,scriețiunmiceseudespreevoluţiavizualizatoarelor,atâtacelorindustriale,câtşiacelordeuzpersonal.

6.9. ImprimanteleImprimantelesuntdispozitivedeieşirecarefurnizeazărezultatelesubforma

unuidocumenttipărit.Înfuncţiedetehnicadetipărireutilizată,imprimantelesepotclasificaîn:

–imprimantemecanice,încaretipărireasefaceprinacţionareaunorciocănaşesauace;

Page 185: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

185

–imprimantelaser,încaretipărireasefacefolosindmetodeelectrostaticecalamaşiniledecopiat;

–imprimantecujetdecerneală;–imprimantetermice,funcţionareacărorasebazeazăpeutilizareauneihârtii

specialecareîşischimbăculoareaînfuncţiedetemperatură.Principiuldefuncţionareaimprimanteimatricialecuaceesteprezentat

înfigura 6.13.

Capuldeimprimareconţineungrupdeacemetalicesubţiricarelamomentulpotrivitlovescprinbandătuşatăînfoaiadehârtie.Configuraţiaácelorcelovescînfiecaremomentşiavansareacapuluide-alungullinieideimprimatdeterminăimaginiletipărite.

Imprimantelematricialepotfuncţionaînregimgraficşiregimalfanumeric.În regimgrafic, calculatorul comandă tipărireapehârtieafiecăruipunct

aparte.Evident,dinpunctepotfiformateoriceimagini:grafice,desenetehnice,caracterecuconfiguraţiiconceputedeutilizator.Imprimareainformaţieiînregimgraficestelentădincauzadeplasărilormultiplealecapuluideimprimareşiacaracteruluidiscontinuualavansuluidehârtiecupaşifoartemici.

În regimalfanumeric,calculatorultransmiteimprimanteinumaicodurilecaracterelordetipărit.Fiecăruicodîicorespundeoimaginedinpunctecaresepăstreazăîntr-omemoriespecialăaimprimantei.Imaginilerespectivesunttipăriteprinunasau,celmult,două-treitrecerialecapuluideimprimare.

Imprimareaînregimalfanumericestemultmairapidă,însăpotfitipăritenumaicaractereleimaginilecăroraaufost,înprealabil,înmagazinateînmemoriaimpri-mantei.Imprimantelematricialesimpleaucâtevaseturidecaractere,înscriseîntr-omemoriepermanentă.Imprimantelematricialemaiperformantepermitîncărcareaprinprogramamaimulteseturidecaracterecuconfiguraţiiconceputedeutilizator.

Ecazulsăsubliniemcăcucâtnumărulácelordincapuldeimprimareestemaimare,cuatâtcalitateaimprimăriiestemaibună.Înprezentseutilizeazăimprimantecu9saucu24deace.Calitatea imprimăriipoatefi îmbunătăţităprintipărirearepetată(de2-4ori)aaceluiaşicaracterpeacelaşiloc.Vitezadetipărireaimprimantelormecanicecuaceestede150-500decaracterepeminut.

Fig. 6.13. Principiul de funcţionare a imprimantei matriciale cu ace

Page 186: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

186

Fig. 6.14. Principiul de funcţionare a imprimantei laser

Principiuldefuncţionareaimprimantelorlaseresteprezentatînfigura 6.14.

Elementulprincipalalacesteiimprimanteesteuntamburacoperitcuunstratsemiconductor,careîşipoateschimbaproprietăţileelectricesubacţiunealuminii.Maiîntâi,suprafaţatamburuluiseelectrizează.Cuajutorulrazelorlaserpesupra-faţaelectrizatăatamburuluiseproiecteazăpuncteleimaginiidetipărit.Întrucâtsectoarelecareaufostluminateîşischimbăconductibilitatea,sarcinileelectricerespectiveseneutralizează.Prinurmare,pesuprafaţatamburuluiseformeazăoimagineelectricăascunsă.Developareaimaginiiseefectueazăcuajutorulunorpar-ticuledepulberecolorată,atrasedesectoareleelectrizatealetamburului.Imaginiledepetambursetransferăpehârtieşisefixeazăprintopireaparticulelordepulbere.

Încontinuare,toatesarcinileelectricedepesuprafaţatamburuluisuntneu-tralizate,iarresturiledepulberesuntcurăţate.

Imprimantelelasersuntcelemaibunedintreimprimantelemoderne.Texteleşigraficatipăritelaacesteimprimantenusedeosebescdeceletipografice.Vitezadetipărireestede5-15paginipeminut.

Imprimantelecujetdecernealăformeazăpuncteleuneiimaginidinpicăturimicroscopicepulverizatepehârtiedenişteajutajespeciale.Eleasigurăocalitatefoartebunăatiparuluişisuntutilizatepentruimprimareacolor.Acesteimprimantesuntmaiscumpedecâtimprimantelecuaceşinecesităoîngrijiretehnicădeosebită.

Imprimanteletermiceutilizeazăomatricedeaceacărorîncălzireselectivăestedeterminatăînfuncţiedecaracterulceurmeazăafitipărit.Vitezadeimpri-mareesterelativmică,circa300derânduripeminut,însăavantajulprincipalconstăîndimensiunileredusealeimprimantei.

Întrebări şi exerciţiiÊ Cumseclasificăimprimanteleînfuncţiedetehnicadetipărire?Ë Caresuntpărţilecomponentealeuneiimprimante?

Page 187: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

187

Ì Care este principiul de funcţionare a imprimanteimatriciale cu ace?Cum funcţioneazăaceastăimprimantă?

Í Explicaţicumfuncţioneazăoimprimantălaser.Careesteavantajulprincipalalacesteiimprimante?

EXPERIMENTEAZĂ!Determinaţitipulimprimanteicucarelucraţidvs.Aflaţiparametriitehniciaiimprimantei:setuldecaractere,regimuriledefuncţionare,capacitateamemoriei-tampon,vitezadeimprimare.

STUDIUDECAZ.Cuajutorulunuimotordecăutare,găsițipeInternetdescrie-rileimprimantelorpropusedeunităţiledecomerţ.Aflațicumparametriitehniciaiimprimantelorinfluenţeazăcosturile,caresuntavantajele,neajunsurileşidomeniiledeutilizareaacestora.

CREEAZĂ!UtilizândInternetulîncalitatedesursădeinformaţie,scriețiunmiceseudespreevoluţiaimprimantelor,atâtacelorindustriale,câtşiacelordeuzpersonal.

6.10. Clasificarea calculatoarelorCaracteristicageneralăaunuicalculatorincludeurmătoareledate:–vitezadeoperare;–capacitateamemorieiinterne;–componenţa,capacitateaşitimpuldeaccesaleunităţilordememorieexternă;–componenţaşiparametriitehnicirespectiviaiechipamentelorperiferice;–parametriidemasăşigabarit;–costul.Înfuncţiedeacestedate,calculatoarelemoderneseclasificăîn4categorii:–supercalculatoare;–calculatoaremari(macrocalculatoare);–minicalculatoare;–microcalculatoare(calculatoarepersonale).Supercalculatoarelepotexecutapeste1015 (1000bilioane)deoperaţiipe

secundă,iarpreţullordepăşeşte20milioanededolari.CercetărişiproiectăriînindustriasupercalculatoarelorserealizeazăînSUAşiJaponiadefirmeleIBM,Gray Research,Fujitsu ETA Systems,Dell,Sutherlandetc.Supercalculatoareleseutilizeazăînprelucrăriextremdecomplexealedatelorînaeronautică,fizicanucleară,astronautică,seismologie,prognozameteoetc.

Calculatoarelemari(înenglezămainframe„dulapulprincipal”)potexecu-tasutedebilioanedeoperaţiipesecundă(1bilion=1012),preţulvariindîntre 20demiişicâtevamilioanededolari.Schema-blocacalculatoarelordateesteprezentatăînfigura 6.2.Deregulă,calculatoarelemariincludzecideunităţidediscmagneticşiimprimante,sutedeconsoleaflateladiferitedistanţedeunitateacentrală.Acestecalculatoareseutilizeazăîncadrulunormaricentredecalculşifuncţioneazăînregimnon-stop.PrincipalelefirmeproducătoaredecalculatoaremarisuntIBM,Hitachi, Amdahl, Fujitsu etc.

Page 188: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

188

Minicalculatoarele efectuau sutedemilioanede operaţii pe secundă, iarpreţullornudepăşea200-300miidedolari.Echipamenteleperifericealeunuiminicalculatorincludeaucâtevadiscurimagnetice,unasaudouăimprimante,maimulteconsole.Minicalculatoareleeraumaiuşordeutilizatşioperatdecâtcalcu-latoarelemarişiseutilizauînproiectareaasistatădecalculator,înautomatizăriindustriale,pentruprelucrareadatelorînexperimenteleştiinţificeetc.Dintrefir-meleceproduceauminicalculatoarevomremarcaIBM,Wang,Texas Instruments,Data General,DEC, Hewlett-Packardetc. Înprezentminicalculatoareleaufostînlocuitedecalculatoarelepersonale.

Microcalculatoarele,denumiteşicalculatoarepersonale,suntrealizatelapreţuriscăzute–între100şi15000dedolarişiasigurăovitezădecalculdeor-dinulmiliardelordeoperaţiipesecundă.Schema-blocaunuicalculatorpersonalesteprezentatăînfigura 6.2.

Deobicei,echipamenteleperifericealeunuimicrocalculatorincludunasaumaimulteunităţidediscrigidsauSSD(Solid-State Drive),ounitatedediscoptic, oimprimantăşioconsolă.Structuramodularăşigrupareatuturorechipamentelorînjuruluneimagistralepermiteconfigurareamicrocalculatoruluiînfuncţiedenecesităţileindividualealefiecăruiutilizator.

Înacestscop,microcalculatoareledispundecâtevaporturiUSB(Universal Serial Bus –MagistralăSerialăUniversală), carepermit conectareadiferitorechipamente periferice suplimentare, inclusiv amemoriilor de tipflash. De asemenea,calculatoarelepersonale,destinateplasăriipemasadelucru(detipdesktop),calculatoareleportabile(denumitenotebook-urisaulaptop-uri)şiceledetiptabletă,suntdotatecudispozitiveperifericeceasigurăcomunicareacualtesistemetehnicedigitaleprintehnologiiradio(Wi-Fi,Bluetooth)saurazeinfraroşii.

Corporaţiicareproducmicrocalculatoareexistăînfoartemulteţări,însăliderimondiali,unanimrecunoscuţi,suntfirmeleLenovo,Apple,Hewlett-Packard,Dell,Asus,Acer,Samsungetc.

Întrebări şi exerciţiiÊ EXPERIMENTEAZĂ!Numiţiparametriimaisemnificativiaiunuicalculator.

Determinaţiparametriirespectiviaicalculatoruluicucarelucraţidvs.Ë Cumseclasificăcalculatoareleînfuncţiedeparametriitehnicişieconomici?Ì CREEAZĂ!ÎnbazainformaţiilorcolectatedinInternet,daţiocaracteristică

succintăafiecărei categorii de calculatoare: supercalculatoare, calculatoaremari,minicalculatoareşimicrocalculatoare.Puneţiînevidenţădomeniiledeutilizareacalculatoarelordinfiecarecategorie.

Í EXPLOREAZĂ!Folosindunserverdecăutare,găsiţipe Internet informaţiidetaliatedespreprincipaliiproducătoridecalculatoarepersonale.Alcătuiţiunclasamentalacestorproducătoridupăcotadepiaţădeţinutădeei.

ANALIZEAZĂ!Identificațicotaprocentualăaprofituluimarilorcompaniiceproduccalculatoare,pecategorii(supercalculatoare,calculatoaremari,macro-calculatoare,minicalculatoare,microcalculatoare),şielaborațiunmicstudiucearpuneînevidenţăevoluţiaacestuisectorimportantaleconomieiglobale.

Page 189: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

189

CERCETEAZĂ!UtilizânddatelepublicatedeBiroulNaţionaldeStatisticăşiAgenţiaNaţională pentruReglementare înComunicaţiiElectronice şiTeh-nologiaInformaţiei(ANRCETI),elaborațiunmicstudiudespreproducereaşicomercializareacalculatoarelorînţaranoastră.

EXPLOREAZĂ!Ungrupinternaţionaldespecialiştiîndomeniulinformaticiiimplementeazăaşa-numitulproiect„Top500”.Fiindlansatîn1993,acestproiectpublicădedouăoripeanlistaprimelor500celormaiputernicesupercalcula-toare.Elaborațiunmicstudiudespreprimelezecesupercalculatoare,punândînevidenţăparametriitehnicişidestinaţiaacestora,companiilecareleproducşirolulcooperăriiinternaţionaleîndezvoltareaştiinţeicalculatoarelorşiteh-nologiilorinformaţiei.

6.11. MicroprocesorulMicroprocesorulesteuncircuitintegratcareimplementeazăfuncţiileuni-

tăţiicentraledeprelucrareainformaţiei,şianume–extragereaşiexecutareainstrucţiunilor.

Deregulă,unmicroprocesorconţineundispozitivaritmeticşialtuldecoman-dă,ungrupderegistredestinatepăstrăriitemporaleadatelorfrecventutilizate,magistraleşicircuitedecomandăaferente(fig. 6.15).

Fig. 6.15. Schema funcţională a unui microprocesor

Microprocesorul interacţionează cuunităţile dememorie şi echipamenteleperifericeprinintermediulatreimagistrale:Date,AdreseşiComenzi.TraficuldeinformaţiiprinmagistraleestecontrolatdecircuitulComandă de magistrală.

Extragereaşiexecutarea instrucţiunilorare locsubcontroluldispozitivuluicentraldecomandă.Pentruaceasta,prinmagistraladeadreseseindicăadresalocaţieimemorieiinterne,iarprinmagistraladecomenzisetransmitsemnalelenecesaredescrieresaucitire.Datelecititesauscrisesetransmitprinmagistraladedate.

Page 190: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

190

Microprocesoareleseapreciazădupăurmătoriiparametri:–lungimeacuvântului;–frecvenţaceasuluidesistem;–capacitateamagistralelor.Lungimeacuvântului reprezintănumăruldebiţi ai succesiunilor binare

carepotfimemorizateînregistreşiprelucratededispozitivularitmeticalmi-croprocesorului.Microprocesoarelemoderneaulungimeacuvântuluide32,64şimaimulţibiţi.

Frecvenţaceasuluidesistemreprezintănumăruldeimpulsuripesecundăpecareleproducegeneratoruldeimpulsuridetactdincomponenţadispozitivuluidecomandă.FrecvenţaceasuluidesistemsemăsoarăînMegahertz (1 MHz = =106 Hz).Întrucâtimpulsuriledetactsincronizeazăexecutareamicrooperaţiilorîntoatedispozitivelemicroprocesorului,frecvenţaceasuluidesistemcaracterizeazărapiditateamicroprocesorului.

Capacitateamagistraleireprezintănumăruldebiţiaisuccesiunilorbinaretransmiseprinmagistrală.Deobicei,capacitateamagistraleidedateesteegalăsaumaimaredecâtlungimeacuvântuluimicroprocesorului.Încazcontrar,pentruatransmiteuncuvânt,suntnecesaremaimulteciclurialemagistraleidedate.

Capacitateamagistraleideadresedeterminăspaţiuldeadresecarepotfiaccesatedirectdemicroprocesor.Astfel,unmicroprocesor,avândcapacitateamagistraleideadresede16biţi,poateaccesa216locaţiialememorieiinterne,iarunmicroprocesorcucapacitateamagistraleideadresede32debiţipoateaccesadirect232locaţii.

Înansamblu,lungimeacuvântului,frecvenţaceasuluidesistemşicapacitateamagistralelordeterminăcapacitateadeprelucrareamicroprocesorului,caresemăsoarăînMips–Megainstrucţiunipesecundă.Pentruexemplificare,întabelul 6.2suntprezentatecaracteristicileprincipalealemicroprocesoarelordinfamiliaIntel.

Tabelul 6.2Caracteristicileprincipale

alemicroprocesoarelordinfamiliaIntel

MicroprocesorLungimecuvânt,

bitFrecvenţă,

MHzCapacitate

deprelucrare,Mips

4040(anul1974)8085(anul1976)80286(anul1982)Pentium4(anul2004)PentiumD(anul2005)IntelCorei9(anul2017)

4816326464

0,7516

380034004500

0,061,25

8250040005500

Page 191: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

191

Dintabeluldemaisusseobservăcăpeparcursulanilor1974–2017lungimeacuvintelorcucareopereazăunmicroprocesoracrescutde8ori,frecvenţaceasuluidesistem–decirca6500deori,iarcapacitateadeprelucrareaacestora–decirca9200deori.Capacitateadeprelucrareaunuimicroprocesormodernestedecirca6000deorimaimaredecâtacalculatoruluiModulului Lunar Apollo,cucareînanul1969primiioamenidepePământauaselenizatpeLună.

Tipulmicroprocesoruluişifrecvenţaceasuluidesistemalcalculatoruluiperso-nalcucarelucraţidvs.poatefiaflatcuajutorulmeniuluicontextualalpictogramei„Mycomputer”.Amintimcăacestmeniuseafişeazăpeecrancuajutorulunuiclic-dreaptapepictogramarespectivă.

Întrebări şi exerciţiiÊ Explicaţidestinaţiacomponentelorunuimicroprocesor(fig. 6.15).Ë Caresuntparametriiprincipaliaiunuimicroprocesor?Explicaţisemnificaţia

fiecăruiparametru.Ì EXPERIMENTEAZĂ!Determinaţitipulşiparametriiprincipaliaimicropro-

cesoruluidincomponenţacalculatoruluipersonalcucarelucraţidvs.Í EXPLOREAZĂ! Înafarăde Intel, încalculatoarelemoderneseutilizeazăşi

microprocesoareprodusedealtecompanii.Analizândinformaţiiledesprecal-culatoarelepersonalecomercializateînţaranoastră,identificațiproducătoriidemicroprocesoare din componenţa acestora.Observați cumvariază costulcalculatoarelorpersonaleînfuncţiedemicroprocesoareleutilizate.

CREEAZĂ!Elaborațiunmicstudiudespremicroprocesoareledincomponenţacalculatoarelordetipdesktop,notebook/laptop,tabletăşiacelorîncorporateîntelefoaneleinteligente,frecventutilizateînţaranoastră.

CERCETEAZĂ!Formulatăînanul1965,„legea”luiMoore,fondatorulcompanieiIntel,descrieotendinţăpetermenlungînistoriacalculatoarelor:număruldetranzistoricarepotfiplasaţipeuncircuit integratsedubleazăaproximativlafiecaredoiani.Aceastătendinţăacontinuatdemaibinedeojumătatedesecol.Analizânddatelereferitoarelanumăruldetranzistoridincomponenţacircuitelor integrate,publicatepeInternet,aflațidacăaceastă„lege”descriecorectevoluţiamicroprocesoarelordinultimiiani.

Page 192: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

192

REŢELE DE CALCULATOARE

7.1. Introducere în reţeleOdatăcuextindereadomeniilordeaplicareacalculatoarelor,acrescutşinu-

mărulutilizatorilorcedoreausăaibăacceslamijloaceeficientedeprelucrareşistocareaunorinformaţiicomune.

Deexemplu,încazulproiectăriiuneiclădiri,maimulţispecialişti–arhitectul,inginerul,pompierul ș.a.,dorescsăaibăaccesşisă introducă,dacăenecesar,modificăriîndeseneletehnicealeconstrucţieiîncursdeelaborare.Încazuluneicompaniidetransporturiaeriene,biletelelaunaşiaceeaşicursăpotfivândutedemaimulteagenţiiaflateînoraşediferite.

Soluţiainiţialălaastfeldeproblemeaconstituit-oconectarealauncalculatorcentral,demarecapacitate,amaimulteterminale(fig. 7.1).

Fig. 7.1. Sistem centralizat de calcul

Deregulă,unterminalconstădintr-unvizualizator,otastaturăşi,dacăene-cesar,oimprimantă.Neajunsulprincipalalunuisistemcentralizatdeprelucrareadatelorestefiabilitatearedusăşiutilizareaineficientăaresurselordecalcul.

Cutimpul,aapăruttendinţadetreceredelasistemelecentralizatelainstala-readecalculatoarelafiecareutilizatorşiasigurareaunorlegăturidecomunicaţieeficientăîntreele(fig. 7.2).

Numim reţea de calculatoare o mulţime de calculatoare ce pot schimba informaţii prin intermediul unei structuri de comunicaţie.Calculatoareleuneireţeleseconecteazălastructuradecomunicaţieprinin-

termediulunorunităţideintrare-ieşirededicate,numiteadaptoaredereţea. Evident,încadruluneireţelefiecarecalculator,maiexact,fiecareadaptordereţeaareoadresăunică,denumităadresădereţea.

Capitolul 7

Page 193: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

193

Deexemplu,oreţeadecalculatoarepoateficonstruităutilizândcastructurădecomunicaţiereţeauaexistentădetelefoane.Înacestcaz,adaptoruldereţeavaincludeunmodulatorpentruconversiuneasemnalelordigitalefurnizatedecalculatorînsemnaletelefoniceşiundemodulatorpentruoperaţiainversă.Dispo-zitivulrespectivpoartădenumireademodem (modulator-demodulator).Adresadereţeaestedatădenumăruldetelefonalpostuluilacareesteconectatmodemul.

Îngeneral,o structurădecomunicaţieesteformatădinliniidetransmisie asemnalelor.Acesteliniipotfi:

–cabluricufiretorsadate;–cabluricoaxiale;–cablurioptice;–liniicumicrounde(terestresauprinsatelit).Cablurilecufiretorsadatesuntasemănătoarecelortelefoniceşiasigurăo

capacitatedetransmisiedepânăla1Mbit/s.Cablurilecoaxiale,asemănătoarecelordinreţeleledeteleviziuneprincablu,asigurăocapacitatedetransmisiedepânăla1Gbit/s.Cablulopticconstădinfibredesticlăsaudinplastictranspa-rent,acoperitecuunînvelişdeprotecţie.Semnaluloptic,emisdeosursălaser,sepropagăprinfibrăşiesterecepţionatdeocelulăfotosensibilă.Capacitateadetransmisieaunuicabluopticpoateajungelavaloareade1Tbit/s.

Liniilecumicroundesuntformatedinstaţiideretransmisieceopereazăînbandadeundecentimetrice.PePământacestestaţiiseamplaseazăînrazavizibilităţiidirecteaantenelor,laodistanţăde40–50dekilometriunadealta.Încazulliniilorcosmice,staţiilerespectiveseamplaseazăpesateliţi.Capacitateadetransmisiealiniilorcumicroundeestedeordinul10Gbiţi/s.

Înfuncţiedeariaderăspândireacalculatoarelordintr-oreţea,existăur-mătoareletipuridereţele:

–reţelelocale;–reţeleregionale;–reţeleglobale.În reţelelelocalecalculatoareleauoariemicăderăspândire(pânăla2km)

şideservescosingurăinstituţie.Reţelelelocalesuntformate,deregulă,dincal-culatoarelecareseaflăînaceeaşiclădiresauîntr-ungrupdeclădiri.Deobicei,

Fig. 7.2. Reţea de calculatoare

Page 194: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

194

caliniidetransmisieseutilizeazăcablurilecufiretorsadateşicablurilecoaxiale.Înultimiiani,încazulreţelelorlocalemicişifoartemici,orăspândiretotmai

largăoaumijloaceleceasigurăcomunicareaechipamentelordigitaleprintehno-logiiradio(Wi-Fi,Bluetooth)saurazeinfraroşii.

Reţeleleregionaleacoperăariaunuioraşsauaunuisector.Liniiledecomu-nicaţieserealizeazăprincabluricoaxialesaustaţiimicidetransmisie/recepţie,denumiteradiomodemuri.

Reţeleleglobaleacoperăsuprafaţauneiţări,suprafaţaunuicontinentsauchiarsuprafaţamaimultorcontinente.Caliniidetransmisieseutilizeazăcablu-rileopticeşiliniilecumicrounde(terestresauprinsatelit).

Avantajulprincipalalreţelelorconstăînpartajareasau,cualtecuvine,uti-lizareaîncomunadatelor,aprogramelorşiacalculatoarelordinreţea.

Deexemplu,încazuluneireţelelocale,potfipartajatefişierele,discuriledecapa-citatemare,imprimantele,cititoarelededeseneşialteperiferice.Evident,fiindacce-sibilepentrumaimulţiutilizatori,echipamenteleperifericerespectivevorfiutilizatemaieficient.Totodată,specialiştiiinstituţieiîncauzăpotlucraînechipăasupraunorproiectecomune:bugetulanual,planuldevânzări,actualizareabazelordedateetc.

Încazulreţelelorglobale,colectivedecercetătoridindiferiteţăripotefectuacalculecomplexepeunsupercalculatorunicînlumesauanalizaîncomunrezul-tateleunuiexperimentştiinţificfoartecostisitor.Pebazareţelelorexaminatesuntcreatediverseservicii:transferuldefişiere,poştaelectronică,difuzareanoutăţi-lor,conversaţiipegrupurideinterese,jocurielectronice,publicitate,transferulbaniloretc.

Întrebări şi exerciţiiÊ Numiţifactoriicareaucontribuitlaapariţiareţelelordecalculatoare.ËCaresuntneajunsurilesistemelorcentralizatedecalcul?Ì Numiţicomponenteleprincipalealeuneireţeledecalculatoare.Í Explicaţidestinaţiastructuriidecomunicaţie. Caresuntfuncţiileadaptoruluidereţea?Cumseidentificăcalculatoareledin

componenţauneireţele?Determinaţitipuladaptoruluidereţeacucarelucraţidvs.

Dinceesteformatăostructurădecomunicaţie? Careestedestinaţiaunuimodem?Daraunuiradiomodem? Numiţicapacităţiledetransmisieaurmătoarelorliniidecomunicaţie: –cablucufiretorsadate; –cablucoaxial; –cabluoptic; –liniecumicrounde. Estimaţiduratade transmisieaunuifilmvideo (≈800Gbiţi) prin liniilede

comunicaţiepecarelecunoaşteţidvs. EXPERIMENTEAZĂ!Determinaţi tipul liniilorde comunicaţiedinstructura

reţelelorcucarelucraţidvs. Cumseclasificăreţeleleînfuncţiedeariaderăspândire?

Page 195: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

195

EXPERIMENTEAZĂ!Determinaţitipulreţelei(locală,regionalăsauglobală)cucarelucraţidvs.

Caresuntavantajelereţelelordecalculatoare?Ceserviciioferăoreţeadecal-culatoare?

EXPLOREAZĂ!Aflați capacităţilede transmisieaurmătoarelormijloacedecomunicaţiedincomponenţareţelelordecalculatoare:

–Wi-Fi; –Bluetooth; –curazeinfraroşii.

7.2. Tehnologii de cooperare în reţeaResurseleunei reţele de calculatoare sunt echipamentele periferice, liniile

decomunicaţie,calculatoarelepropriu-zise,fişierele,bazelededate,programeleexecutabileetc.Utilizareaeficientăaacestorresursepresupunelucrulîncomunsau,cualtecuvinte,cooperareacalculatoarelorşiprogramelorceruleazăpeele.

Numim tehnologie de cooperare modul cum este organizată funcţiona-rea în comun a calculatoarelor şi programelor din reţea.Celmaifrecventînreţeleledecalculatoareseutilizeazătehnologiileclient-ser-

verşiegal-la-egal.În tehnologiaclient-serveroresursăcomună,deexemplu,imprimantacolor

saudisculdemarecapacitate,estegestionatădeuncalculatordedicat,denumitserver.Calculatorulcaredoreştesăaibăacceslaacesteresursesenumeştecli-ent.Pentruautilizaresurselerespective,oriceclienttrimiteserveruluiocerere.Serverulanalizeazăcererileprimiteşi,înfuncţiedestatutulfiecăruiclient,leacceptăsaulerespinge(fig. 7.3).

Fig. 7.3. Modelul client-server

Evident,calculatorulcaregestioneazăfişierelecomunesevanumiserverdefişiere,iarcelcaregestioneazăimprimantele–serverdeimprimare.

Calculatorul caregestionează liniilede comunicaţie,alte resurse comuneşi,posibil,asigurăaccesullareţeleexternesenumeşteserverdereţea.Deregulă,anumepeacestcalculatorruleazăşisistemuldeoperarealreţelei.Celelaltecal-culatoaredinreţeaaucaracteristicimaimodesteşisenumescstaţiidelucru.

Avantajeleprincipalealetehnologieiclient-serversunt:–utilizareaeficientăaechipamentelorscumpe;

Page 196: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

196

–distribuirearaţionalăalucrărilorîntrecalculatoareînfuncţiedeputerealor;–protecţiasporităadatelorimportante,elefiindpăstratenumaipeservere.Curegret,tehnologiileclient-serversuntcomplicateşinecesităcalculatoare

performante.În tehnologiaegal-la-egal funcţiiletuturorcalculatoarelordinreţeasunt

identice.Fiecarecalculatordinreţeafuncţioneazăatâtcaserver,câtşicastaţiedelucru,oferindpentruuzulpublicresurseledecaredispune,înmodcurent,unelefişieredepedisculfix,unitateadediscoptic,imprimantaetc.Fiindsimplă,teh-nologiadatăsefoloseşteînreţelelelocalemici.Încazulreţelelormari,tehnologiaegal-la-egalnupermiteprotecţiasigurăadatelor.

Înmodsimilar,tehnologiileclient-serverseaplicăşipentruorganizarealucruluiîncomunadouăsauamaimulteprograme.

Programul în curs de execuţie care oferă servicii se numeşte program server, iar programele care apelează la aceste servicii se numesc pro-grame client.Deexemplu,unprogramservercegestioneazăobazădedateexecutăurmă-

toarelefuncţii:–asigurăprotecţiaşisecuritateadatelor;–recepţioneazăşi,dacăclientulareautorizaţiilerespective,executăcererile

demodificareadatelor;–recepţioneazăcereriledecitireadatelorşi,înfuncţiedestatutulclientului,

permitesauinterziceaccesulladatelerespective;–completeazăunregistruîncareînscrietoateoperaţiileefectuateînbazadedate.Programulclientasigurăinteracţiuneautilizatoruluicubazadedateşireali-

zeazăurmătoarelefuncţii:–oferăutilizatoruluiointerfaţăsimplăşicomodă;–verificăşiediteazădateleintrodusedeutilizator;–adreseazăcereriprogramuluiserver;–afişeazăinformaţiileprimitedinbazadedate.Programeleserverşiprogrameleclientpotrulapeunsingurcalculatorsau

pe calculatoarediferite. Înultimul caz, prelucrareadedate estedistribuită. Transferuldedateîntreprogramulclientşiprogramulserverserealizeazăprinstructuradecomunicaţie(fig. 7.2).Calculatorulpecareruleazăunprogramserversenumeştegazdă(înenglezăhost).

Deobicei,înreţelelelocaleprogramulclientseexecutăpestaţiiledelucru,iarprogrameleserverruleazăpeserveruldereţea.Încazulreţelelorregionalesauglobale,pefiecarecalculatorperformantruleazămaimulteprogrameserverceoferădiverseserviciiprogramelorclientdepealtecalculatoare.

Întrebări şi exerciţiiÊ Explicaţitermenultehnologii de cooperare în reţea.Cetehnologiidecooperare

înreţeacunoaşteţi?Ë Cumesteorganizatăfuncţionareacalculatoarelordinreţeaîncazultehnologiei

client-server?

Page 197: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

197

Ì Caresuntavantajeleşidezavantajeletehnologieiclient-server?Í Explicaţidestinaţiaserverelordereţea,aserveruluidefişiere,aserveruluide

imprimareşiastaţieidelucru. Cumesteorganizatăfuncţionareacalculatoarelordinreţeaîncazultehnologiei

egal-la-egal?Caresuntavantajeleşidezavantajeleacesteitehnologii? EXPERIMENTEAZĂ!Determinaţitehnologiiledecooperarerealizateînreţeaua

cucarelucraţidvs.Existăoareînreţeaunserverdefişiereşi/sauunserverdeimprimare?

Existăînreţeauacucarelucraţidvs.unserverdereţea?Argumentaţirăspunsul. Esteoarerealizatăînreţeauacucarelucraţidvs.tehnologiaegal-la-egal?Ar-

gumentaţirăspunsul. Cuminteracţioneazăprogrameleîncursdeexecuţieîncazultehnologieiclient-

server? Numiţifuncţiileunuiprogramserverşialeunuiprogramclient.

Explicaţitermenulcalculator-gazdă. CERCETEAZĂ!Ocompaniedetransporturiaerieneadeschisagenţiidevânzareabiletelorînmaimulteoraşedinţară.Dateledespretoateruteleaerieneşilocuriledisponibilesepăstreazăîncalculatoruldinsediulcentralalcompaniei.

Caretehnologiidereţeaarasiguralucruleficientalagenţiilordevânzareabiletelor?Suntoarenecesareprogrameserverşiprogrameclient?Cefuncţiiarrealizaacesteprograme?

ANALIZEAZĂ!Jocurileelectronicecolectivepresupunexistenţaa5-10calcu-latoarereuniteînreţea.Înastfeldejocurifiecareluptăcontratuturor.Calcu-latoarelerespectiveoferăpentruuzulpublicopartiţiedepedisculfix.

Cetehnologiedereţeaarasiguralucrulîncomunalcalculatoarelor? PROIECTEAZĂ!Elaboraţiotehnologiedecooperareînreţeapentrucalcula-toareledin:

a) depoziteleuneifirme; b) săliledeexpoziţiealeunuimuzeu; c) săliledelecturăaleuneibiblioteci; d) caseleunuimagazincareacceptăcarduribancare; e) sistemuldeeliberareabanilorlichiziprinintermediulautomatelorbancare; f) sistemuldeverificareoperativăanumerelordeînmatriculareaautomobilelor

(fiecareechipajdepoliţieestedotatcuunmicrocalculatorşiunradiomodem); g) laboratoruldeinformatică.

7.3. Topologia şi arhitectura reţelelorStructuradecomunicaţieauneireţele(fig. 7.2)asigurătransferuldedateîntre

calculatoare.Deobicei,dateledetransmissuntgrupateînpachete.Un pachetdedateconţineurmătoareleinformaţii:–adresadestinatarului;–datelepropriu-zise;–informaţiidecontrol;–adresaexpeditorului.

Page 198: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

198

Fig. 7.4. Topologii de reţea:a – stea; b – inel; c – magistrală; d – distribuită

Seobservăcăpachetuldedatepoatefitratatcaunplicobişnuitcarecirculăîntr-unsistemtradiţionaldepoştă.Drumulparcursdeunpachetdedatedepindedetopologiareţelei.

Numim topologie a reţelei configuraţia geometrică a legăturilor dintre calculatoare.Topologiileconcretealereţeleloractualesuntformateprinutilizareastructu-

rilordebază:stea,inel,magistrală,distribuităetc.(fig. 7.4).

Încazultopologiei stea,legăturadintredouăcalculatoareCi,CjalereţeleiarelocprinintermediulcalculatoruluicentralC1.Dinacestmotiv,calculatorulC1,denumitcalculatorprincipal,areunrolimportantînfuncţionareareţelei,efectuânddispecerizareapachetelordedate.Evident,defectareacalculatoruluiprincipalîntrerupefuncţionareaîntregiireţele.Prinurmare,calculatorulprincipaltrebuiesăfiefoartefiabil.

În topologiainellegăturiledintrecalculatoareformeazăobuclăînchisă.Pa-chetulexpediatdecalculatorulCiestetransmiscalculatoruluiCi+1,care,larândulsău,îltransmitecalculatoruluiCi+2etc.,pânăcândpachetulajungelacalculato-ruldestinatarCj. Întrucâtdefectareaoricăruicalculatorîntrerupefuncţionareaîntregiireţele,toatecalculatoareleC1,C2,...,Cntrebuiesăfiefoartefiabile.

În topologiamagistralăexistăunsingurcanaldecomunicaţielacaresuntconectate toate calculatoarele.Fiecarecalculator „spionează”magistralaşi in-tercepteazăpacheteleadresatelui.OricecalculatorCipoateexpediaunpachetnumaiatuncicândmagistralaesteliberă.

Reţelelebazatepetopologiadetipmagistralăsuntfoartefiabile,întrucâtco-municareadintrecalculatoareleCi,Cjvaavealocchiarşiîncazulîncaretoatecelelaltecalculatoarenufuncţionează.

Page 199: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

199

În topologiile distribuite întrefiecareperechedecalculatoareexistămaimultecăidetransmisieadatelor.Deexemplu,unpachetdedateexpediatdecalculatorulC1 calculatorului Cn (fig. 7.4d)poateajungeladestinaţiepedrumulC1–C2–C5–Cn,iaraltulpedrumulC1–C4– Cn.Evident,reţeauarămânefunc- ţională chiardacăunul saumaimulte calculatoareşi liniide comunicaţienufuncţionează.

Deregulă,topologiiledetipstea,inelsaumagistralăseutilizeazăîncazulreţe-lelorlocale.Reţeleleregionaleşiceleglobaleauotopologiedistribuită.Integrareareţelelorlocaleînreţeleregionaleşireţeleglobalesefaceconformtopologiilordebazădinfigura 7.4, fiecarenodC1,C2,...,Cn reprezentândosubreţea.Prinurmare,ajungemlaostructurăierarhicăcuodiversitatedelegături.

Setul de reguli pentru gestionarea schimbului de date într-o reţea este numit protocol de comunicaţie sau, pur şi simplu, protocol. Un protocoldefineştemoduldeadresareacalculatoarelor,lungimeaşicom-

ponenţapachetelordedate,algoritmuldedepistareşicorectareaerorilor,moduldeconectarefizicăaadaptoarelorşicablurilordereţeaetc.Laapariţiaprimelorreţeledecalculatoarefiecareproducătordeechipamentedecalculaveapropriilesaleprotocoaledecomunicaţie,ceeacefăceaimposibilăinterconectareacalcula-toarelordeprovenienţediferite.Acestneajunsafost înlăturatprinstandardi-zareaprotocoalelor.Amintimcăstandardulreprezintăundocumentîncaresereglementeazăcalitatea,caracteristicile,formaetc.aleunuiprodus.StandardeleinternaţionalesuntelaboratedeOrganizaţiaInternaţionalăpentruStandardizare(ISO–International Standards Organisation).UnaltorganisminternaţionalcarejoacăunrolimportantînstandardizareaîndomeniileelectroniciişitehniciidecalculesteInstitutulInginerilorElectricienişiElectronişti(IEEE–Institute of Electrical and Electronics Engineers).

Numim arhitectură a reţelei modul în care este concepută reţeaua: to-pologia, protocoalele de comunicaţie, tehnologiile de cooperare în reţea.Încontinuareprezentămcelemairăspânditearhitecturidereţele.Ethernet(reţeaîneter)–reţelelocalerealizateînconformitatecustandardul

IEEE802.3.Utilizeazăomagistralădincablucufiretorsadate,cablucoaxialsaucablucufibreoptice.Vitezadetransmisieadatelorajungela100Mbiţi/s.Arhi-tecturaafostelaboratădefirmeleXEROX,IntelşiDEC.

Token–Ring(inelcujeton)–reţelelocalerealizateînconformitatecustandardulIEEE802.5.Utilizeazăunineldincablucufiretorsadatesaucablucoaxial.Vitezadetransmisieadatelorestede16Mbiţi/s.ArhitecturaafostelaboratădefirmaIBM.

DATAKIT–reţelelocale,regionalesauglobaleelaboratedefirmaBell Labo-ratories.Subaspecttopologic,constădintr-omulţimedesteleinterconectate.Încazulcabluluicufibreoptice,seatingevitezadetransmisiede1,5Gbiţi/s.

SNA (Sistem Network Arhitecture) – o arhitectură elaboratădefirma IBM pentru reţelele locale, regionale şi globale.Protocoalele acestei arhitecturi austatlabazastandardelorISO.Topologiainiţialăeradetipstea,înprezenteste otopologiedistribuită,suportândşireţelelocale.

Page 200: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

200

ARPANET–oarhitecturăconceputădemaimulteuniversităţişicorporaţiisubegidaMinisteruluiApărăriialSUA(Advanced Research Projects Agency). Arhitecturadatăsebazeazăpeotopologiedistribuităşifoloseştediferiteliniidecomunicaţie,delaliniiletelefonicepânălaliniilecumicroundeprinsatelit.Liniilerespectiveconecteazăsupercalculatoareseparateşidiversereţelelocalesauregionale,răspânditepeaproapejumătatedinsuprafaţaterestră.ArhitecturaARPANETincludeurmătoareleprotocoale:

– protocolul IP (Internet Protocol) destinat interconectării reţelelor locale,regionaleşiglobale;

–protocolulserviciilorbazatepeconexiuni,numitTCP (Transmission Control Protocol);

–unprotocoldetransferdefişiere,numitFTP (File Transfer Protocol);–unprotocolpentrupoştaelectronică,numitSMTP (Simple Mail Transfer

Protocol);–unprotocoldeataşaredeladistanţăacalculatoarelor,numitTELNET.PebazaarhitecturiiARPANETafostconceputăreţeauaglobalădecalculatoare

Internet,carevafistudiatăînparagrafulurmător.Accentuămfaptulcăodatăcuîncorporareamicrocalculatoarelorîncelemai

diversemaşini,aparateşidispozitive,înparticular,înceleelectrocasnice,aapărutposibilitateaconectăriiacestoraînreţele,denumitereţele de obiectesauInternet al obiectelor (înenglezăInternet of Things,abreviatIoT).

ObiecteleconectatelaInternetul obiectelorpotficontrolateladistanţă,faptceoferănoiposibilităţidecreştereaproductivităţiimunciişiîmbunătăţiriivieţiioamenilor.Totodată,răspândireatotmailargăaacestortehnologiiesteînsoţitădeapariţiaunorproblemeimportante,legatedesecuritateareţelelorşiobiectelorconectatelaele.Eventualeleameninţăridesecuritatesereferănudoarlaconfidenţialitateaşiintegritateainformaţiilorprocesate,darşilaeventualeledaunematerialeşiumane,carepotfiprovocatedeobiecteleieşitedesubcontrolsaudecelecontrolatedeintruşi.

Întrebări şi exerciţii

Ê Explicaţitermenulpachet de date.Ceinformaţiiconţineunpachetdedate?Ë Explicaţitermenultopologia reţelei.Ì STUDIUDECAZ.Caresunttopologiiledebazăalereţelelor?Numiţiavantajele

şidezavantajelefiecăreitopologiidebază.Í Explicaţicumsetransmitpachetelededateînurmătoareletopologiidebază:

stea,inel,magistrală,distribuită. Precizaţidrumulpe care îlvaparcurgeunpachet trimisde calculatorulC2

calculatoruluiC4 (fig. 7.4a). GăsiţidrumulpecareîlparcurgpacheteleexpediatedecalculatorulC2calcu-

latoruluiC4 (fig. 7.4b). CâtecăidetransmitereapachetelorexistăîntrecalculatoareleC1,Cn din

figura 7.4d?Careestecaleaceamaiscurtă? Cesevaîntâmplacureţeleledinfigura 7.4dacăiesedinfuncţiecalculatorul

C1?DardacăiesedinfuncţiecalculatorulC2?

Page 201: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

201

Fig. 7.5. Topologia Internetului

EXPERIMENTEAZĂ!Determinaţitopologiareţeleilocalecucarelucraţidvs.Enumeraţiavantajeleşidezavantajeleacesteitopologii.

Careestedestinaţiaunuiprotocol?Cenormeconţineunprotocol? Argumentaţinecesitateastandardizăriiprotocoalelor.Cineelaboreazăstandar-delerespective?

EXPERIMENTEAZĂ!Aflaţi protocoaleleutilizatede reţeaua locală cu carelucraţidvs.

Explicaţimodul cumse integrează reţelele locale în reţelele regionale şi cele globale.Desenaţitopologiareţelelorregionalesauglobalelacareaveţiaccesdvs.

Explicaţitermenularhitectura reţelei. Daţiexempledearhitecturialereţelelorlocale,regionaleşiglobale. Caracterizaţiarhitecturareţeleicucarelucraţidvs. EnumeraţiprotocoaleleutilizateînarhitecturaARPANET.Suntoareaplicateacesteprotocoaleînreţeauacucarelucraţidvs.?

ExplicaţitermenulInternetul obiectelor. EXPLOREAZĂ!ÎnbazainformaţiilorpublicateînInternet,aflațicumşiîncemăsurăInternetul obiectelorinfluenţeazăproceseletehnologiceşiviaţacotidianăaoamenilor.

CREEAZĂ!ElaborațiunmiceseucarearpuneînevidenţăoportunităţileoferitedeInternetul obiectelorşimodalităţilededepăşireaobstacolelorcucareelseconfruntă.

7.4. Reţeaua InternetReţeauaglobalăInternetsebazeazăpeotopologiedistribuităşiincludecalcu-

latoareseparate,subreţelelocale,regionalesauglobale(fig. 7.5).

Page 202: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

202

Interconectareareţelelorserealizeazăcuajutorulunorechipamentededicatedereţea,denumiteporţisaurutere.Poarta (gateway)esteuncalculatorspecializatdestinatinterconectăriiadouăreţeleceutilizeazăprotocoaletotaldiferitedeco-municaţie.Ruterul (router)esteuncalculatordedicatcareinterconecteazăreţelelecefolosescprotocoaleidenticeşisuntutilizatepentruadeterminaceamaibunăcaledetransmitereapachetelor.CalculatoareleconectatelaInternetsenumescgazde (host).Funcţionareareţeleiestereglementatădecirca100deprotocoale.

Identificareacalculatoarelor încadrulreţeleise facecuajutoruladreselor Internet.Acesteapotfidedouătipuri:adresenumericeşiadresesimbolice.

O adresănumericăesteformatădin32decifrebinare(4octeţi)şiarestruc-turaprezentatăînfigura 7.6.

ÎntrucâtInternetulesteo„reţeadereţele”,adresanumericăconţineadresasubreţelei (câmpulAdresă Reţea) şi adresa calculatorului în cadrul subreţelei(câmpulAdresă Calculator).Înfuncţiedenumărulmaximdecalculatoarepecarelepoateidentificaîncadruluneisubreţele,adreseleseîmpartînclaseleA,BşiC.AdreseledinclaseleDşiEauodestinaţiespecială.CaracteristicaadreselorInternetesteprezentatăîntabelul 7.1.

Tabelul 7.1Caracteristicaadreselornumerice

Fig. 7.6. Structura adreselor numerice

ClasaNumăruldeadresedisponibile

dereţea de calculatoare

ABC

27=128214=16384221=2097152

224=16777216216=6553628=256

Page 203: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

203

AdreseledinclasaAsuntdistribuitereţelelormari,înspecialreţelelorglobale.Oastfeldereţeapoateincludecirca16milioanedecalculatoare.AdreseledinclasaB suntdistribuitereţelelormedii, înspecialreţelelorregionale.Oastfeldereţeapoate includecirca65miidecalculatoare.AdreseledinclasaC suntrezervatereţelelorrelativmici,careincludpânăla256decalculatoare.FiecareadresăInternetesteunică.AdreselesuntatribuitecalculatoarelordeCentrul Informaţional al Reţelei (Network Information Center).

Deexemplu,numărulbinar

10010010001100110000100111110111

esteoadresădeclasaBşiidentificăcalculatorulnumărul

0000100111110111dincadrulreţelei

01001000110011.

Pentrucomoditate,adreselebinareseexprimăînformăzecimală,transfor-mândseparatfiecareoctet.Numerelezecimalecorespunzătoarefiecăruioctetsedelimiteazăprinpuncte.

Încazulexempluluidemaisusobţinem:

(10010010)2=(146)10;

(00110011)2=(51)10;

(00001001)2=(9)10;

(11110111)2=(247)10.

Prinurmare,înformăzecimalăadresarespectivăvafi146.51.9.247.Adreseleînformăzecimalăşicuatâtmaimultceleînformăbinarăsuntincomode

pentrupublicullarg.Dinacestmotiv,maifrecventsuntutilizateadreselesimbolice.O adresăsimbolicăesteformatădinnumelecalculatorului-gazdăşinume

dedomeniiseparateprinpuncte.Domeniulreprezintăungrupdecalculatoareorganizatetematicsaugeografic.Oricedomeniupoatefiîmpărţitînsubdomenii,ajungându-seastfellaostructurăierarhică.Numelededomeniiseindicăînor-dineacreşteriiarieidecuprindere.

Deexemplu,adreselesimbolice

c1.lme.ch.md

c5.lme.ch.md

specificăcalculatoarelec1şic5dindomeniullme(Liceul„MihaiEminescu”).Adreselesimbolice

c1.lic.ch.md

c9.lic.ch.md

Page 204: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

204

specificăcalculatoarelec1şic9 dindomeniullic(Liceul„IonCreangă”).Domeniilelmeşilicsuntsubdomeniialedomeniuluich(Chişinău).Larândulsău,chesteunsubdomeniualdomeniuluimd(RepublicaMoldova).

Înmodsimilar,adreselesimbolice

rector.ase.men.ro

decan.ase.men.ro

specificăcalculatoarelerectorşidecandindomeniulase (AcademiadeStudiiEcono-mice).Domeniulaseesteunsubdomeniualdomeniuluimen(MinisterulEducaţieiNaţionale),iarmenesteunsubdomeniualdomeniuluiro(România).

Înmodnormal,domeniuldecelmaiînaltnivelesteţara(md, ro, us etc.)sautipulinstituţiei(com–comercială,mil–militară,edu–deeducaţieetc.).

Relaţiilede incluziune întredomeniipotfireprezentatecuajutoruldia-gramelorEuler,frecventutilizateînteoriamulţimilor.Pentruexemplificare,înfigura 7.7suntprezentateastfeldediagramepentruuneleadresesimbolicedindomeniulmd.

Pentruatransformaadreselesimboliceînadresenumericeşiinvers,înfiecaredomeniuexistăunserverdenume (name server).Acestprogramgestioneazădomeniulrespectivfărăintervenţiaserverelorierarhicsuperioare.Prinurmare,înInternetnuexistăuncalculatorcentralcarearfiuniculresponsabildeceleaproximativ1010adresedereţea.

Încazulexempluluidemaisus(fig. 7.7),adreselecalculatoarelorc1şic5suntprocesateînserverul lme,iaradreselecalculatoarelorc1şic9–deserverul lic. Serverulch valucranumaicuadreseleserverelorlic şilme,fărăsăseimpliceînprocesareaadreselordecalculatoaredinacestedomenii.Înmodsimilar,serverulmen nuproceseazăadreselecalculatoarelorrector şidecan,lăsândacestlucruînobligaţiaserveruluiase.

Fig. 7.7. Diagrame Euler pentru adrese simbolice

Page 205: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

205

Întrebări şi exerciţiiÊ DesenaţitopologiareţeleiInternet.Cumseinterconecteazăsubreţeleleîncadrul

Internetului?Ë Careestedestinaţiauneiporţi?Daraunuiruter?Ì CumseidentificăcalculatoareleînInternet?Caresuntavantajeleşidezavan-

tajeleadreselornumerice?Daraleadreselorsimbolice?Í Caresuntclaseledeadresenumerice?Pentruceestenecesarăoastfeldeclasificare? ExplicaţidestinaţiacâmpurilorAdresă reţeaşiAdresă calculatoraleuneiadrese

numerice. CineatribuieadresecalculatoarelordinInternet? Determinaţiclaseleurmătoareloradrese.Precizaţiadresasubreţeleişiadresa

calculatoruluiînsubreţea.

a) 45.201.19.63; d) 192.109.58.170;

b) 201.165.213.91; e) 15.21.207.250;

c) 154.36.79.200; f) 217.15.69.113.

Caresuntcriteriiledegrupareacalculatoarelorîndomenii?Numiţidomeniiledecelmaiînaltnivel.

Suntdateurmătoareleadresesimbolice:

a) c1.lme.ch.md; f) c4.lme.ch.md;

b) c3.lme.ch.md; g) c5.lme.ch.md;

c) c1.lic.ch.md; h) c9.lic.ch.md;

d) director.lic.ch.md; i) prof.lic.ch.md;

e) elev1.lic.ch.md; j) elev4.lic.ch.md. Precizaţi domeniile de calculatoare şi relaţiile de incluziune întredomenii.

DesenaţidiagrameleEulerpentruadreseleîncauză. Desenaţi o diagramăEuler pentruadresele simbolice ceurmează.Precizaţi

domeniiledecalculatoareşirelaţiilerespectivedeincluziune.

a) rector.ase.men.ro; d) rector.ase.met.md;

b) decan.ase.men.ro; e) decan.ase.met.md;

c) student.info.ase.men.ro; f) student.cib.met.md.

Careestedestinaţiaunuiserverdenume?Ceadresesuntprocesatedeunastfeldeserver?

Precizaţi serverele denumepentruadresele din exerciţiile 9 şi 10. Indicaţiadreselepecareleproceseazăfiecareserver.

EXPERIMENTEAZĂ!Aflaţiadresanumericăşiadresasimbolicăalecalculato-ruluicucarelucraţidvs.Precizaţiclasadeadresă,adresasubreţeleişiadresacalculatorului încadrulsubreţelei.DesenaţiodiagramăEuler cereprezintărelaţiiledeincluziuneîntredomeniilelacareaparţinecalculatoruldvs.

Page 206: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

206

7.5. Servicii InternetReţeauaInternetoferăurmătoareagamădeservicii:–accesulcalculatoarelorladistanţă;–transferuldefişiere;–poştaelectronică;–ştirişidiscuţii;–prezentareaşicăutareainformaţiiloretc.Cooperareacalculatoarelorşiprogramelorcareoferăacesteserviciisebazea-

zăpemodelulclient-server.Deobicei,pecalculatorulbeneficiaruluideserviciurulează programul client, iar pe calculatorul furnizorului de servicii ruleazăprogramulserver.

ServiciulTelnetpermiteutilizatoruluisăaibăacceslacalculatoareleaflateladistanţă.Dupăstabilireaconexiunii,calculatorulutilizatoruluidevineunsimpluterminalalcalculatoruluiaflatladistanţă.Încontinuare,utilizatorulpoatelansaînexecuţiepe calculatorul respectivdiverseprograme,poatevizualizafişiere,schimbadirectoareetc.Protecţiacalculatoarelorşiadatelorrespectiveseasigurăprinutilizareaparolelor.ServiciulTelnetseutilizeazăpentrufolosireaîncomunaunorresursefoartescumpe,deexemplu,asupercalculatoarelor.

Serviciultransferdefişieresau,maiscurt,serviciulFTP (File Transfer Protocol)permiteutilizatoruluisăcopiefişieredepecalculatoaresituateîndiversepunctegeografice.Acestserviciuoferădouămoduridetransferalfişierelor:

–modulbinar,încaresepăstreazăsecvenţadebiţiafişierului,astfelîncâtoriginalulşicopiasuntidenticebitcubit;

–modultext,încaresetransferăseturidecaractereîncodulASCII.Îngeneral,pentruaaveaacceslaserverulFTP,clientultrebuiesăintroducă

oparolă.Totuşiexistăserverepublice(FTP anonymous)carepermitaccesullafişierefărăafinevoiedeoparolăspecială.

Serviciuldepoştăelectronică (electronic mailsau,prescurtat,e-mail) a copiatmoduldefuncţionareapoşteiobişnuite.

Scrisoareaelectronică,denumitămesaj (message)include:–adresadestinatarului;–subiectul,exprimatîncâtevacuvinte;–adresaexpeditorului;–textulscrisorii;–fişiereataşateopţional.Fişiereleataşatepotfideoricenatură:texte,imagini,programeetc.Scrisorilesuntdepuseînfişierespeciale,denumitecutiipoştale (mail box).

Adresauneicutiipoştaleareforma:

<nume cutie>@<Adresă calculator>,

unde:<nume cutie> estedenumirea cutieipoştale,deobiceiacestaestenumelede

familiealutilizatoruluisauoabreviere;@–simbolul„at”(la);

Page 207: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

207

<Adresă calculator>–adresasimbolicăacalculatoruluiclientpecareestecreatăcutiapoştală.

Exemple:

1) [email protected]

2) [email protected]

3) [email protected]

4) [email protected]

Cititoriipotexpediascrisoriautoriloracestuimanuallaadresa:

[email protected]

Mesajelesunttransmiseprinreţeadeservereledepoştăcareauroluloficiilorşicentrelorpoştaletradiţionale.

Serviciuldepoştăelectronicăestefoartepopulardatorităavantajelorsalein-contestabile,şianume:viteză,posibilitateadeaataşalascrisorifişieredeoricenatură,facilităţiavansatederedactare.

CelmaimodernserviciudeprezentareşicăutareainformaţiilorînInternet este serviciulWWW (World Wide Web–PânzaMondialădePăianjen).ÎnacestserviciuinformaţiaesteprezentatăînformădepaginiWeb.

PaginaWebesteunfişierscrisînlimbajulHTML(Hypertext Markup Langua-ge–Limbajpentrumarcareahipertextului)şipoateconţine,înafarădeinformaţiipropriu-zise,referinţelaaltepaginiWeb.Paginilereferitesepotaflapeacelaşicalculatorsaupecalculatoaresituateîndiversepunctegeografice(fig. 7.8).

Fig. 7.8. Pagini Web

Page 208: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

208

TehnologiadecooperareîncadrulserviciuluiWWW estedetipulclient-server.UtilizatorulcaredoreştesăoferepubliculuilarganumiteinformaţiiinstaleazăpecalculatorulsăuunprogramserverşielaboreazăunasaumaimultepaginiWeb.Serverulintercepteazăcererilesositedelaaltecalculatoareşiasigurăaccesullapaginilerespective.CalculatorulpecaresuntinstalatepaginileWebşiserve- rulWWWsenumeştesite (site – sediu,reşedinţă).

ProgramulclientasigurătransferulşiafişareapeecranapaginilorWebcititedepediversecalculatoaredinInternet.Imediatdupăpornire,elafişeazăpropriapaginădereferinţă(home page– paginadeacasă)şiaşteaptăindicaţiileutili-zatorului.Cândutilizatorulactiveazăoreferinţă,programulclientstabileşteoconexiunecuserverulWebşicopiazădelaelpaginaspecificatăînreferinţă.Paginacopiatăesteafişatăpeecran.

Încontinuare,utilizatorulactiveazăoaltăreferinţă,programulclientstabileştedinnouconexiuneacuuncalculatordinreţea,dinnousevacitiopaginăWebetc.Cualtecuvinte,utilizatorul„răsfoieşte”paginileWebdepediversecalculatoare,indiferentdepoziţialorgeografică.Dinacestmotivprogrameleclientsuntnumiteprogramederăsfoiresauprogramedeexplorare(înenglezăbrowsersauexplorer).

ÎncadrulserviciuluiWWWresurselereţeleisespecificăcuajutorulunoradresespeciale,denumiteadreseURL(Uniform Resource Locator –LocatorUniformdeResurse).Acesteadreseauforma:

<protocol>: // <Adresă simbolică>[:<port>]/<cale>/<fișier>

unde:<protocol> – specificădenumireaprotocoluluipentru transferuldatelorprin

reţea;<Adresă simbolică>–adresacalculatoruluiceconţinefişierulrespectiv;<port>–portuldeacces(opţional);<cale>/<fișier>–specificareafişierului.Pentruexemplificare,prezentămcâtevaadreseURLceconţininformaţiiin-

teresante:http://www.mecc.gov.md –site-ulMinisteruluiEducaţiei,CulturiişiCercetării,

RepublicaMoldova;http://www.ctice.gov.md –site-ulCentruluideTehnologiiInformaţionaleşiCo-

municaţionaleînEducaţie,RepublicaMoldova;https://www.sciencemuseum.org.uk –site-ulMuzeuluiŞtiinţeidinLondra,Regatul

UnitalMariiBritaniişiIrlandeideNord;http://www.nasa.gov –site-ulagenţieiNASA,StateleUnitealeAmericii.Amintim că notaţia http specifică protocolul de transfer al hypertextelor

(Hypertext Transfer Protocol).Înprezent,numărulfişierelordinreţeauaInternetestedeordinulmiliarde-

lor.Evident,nicinupoatefivorbadecăutareainformaţieinecesareprincitireaindividualăafiecăruifişier.Pentruasimplificacăutareainformaţiei,încadrulreţeleiInternetaufostcreateserveredecăutare(search engine).

Serveruldecăutareesteuncalculatorputerniccareexploreazăîncontinuureţeauaşi citeştepaginileWebsaualte informaţiiprezentatepublicului larg.

Page 209: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

209

Acesteasuntclasificateînfuncţiededatelepecareleconţin,iaradreselelorsuntreţinuteînbazadedatedepeserver.

Programulclientadreseazăserveruluidecăutareocerereîncareindicădecefeldeinformaţiiarenevoie.Serverulinterogheazăbazadedateşitransmiteclientuluiolistădeadreselacarepotfigăsiteinformaţiilecerute.

Pentruexemplificare,amintimservereledecăutarefrecventutilizate:http://www.yahoo.com –serverulYAHOO(Yet Another Hierarchically Organized

Oracle –încăunoracolorganizatierarhic)alcompanieiYahoo! Inc.;http://www.google.com–serverulGOOGLEalcorporaţieiGoogle Inc.;http://www.bing.com–serverulBINGalcorporaţieiMicrosoft Inc.;http://www.yandex.ru–serverulYANDEXalcompaniei«Яндекс»;http://www.infoseek.com–serverulInfoseekalfirmeiInfoseek Corp.Accesullaacesteservereestegratuit.

Întrebări şi exerciţiiÊ CareestegamadeserviciioferitedeInternet?Cumcolaboreazăcalculatoarele

dinreţeaînprocesulprestăriiunuiserviciu?Ë CareestedestinaţiaserviciuluiFTP?Cefişierepotfitransferateprinacest

serviciu?Ì StudiaţiprogramulFTPinstalatpecalculatoruldvs.Copiaţicâtevafişierede

peservereleFTP anonymoussaudepealteserverelacareaveţiacces.Í Decedepindevitezadetransferafişierelor?Determinaţivitezadetransfera

câtorvafişieredepeservereleFTPaflateînRepublicaMoldova,RomâniaşiStateleUnitealeAmericii.

Cumsespecificăadreseleîncadrulserviciilordepoştăelectronică? Explicaţicuminteracţioneazăcalculatoareleclientşiservereledepoştăîncadrul

serviciuluirespectiv. Ceinformaţiiconţineoscrisoareelectronică?Caredintreelesuntopţionale? Explicaţicumseformeazăoadresăpoştală.Aflaţiadreselepoştalealeprietenilor

dvs. Studiaţiprogramuldepoştăelectronicăinstalatpecalculatorullacarelucraţi

dvs.Verificaţidacăacestprogramoferăurmătoarelefacilităţi: –utilizareamaimultorcutiipoştale; –clasificareaşipăstrareascrisorilorîndosare; –elaborareascrisorilorconformunorşabloane; –cifrareaşidescifrareacorespondenţei; –semnalareamomentelorcândasositcorespondenţa; –verificareafaptuluicăscrisorileexpediateauajunsladestinaţie; –utilizareasemnăturilorelectronice. Caresuntavantajelepoşteielectronice?Poateînlocuiacestserviciupoştatra-

diţională? LUCRULÎNGRUP.Formaţigrupedecâtepatruutilizatoriaipoşteielectroniceşideterminaţiexperimentalvitezacucaresetransmitecorespondenţa.

Ce informaţii conţinepaginaWeb?Cum formeazăacestepagini o „pânzădepăianjen”?

Page 210: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

210

CareestedestinaţiaunuiserverWeb?DaraunuiclientWeb?Cuminteracţio-neazăacesteprograme?

ExplicaţimoduldefuncţionareaunuiclientWeb.CumgăseşteacestprogrampaginileWebamplasatepediferitecalculatoare?

Explicaţimodulde specificarea resurselor în Internet cuajutoruladreselorURL.Careestesemnificaţiacâmpuriloracestoradrese?

EXPERIMENTEAZĂ!DeterminaţitipulprogramuluideexplorareaInternetului instalatpecalculatorulcucarelucraţidvs.Cefacilităţioferăacestprogram?CitiţipaginileWebadreselecărorasuntindicateînacestparagraf.

Careestedestinaţiaunuiserverdecăutare?Ceserviciioferăunastfeldeserver? EXPLOREAZĂ!Găsiţicuajutorulunuiserverdecăutarefurnizoriideservicii

InternetdinRepublicaMoldova. EXPLOREAZĂ!Înafarădeserviciilestudiateînacestparagraf,reţeauaInternet oferăşialteservicii,cumarfi:Archie,Gopher,WAIS,buletinedeştiri,discuţiietc.Folosindunserverdecăutare,aflaţiinformaţiarespectivădespreacesteservicii.

PROIECTE!ElaboraţipaginileWebaleclaseişialeliceuluidvs.

Page 211: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

211

MODULE LA ALEGERE

Moduleledinacestcapitolsuntopţionale.Ceînseamnăacestlucru?Aveţiposi-bilitateasăalegețiunuldintreeleşisă-lstudiaţiînritmpropriu,desinestătătorsauîmpreunăcucolegii,înprocesulexersăriişielaborăriideproiecte,cuajutorulmijloacelordeinstruireasistatădecalculator.Dupăceaţialesunmodúl,împreunăcuprofesoruldeinformaticăveţidecideceprogramedeaplicaţiiveţiutiliza,veţiaveagrijăcaelesăfielicenţiatesaucudistribuţieliberă,văveţiasiguracăelesuntinsta-latepecalculatoareledinlaboratoareledeinformaticăşipecelepersonale,dupăcaz.

Proiectelecaresereferălasubiecteample,deexemplu,laoraşe,sate,şcoli,vorfielaborateîncadrulechipelordeelevi,fiecaremembrualechipeispeciali-zându-sepeunanumitaspect,deexemplu,pecelistoric,demografic,economic,cultural,etnograficetc.

Totînechipevorfielaborateşiproiectelecesecaracterizeazăprintr-unbogatconţinutmultimedia,specializareamembrilorechipelorrealizându-sedupăgenulmaterialelorrespective,deexemplu,imagini,secvenţeaudio,secvenţevideo,de-signulinterfeţelorgrafice,programareaalgoritmilordeprelucrareadatelorş.a.

8.1. Introducere în reţeleAcestetehnicivorfistudiatepeetape,dupăcumurmează.1.Digitalizareainformaţieiaudio.Amintiţi-vădinfizicăcaracteristicile

sunetuluicafenomenfizicşiparametriiceinfluenţeazăpercepţiadecătreomaundelorsonore.Dininformaticăamintiţi-văcodificareadigitalăainformaţieiaudio.UtilizândbogateleresursealeInternetului,aflaţicumserealizeazăcompresiaşidecompresiadateloraudio,caresuntformatelefişierelorceconţindateaudio.

Acordaţioatenţiedeosebităechipamentelordestinateînregistrăriidigitaleasunetuluişiredăriiacestuia:parametriitehnici,interacţiuneacucalculatoarelepersonale,costurile,domeniiledeutilizare.Înfuncţiededotărilelaboratoruluideinformaticăşideechipamenteledigitalepersonaledecaredispuneţi,deexemplu,reportofoanedigitale,plăcidesunet,microfoane,difuzoare,amplificatoare,studi-ouridigitalemultimediaetc.,decideţireferitorlamodalităţiledecreare,stocareşiredareaînregistrărilorsonore.

Exerciţiilerecomandatepentruaceastăetapăsunt:– explicareaprincipiilordecodificareşidecodificareadateloraudio;– determinareavolumuluidateloraudionecomprimatecunoscândparametrii

decodificare;

Capitolul 8

Page 212: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

212

– determinareaformatuluiaudiocunoscândextensiuniledenumirilordefişiere;– identificareaşiexplicareaparametrilordebazăşiacaracteristicilorprincipale

aleechipamentelorfrecventutilizateîncolectarea,înregistrarea,prelucrareaşireproducereasecvenţeloraudio.

Pentruoînţelegeremaiaprofundatăaproceselorfiziceşiinformaticelegatedeînregistrareadigitalăşiredareasunetelor,serecomandăefectuareaurmătoarelorstudii de caz:

– Înregistrareaanalogicăşiînregistrareadigitalăasunetului.– Analizacomparatăaechipamentelordestinateprelucrărilordigitaleaudio.– Analizacomparatăaformatelordefişiereaudio.Consolidareaşiaprofundareacunoştinţelorîndomeniuldigitalizăriiinformaţiei

audiopoatefifăcutăelaborândurmătoareleproiecte de cercetare:– Influenţafrecvenţeidediscretizareasemnalelorsonoreasupracalităţiide

redareaacestora.– Influenţamărimiipasuluidecuantificareasemnalelorsonoreasupracalităţii

deredareaacestora.– Influenţa gradului de compresie a semnalelor sonore asupra calităţii de

redareaacestora.2.Prelucrarea înregistrărilordigitaleaudio.Studiaţi atent oferta de

programelicenţiateşicudistribuţieliberă,destinateprelucrărilordigitaleaudio.Decideţiceprogramveţiutilizaşiinstalaţiprogramulrespectivpecalculatorulpersonalcucarelucraţidumneavoastră.

Studiaţimediuldelucruşifacilităţileoferitedeeditoruldigitalaudiocucareveţilucra.Acordaţioatenţiedeosebităformateloracceptatedefişiereaudio,mo-dalităţilordestocareşiorganizareafişiereloraudio,compatibilităţiieditoruluicuechipamenteleexternedeînregistrareşiredareafişiereloraudio.Convingeţi-văcăinterfeţelegraficealeeditoruluidigitalaudiosuntintuitiveşiuşordeutilizat.

Experimentândcucelemaidiverseînregistrăriaudiodigitale,formaţi-văur-mătoareleabilităţideprelucrareaacestora:

– secvenţiereaşiconcatenareafragmenteloraudio;– transformărideamplitudine(amplificare,mixarenormalizare);– modificareatonuluişiadurateideredare;– filtrareasemnalelorsonore;– aplicareaefectelor.Înprocesulprelucrării înregistrărilordigitale audio,utilizaţi facilităţile de

analizăasuneteloroferitedeeditoarelerespective:analizaspectrului,modificareavolumului.

Înscopulorganizăriiraţionaleafişiereloraudiopepurtătoriideinformaţieşialracordăriifişierelorrespectivelacerinţeleînaintatefaţădecalitatearedăriisunetelordigitale,efectuaţiconversiideformateaudio.

Exerciţiilecevorcontribuilaconsolidareacunoştinţelorteoreticeşiladezvol-tareaabilităţilorpracticedeutilizareaechipamentelordigitaleşiaprogramelordestinateprelucrăriloraudioinclud:

– utilizareafacilităţiloroferitedeeditoareledigitaleaudio;– analizacomparatăaînregistrăriloruneiaşiaceleiaşisecvenţesonoreefec-

tuateînformateaudiodiferite;

Page 213: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

213

– analizacalităţiideredareasecvenţeloraudioînfuncţiedeparametriideînregistrareşistocare;

– conversiaformatelorfişiereloraudio;– transmitereafişiereloraudioprindiferitemijloacedecomunicaţiidigitale.Osinergieamijloacelor informaticeşiacelorspecificearteloraudiovizuale

poatefiasiguratăprinelaborareaurmătoarelorproiecte:– Elaborareafundaluluiaudiopentruevenimenteleimportantedinviaţaper-

sonală,afamiliei,aclasei,aşcolii,acomunităţii.– Înregistrareaşimixareainformaţiiloraudioceprovindelamaimultesurse

pedurataunorevenimentefestive,sportive,artistice,recreative.– Elaborareapistelorsonorepentrufilmelevideodesprediverseleevenimente

dinviaţaşcoliişiacomunităţii.3.Digitalizareainformaţieivideo.Pentruînceputvatrebuisăvăamintiţi

dinfizicănaturaondularăşinaturacorpuscularăaluminiişisăţineţicontdefaptulcăîninformaticăluminaestetratatăcafiindoundăelectromagnetică.Încontinuare,aflaţidinInternetmodulîncareochiulumanpercepeluminaşi cum dinmărimile parametrilor fizici ai undelor electromagnetice derivăculorile,luminanţaşicontrastulimaginilor.Pentruoînţelegeremaiprofundăaproceselordedigitalizareainformaţiilorvideo,vatrebuisăvăîmprospătaţicunoştinţeledespremetodeledecuantizareaimaginilordinamiceşidecalculareacantităţiide informaţieconţinutedeacestea.Acordaţioatenţiedeosebităfrecvenţeidediscretizareîntimp,frecvenţeidediscretizareînspaţiu,pasuluidecuantificareasemnaluluivideo,puteriiderezoluţie,număruluideculoridebază.

Porninddelafaptulcăfoartedesimaginilevideoconţininformaţiicesuntre-dundanteîncazulpercepţieiacestoradecătreom,faceţicunoştinţăcumetodeledecompresieşidecompresieadatelorvideo,cuformatelerespectivedefişiere.Identificaţilegăturadintrerateledebiţişicalitatearedăriiinformaţiilorvideo,înregistrateînformădigitală.

Consolidaţi cunoştinţele teoretice prin studierea echipamentelor destinateînregistrăriidigitaleainformaţiilorvideoşiredăriiacesteia:parametriitehnici,interacţiunea cu calculatoarele personale, costurile, domeniile deutilizare. Înfuncţiededotărilelaboratoruluideinformaticăşideechipamenteledigitaleper-sonaledecaredispuneţi,deexemplu,camerevideodigitale,plăcivideo,obiective,vizualizatoare,proiectoaremultimedia,studiouridigitalemultimediaetc.,decideţireferitorlamodalităţiledecreare,stocareşiredareaînregistrărilordigitalevideo.

Exerciţiilerecomandatepentruaceastăetapăsunt:– descriereadomeniilordeactivitateîncareseutilizeazăinformaţiavideo;– descrierea şi comparareaparametrilorundelor electromagneticedinper-

spectivapercepţieilordecătrefiinţeleumane;– descriereaşiexplicareafactorilorvideocepotpericlitasănătatea;– explicareaprincipiilordecodificareşidecodificareadatelorvideo;– determinareavolumuluidatelorvideonecomprimatecunoscândparametrii

decodificare;– determinareaformatuluivideocunoscândextensiuniledenumirilordefişiere;– identificareaşiexplicareaparametrilordebazăşiacaracteristicilorprincipale

Page 214: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

214

aleechipamentelorfrecventutilizateîncolectarea,înregistrarea,prelucrareaşireproducereasecvenţelorvideo.

Studiile de caz,propusepentruafiefectuatedecătreelevi,sunt:– Înregistrareaanalogicăşiînregistrareadigitalăainformaţiilorvideo.– Percepţiadiverselorundeelectromagneticedecătrefiinţaumană.– Impactulmodificăriiparametrilorundelorelectromagneticeasuprapercepţiei

acestoradecătrefiinţaumană.Proiectele de cercetarelistatemaijosvorcontribuilaînţelegereamaiprofundă

amoduluiîncarerealizărileteoreticealeinformaticiiinfluenţeazătehnologiiledecolectare,înregistrare,stocare,prelucrareşiredareainformaţiilorvideo:

– modulîncarevariaţiafrecvenţeidediscretizareasemnalelorvideoinflu- enţeazăcalitateaderedareaacestora;

– modulîncarevariaţiapasuluidecuantificareasemnalelorvideoinfluenţeazăcalitateaderedareaacestora;

– influenţagraduluidecompresieasemnalelorvideoasupracalităţiiacestora.4.Prelucrăridigitalevideo.Pepiaţadeprodusesoftşiîndistribuţieliberă

suntpromovatecelemaidiverseprogramedecalculator,destinateprelucrăriiînregistrărilorvideo.Utilizatoriipotalegeatâtdinproduseledestinateprofesio-niştilor,câtşidinceledestinateamatorilor.Deobicei,sistemeledeoperaredispundeaplicaţiidestinateredăriiînregistrărilorvideo,iaruneledintreele–chiarşideeditoarevideo.

Prinurmare,înaintedeaparcurgeaceastăetapă,fiecareelev,subîndruma-reaprofesoruluideinformatică,vadecideceproduse-programvautiliza,ţinândcontdefaptulcăeletrebuiesăfiecompatibilecuechipamenteledigitaleutilizatepentruînregistrareaşiredareainformaţiilorvideo.Deasemenea,sevaţinecontşidefaptulcăeditoareledigitalevideonecesităresursesemnificativedecalcul,atâtdememorie(deordinulGigaocteţilor),câtşidecapacităţideprelucrare(deordinulGigainstrucţiunipesecundă).

Studiereafacilităţiloroferitedeeditoareledigitalevideovaaveadreptscopformareaşidezvoltareaurmătoarelorabilităţi:

– secvenţiereaşiconcatenareafragmentelorvideo;– montareafragmentelorvideo;– transformăritemporale;– asociereapisteisonore;– modificareadurateideredare;– filtrareasemnalelorvideo;– aplicareaefectelor;– subtitrareasecvenţelorvideo;– conversiaformatelor.Exerciţiilerecomandatepentruaceastăetapăsunt:– utilizareaprincipalelorfacilităţialeunuieditordigitalvideo;– analizacomparatăaînregistrăriloruneiaşiaceleiaşisecvenţeefectuateîn

formatevideodiferite;– analizacalităţiideredareasecvenţelorvideoînfuncțiedeparametriide

înregistrareşistocare;– conversiaformatelorfişierelorvideo.

Page 215: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

215

Tematicaproiectele recomandate vafiracordatălacelepropusemaisusîncazulprelucrăriidigitaleasecvenţeloraudioşivainclude:

– Elaborareafundaluluivideopentruevenimenteleimportantedinviaţaper-sonală,afamiliei,aclasei,aşcolii,acomunităţii.

– Înregistrareaşimixareainformaţiilorvideoceprovindelamaimultesursepedurataunorevenimentefestive,sportive,artistice,recreative.

– Montareafilmelorvideodespreevenimentedinviaţaşcoliişiacomunităţii.5.Diseminareainformaţiilormultimedia.Laaceastăetapă,desinestă-

tătorsausubîndrumareaprofesoruluideinformatică,studiaţiserviciileonline,carevăoferăposibilitatea:

– săcăutaţiresurselemultimediadorite;– sădiseminaţipropriileelaborărimultimedia;– săredactaţisecvenţelemultimediaînregimonline.Serecomandăsăelaboraţiuncatalogalserviciilorpreferateşisăstudiaţiîn

detaliufiecaredintrefacilităţileserviciilorfrecventutilizatedepublicullarg.Exerciţiilepropuseîncadrulacesteietapesunt:– transmitereafişierelormultimediaprinmijloacedecomunicaţiidigitale;– căutareainformaţiilormultimediapeInternet;– înregistrareaşicreareapropriilorprofiluriîncadrulserviciiloronline;– publicareapropriilorelaborărimultimedia;– includereaînpaginileWeb,personale,aclasei,aşcolii,aasociaţiilordeelevi,

alegăturilorcătrepropriileresursemultimediapublicateonline.Încalitatedestudiu de caz,vărecomandămsăfaceţioanalizăcomparatăa

serviciiloronlinedediseminareainformaţiilormultimedia,identificândavantajeleşidezavantajeleacestora,domeniiledeaplicareînfuncţiedespecificulinformaţi-ilormultimediadestinatediseminăriiînspaţiulvirtual.

6.Eticadigitalăşirespectareadreptuluideautor.DacăînAntichitatetexteleinscripţionatepeplăcidepiatrăsauscrisepepapiruserauaccesibileunuinumărfoartemicdeoameni,odatăcuapariţiatiparului,număruloamenilorceauînceputsăaibăacceslacărţişi,ulterior,laziare,acrescutexponenţial.Deşiradi-oulşiteleviziuneaausimplificatşimaimultproceselededifuzareainformaţiilor,instituţiilerespective,adicătipografiile,staţiiledeemisieradioşiTVaparţineauşimaiaparţinfiestatelor,fiemarilorcompanii.Înconsecinţă,cetăţeniiderândnupreaaveauposibilitateasă-şidiseminezedesinestătător,pentruunnumărcâtmaimaredeoameni,cărţile,fotografiile,fonogramele,filmelecreatedeei.Situaţias-aschimbatradicalodatăcuapariţiaInternetuluişiaserviciiloronline dedifuzareaproduselormultimedia,carepermitfiecăruiadintrenoisăsupunăatenţieimareluipublictoateinformaţiilepecareleconsiderămcafiindimportan-te,interesante,originalesauvaloroasedinpunctdevedereştiinţificsauartistic.

Indiscutabil,aceastălibertatedeexprimarecontribuielaconsolidareaşidez-voltareasocietăţilordemocratice,însăeaceredelafiecaredintrenoirespectareaînspaţiulvirtualaanumitorreguli.Aţistudiatacestereguli,denumitegenericreguli de etică digitală,începândcuclaseledegimnaziu.Totuşi,vărecomandăm cufermitatesăvăîmprospătaţicunoştinţeleînacestdomeniu,sărespectaţicustricteţeregulilerespectiveşisănuuitaţicăîntr-olumemulticulturalăşipo-liconfesională cuvintele, imaginile, secvenţele sonore şi secvenţelevideopotfi

Page 216: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

216

interpretateşiînţeleseînmoddiferit.Înconsecinţă,înaintedeapostapeInternetunprodusmultimediaelaboratdedumneavoastră,aveţigrijăcaelsătransmitămesajepozitive,săpromovezevalorilegeneral-umane,săîncurajezeparticipareaşiincluziunea.

Unaltaspectfoarteimportantlegatdediseminareaproduselormultimediaconstăînnecesitatearespectăriidreptuluideautorşiadrepturilorconexe.Amin-timcădreptuldeautorseextindeasupraoperelorliterare,artisticeşiştiinţificeexprimateînurmătoareleforme:

– scrisă(manuscris,textdactilografiat,partiturăetc.);– orală(interpretarepublicăetc.);– imprimareaudiosauvideo(mecanică,magnetică,digitală,opticăetc.);– deimagine(desen,schiţă,pictură,plan,pozăetc.);– tridimensională(sculptură,model,machetă,construcţieetc.).Prinurmare, înaintedea include înpropriileelaborăriunele fragmentedin

operelemenţionatemaisus,informaţi-vădacădeţinătoriidreptuluideautorpermitacestlucru.

Deasemenea,nuprezentaţidreptcreaţiipersonaleideile,fragmenteledetext,imaginile,fonogramele,videogramelepreluatedinopereşiprodusemultimediacreatedealtepersoane,întrucâtacestfaptreprezintăunplagiat.Dacăautoriioperelorşiproduselormultimediarespectivepermitpreluareadefragmente(acestlucrupoatefiaflatconsultândlicenţelerespective),indicaţiînmodobligatoriusursa:denumireaoperei,edituracareapublicat-o,referinţaURLş.a.m.d.

Exerciţiilerecomandatepentruaceastăetapăsunt:– identificareaînsemnelorcedeclarădreptuldeautor;– explicarearegulilorcevizeazărespectareadreptuluideautor;– identificareatipurilorlicenţelordedistribuţie;– utilizarealicenţelorpentrudistribuţie.Încalitatedestudiu de cazserecomandăanalizarespectăriidrepturilorde

autor în propriile produsemultimedia, în produselemultimedia elaborate şi publicateonlinedecolegiideclasăşideşcoală,decătreeleviidinalteinstituţiideînvăţământ.Folosiţiînacestscopfacilităţileoferitedemotoareledecăutareainformaţiilortext,informaţiilorgrafice,informaţiiloraudioşivideo.Deasemenea,văvorfiutileşiprogrameleantiplagiat,disponibileonlinepeInternet.

8.2. Programarea vizualăIstoric,primeleprogrameaufostscrise în limbajulcod-calculator.Ulterior,

s-atrecutlalimbajeledeasamblareşilimbajeledeprogramaredenivelînalt.Încazullimbajelordeprogramaredenivelînalt,programelereprezintătexte,care,pentruafi„înţelese”decalculator,sunt„traduse”încoduribinare.

Peparcursulauneilungiperioadedetimp,produsele-programaufostelabo-ratecuajutorullimbajelordeprogramaredenivelînalt,folosindlaînceputînacestscopsimpleeditoarede texte, iarulterior,medii integratededezvoltare aprogramelor.Acestemedii,pelângăeditareatextelorşiintroducerearapidădemodificări,permitlansareaînexecuţieşidepanareaprogrameleaflateîncursde

Page 217: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

217

elaborare.Cunoaşteţidejaastfeldemediideprogramareşichiaraţielaboratşidepanatmaimulteprogrameînele.

Indiferentdemediilededezvoltareaprogramelorutilizatefieînscopurididac-tice,fieînscopurideproducţie,îneleselucreazăcutexte.Însă,odatăcucreşte-reacomplexităţiiprogramelor,textelerespectiveaudevenitvoluminoaseşigreuperceputechiarşideautoriiacestora,faptceastimulatdezvoltareaaşa-numiteiprogramări vizuale–mijlocdeelaborareaprogramelornuprinscriereadetexte,ciprinmanipulareacuobiectegrafice.

CunoaşteţidejamediuldeprogramarevizualăScratch,specialelaboratpentruastudiainformaticaîncepândcuclaseleprimare.Înacestmediudeprogramareeleviiimplementeazăalgoritmiidecomandăcuaşa-numiţiispiriduşiprinmani-pulareacuobiectegraficecereprezintăspiriduşiipropriu-zişi,comenzilepecareeitrebuiesăleexecuteşiblocuriledecontrolalefluxuluideexecuţie:ramificăriînfuncţiederespectareaanumitorcondiţii,organizareaciclurilorşisubprogramelor.

Mijloaceclasicedeprogramarevizuală,elaborateînscopurideproducţie,suntaplicaţiiledecalcul tabelar,studiate înclaselegimnaziale. Înacesteaplicaţii,utilizatorulimplementeazăalgoritmiideprelucrareadatelornumericenuprinscriereadeprogrameîntr-unlimbajdenivelînalt,deexemplu,înPASCALsauC++,ciprinoperareaasupraunorobiectegraficespecifice,cumarfifoiledecalcul,celulele,rândurile,coloanele,diagramele,graficele,formulareleetc.

Înprezent,renumitelecompaniiceactiveazăîndomeniultehnologieiinformaţieişicomunicaţiilorpropunogamăfoartelargădemijloacedeprogramarevizuală,mijloaceceuşureazăfoartemultimplementareachiarşiacelormaicomplecşialgoritmi.Utilizareatotmailargăaprogramăriivizualedeschidenoioportunităţinudoarpentrupersoanelecedorescsăfacăocarierăprofesionalăîninformatică,cişipentrucelepasionatedearteledigitale,deinstruireaasistatădecalculator,deelaborareadejocuricomputerizateinteractive.

Prinurmare,cunoaştereaprogramăriivizualevapermiteelevilorsăiadeciziiargumentate referitoare la continuarea studiilorpostliceale şi ladigitalizareaacelordomeniideactivitateprofesionalăîncareeiaudegândsăseafirme.Iarpentruafacilitaprocesuldestudiereaprogramăriivizuale,recomandămelevilorsăparcurgăurmătoareleetape:

1.Selectareamediuluideprogramarevizuală.Evident,oriceprogramelaboratînmediiledeprogramarevizualăareechivalentulsăuîntr-oformădetext,scrisăîntr-unlimbajdeprogramaredenivelînalt.Maimultcaatât,pentrua implementa eficient anumiţi algoritmideprelucrareadatelor,uneori chiarşiînprogramareavizuală,secereşiscriereadesubprogrameîntr-unlimbajdenivelînalt.Prinurmare,laselectareamediuluideprogramarevizualăsevaţinecontnudoardeuşurinţadeutilizareaacestuia,darşideorientarealuispreunanumitlimbajdeprogramaredenivelînalt.

De exemplu, elevii care au studiat limbajele din familiaPASCALvor optapentrumediiledeprogramarevizualăDelphisauLazarus,iarceiceaustudiatlimbajeledinfamiliaC–pentrumediiledeprogramarevizualăMicrosoft Visual StudiosauCode::Blocks.

Eleviicaredorescsăstudiezedoarconcepteledebazăaleprogramăriivizua-le,fărăaapelalaunlimbajprofesionaldeprogramaredenivelînalt,opotface

Page 218: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

218

utilizândMIT App Inventor,carefoloseșteunlimbajvizualşiinterfeţegrafice,similareceloradinmediuldeprogramareScratch.

Recomandămelevilor, înaintedeaoptapentruunanumitmediudepro-gramarevizuală,săsefamiliarizezecuclasificareaacestora,cuparametriilortehnicişiergonomici,cucerinţelepecareproduselerespectiveleînainteazăfaţădecalculatoarelecevorfiutilizateînprocesuldeînvăţareşicapacitateadetransmisiecerutădelaconexiunileInternet.Deasemenea,eiartrebuisăseconducădescopulurmărit:să-şiaprofundezecompetenţeleîndomeniulela-borăriiinterfeţelorgraficedestinateaplicaţiilordeconsolăşiaplicaţiilorWEBsausă-şidezvoltenoicompetenţeîndomeniileaflatelaintersecţiatehnologi-ilorinformaţieişiaartelor:animaţiidigitale,jocuripecalculator,realitateaaugmentatăetc.

2.Studiereanoţiunilorşiaprincipiilordebazăaprogramăriivizuale.Laaceastăetapăvatrebuisăvăfamiliarizaţicunoţiuniledeobiectgrafic,conexiunişiacţiuni,cutipuriledeobiectegraficeprimareşimetaobiecte,cuproprietăţileobiectelor.Oatenţiedeosebitătrebuieacordatăînţelegeriispecificuluiprogramăriiorientatepeevenimenteîncontextvizual:situaţii,acţiunişirezultate.

Principaleleexerciţiirecomandatepentruaceastăetapăsunt:– explicareaprincipiilorprogramăriivizuale;– explicareanoţiunilordebazăaleprogramăriivizuale;– clasificareaobiectelor/instrucţiunilorgrafice;– controlulevenimentelor,acţiunilor,stărilor.Laoînţelegeremaiprofundăaspecificuluiprogramăriivizualevorcontribui

următoarele studii de caz:– Instrucţiunilegraficeversusinstrucţiunilescrise.– Flexibilitateaprogramăriivizuale.– Depanareaprogramelor:vizualăşiprocedurală.– Depanareaprogramelor:vizualăşiorientatăpeobiecte.3.Formareaşidezvoltareaabilităţilordeutilizareamediilordepro-

gramarevizuală.Folosind încalitatede instrumentde învăţaresistemuldeasistenţăalmediuluivizualdeprogramareselectatlaprimaetapăşiinstalat,dupăcaz,pecalculator,eleviivoridentificacomponenteleprincipalealeprodusu-lui-programutilizatşispecificulinterfeţeigraficecuutilizatorul.Vorfistudiateîndetaliustructuraproiectului,tipologiafişierelordincomponenţaproiectelorşimodalităţiledeorganizareaacestora.

Înbazaproiectelorcucaracterdidacticpropusedeprofesoruldeinformatică,eleviiîşivorformaabilităţilenecesarepentruintroducereaşieditareaprogramelor,rulareaşidepanareaacestora.Principaleleexerciţiirecomandateînacestscopsunt:

– identificareacomponentelorprincipalealemediuluideprogramarevizuală;– explicareastructuriiproiectelordincadrulmediilordeprogramarevizuală;– identificareafişierelorproiectelor;– conectareainstrucţiunilorgraficeînprograme;– depanareaprogramelorvizuale;– derulareaprogramelorvizuale.Laformareauneiviziuniprofundeasuprabogateidiversităţidemijloacedes-

tinateprogramăriivizualevacontribuielaborareaurmătoarelorstudii de caz:

Page 219: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

219

– Avantajeleşidezavantajelemediilordeprogramarevizuală.– Analizacomparativăamediilordeprogramarevizualeşitradiţionale.– Prezentareaunormediişilimbajelargrăspânditedeprogramarevizuală

(Alice,Kodu,Scratch,ToonTalk,Cameleon,Filter Forgeş.a.).4.Formareaşidezvoltareacompetenţeideprogramarevizuală.Această

etapăvaîncepecustudiereainstrucţiunilorgraficeşiacriteriilordeclasificareaacestora.Încontinuare,eleviivorfacecunoştinţăşivorstudiaînbazădemiciexemplefacilităţileceasigură:

– Realizareamişcării: deplasarea, rotirea, controlul apariţiei unui anumiteveniment,controlulapariţieiuneianumitesituaţii.

– Setareaaspectului:redimensionarea,afişareamesajelor,afişareavalorilor,modificareaobiectelor,setareavizibilităţii,setareastraturilor.

– Controlulsunetului:setarea,start,stop,durata,aplicareaefectelor.– Prelucrareaevenimentelor:pornirea/oprireaprogramelor,acţionăriledetas-

te,acţionărileasuprabutoanelorşoricelului,acţionărileasupraobiectelorgrafice,controlulfluxurilordemesaje.

– Controlulfluxurilor de execuţie: instrucţiunile de selecţie, instrucţiunileciclice,pauze,opriri,clonări.

– Controlulsituaţiilor:setareaproprietăţilorobiectelor,introducereadatelor,setareaproprietăţilorunităţilorperiferice,eşalonareaîntimp.

– Creareaşiapelareasubprogramelor.Exerciţiilerecomandatepentruaceastăetapăsunt:– deplasareaşicontrolulobiectelorgrafice;– afişareamesajelor;– setareaproprietăţilorgeometrice/deculoare/vizibilitate/aleobiectelorgra-

fice;– integrareacomponentelorsonore(multimedia)înprogramelevizuale;– controlulobiectelorgraficedinamicecuajutorultastaturiişialşoricelului;– creareaşiapelareasubprogramelor.Totlaaceastăetapăvademaraşielaborarea de proiecte,tematicarecomandată

acărorainclude:– Interacţiuneadintredouăsaumaimultepersonaje(obiecte)vizuale.– Redareadialogurilorîntrepersonaje.– Jocurileelementare(prototenis,prindereaobiectelorcăzătoare,urmăriri).– Animareapoveştilor.Elevii sunt încurajaţi să concretizezede sine stătător sau sub îndrumarea

profesoruluideinformaticătemaproiectuluilacarearpreferasălucreze,săde-cidăasupramoduluideorganizarealucruluilaproiectepropusedeei,individualsauîngrup,şisăelaborezeplanuridedesfăşurarealucrărilornecesarepentrurealizareaproiectelorrespective.

5.Prelucrareadatelorexterne.Înspateleoricărorobiectegraficeseaflăanumitedate:informaţiireferitoarelaformaşiaspectulacestora,amplasarealorînspaţiu,traiectoriadedeplasareînspaţiuldelucru,mesajelerecepţionatedelaalteobiecteetc.Rezultateleprelucrărilorefectuateasupradatelorrespectivedeterminăcomportamentulîntimpşiînspaţiuaobiectelor,interacţiuniledintreeleşimediulextern.

Page 220: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

220

Pentruastudiamodalităţiledeimplementareaalgoritmilordeprelucrareadatelor,eleviiîşivorîmprospătacunoştinţelereferitoarelatipurilededatesimpleşilatipurilededatestructurate,laoperaţiilecepotfiefectuateasupradatelorrespective.Oatenţiedeosebităvafiacordatăspecificuluiconversieidetipurişioperaţiiloraritmetice,relaţionaleşilogicecepotfiefectuateasupradateloranumeînmediilevizualedeprogramare.

Încontinuare,recomandămelevilorsăstudiezeobiectelevizualepentruin-troducerea şi afişareadatelor, evenimentele şi acţiunile destinatemodificăriidatelor:situaţiileapăruteînprocesulexecuţieiprogramului,comenzilevenitedelatastatură,delaşoricel,delaalteechipamenteperiferice.

Exerciţiilecevorcontribuiladezvoltareaabilităţilordeprelucrareadatelorînprogramelevizualesunt:

– declarareaşiutilizareavariabilelorceaparţin latipuridedatesimpleşistructurate;

– utilizareaîncadrulprogramelorvizualeaoperaţiiloraritmetice,relaţionaleşilogice;

– modificareavalorilorvariabilelorprinacţiunişireacţiilaevenimente(acţio-naretastelorşiabutoanelorşoricelului,sosireamesajelordelaalteobiectegraficesaudinexterioretc.);

– afişarearezultatelorprinasociereaacestoraunuiobiectgrafic;– declarareaşiutilizareavariabilelorceaparţintipurilordedatestructurate;– căutareainformaţiilorîndatelestructurate;– modificareastructuriidatelor.Oînţelegeremaiaprofundatăaspecificuluiprelucrăriidateloropoateasigu-

raefectuareaunuistudiu de cazîncares-aranalizaavantajeleşidezavantajelemodalităţilordeimplementareaalgoritmilordecalculprinprogramaretextualăşiprinprogramarevizuală.Unastfeldestudiudecazarpermiteşiidentificareaposibilităţilordeataşareaprogramelortextualeanumitorobiectedincomponenţaprogramelorvizuale.

Proiectelerecomandatepentruaceastăetapăsunt:– Calculareanumerelormaximedinmulţimiledenumereenunţatedeperso-

naje(obiecte).– Calculareasumelormulţimilordenumereenunţatedepersonaje.– Găsireanumerelorprimedinmulţimeacelorenunţatedepersonaje.– Calculareaceluimaimaredivizorcomun.– Sortareatablourilor.Înansamblu,integrareacunoştinţelorşidezvoltareaabilităţilordeprogra-

marevizualăpotfiasigurateprinelaborareaunorproiectecomplexe,cumarfi interfeţele graficepentruaplicaţiilede consolă sauaplicaţiileWeb, jocurididactice,jocurideagrement,programepentruinstruireaasistatădecalcula-tor,filmedeanimaţie(anime-uri),produsecurealitateaugmentată(materialepublicitare,modele dinamice, reconstituiri în dinamică a obiectelor istoriceş.a.).Elaborareaunorastfeldeproiecteesteposibilăprincreareaunorechipedeelevi,încare,pelângăocooperarestrânsă,trebuiesăexisteşiodelimitareexplicităarolurilorşiresponsabilităţilor,ospecializareînfuncţiedevocaţiafiecăruielev.

Page 221: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

221

8.3. Limbaje de marcare a hipertextuluiPosibil,înclasaprecedentăaţistudiatmodululopţionalWeb design.Studiind

acestmodúl,aţiînvăţatcumsăelaboraţidocumenteWebatâtcuajutorulapli-caţiilordeuzgeneral,deexemplu,celedeoficiu,câtşicuajutorulaplicaţiilorspecializate, denumite editoareWeb. În ambele cazuri, elevii, posibil, viitoriidesigneriWeb,auoperatcuobiectelepaginilorWebaflateîncursdeelaborare,adicăcutexte,imagini,elementedenavigare,deintroducereainformaţiilor,derulareasecvenţeloraudioşivideoetc.

Atâtaplicaţiiledeuzgeneral,câtşicelespecializate,destinateelaborăriido-cumentelorWeb,pecarele-aţistudiatînclaseleprecedente,lucreazăînregimulWYSIWYG(What You See Is What You Get–ceeaceveziesteanumeceeaceveiobţine).Înacestregim,dezvoltatorulWebopereazăînmoddirectdoarcuobiectelepaginilorWeb,fărăaapelalaposibilităţileoferitedelimbajulHTML.

AmintimcălimbajulHTML(Hyper Text Markup Language–LimbajdeMarcareaHipertextului)afostspecialinventatpentruaformatatextelepaginilorWeb, ainseraîneleelementedecontrolşireferinţelacelemaidiverseobiecte(altepa-giniWeb,imagini,secvenţeaudio,secvenţevideoetc.),aflateatâtpecalculatorullocal,câtşioriundepeInternet.

DeşilucrulînregimulWYSIWYGestecumultmaicomodpentrudezvoltatoriidepaginiWebdecâtceldemarcareatextelorcuajutorullimbajuluiHTML,înmultecazuri„scrierea”nemijlocităapaginilorWebînlimbajulHTMLasigurăoeconomiesemnificativădememorieşioferădesigneruluimaimulteposibilităţideaşezareînpaginăşideformatareafiecăruiadintreobiecteledincomponenţaacesteia.

SerecomandăcastudierealimbajuluiHTMLsăsefacăpeetape:1.ElaborareadocumentelorWebsimple.Laaceastăetapăoatenţiedeose-

bitătrebuieacordatăînţelegeriiconceptuluilimbajuluiHTML,roluluimarcatorilor(etichetelor),modalităţilordeinserareaacestoraîntextelesimple,neformatate,cesuntafişatedeprogrameledenavigarecapaginiWeb.Sevaparcurgelistademarcatori,sevaclarificadestinaţiafiecăruiadintreei.

CreareapaginilorWebpropriu-zisevaîncepecuelaborareastructuriigeneraleaacestora,stabilireaobiectelorcevorfiinserateînele.LaaceastăetapăvorfistudiateînprofunzimedoarinstrumenteleHTMLdestinateformatăriitextelor:

– titluri;– paragrafe;– comentarii;– stilurifizice;– stilurilogice;– separatorii;– listeordonate;– listeneordonate;– listededefiniţii.Studiereainstrumentelordeformatareatextelordincomponenţadocumentelor

HTMLsevafaceînstrânsălegăturăcumateriilereferitoarelaprocesareatextelorstudiateînclaselegimnaziale.Totodată,oatenţiedeosebităsevaacordacuvin-telor-cheiedincomponenţaetichetelor,modalităţilordeorganizareaetichetelor

Page 222: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

222

înperechi,înceledeînceputşiceledesfârşit.Întrucâtrepertoriuldeatributealeeticheteloresteunulfoartevast,eforturiledeînvăţarevorficoncentratenupememorareaacestora,cipeformareaabilităţilordeutilizareasistemelordeasis-tențăonlineşioffline,cepotfurnizainformaţiidetaliatedesprefiecareetichetăşidesprefiecaredintreatributeleacesteia.

Activităţile practicerecomandatepentruaceastăetapăincludcreareapaginilorWebcare,pentruînceput,conţindoartexteformatateînaşamod,încâtsăpunăînevidenţămesajeledetransmis:

– Casamea/Şcoalamea/Oraşulmeu/Satulnatal;– Clasamea/Cerculmeuşcolar/Secţiameasportivă;– Consiliulelevilor/Consiliultineretului;– Voluntariatuldinşcoalamea,dinsatul/oraşulmeu;– Librăria/Biblioteca/Casadecultură/Salonuldemuzică;– Muzeulsatului/oraşuluimeu;– Istoriasatului/oraşuluimeu;– Oameniiremarcabilidinsatul/oraşulmeu;– Artaînviaţamea(pedomenii:muzica,artaplastică,artadecorativă);– Sportulînviaţamea;– Eminunatsăfiisănătos;– Sălidesport/defitness;– Saloanedeînfrumuseţare/Saloanedemodă;– Atelierede cusut / de reparaţii (auto, calculatoare, electrocasnice, audio,

video);– Gospodăriaţărănească;– Magazine(mărfuripentrucopii,mărfurişcolare,deuzcasnic,îmbrăcăminte).Dacă în claseleprecedenteeleviiauelaboratdejaastfeldepagini, se reco-

mandăafişareafişierelorHTMLînregimulView Source(VeziSursa)şianalizamodalităţilordeutilizareamarcatorilor(etichetelor)deformatareatextelordincomponenţaacestora.

2.Crearealegăturilor.CelmairăspânditserviciualInternetului–WWW(World Wide Web –PânzaMondială [dePăianjen]), se bazeazăpedocumenteHTML,legateîntreele,şifişiere,externeînraportcudocumentelerespective.TrecereadelaundocumentHTMLlaaltulşiafişarea/redareadecătreprogramuldenavigareafişierelorexterneserealizeazăcuajutorulunorlegături(referinţe)speciale,denumiteînultimultimpşilinkuri.

ÎncadrulunuidocumentHTML,legăturilesecreeazăasociindzoneloractivealepaginiiadreseURL.Încalitatedezoneactivepotfifragmenteledetextsaudeimagini,iarexecutareaunuiclicpeoastfeldezonăimpuneprogramuldenavigaresăgăseascăresursaasociatăpecalculatorullocalsauînspaţiulvirtual,dupăcaz,şisăoafişeze/săoderulezepecalculatorullocal.

Serecomandăcaprocesuldestudiereamodalităţilordecrearealegăturilorsăurmezepaşii:

– familiarizareacuterminologiautilizată:ancoră,adresăURL,legăturăin-ternă,legăturăexternă,cale,comentariulalegătură;

– dezvoltareacapacităţilordecreare/deselectareazoneloractivealedocumen-telorHTML,formateatâtdinfragmentedetext,câtşidinimagini;

– finalizareacuformatulmarcatoarelordestinatecreăriilegăturilor;

Page 223: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

223

– crearealegăturilorcătreundocumentextern,aflatînacelaşisauînaltca-talogdepecalculatorullocal;

– crearealegăturilorcătreunsite;– crearealegăturilorcătreosecvenţăaaceluiaşisauaaltuidocumentHTML;– creareafacilităţilorde lansare înexecuţieauneiaplicaţiideexpedierea

mesajelor;– creareafacilităţilordecopiereafişierelor.Laetapainiţială,încalitatededocumenteHTMLîncarevorficreatelegături,

sevorutilizafişierelepropusedeprofesor,iardupăformareaabilităţilornecesaresevatreceladezvoltareaacestoraprincreareadelegăturiîndocumenteleHTML,elaboratedeeleviîncadrulproiectelorlistateînactivităţilepracticealeetapeiprecedente(Casamea,Clasamea,Consiliulelevilor,Voluntariatulş.a.).

3.Inserareaobiectelormultimedia.Iniţial, paginileHTML,afişatepeecran,conţineaudoartexte.Ulterior,odatăcudezvoltareatehnologiilorinformaţieişiacomunicaţiilor,îneleauînceputsăfieinseratelegăturilacelemaidiverseobiectemultimedia:imaginistatice,imaginianimate,fotografii,secvenţesonore,secvenţevideoş.a.

ProcesuldestudiereamodalităţilordeinserareîndocumenteleHTMLalegă-turilorcătreobiectelemultimediavaurmapaşii:

– familiarizareacuformatelefişierelorgrafice,audioşivideo;– organizareafişierelorceconţinobiectemultimediaîndirectoare,asociatecu

documenteleHTMLîncursdeelaborare;– familiarizareacuproprietăţileobiectelormultimedia,relevantepentruin-

serarealorîndocumenteleHTML:dimensiuni,chenare,comentarii,controale,legături;

– studiereaspecificuluiobiectelormultimediaintegrate:secvenţedecontrol,atributedeintegrare;

– inserareaîndocumenteleHTMLaimaginilor,secvenţelorsonoresauvideo;– setarea proprietăţilor obiectelormultimedia, inserate în documentele

HTML.Laetapainiţială,formareaabilităţilorpracticedeinserareaobiectelormulti-

mediaîndocumenteleHTMLsevarealizautilizândfişiereleHTMLşiobiectelemultimediapropusedeprofesor.Ulterior,dezvoltareaacestorabilităţisevarealizaîncadrulproiectelorelaboratedeelevi,tematicaorientativăacăroraesteindicatămaisus,înlistarespectivădinprimaetapă.Înacestscop,eleviivorpregătidesinestătător,înmodindividualsauînechipă,aceleobiectemultimedia(imagini,fotografii,secvenţesonore,secvenţevideo)cecontribuiesemnificativlaformareaşipunereaînevidenţăamesajelorpreconizate.

Înprocesulcreăriişi/sauselectăriiobiectelormultimediacevorfiincluseîncomponenţadocumentelorHTMLse vor respecta cu stricteţe eticadigitală şidreptuldeautor,înniciuncaznusevarecurgelaplagiat.

4.Organizareaconţinuturilor.VersiunilemodernealelimbajuluiHTMLoferămaimultefacultăţideorganizareaconţinuturilor.Încazulînvăţământuluilicealvomstudiadoarorganizareaconţinuturilorcuajutorultabelelor.Înacestscop,recomandămelevilor:

Page 224: MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII INFORMATICĂ

224

– să-şiîmprospătezecunoştinţeledespretabele:titlu,rând,coloană,celulă,titluderând,titludecoloană,proprietăţilecelulelor,proprietăţileconţinuturilordincelule;

– săsefamiliarizezecumarcatoriiutilizaţipentrucreareaşiformatareata-belelorşicuatributeleacestora;

– săorganizezeconţinuturilepaginilorWeb încursdeelaborare,utilizândaşezareaînpaginăcuajutorultabelelor;

– săoferepaginilorWebundesigncearpuneînevidenţămesajeledetran-smis,editândşifremătândtabelelerespective:combinareaşidivizareacelulelor,aplicareaefectelordeculoareşidegradient,setareaproprietăţilorchenarelorşialebordurilor.

Caşiîncazuletapelorprecedente,iniţial,marcatoriidetabelşiatributeleaces-toravorfistudiaţiutilizânddocumenteHTMLfoartesimple,propusedeprofesorsaucreatedesinestătătordeelevi,iarulterior–încadrulproiectelorelaboratedeeleviînmodindividualsauînechipă.

5.TestareadocumentelorHTML.Pentruînceput,documentulHTMLvafitestatlocalcuajutorulunuiprogramdenavigare.ÎnprocesultestăriisevaverificaaccesibilitateatuturorobiectelordincomponenţadocumentelorHTML,corectitu-dineareferinţelor,funcţionareainstrumentelordenavigare,corectitudineaafişăriiimaginilor,corectitudinearedăriisecvenţeloraudioşivideo.

Încazuldepistăriiunorerori,sevarevenilaetapadecreareapaginilorWebşiaobiectelordincomponenţaacestora.

Lafinelestudieriiacestuimodul,eleviisuntinvitaţisăfacăoanalizăcolectivăadocumentelorHTMLelaboratedeei,utilizândînacestscopatâtcriteriitehnice(corpuriledeliterăutilizateşimărimeaacestora,aşezareaînpagină,calitateaimaginilor,fidelitatearedăriisecvenţeloraudioşivideo,comoditateanavigării),câtşiartistice(originalitatea,relevanţaconţinuturilorînraportcumesajeledetransmis,moduldepunereînevidenţăamesajelor,asortareaculorilorşiastilu-rilordeafişare).