RaportTehnic Serban Iustin 113A

33
UNIVERSITATEA POLITEHNICA BUCURESTI FACULTATEA DE INGINERIE ELECTRICA CALCULATOARELE SI PROGRAMAREA LOR STUDENT : SERBAN Iustin-Iulian BUCURESTI 2015

Transcript of RaportTehnic Serban Iustin 113A

Page 1: RaportTehnic Serban Iustin 113A

UNIVERSITATEA POLITEHNICA BUCURESTIFACULTATEA DE INGINERIE ELECTRICA

CALCULATOARELE SI PROGRAMAREA LOR

STUDENT : SERBAN Iustin-Iulian

ANUL I

GRUPA : 113 A

BUCURESTI 2015

Page 2: RaportTehnic Serban Iustin 113A

CUPRINS

CAPITOLUL 1 : Introducere

1.1 Calculatoare: notiuni introductive1.2 Programarea: notiuni introductive

CAPITOLUL 2: CALCULATOARE

2.1 Istoria calculatoarelor

2.2 Notiuni specifice

CAPITOLUL 3 : PROGRAMAREA

3.1 Istoria programarii si a informaticii

3.2 Limbaje de programare

3.3 Algoritmi

CAPITOLUL 4: APLICATII ALE PROGRAMARII CALCULATOARELOR

4.1 Programe si aplicatii software

4.2 Jocuri Video

Page 3: RaportTehnic Serban Iustin 113A
Page 4: RaportTehnic Serban Iustin 113A

CAPITOLUL 1 : INTRODUCERE

Inca din cele mai vechi timpuri calculatoarele au constituit un obiect de baza ce a venit in ajutorul omului pentru a efectua diferite sarcini si a-i usura munca acestuia. Calculatoarele reprezina un stalp de baza al societatii contemporane , ele find indispensabile pentru activitatile zilnice , divertisment si cercetare.

Aflate in legatura de inter-depententa cu programarea , calculatoarele au ajuns in stadiul actual datorita evolutiei massive a programarii si a invotatiilor din cadrul acestui domeniu.Nu putem caracteriza un calculator fara a ne lega mai intai de programarea acestuia , programarea constituind baza oricarei activitati.

1.1 CALCULATOARE

Un calculator, numit și sistem de calcul, computer sau  ordinator, este o mașină de

prelucrat date și informații conform unei liste de instrucțiuni numită program. În zilele noastre

calculatoarele se construiesc în mare majoritate din componente electronice și de aceea cuvântul

„calculator” înseamnă de obicei un calculator electronic. Calculatoarele care sunt programabile

liber și pot, cel puțin în principiu, prelucra orice fel de date sau informații se numesc universale

(engleză general purpose, pentru scopuri generale). Calculatoarele actuale nu sunt doar mașini de

prelucrat informații, ci și dispozitive care facilitează comunicația între doi sau mai mulți

utilizatori, de exemplu sub formă de numere, text, imagini, sunet sau video sau chiar toate

deodată (multimedia).

Știința prelucrării informațiilor cu ajutorul calculatoarelor se

numește informatică (engleză Computer Science). Tehnologia necesară pentru folosirea lor

poartă numele Tehnologia Informației, prescurtat TI sau IT (de la termenul

englezesc Information Technology).

În principiu, orice calculator care deține un anumit set minimum de funcții (altfel spus, care

poate emula o mașină Turing) poate îndeplini funcțiile oricărui alt asemenea calculator,

Page 5: RaportTehnic Serban Iustin 113A

indiferent că este vorba de un PDA sau de un supercalculator. Această versatilitate a condus la

folosirea calculatoarelor cu arhitecturi asemănătoare pentru cele mai diverse activități, de la

calculul salarizării personalului unei companii până la controlul roboților industriali sau medicali

(calculatoare universale).

1.2 PROGRAMAREA

Programarea este dispunerea cronologică a unor mișcări, operații, acțiuni sau activități astfel

încât în finalul perioadei să se realizeze o stare posibilă a unui sistem. Programarea este

cunoscută ca activitate umană dar există semnalmente că pot exista forme de programare

naturale, fără intervenția omului cum sunt dispunerile proceselor genetice sau comportamentele

dirijat  instinctual la animale.

Programarea informatică este o activitate informatică de elaborare a produselor-program,

a programelor (software) necesare activităților realizate cu ajutorul calculatorului. Programarea

informatică conține următoarele subactivități: specificarea, proiectarea, implementarea,

documentarea și întreținerea produsului program. Stiința prelucrării informațiilor (datelor) cu

ajutorul computerelor se numește informatică. Termenul informatică desemnează știința

procesării sistematice a informației, în special a procesării cu ajutorul calculatoarelor. Termenul

englezesc corespunzător esteComputer Science (știința calculatoarelor).

Istoric, informatica s-a dezvoltat ca știință din matematică, în timp ce dezvoltarea primelor

calculatoare își are originea în electrotehnică și telecomunicații. De aceea, calculatorulreprezintă

doar dispozitivul pe care sunt implementate conceptele teoretice. Informaticianul olandez Edsger

Dijkstra afirma: "În informatică ai de-a face cu calculatorul, așa cum ai în astronomie cu

telescopul".

Page 6: RaportTehnic Serban Iustin 113A

CAPITOLUL 2 : CALCULATOARE

2.1 ISTORIA CALCULATOARELOR

Cel mai vechi mecanism cunoscut care se pare că putea funcționa ca o mașină de calculat se

consideră a fi mecanismul din Antikythira, datând din anul 87 î.e.n. și folosit aparent pentru

calcularea mișcărilor planetelor. Tehnologia care a stat la baza acestui mecanism nu este

cunoscută.

O dată cu revigorarea matematicii și a științelor în timpul Renașterii europene au apărut o

succesiune de dispozitive mecanice de calculat, bazate pe principiul ceasornicului, de exemplu

mașina inventată de Blaise Pascal. Tehnica de stocare și citire a datelor pe cartele perforate a

apărut în secolul al XIX-lea. În același secol, Charles Babbage este cel dintâi care proiectează o

mașină de calcul complet programabilă (1837), însă din păcate proiectul său nu va prinde roade,

în parte din cauza limitărilor tehnologice ale vremii.

În prima jumătate a secolului al XX-lea, nevoile de calcul ale comunității științifice erau

satisfăcute de calculatoare analoage, foarte specializate și din ce în ce mai sofisticate.

Perfecționarea electronicii digitale (datorată lui Claude Shannon în anii 1930) a condus la

abandonarea calculatoarelor analogice în favoarea celor digitale (numerice), care modelează

problemele în numere (biți) în loc de semnale electrice sau mecanice. Este greu de precizat care a

fost primul calculator digital; realizări notabile au fost: calculatorul Atanasoff-Berry, mașinile Z

ale germanului Konrad Zuse - de exemplu calculatorul electromecanic Z3, care, deși foarte

nepractic, a fost probabil cel dintâi calculator universal, apoi calculatorul ENIAC cu o arhitectură

relativ inflexibilă care cerea modificări ale cablajelor la fiecare reprogramare, precum și

calculatorul secret britanic Colossus, construit pe bază de lămpi și programabil electronic.

Echipa de proiectare a ENIAC-ului, recunoscând neajunsurile acestuia, a elaborat o altă

arhitectură, mult mai flexibilă, care a ajuns cunoscută sub numele de arhitectura von

Neumann sau „arhitectură cu program memorat“. Aceasta stă la baza aproape tuturor mașinilor

de calcul actuale. Primul sistem construit pe arhitectura von Neumann a fostEDSAC.

Page 7: RaportTehnic Serban Iustin 113A

În anii 1960 lămpile (tuburile electronice) au fost înlocuite de tranzistori, mult mai eficienți, mai

mici, mai ieftini și mai fiabili, ceea ce a dus la miniaturizarea și ieftinirea calculatoarelor. Din

anii 1970, adoptarea circuitelor integrate a coborât și mai mult prețul și dimensiunea

calculatoarelor, permițând printre altele și apariția calculatoarelor personale de acum.

2.2 NOTIUNI SPECIFICE

ARHITECTURA von Neumann

Deși design-ul și performanțele calculatoarelor s-au îmbunătățit dramatic în comparație cu anii

1940, principiile arhitecturii von Neumann sunt în continuare la baza aproape tuturor mașinilor

de calcul contemporane. Ea este denumită așa după renumitul matematician austro-ungar John

von Neumann.

Această arhitectură descrie un calculator cu patru module importante: unitatea aritmetică-

logică (UAL), unitatea de control (UC), memoria centrală și dispozitivele de intrare/ieșire

(prescurtat I/E). Acestea sunt interconectate cu un mănunchi de fire numit magistrală pe care

circulă datele de calcul și datele de program (instrucțiuni) și sunt conduse în tactul unui ceas (șir

de impulsuri continuu).

Conceptual, memoria unui calculator poate fi văzută ca o mulțime de „celule“ numerotate.

Fiecare celulă primește drept adresă un număr unic propriu; ele pot înmagazina o cantitate mică,

prestabilită de informație. Informația poate fi ori o instrucțiune, ori date propriu-zise.

Instrucțiunile spun calculatorului ce să facă, iar datele sunt acele informații care trebuie

prelucrate conform cu instrucțiunile. În principiu orice celulă poate stoca (memora) atât

instrucțiuni cât și date. Interesant este și cazul când una sau mai multe instrucțiuni, deja stocate

în memorie, sunt privite de către alte instrucțiuni drept date de prelucrat/modificat și sunt deci ele

însele modificate dinamic („în mers“), după necesitate.

Alte arhitecturi întrebuințate la calculatoarele de uz general sunt de exemplu arhitectura

Harvard și arhitectura Dataflow.

Page 8: RaportTehnic Serban Iustin 113A

CIRCUITE DIGITALE (Hardware)

Principiile de mai sus pot fi implementate cu o varietate de tehnologii - de ex. mașina lui

Babbage era alcătuită din componente mecanice. Însă singura asemenea tehnologie

care s-a dovedit suficient de practică este cea a circuitelor digitale (numerice), circuite

electronice care pot efectua operații din algebra booleană și aritmetica binară. Dar

primele „circuite” digitale foloseau relee electromecanice pentru a reprezenta stările "0"

(blocat) și "1" (conducție), aranjate în porți logice. Releele au fost repede înlocuite

cu lămpi electronice - tuburi electronice cu vid, dispozitive 100% electronice, folosite

până atunci în electronica analogă pentru proprietățile lor de amplificare, dar care au

putut fi utilizate și drept comutatoare (elemente de bază în construcția calculatoarelor)

de stare, 1→0 sau 0→1.

Aranjând corect porți logice binare , se pot construi circuite care execută și funcții mai

complexe, de exemplu sumatoare. Sumatorul electronic adună două numere folosind

același procedeu (în termeni informatici, algoritm) învățat de copii la școală: se adună

fiecare cifră corespondentă, iar „transportul” este transmis către cifrele din stânga. În

consecință, reunind mai multe asemenea circuite, se pot obține o UAL și o unitate de

control complete. CSIRAC, unul din primele calculatoare bazate pe arhitectura von

Neumann și probabil cel mai mic asemenea calculator posibil, avea circa 2000 de lămpi

(tuburi) - deci chiar și pentru sisteme minimale e nevoie de un număr considerabil de

componente.

Lămpile electronice erau caracterizate de câteva limitări severe în folosirea lor pentru

construcția porților logice: erau scumpe, puțin fiabile, ocupau mult spațiu și consumau

cantități mari de curent. Deși erau incredibil de rapide față de releele electromecanice,

aveau și ele totuși o viteză de operare relativ limitată. Astfel că începând din anii 1960

lămpile (tuburile electronice) au fost înlocuite cu tranzistori, dispozitive ce funcționau

asemănător, însă erau mult mai mici, mai rapide, mai fiabile, mai puțin consumatoare

de curent și mult mai ieftine.

Page 9: RaportTehnic Serban Iustin 113A

Din anii 1960-'70, tranzistorul a fost și el înlocuit cu circuitul integrat, care conținea mai

mulți tranzistori, și firele de interconectare corespunzătoare, pe o singură plăcuță de

siliciu (numită cip). Din anii '70, UAL-urile combinate cu unități de control (UC) au fost

produse unitar ca circuite integrate, numite microprocesoare, sau CPU (Central

Processing Unit/unitate de procesare centrală). În timp, densitatea tranzistorilor din

circuitele integrate a crescut incredibil, de la câteva zeci, în anii 70, până la peste 100

de milioane de tranzistoare pe circuit integrat, la procesoarele Intel și AMD din

anul 2005.

MEMORARE DE DATE

Lămpile electronice și tranzistorii pot fi folosite și pentru construirea de memorii - așa-numitele

circuite flip-flop sau „basculante bistabile” (CBB), și chiar sunt folosite pentru mici circuite de

memorie de mare viteză, numite „cu acces direct”. Însă puține designuri de calculatoare au

folosit bistabile pentru grosul nevoilor de memorie, memorii de amploare. Primele calculatoare

foloseau tuburi Williams - în esență proiectând puncte pe un ecran TV și citindu-le din nou mai

târziu, sau linii de mercur, în care datele erau depozitate sub formă de unde sonore care

parcurgeau tuburi cu mercur la viteză mică (comparativ cu viteza de operare a mașinii). Aceste

metode destul de neproductive au fost înlocuite cu dispozitive de stocare (memorare) în mediu

purtător magnetic, de exemplu memoria cu miezuri magnetice de formă inelară, în care un curent

electric era folosit pentru a induceun câmp magnetic remanent (dar slab) într-un material feros,

care putea fi citit ulterior, după necesitate pentru a folosi datele. În cele din urmă a apărut

memoria dynamic random access memory , DRAM. DRAM-ul este format din bănci (mulțimi

grupate) de condensatori, componente electrice care pot reține o sarcină electrică pentru o

anumită durată de timp. Scrierea informației într-o astfel de memorie se face prin încărcarea

condensatorilor cu o anumită sarcină electrică, iar citirea prin determinarea („măsurarea”)

sarcinii acestora (dacă este încărcat sau descărcat).

Page 10: RaportTehnic Serban Iustin 113A

PERIFERICE INTRARE/IESIRE

I/E” („intrare-ieșire”), sau în engleză I/O (de la input/output), este termenul general pentru acele

dispozitive prin care un calculator primește informații din lumea exterioară, inclusiv instrucțiuni

despre ce să facă, sau trimite înapoi (în afară) rezultatele calculelor sau operațiilor logice pe care

le-a efectuat. Rezultatele pot fi destinate ca informații oamenilor, sau pot fi folosite în mod direct

(nemijlocit) drept decizii în dirijarea altor mașini; de exemplu în cazul unui robot industrial, cel

mai important dispozitiv de ieșire (dispozitiv E) al calculatorului (de robot) înglobat în el

creează comenzile detailate necesare pentru toate operațiile (mișcările) mecanice

ale robotului propriu-zis.

Prima generație de calculatoare era echipată cu o gamă de dispozitive I/E destul de limitată și cu

viteză de execuție redusă; de exemplu, pentru introducerea datelor de calcul și a instrucțiunilor

de program se folosea în principal un cititor de cartele perforate sau un dispozitiv asemănător, iar

pentru afișarea rezultatelor se folosea o imprimantă, de obicei un teleimprimator modificat de tip

„telex”. De-a lungul timpului însă au apărut o imensă diversitate de dispozitive I/E. Pentru

calculatorul personal de azi, cele mai comune modalități de introducere directă a datelor

sunt tastaturile și mausurile, iar principalul mijloc prin care calculatorul prezintă informații către

utilizator sunt monitoarele, deșiimprimantele sau dispozitivele de generat sunet sunt folosite și

ele în mod obișnuit. Alte dispozitive sunt specializate pentru numai anumite tipuri de intrări sau

ieșiri, de exempluaparatul foto digital și scanerul.

Două categorii principale de dispozitive sunt:

dispozitivele secundare de stocare: dischetele, unitățile CD, DVD, discurile dure și altele;

capacitățile de stocare a datelor pot diferi foarte mult între ele.

precum și dispozitivele pentru conectarea la rețele de calculatoare. Posibilitatea de a

interconecta calculatoarele pentru a transfera date și informații între ele a deschis calea unei

mulțimi de noi aplicații. Internetul, și aici în special World Wide Web, permit miliardelor de

calculatoare de pe glob să se lege unele cu altele pentru a transfera între ele informații de

toate tipurile.

Page 11: RaportTehnic Serban Iustin 113A

VARIANTE CONSTRUCTIVE DE CALCULATOARE

Probabil cel mai familiar este calculatorul personal (de tip PC sau și altele) cu subvariantele

sale constructive:

„staționare” (în engleză:) desktop, tower, all-in one ș.a.

„portabile”: laptop, notebook, netbook ș.a.

Calculatoarele tabletă (de tip PC și altele).

Următoarele dispozitive de dată mai recentă sunt în sine tot calculatoare programabile (fie

numai în fabrică, fie și de către utilizator): toate telefoanele portabile celulare de

tipsmartphone, toate calculatoarele de tip tabletă, unele playere multimedia ca de ex. cele de

tip iPod de la compania Apple; unii producători oferă și tipuri combinate, de ex.

unnotebook cu tastatura detașabilă poate fi utilizat și drept calculator tabletă.

Calculatoare simple, de exemplu cele de buzunar.

Calculatoare rapide, folosite la așa-numitele „ferme” de servere; de obicei acestea nu sunt

deservite de utilizatori umani și deci nu este necesar să fie ergonomice. Pentru ele se

folosește deseori forma de paralelipiped, care permite o stivuire compactă.

Calculatoare profesioniste de mare viteză și mari dimensiuni, cum sunt cele de

tip mainframe.

Aparate și dispozitive speciale: console de jocuri electronice; case electronice de încasat;

afișoare de cărți și medii electronice de tip E-book; scanerele, imprimantele, chiar și

televizoarele și aparatele de redare DVD și Blu-ray actuale conțin elemente digitale de

control care sunt, într-un fel, componente de calcul; roboți de toate genurile; elementele de

comandă pentru mașini-unelte de tip CNC și multe altele.

Cea mai răspândită formă este însă cea a calculatorului integrat (embedded), adică înglobat

complet în dispozitivul pe care îl comandă. Acesta este în general preprogramat din fabrică,

iar utilizatorul nu primește posibilitatea să-i schimbe programul. Multe mașini și aparate, de

la avioanele de luptă până la aparatele foto digitale și la aparatele de navigație bazate pe

sistemul GPS, sunt controlate de calculatoare integrate. Un alt exemplu de calculator integrat

este calculatorul de bord al automobilelor.

Page 12: RaportTehnic Serban Iustin 113A

CAPITOLUL 3: PROGRAMAREA

3.1 Istoria programarii si a informaticii

Termenul informatică provine din alăturarea cuvintelor informație și matematică. Alte surse

susțin că provine din combinația informație și automatică. Istoria informaticii începe înainte de

momentul apariției computerului digital. Înainte de anul 1920, termenul de "computer" se referea

în limba engleză la un o persoană care efectua calcule (un funcționar). Primii cercetători în ceea

ce avea să se numească informatică, cum sunt Kurt Gödel, Alonzo Church și Alan Turing, au

fost interesați de problema computațională: ce informații ar putea un funcționar uman să

calculeze având hârtie și creion, prin urmărirea pur și simplu a unei liste de instrucțiuni, atât timp

cât este necesar, fără să fie nevoie ca el să fie inteligent sau să presupună capacități intuitive. Una

din motivațiile acestui proiect a fost dorința de a proiecta și realiza "mașini computaționale" care

să automatizeze munca, deseori plictisitoare și nu lipsită de erori, a

unui calculator sau computer uman.

În perioada anilor 1970, când mașinile computaționale au cunoscut o evoluție accelerată,

termenul de "computer" și-a modificat semnificația, referindu-se de acum mai degrabă la mașini,

decât la predecesorii săi umani.

INSTRUMENTE DE CALCUL ANTICE

Cel mai vechi instrument cunoscut pentru utilizarea în calcul este abacul. Se crede că a fost

inventat în Babilon circa 2400 î.Hr.. Prima oară era folosit prin trasarea unor linii în nisip cu

pietricele. Acesta a fost probabil primul computer și cel mai avansat sistem de calcul cunoscut

din aceea perioadă- precedând metoda elenă cu 2000 ani. Abacul este o tăbliță dreptunghiulară,

folosită de oameni în antichitate pentru efectuarea calculelor. Abace cu un design modern sunt

încă folosite astăzi ca instrumente de calcul.

Page 13: RaportTehnic Serban Iustin 113A

Mecanismul de la Antikythera.(fig 1)

Mecanismul de la Antikythera(vezi fig. 1)  este considerat a fi cel mai vechi computer analogic

mecanic cunoscut. A fost proiectat pentru a calcula pozițiile astronomice ale astrelor. A fost

descoperit în 1901 într-o epavă în largul insulei greceștiAntikythera, între Kythera și Creta. A

fost datat în perioada circa 100 î.Hr.. Artefacte tehnologice de complexitate similară nu au mai

apărut până în secolul al XIV-lea, atunci când ceasurile mecanice astronomice au apărut

în Europa.

În secolul al III-lea era noastră a apărut în China antică Carul îndreptat spre sud. Acest Car era

un mic vehicul cu două roți, care a funcționat ca o busolă. Avea un indicator care întotdeauna

arăta sudul, indiferent de poziția în care era pus Carul. De obicei, indicatorul era o păpușă sau o

figură cu un braț întins. Se presupune că era folosit pentru navigație, dar poate avea, de

asemenea, și alte scopuri. Este primul mecanism cunoscut cu roți dințate care a fost folosit mai

târziu în calculatoarele analogice. Chinezii au inventat și un abac mai sofisticat în jurul secolului

al II-lea î.Hr., cunoscut sub numele de abac chinezesc.

Dispozitivele mecanice analogice de calcul au apărut din nou o mie de ani mai târziu, în lumea

islamică medievală. Exemple de dispozitive din aceasta perioada

includ: equatoriumul lui Arzachel (equatoriumul este un instrument astronomic de calcul a

pozițiilor aștrilor) sau astrolabul lui Al-Biruni (astrolabul este un instrument astronomic istoric

folosit de astronomi, navigatori, și astrologi).

Inginerii musulmani au construit o serie de automate, inclusiv unele automate muzicale, care

puteau fi ’’programate’’ pentru a reda diferite modele muzicale. Aceste dispozitive au fost

Page 14: RaportTehnic Serban Iustin 113A

dezvoltate de către frații Banu Musa și de matematicienii musulmani Al-Jazari, care au făcut

progrese importante în criptografie, cum ar fi dezvoltarea criptanalizei a analizei frecvențelor de

către Alkindus. (Criptografia reprezintă o ramură a matematicii care se ocupă cu securizarea

informației precum și cu autentificarea și restricționarea accesului într-un sistem informatic.

Criptanaliza este studiul metodelor de obținere a înțelesului informațiilor criptate, fără a avea

acces la informația secretă necesară în mod normal pentru aceasta. De regulă, aceasta implică

găsirea unei chei secrete. Într-un limbaj non-tehnic, aceasta este practica spargerii codurilor.)

După ce John Napier a descoperit în secolul al XVII-lea logaritmii care sunt folosiți în scopuri

computaționale, a urmat o perioadă de progres considerabil în care inventatori și oameni de

știință au fabricat unelte de calcul.

În 1623, Wilhelm Schickard a proiectat o mașină de calcul, dar a abandonat proiectul, deoarece

clădirea în care se afla prototipul a fost distrusă de un incendiu în 1624.

În jurul anului 1640, Blaise Pascal, un cunoscut matematician francez, a construit primul

dispozitiv mecanic bazate pe un design descris de matematicianul grec Heron din Alexandria.

Apoi, în 1672, Gottfried Wilhelm Leibniz a inventat Socotitorul în trepte care a fost finalizat

în 1694. Nici unul dintre aceste dispozitive timpurii de calcul nu au fost calculatoare în sensul

modern al cuvântului, și a fost nevoie de un progres considerabil în matematică înainte ca

primele calculatoare moderne să poată fi concepute.

În secolul al VII-lea, matematicianul indian Brahmagupta a dat prima explicație a sistemului de

numerație hinduso-arab și utilizarea lui zero atât ca substituent cât și ca cifră zecimală. (Un

substituent este un element care poate înlocui un alt element, cu care are proprietăți

asemănătoare.)

Aproximativ în jurul anului 825, matematicianul persan Al-Khwarizmi a scris o carte, despre

calculul cu cifre hinduse, care a dus la răspândirea sistemului indian de numerație în Orientul

Mijlociu și apoi în Europa. În jurul secolului al XII-lea a existat o traducere a acestei cărți scrisă

înlimba latină numită Algoritmi de numero Indorum. Aceste cărți prezentau concepte noi pentru

efectuarea unei serii de pași în scopul realizării unei sarcini. De aici a derivat termenul algoritm.

(Un algoritm înseamnă în matematică și informatică o metodă sau o procedură de calcul,

alcătuită din pașii elementari necesari pentru rezolvarea unei probleme sau categorii de

Page 15: RaportTehnic Serban Iustin 113A

probleme. De obicei algoritmii se implementează în mod concret prin programarea adecvată a

unui calculator, sau a mai multora).

3.2 LIMBAJE DE PROGRAMARE

Un limbaj de programare este un set bine definit de expresii și reguli (sau tehnici) valide de

formulare a instrucțiunilor pentru un computer. Un limbaj de programare are definite un set de

reguli sintactice și semantice. El dă posibilitatea programatorului să specifice în mod exact și

amănunțit acțiunile pe care trebuie să le execute calculatorul, în ce ordine și cu ce date.

Specificarea constă practic în întocmirea/scrierea programelor necesare ("programare").

CATEGORII:

După paradigma programării

limbaje ezoterice, ex. Brainfuck

limbaje procedurale; ex. C, Java, Perl

limbaje funcționale: ex. ML, Haskell

limbaje pentru programarea logică ex. Prolog, DATALOG

limbaje mixte: ex.LISP oferă un amestec heteroclit și netipizat de programare imperativă

și programare funcțională

După nivelul de abstractizare (care printre altele corespunde cu ușurința cu care programele

pot fi citite și înțelese de către programatori):

limbaje de generația întâia: limbajele cod-mașină (limbaje mașină)

limbaje de generația a doua: limbajele de asamblare

limbaje de generația a treia: limbaje de nivel înalt, cum ar fi C-ul (și toate derivatele

sale: C++, Java, ...), Pascal, Fortran ș.a.

limbaje de generația a patra: limbajele neprocedurale, orientate pe rezolvarea unei

anumite clase de probleme: SQL ș.a.

limbaje de generația a cincea: limbaje utilizate în domenii precum logica

fuzzy, inteligența artificială sau și rețelele neuronale: Prolog, LISP ș.a.

Page 16: RaportTehnic Serban Iustin 113A

După vechime

Limbaje din secolul trecut; ex. LISP și FORTRAN din anii '50

Limbaje din ultimul deceniu; ex. Haskell, Ruby, Brainfuck

LIMBAJE GENERALE

Limbaje care pot fi folosite (cel puțin teoretic) la rezolvarea oricărui tip de probleme:

TEO (Basic)

Alen (variantă modificată a limbajului TEO)

BASIC (QuickBasic, GW-BASIC, Visual Basic)

C

C++

C#

Clips

Cobol

D

Fortran

Haskell

Java

JavaScript

LISP

Pascal (și ObjectPascal, folosit de Borland Delphi)

Perl

PHP

Prolog

Python

Ruby

Seed7

Scriptol

Page 17: RaportTehnic Serban Iustin 113A

Tcl/TK

XHTML

MATLAB

SmallTalk

Borland Delphi

Algol

Simula

3.3 ALGORITMI Un algoritm este o succesiune de pasi elementari ce ajuta la dezvoltarea unei probleme (de ordin matematic / informatic). De obicei, problemele de algoritmica se rezuma la a avea niste date ce le stim (date de intrare), ce sunt tratate special prin diversi algoritmi ajungand sa ofere niste date noi (date de iesire). Aproape orice problema de algoritmica functioneaza pe acest principiu. Ca si baza, algoritmica este acea parte din domeniul programarii care urmareste imbunatatirea performantelor unor algoritmi si reducerea resurselor pentru performante mai bune.       Algoritmul este noțiunea fundamentală a informaticii. Totul este construit în jurul algoritmilor.

        Cele mai importante proprietăți ale unui algoritm, îndeplinite de diverșii algoritmi într-o măsură mai mare sau mai mică, sunt următoarele:

Corectitudinea - este proprietatea algoritmului de a furniza o soluție corectă a problemei

date. În acest sens este de dorit ca algoritmii să se bazeze pe fapte și relații matematice

demonstrabile.

Caracterul univoc sau determinist - plecând de la un set de date inițial anume, rezultatul

este unic, sau altfel spus, repetarea execuției algoritmului duce întotdeauna la aceleași

rezultate.

Generalitatea - este proprietatea unui algoritm de a rezolva o clasă sau categorie de

probleme, și nu doar o singură problemă particulară. Spre exemplu, un algoritm care

rezolvă doar ecuația este mai puțin general decât unul care rezolvă ecuația , oricare ar fi

valorile lui .

Page 18: RaportTehnic Serban Iustin 113A

Claritatea - proprietatea algoritmului de a descrie cu exactitate și fără ambiguități pașii

care trebuiesc parcurși în rezolvarea problemei.

Verificabilitatea - acea proprietate a algoritmelor care permite ca fiecare pas să poată fi

verificat într-un timp rezonabil de către om, folosind mijloace de validare de încredere.

Optimalitatea - proprietatea unui algoritm de a se termina după un număr minim de pași.

Spre exemplu, dacă se cere să se calculeze suma primelor 'n' numere naturale, se poate

aplica formula de calcul, și astfel algoritmul se termină într-un singur pas, pe când dacă

am aduna toate numerele de la 1 la n, el s-ar termina abia în n pași, și deci nu ar fi optim.

În teoria complexității se folosește notația O(n).

Finitudinea - este proprietatea algoritmului de a se termina într-un număr finit de pași.

Există și algoritmi care nu se termină într-un număr mărginit de pași, dar aceștia se

numesc "metode algoritmice".

Eficiența - este proprietatea unui algoritm de a se termina nu numai într-un număr finit, ci

și "rezonabil" de pași, chiar dacă acesta nu este cel mai mic posibil (nu este optim).

Algorimul este ineficient și dacă rezultatul se obține într-un timp mai lung decât cel dorit

sau permis.

Existența unei intrări (datele de prelucrat). Întrucât operatorii se aplică unui operand (sau

și mai multor operanzi deodată), este de neconceput un algoritm fără niciun operand.

Intrările permise formează împreună un set (mulțime) specific de obiecte sau valori, care

se numește "domeniul" algoritmului.

Existența unei ieșiri (rezultatele). Este de neconceput un algoritm care nu are nicio ieșire,

deoarece în acest caz intră în discuție însăși utilitatea sa.

Algoritmica sta la baza programarii , o intelegere buna a algoritmilor conduce spre un process de

programare corect si eficient.

Page 19: RaportTehnic Serban Iustin 113A

CAPITOLUL 4 : APLICATII ALE PROGRAMARII CALCULATOARELOR.

4.1 Programe si aplicatii software

Programarea a adus multe beneficii in viata omului , aceasta ajutand la dezvoltarea a mai multor programe si aplicatii software utilizabile in diferite domenii de personae specializate sau chiar de persoanele fizice prin intermediul calculatorului personal.

Printre aceste aplicatii putem mentiona cateva produse de marii dezvoltatori : Microsoft , Apple , Adobe , Google , etc.

Microsoft Windows.

Microsoft Windows este numele unei serii de sisteme de operare create de compania Microsoft.

Microsoft a introdus Windows pe piață pentru prima dată în noiembrie 1985, ca un supliment

la MS-DOS, deoarece interfețele grafice erau din ce in ce mai apreciate. Microsoft Windows a

ajuns cu timpul să predomine pe piața de calculatoare mici, întrecând Mac OS, care fusese

introdus pe piață mai înainte de către compania Apple Computers, astăzi numită Apple Inc.. La

conferința IDC Directions din 2004, vicepreședintele IDC a constatat că Windows deține

aproximativ 90 % din piața de sisteme de operare.

Versiunea cea mai nouă de Windows pentru stații de lucru existentă pe piață este Windows 10,

pusă în vânzare în Iulie 2015(versiunea completă).

Versiunea curentă de Windows Server este "Windows Server 2012", urmașul lui "Windows

Server 2008".

A nu se confunda cu Window (scris fără „s” la sfârșit), care este un sistem grafic de ferestre

pentru sistemele de operare Unix.

Versiuni windows populare: Windows XP , Windows 7 , Windows 10 (versiunile considerate

cele mai bune ) (vezi fig.2 )

Page 20: RaportTehnic Serban Iustin 113A

FIG. 2 : Evolutia Windows

Microsoft Office

Microsoft Office(Fig.3) sau MS Office este o suită de programe de birou create de

firma Microsoft Corporation, care sunt însoțite și de o aplicație specială suprapusă lor pentru

accesarea unitară simplă.

APLICATIILE MS OFFICE

Microsoft Word (procesor de text)

Microsoft Excel (analiză de business și calcul tabelar)

Microsoft PowerPoint (program pentru prezentări grafice)

Microsoft Access (program pentru baze de date)

Microsoft Outlook (agendă și client de poștă electronică)

Microsoft Frontpage (editor vizual de pagini web)

Microsoft Photo Editor (editor fotografic)

Bineînțeles există și oferte (pachete) de la Microsoft care cuprind numai o parte din aceste

programe.

Fig. 3 (MS Office Logo)

Page 21: RaportTehnic Serban Iustin 113A

Fig. 4 (Apple Logo)

APPLE

MAC OS X

Mac OS X este un sistem de operare dezvoltat, comercializat și vândut de firma Apple pentru

computerele sale de tipMacintosh. Începând din 2009, fiecare sistem Macintosh include

preinstalată cea mai recentă versiune a acestui sistem de operare. Mac OS X este succesorul

sistemului de operare Mac OS original sau „clasic” , care a fost sistemul de operare principal al

companiei Apple Computers (astăzi: Apple) încă din 1984. Spre deosebire de predecesorii săi,

Mac OS X este un sistem de operare bazat pe platforma Unix, construit pe tehnologiile

dezvoltate la compania NeXT între 1985 și începutul anului 1996, când NeXT a fost achiziționat

de către Apple. Versiunea 10.5 atunci când rulează pe procesoare Intel deține certificatul "UNIX

03".

Prima versiune lansată a fost Mac OS X Server 1.0 în 1999, iar în martie 2001 a urmat versiunea

„desktop” Mac OS X v10.0 (aici termenul "desktop" se referă la calculatoare relativ mici care au

loc pe masa de lucru obișnuită). Până azi au mai fost lansate încă multe versiuni de tip "end-user"

și "server", cea mai recentă fiind Mac OS X v10.8 din 25 iulie 2012. Versiunile de Mac OS X

sunt supranumite după feline; de exemplu, Mac OS X v10.5 este de obicei numită „Leopard”

(10.4 a fost numit „Tigru”, 10.3 era „Pantera” etc). Sistem de operare OS X 10.9 marchează

începutul unei schimbări în schema de numire a OS X. Versiunea OS X 10.9 a sistemului de

operare este numit Mavericks după o locație surfing în California de Nord.

Versiunea server, Mac OS X Server, este din punct de vedere arhitectural foarte asemănătoare cu

varianta sa desktop. Prin comparație ea mai include câteva unelte administrative (software)

pentru managementul grupurilor sau pentru accesul simplificat la serviciile de rețea de bază.

Aceste unelte includ un agent de e-mail, un server Samba, un server LDAP, un server de nume și

altele. Este preinstalat pe echipamentele hardware de tip server Xserve de la Apple, dar poate fi

rulat pe majoritatea modelelor de computere Apple.

Apple mai produce și versiuni de Mac OS X specializate pentru utilizarea pe următoarele articole

de consum: Apple TV, Apple iPhone și Apple iPod Touch.

Page 22: RaportTehnic Serban Iustin 113A

Google Chrome

Google Chrome este un navigator web de tip open source dezvoltat de compania Google. Este

cel mai utilizat browser la momentul actual, având o cotă de piață de 52.1 % din totalul

utilizatorilor de internet. Numele navigatorului este derivat de la interfața grafică. Chromium este

numele proiectului de sursă liberă, iar Chrome numele produsului care a apărut sub licența BSD.

Prima versiune pentru sistemele de operare Microsoft Windows a apărut pe 2 septembrie 2008 în

43 de limbi. Versiunile pentru sistemele de operare Mac OS X și Linux sunt în stadiu alpha.

Apariția navigatorului Google Chrome (Fig. 5) a fost planificată pe data de 3 septembrie 2008.

Câteva reviste al căror autor este Scott McCloud urmau să fie expediate către jurnaliști și

bloggeri, explicând caracteristicile și motivațiile creării noului navigator web. Exemplarele

destinate pentru Europa au fost expediate mai devreme, iar blogerul german Philipp Lensen a

făcut o copie scanată a revistei respective și a publicat-o pe site-ul său personal după ce a primit-

o pe 1 septembrie 2008. Ulterior Google a plasat această revistă pe Google Books, menționând

pe blogul oficial explicațiile referitoare la ieșirea timpurie a produsului.

Prima versiune a lui Google Chrome a trecut testele Acid1, Acid2 dar nu a trecut testul Acid3; cu

toate acestea el a acumulat scorul de 78 de puncte din 100, care este mai mare decât Microsoft

Internet Explorer 7 și Mozilla Firefox 3.

Versiunea a doua a trecut toate testele, dar la Acid3, deși a avut punctaj 100/100, n-a trecut testul

Linktest. Versiunea a treia a reușit să treacă testul Acid3 cu 100/100 și cu testul Linktest.

Fig. 5 (Icoana browserului Google Chrome)

Page 23: RaportTehnic Serban Iustin 113A

4.2 JOCURILE VIDEO

Un joc video este un joc electronic în care se interacționează cu o interfață grafică pentru a genera răspuns vizual pe un ecran. Jocurile video în general au un sistem de recompensare a utilizatorului, de obicei se ține scorul, acest sistem depinzând de îndeplinirea unor anumite obiective în joc. În anul 2008, piața mondială de jocuri video a înregistrat o valoare de 41,9 miliarde de dolari iar în 2011 a ajuns la 56 miliarde dolari. Pentru anul 2015, piața este estimată să crească la 82 miliarde dolari.

Platforme

Termenul joc pe calculator sau "joc pe PC" se referă la un joc care este jucat pe un PC, unde monitorul este principalul mijloc de feedback și care folosește dispozitiv de control un periferic de intrare, de obicei butonarea unui joystick (jocuri din arcade-uri), o combinație tastatură & maus/trackball sau un controller, ori o combinație dintre cele de mai sus. Jocuri pe calculator sunt denumite și jocurile în mod text sau jocuri care folosesc și alte metode care includ sunetul sau vibrația ca principalul mijloc de feedback, dar in momentul actual apar prea puține jocuri noi care intră în aceste categorii.

Inceputuri

Primele jocuri video au fost realizate între anii 1950 și 1960 de Jon Snell și rulau pe platforme cum ar fi osciloscopul, sau computereEDSAC. Cel mai vechi joc pe calculator, o simulare de rachete, a fost creat în 1947 de către Thomas T. Goldsmith Jr. și de Estle Ray Mann]. O cerere pentru acordarea de drepturi de autor a fost făcută pe 25 ianuarie 1947 și patentată ca U.S. Patent #2,455,992 din data de 14 decembrie 1948. Mai târziu în 1952, o versiune a jocului X și 0 numită Noughts and Crosses a fost creată de A. S. Douglas ca parte a disertației de doctorat la Universitatea din Cambridge. Jocul rula pe un computer al universității numit Electronic Delay Storage Automatic Calculator (EDSAC). În 1958 William Higinbotham - care a ajutat să se construiască prima bombă atomică - a creat Tennis For Two în laboratoarele naționale din Brookhaven, situate în Upton, New York, pentru a distra vizitatorii laboratorului. În 1962 Steve Russel a creat jocul Spacewar!, un joc de simulare spațială. Programul rula pe un DEC PDP-1 și este considerat de mulți specialiști atât primuljoc pentru calculator cât și printre cele mai importante realizate vreodată.[5] Jocul s-a răspândit rapid la universități și laboratoare de cercetare din țară. În 1968 Ralph Baer, care va fi cunoscut mai târziu și ca Părintele Jocurilor Video, a patentat o versiune a unei console de jocuri numită Television Gaming and Training Apparatus. În 1967, Baer a creat un joc gen ping-pong pentru consolă care semăna cuTennis for

Page 24: RaportTehnic Serban Iustin 113A

Two (și cu viitorul joc arcade Pong[Fig. 7]). A lucrat cu Magnavox și a creat în 1972 prima consolă, numită Magnavox Odyssey

Genuri

Jocurile au fost întotdeauna mai ușor de clasificat după genul lor, din cauza constrângerilor

tehnice a diferitelor platforme, cum ar fi cele legate de spațiul alocat jocurilor. Odată cu trecerea

anilor și creșterea banilor destinați producției jocurilor video, valoarea comercială a crescut iar

cererea de talent creativ a obligat companiile să aducă artiști din afara industrei de specialitate.

Refolosirea unor anumite genuri este cel mai bine observată în încercarea de a stabili "francize",

care de obicei folosesc aceleași caractere, situații, conflicte și teme de-a lungul continuărilor.

Drept urmare, deși multe jocuri sunt o combinație de mai multe genuri, există foarte puține cele

care nu se încadrează în tiparele obișnuite, care atunci când au succes de obicei definesc un nou

gen. Un joc care lansează un nou gen poate să nu fie primul de acel tip ci poate fi primul care are

îndeajuns de mult succes comercial pentru ca alte companii să încerce să reproducă acel succes.

Exemple ca Super Mario 64 care a lansat genul jocurilor video de platformă pentru console

sau Doom care a lansat genul First-person shooterpentru PC.

Există și combinații de genuri cum ar fi jocurile de genul Massively multiplayer online role-

playing game (Fig. 6)

Fig. 6 ( World of Warcraft – MMORPG) Fig. 7 ( Jocul Pong)

Page 25: RaportTehnic Serban Iustin 113A

BIBLIOGRAFIE

www.wikipedia.org : Informatii explicative ale termenilor (cap. 1 , cap. 2 , cap. 3) , Istorie si scurte descrieri,definitii.

Google Images ( figurile explicative) ,,Algoritmi fundamentali , o perspectiva c++’’ Editura Libris –

Cluj Napoca 1995 – Razvan Andonie , Ilie GarbaceaInformatii privitoare la algoritmica si utilizare

www.scribd.com Informatii despre diferitele aplicatii software si despre informatica