Programare orientată 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)
Puncte necesare: 0

Extras din curs

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

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

Crearea unui Magazin Electronic

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

Site Web Dinamic-Educational Sportiv

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

Clasa matrice și principalele funcționalități necesare pentru lucrul cu matrici

Tema II - Problema I Cerinte minimale: Sa se implementeze o clasa Matrice si principalele functionalitati necesare pentru lucrul cu matrici. Sa...

Programare orientată pe obiect C++

1. INTRODUCERE ÎN C++ Exista limbaje concepute strict pe baza conceptelor programării orientate pe obiecte (POO), de exemplu Simula sau Smalltalk....

Inginerie Software

Fazele dezvoltării unui produs software 1 Ce este ingineria programării? 2. Fazele ingineriei programării 2.1. Faza de analiză 2.2. Faza de...

Limbaje de Asamblare

Introducere. Necesitatea programării în limbaje de asamblare Modalităţile de programare s-au schimbat imens de la inventarea calculatorului, în...

Te-ar putea interesa și

Ilustrarea și simularea unor algoritmi legați de inteligența artificială folosind programarea orientată pe obiect în limbajul java

Introducere Am ales lucrarea intitulată „Ilustrarea și simularea unor algoritmi de inteligență artificială folosind programarea orientată pe...

Programare orientată pe obiect

Cunoasterea Firmei- Domeniu de activitate ELIT Romania, membru al grupului ELIT Group şi Rhiag, a fost înfiinţată în anul 1999. În decursul a...

Programare orientată pe obiecte - calculul impedanței la rezistoare și condensatoare

1.Noţiuni teoretice În realizarea proiectului sunt necesare includerea mai multor librării cum ar fi: process.h, iostream.h, string.h, conio.h şi...

Examen programarea orientată 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 –...

Mecanisme de specificare și interacțiune a activităților concurente în programarea orientată pe obiecte

Mecanisme de specificare si interactiune a activitatilor concurente în POOC A. Mecanisme de specificare a concurentei Vom enumera si analiza în...

Programare orientată pe obiecte

Paradigma reprezintă un set de concepte, valori, ipoteze şi practici care constituie un mod de percepţie a realităţii comun pentru o anumită...

Programare orientată pe obiect C++

1. INTRODUCERE ÎN C++ Exista limbaje concepute strict pe baza conceptelor programării orientate pe obiecte (POO), de exemplu Simula sau Smalltalk....

Ai nevoie de altceva?