Documente Academic
Documente Profesional
Documente Cultură
Programare Calc.
Programare Calc.
2
2016-2017 Curs Programarea Calculatoarelor, Prof. Bogdan IONESCU, 2016-2017
Cuprins
3 4
Curs Programarea Calculatoarelor, Prof. Bogdan IONESCU, 2016-2017 1/35 Curs Programarea Calculatoarelor, Prof. Bogdan IONESCU, 2016-2017 2/35
Procesorul: UC + UP
Sistem de calcul = echipament electronic destinat
CPU – Central Processing Unit
prelucrărilor complexe ale informaţiei.
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ă matriceal, 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, Prof. Bogdan IONESCU, 2016-2017 5/35 Curs Programarea Calculatoarelor, Prof. Bogdan IONESCU, 2016-2017 6/35
Memoria. Memoria.
11 12
Curs Programarea Calculatoarelor, Prof. Bogdan IONESCU, 2016-2017 9/35 Curs Programarea Calculatoarelor, Prof. Bogdan IONESCU, 2016-2017 10/35
Magistrala de date (BUS). Unitatea de prelucrare (UP):
conţine circuite logico-aritmetice
şi registre de memorie.
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, Prof. Bogdan IONESCU, 2016-2017 15/35 Curs Programarea Calculatoarelor, Prof. Bogdan IONESCU, 2016-2017 16/35
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, Prof. Bogdan IONESCU, 2016-2017 17/35 Curs Programarea Calculatoarelor, Prof. Bogdan IONESCU, 2016-2017 18/35
21 22
Curs Programarea Calculatoarelor, Prof. Bogdan IONESCU, 2016-2017 19/35 Curs Programarea Calculatoarelor, Prof. Bogdan IONESCU, 2016-2017 20/35
23 24
Curs Programarea Calculatoarelor, Prof. Bogdan IONESCU, 2016-2017 21/35 Curs Programarea Calculatoarelor, Prof. Bogdan IONESCU, 2016-2017 22/35
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: 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, Prof. Bogdan IONESCU, 2016-2017 23/35 Curs Programarea Calculatoarelor, Prof. Bogdan IONESCU, 2016-2017 24/35
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, Prof. Bogdan IONESCU, 2016-2017 29/35 Curs Programarea Calculatoarelor, Prof. Bogdan IONESCU, 2016-2017 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, Prof. Bogdan IONESCU, 2016-2017 31/35 Curs Programarea Calculatoarelor, Prof. Bogdan IONESCU, 2016-2017 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, Prof. Bogdan IONESCU, 2016-2017 33/35 Curs Programarea Calculatoarelor, Prof. Bogdan IONESCU, 2016-2017 34/35
Sfârşitul Cursului 1
37
Curs Programarea Calculatoarelor, Prof. Bogdan IONESCU, 2016-2017 35/35