+ All Categories
Home > Documents > Introducere în programarea Capitolul 1 calculatoarelor · neprocedurale - ele se bazează pe...

Introducere în programarea Capitolul 1 calculatoarelor · neprocedurale - ele se bazează pe...

Date post: 23-Oct-2019
Category:
Upload: others
View: 11 times
Download: 0 times
Share this document with a friend
10
Introducere Introducere î n programarea n programarea calculatoarelor calculatoarelor Capitolul 1 NoŃiuni fundamentale utile în programarea calculatoarelor 1.1. Comunicarea Introducere Introducere în p n programarea calculatoarelor rogramarea calculatoarelor 201 2013 Lăcrămioara STOICU ăcrămioara STOICU-TIVADAR TIVADAR Limbaje de programare După modul de abordare a rezolvării problemelor cu calculatorul limbajele pot fi: procedurale - atunci când rezolvarea problemei urmează anumite etape şi utilizează structuri fundamentale (Pascal, C, etc.) neprocedurale - ele se bazează pe reguli şi sunt mai apropiate de limbajul şi modul de raŃionare natural (limbajele pentru inteligenŃă artificială: Prolog, Lisp). Introducere Introducere în p n programarea calculatoarelor rogramarea calculatoarelor 201 2013 Lăcrămioara STOICU ăcrămioara STOICU-TIVADAR TIVADAR Comunicarea orientate pe obiecte (C++, Java) pentru aplicaŃii Web (PHP, Pearl) pentru aplicaŃii distribuite sau mobile pentru aplicaŃii de conducere a roboŃilor şi maşinilor unelte Introducere Introducere în p n programarea calculatoarelor rogramarea calculatoarelor 201 2013 Lăcrămioara STOICU ăcrămioara STOICU-TIVADAR TIVADAR Etape de bază care trebuie urmate pentru rezolvarea unei probleme pe calculator analiza problemei - se stabileşte exact CE subprobleme trebuie rezolve programul programarea - reprezentarea problemelor într-un mod adecvat pentru rezolvarea asistată de calculator implementarea - scrierea programului care rezolvă problema într-un anumit limbaj de programare
Transcript
Page 1: Introducere în programarea Capitolul 1 calculatoarelor · neprocedurale - ele se bazează pe reguli şi sunt mai apropiate de limbajul şi modul de ra Ńionare natural (limbajele

Introducere Introducere îîn programarea n programarea

calculatoarelorcalculatoarelorCapitolul 1

NoŃiuni fundamentale utile în programarea calculatoarelor

1.1. Comunicarea

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Limbaje de programare

După modul de abordare a rezolvăriiproblemelor cu calculatorul limbajele pot fi:

� procedurale - atunci când rezolvarea problemei urmează anumite etape şi utilizează structuri fundamentale (Pascal, C, etc.)

� neprocedurale - ele se bazează pe reguli şi sunt mai apropiate de limbajul şi modul de raŃionare natural (limbajele pentru inteligenŃă artificială: Prolog, Lisp).

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Comunicarea

� orientate pe obiecte (C++, Java)� pentru aplicaŃii Web (PHP, Pearl)� pentru aplicaŃii distribuite sau mobile� pentru aplicaŃii de conducere a roboŃilor şi

maşinilor unelte

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Etape de bază care trebuie urmate pentru rezolvarea unei probleme pe calculator

� analiza problemei - se stabileşte exact CE subprobleme trebuie să rezolve programul

� programarea - reprezentarea problemelorîntr-un mod adecvat pentru rezolvarea asistată de calculator

� implementarea - scrierea programului care rezolvă problema într-un anumit limbaj de programare

Page 2: Introducere în programarea Capitolul 1 calculatoarelor · neprocedurale - ele se bazează pe reguli şi sunt mai apropiate de limbajul şi modul de ra Ńionare natural (limbajele

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Algoritm

� Mohammed ibn-Musa al-Khwarizmi

� ŞtiinŃa algoritmilor– Domenii: matematică, inginerie, psihologie, management,

lingvistică, etc.– Programare – principii de bază ale instrumentelor de

programare utilizate în prezent, evoluŃie şi probleme

� Ansamblu de etape prin care se define şte modul în care poate fi dus ă la îndeplinire o anumit ă sarcin ă.

� Un set ordonat de pa şi executabili, descri şi fără echivoc, care definesc un proces finit

Algoritmul lui Euclid

A>0A=M-N R=N/MNu

R=M/N

R=0M=NN=R

cmmdc(M,N)=NDa

Da

Nu

StopIntroducere în programarea calculatoarelor

Lăcrămioara Stoicu-Tivadar, 2013

Algoritmul de supraveghere şi screening într-o

clinică de pediatrie

Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013

Algoritmul folosit pentru c ăutare pe Google

http://www.google.com/intl/en/insidesearch/howsearchworks/thest

ory/

Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013

http://www.seoromania.ro/google-anunta-noi-schimbari-in-algoritmul-

de-cautare/

Motoarele de căutare folosesc algoritmi complecși – comenzi matematice care le

”spun” calculatoarelor cum să

îndeplinească sarcinile alocate.

http://blog.mihaimoga.com/post/33508674615/algoritmul-google-

pasgerank

Introducere în programarea calculatoarelorLăcrămioara Stoicu-Tivadar, 2013

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Algoritmi

� Primesc şi transmit informaŃie� Rezolvă o problemă� Sunt în formă conceptuală - trebuie să fie

reprezentate într-o formă în care pot să fie comunicate unui calculator – prin setul de instrucŃiuni (gramatică şi limbaj)

- limbaj de programare- paradigme de programare

Reprezentarea algoritmilor în calculator -> program -> software

Page 3: Introducere în programarea Capitolul 1 calculatoarelor · neprocedurale - ele se bazează pe reguli şi sunt mai apropiate de limbajul şi modul de ra Ńionare natural (limbajele

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Algoritmi

� Descoperire� Reprezentare

� Analiză� ExecuŃie� Comunicare� Limite

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

1.2. Sisteme de numera1.2. Sisteme de numeraŃŃie ie utilizate utilizate îîn lucrul cu n lucrul cu calculatorulcalculatorul

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

NumărNumăr

�� Concept abstractConcept abstract

�� N=3N=3

�� 3, III, 00113, III, 0011

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Sisteme de numeraSisteme de numera ŃŃie utilizate ie utilizate îîn n

lucrul cu calculatorullucrul cu calculatorul

�� Un Un sistem de numerasistem de numera ŃŃieie este constituit din este constituit din ansamblul regulilor de reprezentare a ansamblul regulilor de reprezentare a numerelor folosind cifre. numerelor folosind cifre. CifreleCifrele ssuuntntsimbolurile utilizate pentru reprezentarea simbolurile utilizate pentru reprezentarea numerelor numerelor

� Sistemele de numeraŃie pot fi poziŃionale sau nepoziŃionale.

Amharic

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Sisteme de numeraSisteme de numera ŃŃie utilizate ie utilizate îîn lucrul n lucrul

cu calculatorulcu calculatorul�� Sistemul de scriere roman este un sistem Sistemul de scriere roman este un sistem

nepozinepoziŃŃionalional care reprezintă numerele prin care reprezintă numerele prin compunerea cifrelor compunerea cifrelor îîn mod repetat n mod repetat îîncepând cu ncepând cu cele mari cele mari şşi obi obŃŃinând valoarea numărului prin inând valoarea numărului prin îînsumarea lor.nsumarea lor.

�� MLXVI = 1000+50+10+5+1 = 1MLXVI = 1000+50+10+5+1 = 10066 66

�� Sistemele poziSistemele poziŃŃionale au asociată o ionale au asociată o bază bază care care reprezintă numărul total de cifre utilizatereprezintă numărul total de cifre utilizate..

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Sisteme de numeraSisteme de numera ŃŃie utilizate ie utilizate îîn lucrul n lucrul

cu calculatorulcu calculatorul

�� Spre deosebire de oameni care lucrează Spre deosebire de oameni care lucrează îîn n mod normal mod normal îîn n baza 10baza 10 de numerade numeraŃŃie, ie, calculatorul este construit să lucreze cu calculatorul este construit să lucreze cu numere reprezentate numere reprezentate îîn n baza 2baza 2 . .

Page 4: Introducere în programarea Capitolul 1 calculatoarelor · neprocedurale - ele se bazează pe reguli şi sunt mai apropiate de limbajul şi modul de ra Ńionare natural (limbajele

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Sisteme de numeraSisteme de numera ŃŃie utilizate ie utilizate îîn lucrul n lucrul cu calculatorulcu calculatorul

�� InformaInformaŃŃia elementară vehiculată ia elementară vehiculată îîn calculator n calculator este este bitulbitul ((îîn l. n l. englengl. . bibi narynary digidigitt , bit, bit ). ). �� poate avea valoarea 0 sau 1poate avea valoarea 0 sau 1 -- aaceste valori ceste valori

corespund fizic unor anumite nivele de tensiune, corespund fizic unor anumite nivele de tensiune, îîn funcn funcŃŃie de circuitele electronice cu care este ie de circuitele electronice cu care este construit calculatorul.construit calculatorul.

�� "Cuvintele" pe care le "Cuvintele" pe care le îînnŃŃelege calculatorul elege calculatorul sunt formate din 8 bisunt formate din 8 biŃŃi i şşi se numesc i se numesc octeocte ŃŃii (l. (l. englengl. . bytesbytes). ).

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Sisteme de numeraSisteme de numera ŃŃie utilizate ie utilizate îîn lucrul n lucrul cu calculatorulcu calculatorul

�� 1 K sau 1 Kilo octet (1 Kilo 1 K sau 1 Kilo octet (1 Kilo bytebyte) = 1024 ) = 1024 bytesbytes(2(21010))

�� 1 M sau 1 1 M sau 1 MegaMega octet (1 octet (1 MegaMega bytebyte) = 1024 K) = 1024 K(2(22020))

�� 1G sau 1 Giga octet (1 Giga 1G sau 1 Giga octet (1 Giga bytebyte) = 1024 M) = 1024 M (2(23030))1000 k kilo 10002 M meg10003 G giga10004 T tera10005 P peta10006 E exa10007 Z zetta10008 Y yotta

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Sisteme de numeraSisteme de numera ŃŃie utilizate ie utilizate îîn lucrul n lucrul cu calculatorulcu calculatorul

baza sistemul cifre/litere

2 Binar 0, 1

8 Octal 0,1,2,3,4,5,6,7

10 Zecimal 0,1,2,3,4,5,6,7,8,9

16 Hexazecimal 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

��Calculatoarele folosesc baza de numeraCalculatoarele folosesc baza de numeraŃŃie 2 ie 2 sau cele două sau cele două

derivate din aceasta: octal derivate din aceasta: octal şşi hexazecimal.i hexazecimal. Acestea reprezintă Acestea reprezintă

cifrele caracteristice cifrele caracteristice îîn grupări de triade sau n grupări de triade sau tetradetetrade (8=2(8=233, 16=2, 16=244).).

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Conversia binar Conversia binar -- zecimalzecimal

�� Un număr poate fi scris din baza Un număr poate fi scris din baza 10 10 îîn binar n binar descompunând prin descompunând prin îîmpărmpărŃŃiri repetate la doi iri repetate la doi numărul zecimal numărul zecimal şşi scriindui scriindu--l după puterile lui l după puterile lui 2.2.

�� Exemplu: Exemplu: 77 = 64 + 13 = 64 + 8 + 4 + 1 = 277 = 64 + 13 = 64 + 8 + 4 + 1 = 266 + 2+ 233 +2+222 + 2+ 20 0

= = 0*20*277+1*2+1*266+0*2+0*255+0*2+0*244+1*2+1*233+1*2+1*222+0*2+0*211+1*2+1*200

Ca Ca urmareurmare, 77 se scrie , 77 se scrie îîn binar n binar

0100 1101

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Conversia zecimal Conversia zecimal -- binar binar --hexazecimalhexazecimal

�� Pentru numere mari este incomodă scrierea Pentru numere mari este incomodă scrierea unui unui şşir lung de cifre 1 ir lung de cifre 1 şşi 0.i 0.

�� De aceea sDe aceea s--a trecut la utilizarea sistemului a trecut la utilizarea sistemului hexazecimal hexazecimal îîn care numerele sn care numerele suuntnt scrise scrise utilizând cifre utilizând cifre şşi litere i litere

�� VeziVezi Tabelul 1. Reprezentarea numerelor, Tabelul 1. Reprezentarea numerelor, comparativ, comparativ, îîn zecimal, binar n zecimal, binar şşi hexazecimali hexazecimal

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Reprezentarea numerelor, comparativ, în zecimal, binar şi hexazecimalZECIMAL BINAR HEXAZECIMAL1 00000001 012 00000010 023 00000011 034 00000100 045 00000101 056 00000110 067 00000111 078 00001000 089 00001001 0910 00001010 0A11 00001011 0B12 00001100 0C13 00001101 0D14 00001110 0E15 00001111 0F16 00010000 1017 00010001 11… … …255 11111111 FF

Page 5: Introducere în programarea Capitolul 1 calculatoarelor · neprocedurale - ele se bazează pe reguli şi sunt mai apropiate de limbajul şi modul de ra Ńionare natural (limbajele

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

OperaOpera ŃŃii binareii binare

�� OperaOperaŃŃiile specifice cu numere reprezentate iile specifice cu numere reprezentate îîn binar sunt:n binar sunt:–– SAU (OR),SAU (OR),

–– SI (AND), SI (AND),

–– SAU EXCLUSIV (XOR) SAU EXCLUSIV (XOR) şşi i

–– deplasări la stânga deplasări la stânga şşi dreapta (i dreapta (shiftshift).).

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

SAU SAU ExclusivExclusiv

15+15+2626------------

4141

01+01+0101--------1010

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

OperaOpera ŃŃii binareii binare

X Y SAU SI SAUEXCLUSIV

0 0 0 0 00 1 1 0 11 0 1 0 11 1 1 1 0

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

OperaOpera ŃŃii binareii binare

�� O deplasare O deplasare la stângala stânga cu o pozicu o poziŃŃie, ie, îîntrntr--un un număr reprezentat număr reprezentat îîn binar,n binar, este echivalentă este echivalentă unei unei îînmulnmul ŃŃiriiri cu doi cu doi. D. Deplasările cu mai multe eplasările cu mai multe pozipoziŃŃii la stânga sunt echivalente cu ii la stânga sunt echivalente cu îînmulnmulŃŃiri cu iri cu 2 l2 la puterea numărului de deplasăria puterea numărului de deplasări ..

�� Exemplu:Exemplu:0000 10110000 1011 este reprezentarea binară a numărului este reprezentarea binară a numărului

zecimal . Dazecimal . Dacă realizăm o deplasare cu două că realizăm o deplasare cu două pozipoziŃŃii la stânga obii la stânga obŃŃinem numărul binar inem numărul binar

0010 1100 0010 1100, a, adică dică îîn zecimal ( x 2n zecimal ( x 222).).

11

1144

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

OperaOpera ŃŃii binareii binare

�� O deplasare O deplasare la dreaptala dreapta cu o pozicu o poziŃŃie, ie, îîntrntr--un un număr reprezentat număr reprezentat îîn binar,n binar, este echivalentă este echivalentă unei unei îîmpărmpăr ŃŃiriiri cu doi cu doi. D. Deplasările cu mai multe eplasările cu mai multe pozipoziŃŃii la dreapta sunt echivalente cu ii la dreapta sunt echivalente cu îîmpărmpărŃŃiri iri cu 2 cu 2 la puterea numărului de deplasărila puterea numărului de deplasări ..

�� Exemplu:Exemplu:0011 11000011 1100 este reprezentarea binară a numărului este reprezentarea binară a numărului

zecimal . Dazecimal . Dacă realizăm o deplasare cu două că realizăm o deplasare cu două pozipoziŃŃii la dreapta obii la dreapta obŃŃinem numărul binar inem numărul binar

0000 1111 0000 1111, a, adică dică îîn zecimal ( n zecimal ( // 2222).).

60

15 60

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Coduri de reprezentare a Coduri de reprezentare a datelordatelor

�� Având Având îîn vedere că utilizatorii operează n vedere că utilizatorii operează îîn n sistemul zecimal, iar casistemul zecimal, iar calculatorul lucrează lculatorul lucrează îîn sistem binar,n sistem binar, este necesar un sistem de este necesar un sistem de

conversie care să facă posibilă comunicarea conversie care să facă posibilă comunicarea facilă facilă îîntre utilizator ntre utilizator şşi calculator.i calculator. Acest Acest

lucru se realizează prin utilizarea lucru se realizează prin utilizarea codurilor codurilor numerice numerice şşi alfa numerice.i alfa numerice.

Page 6: Introducere în programarea Capitolul 1 calculatoarelor · neprocedurale - ele se bazează pe reguli şi sunt mai apropiate de limbajul şi modul de ra Ńionare natural (limbajele

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Codurile numericeCodurile numerice�� sunt codurile prin care pot fi sunt codurile prin care pot fi

reprezentate cele 10 cifre alereprezentate cele 10 cifre ale sistemului zecimal cu sau fără sistemului zecimal cu sau fără semnul asociat, utilizând o semnul asociat, utilizând o tetradătetradă binarăbinară. Acestea au fost specifice . Acestea au fost specifice calculatoarelor care prelucrau date calculatoarelor care prelucrau date numerice. numerice.

�� Două tipuri de coduri numerice mai Două tipuri de coduri numerice mai cunoscute sunt: BCD (cunoscute sunt: BCD (BinaryBinary CodedCodedDecimal) Decimal) şşi i codurile numerice codurile numerice detectoare de eroridetectoare de erori prin metoda prin metoda controlului de paritate sau imparitate controlului de paritate sau imparitate ((îîn transmisia datelor).n transmisia datelor).

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Codurile alfanumericeCodurile alfanumerice

�� sunt utile pentru reprezentarea caracterelor: sunt utile pentru reprezentarea caracterelor: cifre, litere, semne de punctuacifre, litere, semne de punctuaŃŃie, semne ie, semne speciale. speciale.

�� Coduri alfanumerice sunt: Coduri alfanumerice sunt: –– ASCII extins, ASCII ASCII extins, ASCII -- American Standard American Standard

Code for Code for InformationInformation InterchangeInterchange..–– UnicodeUnicode –– folosefoloseşşte modele pe 16 bite modele pe 16 biŃŃi i

pentru reprezentarea fiecărui simbol pentru reprezentarea fiecărui simbol (65 (65 536 536 şşabloane diferite)abloane diferite)

–– ISO ISO –– pe 32 de bipe 32 de biŃŃi (17 x 10i (17 x 1066 simboluri)simboluri)

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Codurile alfanumericeCodurile alfanumerice�� Codul ASCII extins poate reprezenta 256 Codul ASCII extins poate reprezenta 256

caractere. caractere.

�� LL itereleiterele mari sunt cuprinse mari sunt cuprinse îîntre 65 (Alt ntre 65 (Alt 65 pe tastatura calculatorului va 65 pe tastatura calculatorului va determina afidetermina afişşarea literei A) area literei A) şşi 90 (codul i 90 (codul pentru litera Z). pentru litera Z).

�� Literele mici au codurile cuprinse Literele mici au codurile cuprinse îîntre 95 ntre 95 şşi 122. i 122.

�� Cifrele de la 0 la 9 au codurile Cifrele de la 0 la 9 au codurile îîntre 48 ntre 48 şşi i 57. 57.

�� Dintre semne speciale, de exemplu, & are Dintre semne speciale, de exemplu, & are codul 38. codul 38.

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

1.3. Structura 1.3. Structura şşi i funcfunc ŃŃionarea unui calculatorionarea unui calculator

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

ObiectivObiectiv

�� ÎÎnnŃŃelegerea elegerea îîntrntr--un anumit grad a un anumit grad a tehnologiilor existente care să vă tehnologiilor existente care să vă permităpermită–– să descrie să descrieŃŃi stadiul actual i stadiul actual şşi posibilele i posibilele

direcdirecŃŃii ii îîn care vor evolua acestea;n care vor evolua acestea;–– să apreciasă apreciaŃŃi gradul de influeni gradul de influenŃŃă pe care ă pe care îîl l

au acestea pentru dezvoltarea altor au acestea pentru dezvoltarea altor domenii;domenii;

–– să abordasă abordaŃŃi arhitectura calculatoarelor la i arhitectura calculatoarelor la nivel general, algoritmic nivel general, algoritmic –– fără limitare fără limitare tehnicătehnică..

Page 7: Introducere în programarea Capitolul 1 calculatoarelor · neprocedurale - ele se bazează pe reguli şi sunt mai apropiate de limbajul şi modul de ra Ńionare natural (limbajele

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

CalculatorulCalculatorul�� Calculatorul (de uz general) este un Calculatorul (de uz general) este un

echipament de calcul universal, prin echipament de calcul universal, prin aceea căaceea că, având la dispozi, având la dispoziŃŃie ie suficient suficient timp timp şşi memoriei memorie poate calcula orice poate calcula orice funcfuncŃŃie care este calculabilăie care este calculabilă..

�� Un model de calcul (o maUn model de calcul (o maşşină ină TuringTuring) ) ––definedefineşşte clasa functe clasa funcŃŃiilor calculabile.iilor calculabile.

�� TuringTuring ((matematicianmatematician britanicbritanic)): : ““AnythingAnythingthatthat cancan actuallyactually bebe computedcomputed isis((TuringTuring) ) computablecomputable””. .

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

CalculatorulCalculatorul

�� ChurchChurch --Turing Thesis:Turing Thesis: Whenever there is Whenever there is an effective method (algorithm) for obtaining an effective method (algorithm) for obtaining the values of a mathematical function, the the values of a mathematical function, the function can be computed by a TM.function can be computed by a TM.

�� Strong ChurchStrong Church --Turing Thesis:Turing Thesis: A TM can do A TM can do (compute) anything that a computer can do. (compute) anything that a computer can do.

�� Stanford Encyclopedia of Philosophy:Stanford Encyclopedia of Philosophy:http://plato.stanford.edu/entries/churchhttp://plato.stanford.edu/entries/church--turingturing//

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

CalculatorulCalculatorul

�� 1936 1936 -- OnOn ComputableComputable NumbersNumbers–– lucrare lucrare îîn care descrie un n care descrie un dispozitiv ipotetic, o madispozitiv ipotetic, o maşşină ină TuringTuring,, care a precedat care a precedat calculatoarele. calculatoarele.

�� MaMaşşina ina TuringTuring a fost proiectată a fost proiectată pentru a lucra cu operapentru a lucra cu operaŃŃii logice ii logice şşi i putea citi, scrie sau putea citi, scrie sau şşterge terge simboluri scrise simboluri scrise îîn pătrate pe o n pătrate pe o bandă de hârtie infinităbandă de hârtie infinită. .

�� Acest tip de maAcest tip de maşşină a fost apoi ină a fost apoi cunoscut sub denumirea de cunoscut sub denumirea de mamaşşină cu stări finite deoarece la ină cu stări finite deoarece la fiecare pas al procesului de calcul fiecare pas al procesului de calcul acacŃŃiunea viitoare a maiunea viitoare a maşşinii era inii era potrivită cu cea existentă potrivită cu cea existentă îîntrntr--o o listă de instruclistă de instrucŃŃiuni care coniuni care conŃŃine ine stările posibilestările posibile. .

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

CalculatorulCalculatorul

�� Universal Universal (exis(există o mată o maşşină universală care ină universală care poate simula orice mapoate simula orice maşşină ină TuringTuring))

�� ProgramabilProgramabil (concept descoperit cu aprox. 10 (concept descoperit cu aprox. 10 ani ani îînainte de implementare) nainte de implementare) –– consecinconsecinŃŃa:a: din din punctul de vedere al funcpunctul de vedere al funcŃŃionalităionalităŃŃii unui ii unui calculator (ce poate calculator (ce poate să facăsă facă), fiind vorba de ), fiind vorba de timp timp şşi memorie, toate calculatoarele sunt i memorie, toate calculatoarele sunt egaleegale……

�� …… din pdin punctulunctul de de vederevedere al calculabilităal calculabilităŃŃii un calculator ii un calculator mare mare şşi scump nu este diferit de un calculator mic i scump nu este diferit de un calculator mic şşi i ieftin (ieftin (îîn acest caz nu se pune problema performann acest caz nu se pune problema performanŃŃei).ei).

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Termenul desemnează componentele mecanice şi electronice ale unui calculator (inclusiv echipamentele periferice).

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

HardwareHardware

�� Structura hardware a unui calculator Structura hardware a unui calculator conconŃŃine:ine:

�� microprocesorul microprocesorul –– dispozitiv de comandă dispozitiv de comandă;;

�� memoria (intermemoria (internă nă şşi externăi externă););

�� echipamente periferice (PI echipamente periferice (PI –– periferice de periferice de intrare, PE intrare, PE –– periferice de ieperiferice de ieşşire).ire).

Page 8: Introducere în programarea Capitolul 1 calculatoarelor · neprocedurale - ele se bazează pe reguli şi sunt mai apropiate de limbajul şi modul de ra Ńionare natural (limbajele

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

ProgramareaProgramarea calculatoarelorcalculatoarelor 20092009LLăcrămioaraăcrămioara STOICUSTOICU--TIVADARTIVADAR

MEMORIE

UNITATELOGICA-ARITMETICA

UNITATE DE CONTROL

DE INTRARE

DE IESIRE

TRANSFER DE DATE

CONTROL

PERIFERICEPERIFERICE

magistrale

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

ArhitecturaArhitectura ““ von Neumannvon Neumann ””

�� John von Neumann John von Neumann

�� A A preciprecizzat at pentrupentru prima prima datdată ce este ă ce este necesar pentru a construi un calculator necesar pentru a construi un calculator electronicelectronic

�� 1946 1946 –– JvNJvN, Arthur W. Burks, Arthur W. Burks şşiiHermann H. Hermann H. GoldstineGoldstine: : "Preliminary "Preliminary Discussion of the Logical Design of an Discussion of the Logical Design of an Electronic Computing InstrumentElectronic Computing Instrument““..

Introducere Introducere îîn pn programarearogramarea calculatoarelorcalculatoarelor 20120122LLăcrămioaraăcrămioara STOICUSTOICU--TIVADARTIVADAR

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Arhitectura Arhitectura ““ vonvon NeumannNeumann ””

�� 4 componente aflate 4 componente aflate îîn legătură n legătură –– cu operacu operaŃŃiile aritmetice (UALiile aritmetice (UAL), ),

–– memoria (M), memoria (M),

–– controlul (UC), controlul (UC),

–– legătura cu operatorul uman legătura cu operatorul uman (int(intrărirări/ie/ieşşiri).iri).

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Arhitectura Arhitectura ““ vonvon NeumannNeumann ””

�� Mark I (1949Mark I (1949--50) 50) -- proiectat proiectat şşi construit lai construit laManchester University Manchester University –– A rulat primul program A rulat primul program îîn n 1948, 1948,

–– Memorie de Memorie de 96 96 cuvinte; o instruccuvinte; o instrucŃŃiune a fost iune a fost executată executată îînn 1.2 ms1.2 ms;; îîn n "MIPS" "MIPS" ((millions of millions of instructions per second)instructions per second) -- 00.00083 MIPS.00083 MIPS; ; îîn n prezent:prezent: 1000 MIPS. 1000 MIPS.

�� 1947, 1947, EDVAC (EDVAC (electronic discrete variable electronic discrete variable automatic computer)automatic computer) –– 1952, UNIVAC1952, UNIVAC

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

MarkMark II

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Niveluri de abstractizareNiveluri de abstractizare

Circuit electronic

Comportament dorit

Page 9: Introducere în programarea Capitolul 1 calculatoarelor · neprocedurale - ele se bazează pe reguli şi sunt mai apropiate de limbajul şi modul de ra Ńionare natural (limbajele

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Dispozitiv electronicDispozitiv electronic

�� Tranzistor (1948)Tranzistor (1948)

http://www.coltecnica.com/images/transistor.jpg

http://cds130.org/Transistors

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Circuite logiceCircuite logice

�� PorPorŃŃi logice i logice –– dispozitive care produc rezultatul unei operadispozitive care produc rezultatul unei operaŃŃii logice (ii logice (andand, , oror……))

�� Circuite basculante bistabile Circuite basculante bistabile

((flipflip--flopflop) ) –– circuite care au la circuite care au la

ieieşşire una din cele două valori ire una din cele două valori

fizice posibile (0 sau 1). Iefizice posibile (0 sau 1). Ieşşirea irea

rămâne stabilă până când un rămâne stabilă până când un

impuls de la alt circuit are ca impuls de la alt circuit are ca

efect comutarea lui la cealaltă efect comutarea lui la cealaltă

valoare valoare –– stochează un bit stochează un bit

�� Chip Chip –– conconţţine milioane de ine milioane de cbbcbb

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Structuri logiceStructuri logice�� Nu permit memorarea informaNu permit memorarea informaŃŃiei iei ––

porporŃŃile logice ile logice –– elemente decizionale elemente decizionale (decid, dar nu (decid, dar nu ““ŃŃin mintein minte””))

�� Permit memorarea informaPermit memorarea informaŃŃiei iei -- latchlatch

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

TehnologieTehnologie

�� CbbCbb fiind electronice pot fi acfiind electronice pot fi acŃŃionate mai rapid ionate mai rapid decât cele pe suport magnetic sau optic. De decât cele pe suport magnetic sau optic. De aceea sunt folosite pentru construcaceea sunt folosite pentru construcŃŃia ia componentelor interne ale calculatorului.componentelor interne ale calculatorului.

�� Cele pe suport magnetic sau care folosesc Cele pe suport magnetic sau care folosesc laser sunt folosite pentru componente externe laser sunt folosite pentru componente externe deoarece chiar dacă sunt mai lente au deoarece chiar dacă sunt mai lente au avantajul că păstrează informaavantajul că păstrează informaŃŃia ia şşi după i după oprirea sursei de curent.oprirea sursei de curent.

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

Transcriptori

Page 10: Introducere în programarea Capitolul 1 calculatoarelor · neprocedurale - ele se bazează pe reguli şi sunt mai apropiate de limbajul şi modul de ra Ńionare natural (limbajele

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

PProcesorulrocesorul

�� este "creeste "creierul" calcierul" calculatorului.ulatorului.

�� controlează controlează şşi comandă toate operai comandă toate operaŃŃiile din iile din calculator:calculator:–– Extrage din memoria internă a calculatorului Extrage din memoria internă a calculatorului, rând pe , rând pe

rând instrucrând instrucŃŃiunile programelor, le diunile programelor, le decodifică ecodifică şşi i transmite comenzi pentru executarea lor.transmite comenzi pentru executarea lor.

�� Microprocesorul are două componente principaleMicroprocesorul are două componente principale: : –– unitatea de comandă unitatea de comandă (UC) (UC) şşii

–– unitatea aritmetică unitatea aritmetică şşi logică i logică (UAL). (UAL).

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

PProcesorulrocesorul

�� Unitatea de comandă controlează funcUnitatea de comandă controlează funcŃŃionarea ionarea tuturor componentelor calculatorului.tuturor componentelor calculatorului.

�� Unitatea aritmetică Unitatea aritmetică şşi logică realizează operai logică realizează operaŃŃiile iile aritmetice aritmetice şşi deciziile logice.i deciziile logice.

�� Parametrii care caracterizează unitatea de Parametrii care caracterizează unitatea de comandă suntcomandă sunt: n: numărul de instrucumărul de instrucŃŃiuni, lungimea iuni, lungimea unei instrucunei instrucŃŃiuni iuni şşi viteza de execui viteza de execuŃŃie.ie.

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

PProcesorulrocesorul

�� Pentru stocarea temporară a datelor cu care Pentru stocarea temporară a datelor cu care lucrează UC are registre lucrează UC are registre ((regiregişştritri ) ) –– necesare pentru realizarea imediată a unor necesare pentru realizarea imediată a unor operaoperaŃŃiiii–– Memoria internă Memoria internă –– stocarea datelor necesare pe stocarea datelor necesare pe

termen scurttermen scurt

–– Memoria externă Memoria externă –– stocare pe termen lungstocare pe termen lung

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

PProcesorulrocesorul

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

PProcesorulrocesorul

�� InstrucInstrucŃŃiunile la nivelul UC iunile la nivelul UC şşi UAL (scriere, citire, i UAL (scriere, citire, operaoperaŃŃii logice) sunt instrucii logice) sunt instrucŃŃiuni iuni îîn codn cod--mamaşşinăină..

�� Un program este o secvenUn program este o secvenŃŃă de astfel de ă de astfel de instrucinstrucŃŃiuni stocate iuni stocate îîn memoria internăn memoria internă

�� InstrucInstrucŃŃiunile iunile îîn cod man cod maşşină ină şşi sistemul de i sistemul de codificare constituie codificare constituie limbajul malimbajul ma şşinăină care care definedefineşşte modul te modul îîn care comunicăm calculatorului n care comunicăm calculatorului algoritmii pe care va trebui să algoritmii pe care va trebui să îîi execute.i execute.

�� Limbajul pe care Limbajul pe care îîl acceptă microprocesorul l acceptă microprocesorul --limbaj de asamblarelimbaj de asamblare

Introducere Introducere îîn pn programarea calculatoarelorrogramarea calculatoarelor 20120133LLăcrămioara STOICUăcrămioara STOICU--TIVADARTIVADAR

ProcesorulProcesorul


Recommended