Documente Academic
Documente Profesional
Documente Cultură
2
2010-2011 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011
Cuprins
3 4
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 1/35 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 2/35
Procesorul: UC + UP
Sistem de calcul = echipament electronic destinat
CPU – Central Processing Unit
prelucrărilor complexe ale informaŃiei.
1
Memoria: internă + externă. Memoria.
• Memoria internă = o colecŃie de
celule de memorare organizată ca o > Organizarea datelor:
secvenŃă de cuvinte (word) binare (numere). în general cuvinte pe 8 biŃi = octet sau byte.
Un bit = 0 sau 1, un cuvânt = 8 biŃi, ex.: 00000001, 10101010 > Prefixele folosite pentru a desemna capacitatea memoriei:
1 byte = 8 biŃi
> Memoria este organizată matricial, fiecare locaŃie este 1 kilo-byte (kB) = 1024 bytes = 210 bytes
identificată cu un număr de ordine numit şi adresă. 1 mega-byte (MB) = 1024 kB = 220 bytes
1 giga-byte (GB) = 1024 MB = 230 bytes
> Din punct de vedere funcŃional (nu fizic) memoria este de
1 terra-byte (TB) = 1024 GB = 240 bytes etc.
două tipuri:
- memorie de date: conŃine operanzi, rezultate şi rezultate parŃiale, > AtenŃie: 1Mb ≠ 1MB. De regulă capacitatea de transfer a
- memorie de program: conŃine instrucŃiunile (comenzile) reŃelelor este exprimată în Mb (mega-biŃi):
care asigură prelucrarea corespunzătoare a datelor. 1Mb = 220 biŃi, 1MB = 220 bytes = 220x8 biŃi
7 8
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 5/35 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 6/35
Memoria. Memoria.
> Din punct de vedere fizic, memoria • Memoria externă = un suport
internă este de două tipuri: extern de stocare a informaŃiei. De
- ROM – Read Only Memory: este o memorie permanentă. regulă este folosită pentru a păstra cantităŃi mari de informaŃie.
ConŃinutul acesteia rămâne intact chiar în lipsa alimentării Exemple:
cu curent. Nu poate fi scrisă de programe. - FD (floppy disk drive): 3½-inch, 1.44MB
- RAM – Random Access Memory: este o memorie volatilă al - CD-ROM (compact disk - read only memory): <700MB
cărei conŃinut se pierde în momentul în care se opreşte - HD (hard disk drive): ~500GB
alimentarea acesteia cu curent. Este o memorie de lucru. - FD (flash drive): <256GB, etc.
11 12
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 9/35 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 10/35
2
Magistrala de date (BUS). Unitatea de prelucrare (UP):
conŃine circuite logico-aritmetice
şi registre de memorie.
> Circuitele de legătură dintre unitatea centrală de prelucrare, > Registrele sunt tot locaŃii de memorie ce sunt interconectate
memoria internă şi dispozitivele periferice formează “strâns” cu circuitele logico-aritmetice (de regulă pe acelaşi
magistrala de date (BUS). integrat pentru a fi accesate rapid).
operaŃie de executat
1.2. Hardware - Software
cod binar (instrucŃiune)
decodificare de către UC (recunoaştere)
declanşare secvenŃă tipică de semnale de control
se execută operaŃia dorită
17 18
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 15/35 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 16/35
3
hardware = ansamblul structurii fizice a sistemului de calcul.
După cum am menŃionat, pentru execuŃia unei anumite sarcini
(job) sistemul de calcul are nevoie de o succesiune de
instrucŃiuni (coduri binare)
declanşează o secvenŃă de operaŃii elementare efectuate
de blocurile constituente.
program = secvenŃă de instrucŃiuni ce sunt recunoscute Ex. PC clasic Ex. DSP – Digital Signal Processor
de sistemul de calcul şi pot fi executate de acesta. software = mulŃimea programelor necesare sistemului de
sunt organizate logic şi coerent după un anumit algoritm. calcul pentru a îndeplini o serie de sarcini.
algoritm = un procedeu (inteligent) de combinare a unor operaŃii Exemple: sisteme de operare (Windows, Linux), procesoare
standard în scopul realizării unei anumite prelucrări mai de text (Word, WinEdt), medii de dezvoltare (Borland Builder,
complexe a informaŃiei. Matlab), antiviruşi, prelucrare de imagini, etc.
19 20
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 17/35 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 18/35
21 22
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 19/35 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 20/35
23 24
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 21/35 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 22/35
4
Datele – obiectele programelor Datele – obiectele programelor (continuare)
- date elementare: a căror structură nu poate fi modificată de > Datele sunt desemnate în cadrul programelor prin intermediul
către utilizator. variabilelor şi a constantelor (caz particular de variabilă).
> Acestea sunt de mai multe tipuri: numerice (întregi, reale), variabila = fizic reprezintă o zonă de memorie ce găzduieşte
logice (booleene 0 sau 1), alfanumerice (caractere, text). anumite date.
- date structurate: date complexe (grupuri de date elementare), - variabilele sunt desemnate prin nume simbolice denumite
ce poartă informaŃie atât prin valoare cât şi prin structură. şi identificatori.
> Acestea sunt de mai multe tipuri: tablouri, structuri, clase. - variabilele sunt de un anumit tip ce indică tipul valorilor
conŃinute de aceastea precum şi structura acestora (simplă,
1 / 9 1 / 9 1 / 9 Nume (alfanumeric) tablou, structură de date, etc.)
1 / 9 1 / 9 1 / 9 structură Vârstă (întreg)
“persoana” Greutate (real) Exemplu: int x; identificator=“x”, tip de date=întregi (int);
1 / 9 1 / 9 1 / 9 …
la o anumită adresă se va aloca spaŃiu pentru valorile lui x.
25 26
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 23/35 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 24/35
5
Limbaje de programare – scurt istoric (continuare) Limbaje de programare – scurt istoric (continuare)
1958 ALGOL: folosire restricŃionată (limbaj sub licenŃa), 1970 Pascal (Niklaus Wirth) dezvoltat în scopul predării
concurenŃă FORTRAN. programării structurate şi modulare.
1960 COBOL destinat aplicaŃiilor de gestiune, sintaxa cât mai Preia punctele forte ale limbajelor COBOL, FORTRAN şi ALGOL
apropiată de limba engleză. limbaj “elegant”, simplu, înlocuieşte BASIC ca limbaj
ADD YEARS TO AGE age = age + years
de iniŃiere.
program Hello(output);
1963 BASIC (Beginner's All-purpose Symbolic Instruction Code), var
în principal cu scop educativ. a:string;
> În ciuda diversităŃii reduse de instrucŃiuni devine foarte popular begin
datorită uşurinŃei utilizării acestuia. write(‘introduceti numele: ');
readln(a);
> Programe nestructurate mentenanŃă dificilă. writeln('salut ', a);
end.
31 32
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 29/35 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 30/35
Limbaje de programare – scurt istoric (continuare) Limbaje de programare – scurt istoric (continuare)
1970 C (Dennis Ritchie, laboratoarele Bell) dezvoltat în scopul 1980-1990 limbaje interpretate sau semi-interpretate motivate
programării sistemului de operare UNIX. de dezvoltarea Web (dezvoltare de pagini Web dinamice,
aplicaŃii client-server, etc.)
> Limbaj de programare “puternic”. Datorită folosirii pointerilor
permite apropierea de limbajul maşină precum şi accesul la Exemple: Perl (Larry Wall, 1987), Tcl (John Ousterhout, 1988),
dispozitivele hardware ale sistemului, rămânând totuşi un Python (Guido van Rossum, 1990), PHP şi Java (Sun
limbaj de programare de nivel înalt. Microsystems, 1996) …
1980 Smalltalk-80 (iniŃial Alan Kay 1969, ulterior Xerox) motivat 1995 Common-LISP: primul limbaj orientat obiect standardizat
de necesitatea de programe tot mai complexe; propune o nouă de ANSI - American National Standards Institute.
direcŃie de programare = programarea orientată pe obiecte.
2000 C# (Microsoft): permite folosirea simultană a mai multe
1985 C++ (laboratoarele Bell) extensie obiect orientată a tipuri de programare (multi-paradigm).
limbajului C, instrucŃiuni noi, programare mai eficientă, viteză de
…
lucru crescută.
33 34
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 31/35 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 32/35
• Programare imperativă: în care calcul înseamnă o secvenŃă • Programare logică: în care calcul înseamnă o serie de
de comenzi (FORTRAN, C, Pascal). declaraŃii logice (Prolog).
Exemplu: citeşte X, citeşte Y, calculează X*Y, pune rezultatul Exemplu: Cezar este om, ToŃi oamenii sunt muritori.
în variabila Z. Cezar este muritor.
• Programare funcŃională: în care calcul înseamnă evaluarea • Programare concurentă: în care calculul este divizat în mai
unor funcŃii în sensul matematic (Lisp, Phyton). Programele sunt multe sarcini ce apoi sunt executate în paralel.
grupuri de funcŃii (sub-programe).
Notă: Un anumit limbaj de programare poate oferi mai multe
• Programare obiect orientată: definirea de obiecte care moduri de programare, acestea nu sunt exclusive.
interacŃionează între acestea prin intermediul mesajelor
(C++, Java). Exemplu: C++, programare functională, obiect orientată,
concurentă, etc.
35 36
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 33/35 Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 34/35
6
Sfârşitul Cursului 1
37
Curs Programarea Calculatoarelor, Ş.l. Bogdan IONESCU, 2010-2011 35/35