1. GENERALITATI

 

 

1.1. CONCEPTUL DE CALCULATOR

 

Calculatorul electronic este un dispozitiv programabil destinat prelucrarii informatiei, īn care operatiile elementare se efectueaza cu viteza si precizie ridicate, īn sistemul de numeratie binar.

In functie de viteza de calcul, memorie, precizie si numar de utilizatori, calculatoarele se īmpart īn trei mari categorii: calculatoare medii si mari, minicalculatoare si microcalculatoare. In ultimii ani s-a remarcat utilizarea crescānda a microcalculatoarelor (calculatoare personale) care īn general, la un moment dat, sunt folosite de catre un singur utilizator.

Fig. 1.1. Componentele calculatorului

 

Pentru a putea prelucra datele (informatia) utilizatorului, un calculator trebuie sa dispuna cel putin de urmatoarele componente (Fig.1.1):

 o memorie necesara stocarii informatiei (ROM=Read Only Memory, RAM=Random Access Memory care este īmpartita īntre aplicatie, functiile de intrare iesire si sistemul de operare),

 o unitate de calcul (CPU) destinata efectuarii calculelor asupra datelor citite din memorie, precum si de

 dispozitive de intrare/iesire (I/O) a datelor.

Legatura calculatorului cu componentele periferice se realizeaza prin intermediul unor interfete care permit accesul la aceste componente prin magistrala sistem. Aceste interfete sunt de doua feluri: interfete seriale (transmit informatia bit cu bit) si interfete paralele (interfete care transmit cīte 8, 16 sau 32 de biti simultan). Transmisia informatiei prin interfete se face cu anumite viteze standard, unitatea pentru viteza de transmisie fiind BAUD-ul (bit pe secunda).


COMPONENTELE UNUI CALCULATOAR DE TIP "PC"

 

 

1. Eticheta de identificare a firmei producatoare.2.LED de activitate a discului fix.3.LED de retea. 4.Comutator de pornire. 5. LED pentru indicarea blocarii tastaturii. 6.Indentificatorul produsului. 7. LED care arata ca este accesata unitatea de discheta. 8. Uni-tatea de discheta. 9.Buton pentru ejectarea dischetei. 10. Unitate de disc optic (CD-ROM). 11. Loc pentru un dispozitiv auxiliar ulterior.

 

 

 

 

 

 

 

 

 

 


 

 

 

  1. Conector pentru monitor de tip VGA. 2.Port pentru comunicatii paralele (imprimanta). 3. Conector USB ("Universal Serial Bus"). 4. Conector USB. 5.Conector pentru microfon sau casti. 6.Conector pentru echipament audio extern. 7. Conector pentru microfon. 8.Conector serial pentru mouse (dispozitivul de selectie interactiv), aici de tip PS/2. 9.Conector pentru tastatura. 10.Conector de retea ( Ethernet RJ-45) pentru conectare cu alte calculatoare sau la Internet. 11.Port serial nr. port 1 (mouse si unele imprimante, modem pentru comunicatii pe liniile telefonice). 12.Port serial nr. 2. 13.Conector pentru cablul de retea. 14.Comutator pentru tensiunea de retea( 230 V -Europa sau 115 V - America de Nord). 15. Priza auxiliara pentru alimentarea monitorului. 16. Cheie de securizare. 17.Conector SCSI ( de exemplu un scanner).

18. Spatii pentru extinderea configuratiei cu placi suplimentare.


 

 

 

 

  1. Placa de baza (system board). Aceasta contine toate functiile de baza ale calculatorului. 2.Ventilator pentru racire. 3.Unitate de discheta de 3.5 inch. Poate citi si scrie pe dischete cu capacitati de 720 kB si 1.44 MB. 4. Spatiu pentru īnca o unitate de discheta de 3.5 inch. 5. Unitate CD-ROM pentru discuri optice. 6. Spatiu pentru unitatea de discheta de 5.25 inch sau īnca un CD-ROM sau inscriptor de Compact Disc. 7. Socluri de extensie de tip PCI. Aici sunt 6 socluri PCI si 3 de tip AT/ISA. 8. Unitatea de disc fix (Hard disk, HDD drive) de tip 3.5 inch AT/IDE. 9.Sursa de alimentare, care genereaza maximum 200 Watt.

  1. Conector de extensie pe magistrala (expansion bus slot connector).2. Conector pentru placa de retea (fast EtherNet module). 3.Circuit audio.4.Conector pentru joystick (dispozitiv de manevra pentru jocuri). 5. Conector audio. 6. Conectorul comutatorului pornit-oprit (power on/off connector).8.Conectorul pentru alimentarea ventilatorului ce raceste microprocesorul. 9.Conector pentru alimentarea placii de baza. 10.Conector IDE primar pentru discurile fixe. 11. Conector pentru unitatea de discheta. 12.Conector IDE secundar (CD-ROM).

 

13. Conector pentru un modul de sinteza audio (wavetable module). 14.Baterie cu litiu pentru alimentarea ceasului si a memoriei pentru configuratie. 15. Microrocesorul si soclul ZIF (Zero-Insertion Force) de tip 7. Procesorul Pentium functioneaza la o frecventa a ceasului intern de 120-600 MHz si o frecventa externa de 50- 66 MHz. 16. Conectoare pentru memoriile de tip DIMM (Dual In-Line Memory Modules) (1-128 MB). 17.Memorie Cache. 18.Memorie Cache secundara. 19. Comutatoare de configurare (jumpers).


 

Fig. 1.6. Utilizarea dischetei de 3,5 inch (discul magnetic amovibil)

 

 

 

 


 

Fig. 1.7. Utilizarea discului optic (CD-ROM)

 

 

 

 

 


 

 


1.3. SISTEME DE OPERARE

 

Pentru rezolvarea unei probleme cu ajutorul unui sistem de calcul este necesara o "traducere" a formularii problemei respective si a modului sau de rezolvare din limbajul uman īn limbajul masina, caracteristic sistemului de calcul respectiv. Pentru a efectua acest lucru sunt necesare mai multe programe interconectate īntr-o structura piramidala īn care programul cel mai apropiat de sistemul de calcul (la baza piramidei) este sistemul de operare.

Sistemul de operare asigura urmatoarele functii esentiale:

 coordonarea īntregii activitati a unui sistem de calcul si corelarea tuturor componentelor sistemului;

 comunicarea īntre utilizator si sistemul de calcul īntr-o maniera facila;

 executarea programelor;

 ofera o gama larga de servicii care usureaza munca programatorului.

Sistemul de operare MS-DOS furnizeaza cāteva avantaje utilizatorilor microcomputerelor: o larga varietate de comenzi, disponibilitatea sa pentru diferite computere si pentru o mare cantitate de aplicatii.

Dispozitivele periferice sunt desemnate ca unitati logice al caror nume consta dintr-o litera urmata de semnul ":". De exemplu, unitatile de discheta pot avea numele A: sau B: iar discul fix C:

Numele unui fisier (colectie de date oarecare, de exemplu program sau date experimentale, numere de telefon, etc) consta de obicei dintr-un nume (8 caractere) umat de o extensie de maximum 3 caractere, separate prin punct. Extensia stabileste daca fisierul este un program sau date de intrare pentru program. Extensiile: COM (comanda), EXE (executabil) si BAT (engl. BATCH, lot de comenzi conform definitiilor sistemului de operare) definesc programe executabile.

Incarcarea sistemului de operare īn cazul microcalculatoarelor compatibile IBM se face dupa urmatoarea schema:

 se face un test automat al resurselor sistemului denumit POST (Power-On Self Test).

  īn urma testului POST, controlul este trecut unui mic program stocat īn ROM care contine cāteva instructiuni necesare pornirii calculatorului prin īncarcarea de pe disc (floppy disc sau hard disc) a fisierului IBMBIO.COM care contine BIOS-ul (Basic Input/Output System) si o colectie de rutine folosite la controlul resurselor hardware. In cazul unor eventuale erori īncarcarea este abandonata.

 este īncarcat nucleul sistemului de operare (care furnizeaza functiile sistem folosite de comenzile MS-DOS si de programele de aplicatii) dintr-un fisier numit IBMDOS.COM.

 este citit continutul fisierului CONFIG.SYS care contine diferite comenzi si optiuni. Una dintre comenzile folosite este comanda DEVICE care comanda MS-DOS-ului sa instaleze driver-ele specifice resurselor hardware.

 este citit continutul fisierului AUTOEXEC.BAT care contine o serie de comenzi MS-DOS executate la pornirea calculatorului.

 este executat fisierul de comenzi COMMAND.COM care duce la aparitia prompterului, asteptīndu-se apoi introducerea comenzilor utilizatorului, care īnseamna īncheierea procesului de īncarcare,iar calculatorul este gata de lucru. Pentru sistemele mai noi, cu resurse grafice suplimentare, de tip Windows se mai adauga si īncarcarea programului WIN.COM.

Pe lānga celelalte facilitati ale sistemului de operare MS-DOS, una foarte importanta este aceea oferita de structura arborescenta a directoarelor, structura care, īn special pe un disc fix, duce la o flexibilitate considerabil marita a modului de pastrare al fisierelor. Prin conventie, un director are un nume. Intrarea este marcata cu un punct iar iesirea cu doua puncte.

Orice disc (fix sau floppy) contine īn acest tip de structura un director radacina care poate contine (se poate ramifica īn) alte subdirectoare care la rāndul lor de asemenea se pot ramifica, etc.

Localizarea fisierelor īntr-o astfel de structura se face specificānd calea pāna la fisierul respectiv, aceasta īnsemnānd specificarea succesiunii de directoare, separate prin \ (engl. "slant" sau "backslash"), de la directorul radacina pāna la directorul īn care se afla fisierul respectiv.

 


1.4. COMENZI MS-DOS UZUALE

 

 

Comenzile MS-DOS sunt folosite pentru executarea unor operatii asupra fisierelor (copiere, stergere, redenumire, tiparire, etc.) si discurilor (formatare, afisarea structurii de subdirectoare, verificarea erorilor) precum si pentru executarea programelor sistem si a aplicatiilor utilizator.

Comenzile MS-DOS interne cele mai des utilizate sunt cele folosite īn scopul gestionarii fisierelor:

 comanda DIR (dir [cale]) listeaza continutul directorului a carui cale este specificata, respectiv a directorului curent daca nu este specificata nici o cale.

 comanda MD (MKDIR) (MD [cale\] nume_director) creaza directorul al carui nume (de maximum 8 caractere plus extensie) este specificat.

 comanda CD (CHDIR) (CD [cale\] nume_director) schimba directorul curent cu directorul specificat. Daca acesta nu este un subdirector al directorului curent atunci trebuie specificata toata calea pornind de la directorul radacina.

 comanda CD .. schimba directorul curent cu directorul imediat superior.

 comanda RD (RMDIR) (RD [cale\] nume_director) sterge directorul specificat. Pentru ca un director sa poata fi sters trebuie ca īn prealabil sa-i fie sters continutul.

 comanda COPY (COPY [cale\] nume_fisier_sursa [cale\] nume_fisier_destinatie) copiaza fisierul sursa (din primul director specificat) sub numele fisierului destinatie (īn al doilea director specificat).

 comanda REN (REN [cale\] nume_vechi nume_nou) redenumeste fisierul cu numele nume_vechi (din directorul specificat) cu numele nume_nou.

 comanda TYPE (TYPE [cale\] nume_fisier) tipareste continutul fisierului specificat.

Operarea calculatorului folosind comenzi la aparitia prompterului se mai numeste "mod linie de comanda". Referitor la rezolvarea unei probleme de calcul, dupa pornirea calculatorului, utilizatorul poate sa:

 lanseze īn executie comenzi ale sistemului de operare,

 sa īncarce un editor de texte īn scopul scrierii unui program sursa

 sa lanseze īn executie un program de calcul.


 

1.5. ELEMENTELE MEDIULUI GRAFIC WINDOWS

 

 

Acest mediu este caracteristic calculatoarelor mai noi cu memorie si microprocesor performant. Majoritatea comenzilor sistemului de operare sunt realizate interactiv prin folosirea unui dispozitiv de urmarire grafica interactiva (pointing device), cel mai utilizat fiind "mouse"-ul. Programelor le sunt asociate niste desene specifice (icoane). Executia programului īncepe la coincidenta īntre icoana mouse-lui cu icoana programului plus o apasare a butonului stānga a mouse-lui. Butonul dreapta al mouse-lui este folosit pentru modificarea proprietatilor asociate icoanei.

Este posibila rularea simultana a mai multor programe. Operatiile de intrare-iesire aferente programului sunt urmarite īn ferestre separate (windows). O fereastra are:

 bara de mesaj (de identificare) cu butoane de inchidere, deschidere si ajustarea dimensiunii.

 meniu, cu diferite functii asociate programului (optional)

 butoane pentru inspectia verticala si orizontala a continutului.

 Gestiunea fisierelor se poate face cu programul "Windows Explorer".

 

 


1.6. FUNCTII GRAFICE

 

 

Dispozitivele grafice (ecran sau masa de desen-plotter) sunt foarte importante īn interpretarea interactiva a rezultatelor, inspectia vizuala a acestora ramānānd un criteriu absolut de acceptare sau nu a acestor rezultate pentru orice experimentator. Un dispozitiv grafic trebuie sa permita:

 

 definirea scalei (suprafetei de desen) dupa axele x si y;

 pozitionarea penitei īn orice punct al suprafetei de desen;

 ridicarea sau coborārea penitei;

 utilizarea caracterelor alfanumerice;

 alegerea culorii penitei (optional);

In cazul utilizarii ecranului ca dispozitiv grafic este necesara si copierea rezultatului pe hārtie sau salvarea pe disc.

Scrierea aplicatiilor sub Windows este aparent mai greoaie deoarece trebuie specificate:

Din fericire, pentru majoritatea necesitatilor practice se gasesc sabloane gata scrise, īn care se poate insera cu usurinta aceeasi codificare a calculelor ca īn cazul aplicatiilor DOS (vezi mai jos).

Manualul pentru programarea ferestrelor īn Windows: Win32.hlp

Mai nou, folosind posibilitati tehnice sporite de viteza si memorie, s-au raspāndit reprezentarile grafice īn conceptul de scena:

Deoarece programarea acestor aplicatii este dificila, au fost dezvoltate limbaje speciale care folosesc din plin resursele hardwarwe. Interfata grafica Windows foloseste programe speciale pentru accelerarea functiilor grafice ale calculatoarelor de tip PC, numite de obicei DirectX.

ex_wht.gif (3284 bytes)Mediul de programare standard pentru construirea scenelor (propus de firma SiliconGraphics) este OpenGL.

Prezentarea mediului de programare OpenGL

Lista instructiunilor īn limbajul OpenGL (lb. engleza)

Exemplu de program scris īn OpenGL cu Dev-C++:

Program sursa: OpenGL.dev  Executabil: OpenGL.exe

Mai puteti exersa conceptul folosind o aplicatie scrisa īn limbajul de realitate virtuala "wrl" (virtual reality markup language), derivat din OpenGL,care permite studiul unor scene. In cazul de fata, este vorba despre o camera de lucru.

Este necesar Internet Explorer 5 sau "plug-in"-ul vrml2c.

O camera de lucru

 

Pe lānga scrierea unor aplicatii simple īn limbajul C++ cu comenzile OpenGL existente, folosind Dev-C++, mai puteti construi scene folosind urmatoarele aplicatii (gratuite dar foarte utile), derivate de asemenea din OpenGL:

- Chartsdemo (http://www.crystalgraphics.com)

- 3D raster viewer (http://amlab.hs.ru)

- Persistence of Vision Ray Tracer (POV) (http://www.povray.org)


1.7. ELEMENTELE LIMBAJELOR DE PROGRAMARE

 

Orice limbaj de programare are la baza un vocabular si o gramatica.

Vocabularul unui limbaj consta din:

 set de caractere care īnseamna practic litere, cifre si caractere speciale,

 constante, care la rāndul lor pot fi: logice, numerice (al caror domeniu de reprezentare este specific calculatorului) si alfanumerice (orice caracter sau succesiune de caractere),

 identificatori,

 variabile, care pot fi simple sau indexate (vectori uni sau multidimensionali).

Gramatica unui limbaj de programare consta din:

 liste de variabile,

 expresii (numerice, relationale, logice),

 functii si subprograme

Programele de calcul difera mult īn scop, stil si complexitate. Totusi, aproape toate trec prin urmatoarele trei etape:

 - descrierea, colectarea si stocarea informatiei (datelor)

 - prelucrarea informatiei īn scopul obtinerii rezultatului dorit.

 - afisarea sau stocarea rezultatelor.

Orice date folosite de catre un program trebuie scrise astfel īncāt limbajul de programare sa le recunoasca. De asemenea, trebuie ca īn memoria calculatorului sa fie rezervat un spatiu corespunzator cantitatii de date ce trebuie prelucrate. O data ce informatia a fost stocata sub forma variabilelor numerice, siruri de caractere sau structuri mai complicate, acestea trebuie prelucrate, actiune care difera īn functie de scopul urmarit.

Dupa ce datele au fost prelucrate, rezultatele trebuie sa fie disponibile utilizatorului, deci trebuie sa fie afisate pe ecran, extrase la imprimanta sau sa fie stocate pe un suport magnetic.

Va puteti familiariza cu elementele specifice limbajelor  Liberty Basic, C si PASCAL urmarind legaturile (locale) de mai jos:

Prezentarea limbajului Liberty BASIC

Lectii de limbaj C (lb engleza)

Compilatoare gratuite pentru calculatoarele de tip PC pe 32 de biti (Windows) au ajuns la performante care depasesc produsele comerciale mai vechi (de tip DOS, pe 16 biti). Desi programele noastre au fost scrise folosind produsele pe 16 biti, ele pot fi adaptate cu foarte putina bunavointa pentru aceste compilatoare mai noi. Am remarcat īn Internet larga raspāndire a compilatoarelor GNU pentru FORTRAN, PASCAL, C si C++ (www.gnu.org , vezi de asemenea www.simtel.net ), a interfetei grafice, (GUI-engl. Graphics User Interface), pentru compilatoarele GNU C, C++ si PASCAL ( http://www.bloodshed.net ) precum si excelentul mediu de programare Liberty BASIC (http://www.libertybasic.com)). Acesta din urma, are deocamdata dezavantajul major al unei precizii scazute (nu are dubla precizie), care devina suparatoare pentru aplicatiile stiintifice de calcul intensiv iar viteza de executie nu este mare. Totusi, facilitatile grafice sub Windows īl fac util oricarui loc de lucru. In fond, aplicatiile stiintifice de calcul intensiv  pot fi rulate fara  grafica, care poate fi executata la sfarsit, folosind Liberty BASIC sau un alt utilitar.

Deoarece toate limbajele de programare au caracteristici comune, trecerea de la un limbaj la altul poate fi mult usurata de utilitare de traducere, a se vedea de exemplu   http://www.simtel.net.

 


1.8. ETAPELE PREGATIRII SI EXECUTIEI UNUI PROGRAM

 

 

In timpul scrierii unui program destinat rezolvarii unei anumite probleme este indicat sa fie parcurse urmatoarele etape:

1. Formularea problemei īn sensul ca programatorul trebuie sa stabileasca foarte clar ce date prelucreaza si ce rezultate urmareste sa obtina prin prelucrarea acestora. Astfel, programatorul trebuie sa-si īnsuseasca modalitatile de rezolvare a problemei si din toate variantele posibile sa o aleaga pe cea mai buna, īn sensul ca aceasta sa fie cea mai exacta, cea mai rapida si īn plus sa permita scrierea unui program pentru care este suficienta memoria disponibila a calculatorului.

2. Stabilirea etapelor logice ale programului, adica descompunerea problemei īn operatii elementare care pot fi executate de catre calculator si indicarea ordinii de executie a acestor operatii.

3. Scrierea programului īntr-un limbaj oarecare, adica transcrierea algoritmului īntr-un limbaj accesibil calculatorului. Etapele parcurse pentru executia unui program sunt:

 Compilarea, (fig. 1.10) adica traducerea programului sursa, scris īntr-un limbaj evoluat, īn limbaj masina. Acest lucru implica existenta unui program de sistem numit compilator (interpretor pentru limbajul BASIC si JAVA) si presupune printre altele o analiza lexicala si sintactica a programului sursa.

 

 Editarea de legaturi, (fig. 1.11), faza īn care modulului obiect rezultat īn urma compilarii i se ataseaza subrutinele de sistem necesare programului, subrutine care sunt deja scrise īn limbaj masina.

 

 

 Executia, (fig. 1.12), faza īn care sunt executate efectiv instructiunile programului, iar rezultatele obtinute sunt transmise utilizatorului.

 

 

4. Corectarea si testarea programului este facilitata si de mesajele eventualelor erori care sunt detectate īn timpul compilarii.

ATENTIE !! Compilatoarele detecteaza doar erorile de sintaxa nu si erorile logice (semantice). Testarea programului este de asemenea o etapa foarte importanta īn pregatirea lui. In urma unui caz test, programul trebuie sa furnizeze rezultate cunoscute.

 

1.9. PRECIZIA CALCULATOARELOR

 

 

In memoria calculatoarelor, numerele reale sunt reprezentate printr-o mantisa si un exponent. In multe cazuri practice pot apare unele erori numerice care se datoreaza numarului finit de biti afectat mantisei si exponentului. Astfel [6]:

 la o operatie de īmpartire la care īmpartitorul este un numar foarte mic, rezultatul poate fi un numar foarte mare, care sa depaseasca limita de reprezentare a calculatorului.

 la īmpartirea a doua numere foarte mici (aproape nule) rezultatul poate fi un numar foarte mare.

 prin adunarea unui numar foarte mic la un alt numar, rezultatul poate sa nu difere de cel de-al doilea numar.

Acest din urma lucru poate fi exploatat īn sumarea seriilor convergente, atunci cānd ultimul termen nu mai contribuie la valoarea sumei. De asemenea, īn procesele iterative de forma xnou=xvechi+a, un criteriu natural de oprire este conditia xnou=xvechi, deoarece a este mai mic decāt lungimea mantisei calculatorului. Programele exemplificative folosesc aceasta conditie pentru a evalua performantele de precizie ale calculatorului folosit.

 

In acesta lucrare vom nota cu REPS lungimea mantisei īn baza zecimala. Estimarea valorii REPS se face īn felul urmator:

REPS=1

repeta

REPS=REPS/2

pāna cānd 1+REPS=1

REPS=REPS*2

 

 

 

 

 

deoarece la ultima īmpartire s-a pierdut un bit care trebuie recuperat.