Programare Orientata pe Obiecte

Curs
9/10 (4 voturi)
Domeniu: Calculatoare
Conține 12 fișiere: pdf
Pagini : 174 în total
Cuvinte : 62520
Mărime: 3.08MB (arhivat)
Cost: Gratis

Extras din document

Cap. 1

Paradigme de programare şi metode de proiectare a programelor

Noţiunea de paradigmă se bazează pe un cuvânt ce provine din limbile latină şi greacă şi care

reprezintă un exemplu sau un model. Sensul uzual al noţiunii este dat de istoricul Thomas Kuhn în

cartea sa “The Structure of Scientific Revolutions”: o paradigmă este o mulţime de teorii, standarde şi

metode ce reprezintă o modalitate de organizare a cunoştinţelor.

Bazat pe această noţiune, Robert Floyd în articolul intitulat “The Paradigms of Programming”,

defineşte noţiunea de paradigmă de programare ca fiind o metodă de conceptualizare a modului de

execuţie a calculelor într-un calculator, precum şi a modului de structurare şi organizare a taskurilor

reponsabile cu execuţia calculelor. O noţiune des utilizată în locul celei de paradigmă de programare

este cea de stil de programare, deşi semnificaţia sa nu este foarte clar definită.

Despre un limbaj de programare se spune că oferă suport pentru o paradigmă de programare, dacă

acesta pune la dispoziţie facilităţi care îl fac convenabil de a fi utilizat în acest stil.

1.1. Programarea procedurală

Aceasta este una dintre cele mai vechi şi des utilizate paradigme. Ea presupune în mod uzual

parcurgerea următoarelor etape:

a) descompunerea problemei de rezolvat în subprobleme;

b) găsirea, pentru fiecare subproblemă, a unui algoritm optim de rezolvare;

c) implementarea fiecărui algoritm folosind funcţii sau proceduri ale unui anumit limbaj de

programare.

Cel mai vechi limbaj de programare procedural este FORTRAN, însă majoritatea limbajelor de

programare actuale oferă suport pentru această paradigmă. Principalele probleme legate de

programarea procedurală se referă la tipurile de funcţii folosite (funcţii, proceduri, subprograme,

rutine, macrouri etc.), la tipul şi modul de transmitere ale parametrilor funcţiilor şi la modurile de apel

al funcţiilor.

1.2. Încapsularea datelor (modularizarea)

De-a lungul timpului, accentul în programarea procedurală s-a deplasat de la proiectarea funcţiilor la

organizarea datelor. Datele nu mai sunt privite în mod disparat, ci împreună cu funcţiile care le

prelucrează. A fost definită astfel noţiunea de modul ca reprezentând un set de funcţii înrudite,

împreună cu datele pe care le prelucrează.

Se poate astfel împărţi un program în module componente, într-un mod mai clar şi mai eficient decât

împărţirea clasică în funcţii sau proceduri, aici, datele programului fiind încapsulate (ascuse) în

modulele ce le utilizează.

În mod uzual, un modul conţine o parte de interfaţă în care sunt declarate datele şi funcţiile accesibile

din afara modulului, precum şi o parte de implementare, proprie modulului şi inaccesibilă în exterior,

în cadrul căreia sunt definite funcţiile ce manipulează datele din cadrul modulului.

Limbajul C permite programarea modulară, pe când limbajul Pascal sau Modula-2 oferă suport real

pentru un astfel de stil de programare. În limbajul Turbo Pascal noţiunea de modul corespunde celei de

unit, părţile de interfaţă şi implementare corespunzând respectiv secţiunilor interface şi

implementation.

În cazul limbajului C, partea de interfaţă se specifică, în mod uzual, într-un fişier header, care trebuie

inclus în toate celelalte fişiere ale unui program care utilizează funcţiile modulului. Partea de

implementare a modulului este realizată într-un fişier distinct care trebuie inclus în proiectul

programului.

Exemplul 1.1. Definirea şi utilizarea unui modul pentru operaţii cu numere întregi:

- Fisierul sir.h - interfata modulului

- define dim_max 100

void Initializare();

int Suma();

void Sortare();

void AdaugaElement(int);

void Listare();

- Fisierul sir.c - implementarea modulului

- include "sir.h”

static int dim;

static int v[dim_dim];

void Initializare() { dim = 0; }

void AdaugaElement(int k) { v[dim++] = k; }

int Suma() {

- codul pentru calculul sumei elementelor sirului

void Sortare() {

- codul pentru sortarea elementelor sirului

void Listare() {

- codul pentru listarea elementelor sirului

- Fisierul pr.c - utilizarea modulului sir

- include "sir.h”

void main() {

int i, s, k, n = dim_dim;

Initializare();

for(i=0; i<n; i++) {

scanf("%d”, &k);

AdaugaElement(k);

s = Suma();

printf("nSuma = %d”, s);

Sortare();

Listare();

1.3. Abstractizarea datelor

Noţiunea de abstractizare a datelor presupune posibilitatea definirii unor tipuri de date utilizator,

împreună cu un set de operaţii aferente fiecărui tip. Limbajele ce oferă suport pentru încapsularea

datelor permit şi abstractizarea, dar, în general, nu o garantează. De exemplu, în C, fişierele antet

permit declararea împreună atât a tipurilor de date, cât şi a funcţiilor.

Un tip de date abstract (ADT – Abstract Data Type) este definit printr-o mulţime de operaţii ce se pot

efectua asupra elementelor sale (acestă mulţime formează interfaţa tipului de date şi reprezintă

singurul mod de acces la tipul de date respectiv), precum şi printr-o mulţime de axiome şi precondiţii,

proprii tipului de date (care reprezintă modul de descriere a proprietăţilor şi operaţiilor tipului).

Exemplul 1.2. Definirea în limbajul C a unui tip de date reprezentând numerele fracţionare:

- Fisierul fractie.h - interfata tipului fractie

typedef struct {

int p, q; - Numaratorul si numitorul fractiei

Preview document

Programare Orientata pe Obiecte - Pagina 1
Programare Orientata pe Obiecte - Pagina 2
Programare Orientata pe Obiecte - Pagina 3
Programare Orientata pe Obiecte - Pagina 4
Programare Orientata pe Obiecte - Pagina 5
Programare Orientata pe Obiecte - Pagina 6
Programare Orientata pe Obiecte - Pagina 7
Programare Orientata pe Obiecte - Pagina 8
Programare Orientata pe Obiecte - Pagina 9
Programare Orientata pe Obiecte - Pagina 10
Programare Orientata pe Obiecte - Pagina 11
Programare Orientata pe Obiecte - Pagina 12
Programare Orientata pe Obiecte - Pagina 13
Programare Orientata pe Obiecte - Pagina 14
Programare Orientata pe Obiecte - Pagina 15
Programare Orientata pe Obiecte - Pagina 16
Programare Orientata pe Obiecte - Pagina 17
Programare Orientata pe Obiecte - Pagina 18
Programare Orientata pe Obiecte - Pagina 19
Programare Orientata pe Obiecte - Pagina 20
Programare Orientata pe Obiecte - Pagina 21
Programare Orientata pe Obiecte - Pagina 22
Programare Orientata pe Obiecte - Pagina 23
Programare Orientata pe Obiecte - Pagina 24
Programare Orientata pe Obiecte - Pagina 25
Programare Orientata pe Obiecte - Pagina 26
Programare Orientata pe Obiecte - Pagina 27
Programare Orientata pe Obiecte - Pagina 28
Programare Orientata pe Obiecte - Pagina 29
Programare Orientata pe Obiecte - Pagina 30
Programare Orientata pe Obiecte - Pagina 31
Programare Orientata pe Obiecte - Pagina 32
Programare Orientata pe Obiecte - Pagina 33
Programare Orientata pe Obiecte - Pagina 34
Programare Orientata pe Obiecte - Pagina 35
Programare Orientata pe Obiecte - Pagina 36
Programare Orientata pe Obiecte - Pagina 37
Programare Orientata pe Obiecte - Pagina 38
Programare Orientata pe Obiecte - Pagina 39
Programare Orientata pe Obiecte - Pagina 40
Programare Orientata pe Obiecte - Pagina 41
Programare Orientata pe Obiecte - Pagina 42
Programare Orientata pe Obiecte - Pagina 43
Programare Orientata pe Obiecte - Pagina 44
Programare Orientata pe Obiecte - Pagina 45
Programare Orientata pe Obiecte - Pagina 46
Programare Orientata pe Obiecte - Pagina 47
Programare Orientata pe Obiecte - Pagina 48
Programare Orientata pe Obiecte - Pagina 49
Programare Orientata pe Obiecte - Pagina 50
Programare Orientata pe Obiecte - Pagina 51
Programare Orientata pe Obiecte - Pagina 52
Programare Orientata pe Obiecte - Pagina 53
Programare Orientata pe Obiecte - Pagina 54
Programare Orientata pe Obiecte - Pagina 55
Programare Orientata pe Obiecte - Pagina 56
Programare Orientata pe Obiecte - Pagina 57
Programare Orientata pe Obiecte - Pagina 58
Programare Orientata pe Obiecte - Pagina 59
Programare Orientata pe Obiecte - Pagina 60
Programare Orientata pe Obiecte - Pagina 61
Programare Orientata pe Obiecte - Pagina 62
Programare Orientata pe Obiecte - Pagina 63
Programare Orientata pe Obiecte - Pagina 64
Programare Orientata pe Obiecte - Pagina 65
Programare Orientata pe Obiecte - Pagina 66
Programare Orientata pe Obiecte - Pagina 67
Programare Orientata pe Obiecte - Pagina 68
Programare Orientata pe Obiecte - Pagina 69
Programare Orientata pe Obiecte - Pagina 70
Programare Orientata pe Obiecte - Pagina 71
Programare Orientata pe Obiecte - Pagina 72
Programare Orientata pe Obiecte - Pagina 73
Programare Orientata pe Obiecte - Pagina 74
Programare Orientata pe Obiecte - Pagina 75
Programare Orientata pe Obiecte - Pagina 76
Programare Orientata pe Obiecte - Pagina 77
Programare Orientata pe Obiecte - Pagina 78
Programare Orientata pe Obiecte - Pagina 79
Programare Orientata pe Obiecte - Pagina 80
Programare Orientata pe Obiecte - Pagina 81
Programare Orientata pe Obiecte - Pagina 82
Programare Orientata pe Obiecte - Pagina 83
Programare Orientata pe Obiecte - Pagina 84
Programare Orientata pe Obiecte - Pagina 85
Programare Orientata pe Obiecte - Pagina 86
Programare Orientata pe Obiecte - Pagina 87
Programare Orientata pe Obiecte - Pagina 88
Programare Orientata pe Obiecte - Pagina 89
Programare Orientata pe Obiecte - Pagina 90
Programare Orientata pe Obiecte - Pagina 91
Programare Orientata pe Obiecte - Pagina 92
Programare Orientata pe Obiecte - Pagina 93
Programare Orientata pe Obiecte - Pagina 94
Programare Orientata pe Obiecte - Pagina 95
Programare Orientata pe Obiecte - Pagina 96
Programare Orientata pe Obiecte - Pagina 97
Programare Orientata pe Obiecte - Pagina 98
Programare Orientata pe Obiecte - Pagina 99
Programare Orientata pe Obiecte - Pagina 100
Programare Orientata pe Obiecte - Pagina 101
Programare Orientata pe Obiecte - Pagina 102
Programare Orientata pe Obiecte - Pagina 103
Programare Orientata pe Obiecte - Pagina 104
Programare Orientata pe Obiecte - Pagina 105
Programare Orientata pe Obiecte - Pagina 106
Programare Orientata pe Obiecte - Pagina 107
Programare Orientata pe Obiecte - Pagina 108
Programare Orientata pe Obiecte - Pagina 109
Programare Orientata pe Obiecte - Pagina 110
Programare Orientata pe Obiecte - Pagina 111
Programare Orientata pe Obiecte - Pagina 112
Programare Orientata pe Obiecte - Pagina 113
Programare Orientata pe Obiecte - Pagina 114
Programare Orientata pe Obiecte - Pagina 115
Programare Orientata pe Obiecte - Pagina 116
Programare Orientata pe Obiecte - Pagina 117
Programare Orientata pe Obiecte - Pagina 118
Programare Orientata pe Obiecte - Pagina 119
Programare Orientata pe Obiecte - Pagina 120
Programare Orientata pe Obiecte - Pagina 121
Programare Orientata pe Obiecte - Pagina 122
Programare Orientata pe Obiecte - Pagina 123
Programare Orientata pe Obiecte - Pagina 124
Programare Orientata pe Obiecte - Pagina 125
Programare Orientata pe Obiecte - Pagina 126
Programare Orientata pe Obiecte - Pagina 127
Programare Orientata pe Obiecte - Pagina 128
Programare Orientata pe Obiecte - Pagina 129
Programare Orientata pe Obiecte - Pagina 130
Programare Orientata pe Obiecte - Pagina 131
Programare Orientata pe Obiecte - Pagina 132
Programare Orientata pe Obiecte - Pagina 133
Programare Orientata pe Obiecte - Pagina 134
Programare Orientata pe Obiecte - Pagina 135
Programare Orientata pe Obiecte - Pagina 136
Programare Orientata pe Obiecte - Pagina 137
Programare Orientata pe Obiecte - Pagina 138
Programare Orientata pe Obiecte - Pagina 139
Programare Orientata pe Obiecte - Pagina 140
Programare Orientata pe Obiecte - Pagina 141
Programare Orientata pe Obiecte - Pagina 142
Programare Orientata pe Obiecte - Pagina 143
Programare Orientata pe Obiecte - Pagina 144
Programare Orientata pe Obiecte - Pagina 145
Programare Orientata pe Obiecte - Pagina 146
Programare Orientata pe Obiecte - Pagina 147
Programare Orientata pe Obiecte - Pagina 148
Programare Orientata pe Obiecte - Pagina 149
Programare Orientata pe Obiecte - Pagina 150
Programare Orientata pe Obiecte - Pagina 151
Programare Orientata pe Obiecte - Pagina 152
Programare Orientata pe Obiecte - Pagina 153
Programare Orientata pe Obiecte - Pagina 154
Programare Orientata pe Obiecte - Pagina 155
Programare Orientata pe Obiecte - Pagina 156
Programare Orientata pe Obiecte - Pagina 157
Programare Orientata pe Obiecte - Pagina 158
Programare Orientata pe Obiecte - Pagina 159
Programare Orientata pe Obiecte - Pagina 160
Programare Orientata pe Obiecte - Pagina 161
Programare Orientata pe Obiecte - Pagina 162
Programare Orientata pe Obiecte - Pagina 163
Programare Orientata pe Obiecte - Pagina 164
Programare Orientata pe Obiecte - Pagina 165
Programare Orientata pe Obiecte - Pagina 166
Programare Orientata pe Obiecte - Pagina 167
Programare Orientata pe Obiecte - Pagina 168
Programare Orientata pe Obiecte - Pagina 169
Programare Orientata pe Obiecte - Pagina 170
Programare Orientata pe Obiecte - Pagina 171
Programare Orientata pe Obiecte - Pagina 172
Programare Orientata pe Obiecte - Pagina 173
Programare Orientata pe Obiecte - Pagina 174
Programare Orientata pe Obiecte - Pagina 175

Conținut arhivă zip

  • Programare Orientata pe Obiecte
    • Capitolul_1.pdf
    • Capitolul_10.pdf
    • Capitolul_11.pdf
    • Capitolul_12.pdf
    • Capitolul_2.pdf
    • Capitolul_3.pdf
    • Capitolul_4.pdf
    • Capitolul_5.pdf
    • Capitolul_6.pdf
    • Capitolul_7.pdf
    • Capitolul_8.pdf
    • Capitolul_9.pdf

Alții au mai descărcat și

Medii de Programare Vizuala (JAVA) - Evidenta Autovehiculelor Inmatriculate

1. Enuntul temei: Sa se realizeze un proiect pentru evidenta autovehiculelor inmatriculate in circulatie. Pentru fiecare autoturism se considera...

Bazele Programarii pe Obiecte

Partea 1. Teorie I. Programarea pe Obiecte.Notiuni Generale I.1. Obiecte.Clase.Caracteristici. I.1.1. Introducere. Limbajele de programare,...

Crearea unui Magazin Electronic

Introducere Ţelul acestei diplome este elaborarea unui magazin electronic, dirijarea şi urmărirea după funcţionalitatea lui, înregistrarea în...

Tehnologia NET

CAPITOLUL 1 Aplicatii distribuite 1.1 Introducere In ultimii ani, programarea distribuita apare tot mai des ca solutie la problemele din...

Site Web Dinamic-Educational Sportiv

INTRODUCERE Utilizarea unui serviciu de un tip oarecare in Internet implica prezenta a doi parteneri hardware (calculatoare ) care comunica: •...

Tehnologii Web - Cascading Style Sheets

Capitolul 1. Introducere in CSS CSS este un acronim provenind din Cascading Style Sheets, care înseamnã "foi de stil în cascadã". In documentele...

Examen Programarea Orientata pe Obiecte

1. Clase. O definitie “bruta” a clasei ar fi aceea ca este un concept extins al unui tip de date abstract : in loc sa contina numai informatii –...

Ai nevoie de altceva?