Referat, comentariu, eseu, proiect, lucrare bacalaureat, liceu si facultate
Top referateAdmitereTesteUtileContact
      
    
 
 


Ultimele referate adaugate

Adauga referat - poti sa ne ajuti cu un referat?



Ultimele referate descarcare de pe site
  CREDITUL IPOTECAR PENTRU INVESTITII IMOBILIARE (economie)
  Comertul cu amanuntul (economie)
  IDENTIFICAREA CRIMINALISTICA (drept)
  Mecanismul motor, Biela, organe mobile proiect (diverse)
  O scrisoare pierduta (romana)
  O scrisoare pierduta (romana)
  Ion DRUTA (romana)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  Starea civila (geografie)
 

Ultimele referate cautate in site
   domnisoara hus
   legume
    istoria unui galban
   metanol
   recapitulare
   profitul
   caract
   comentariu liric
   radiolocatia
   praslea cel voinic si merele da aur
 
 
despre:
 
ALGORITMI, METODE DE REPREZENTARE, PROGRAM
Vizite: ? Nota: ? Ce reprezinta? Intrebari si raspunsuri
 


 

Notiunea de algoritm, isi are originea in Uzbekistan in Khiva, reprezentind pentru domeniul informaticii o metoda generala de rezolvare a unui anumit tip de problema.

Algoritmul este un concept folosit in mod intuitiv pentru a desemna o multime finita si ordonata de operatii.

Algoritmul transforma anumite cantitati (numite date initiale sau de intrare) in rezultate finale (date de iesire) in conformitate cu o multime de reguli, trecind printr-un numar finit de etape intermediare (pasi).

(Date de intrare) (Date de iesire)

 

Rezolvarea cu ajutorul calculatorului a oricarei probleme presupune algoritmizarea prealabila a acesteia. Algoritmul implica insa un numar finit de operatii care se efectueaza intr-un timp rezonabil de lung.

Pina in prezent notiunea de algoritm nu are o definitie suficient de riguroasa, ea fiind considerata o notiune primitiva.

Proprietatile algoritmilor, sunt urmatoarele:

-claritate, adica ori ce algoritm trebuie sa fie caracterizat printr-o descriere precisa fara ambiguitati

-universalitate, adica algoritmul poate fi aplicat asupra unui numar mare, eventual infinit de intrari

-finitudine, adica algoritmul este finit in spatiu (ca descriere) si in timp ( ca executie)

Odata cu elaborarea unui algoritm acesta trebuie prezentat sub o forma cit mai precisa si clara pentru a putea fi transpus sub forma unui program acceptat de calculator.

Reprezentarea (descrierea) algoritmilor, se realizeaza cu:

-limbaje dedicate formalizate, cum ar fi ALGOL, ALGorithmical Language)

-pseudolimbaj, ce poate fi conventional sau neconventional

-schema logica, ce este un fel de reprezentare grafica a algoritmului.

Principalele obiecte cu care lucreaza algoritmul sunt:

-data

-variabila

-operator

-expresie, notiuni ce urmeaza a fi definite in cadrul lucrarii.

Programul, reprezinta exprimarea algoritmului intr-un limbaj de programare.

Studiul algoritmilor, implica:

-elaborarea

-exprimarea

-validarea

-analiza , algoritmilor precum si testarea programelor prin depanare si trasare.

Eficienta algoritmilor este determinata prin:

-analiza aposteriori (empirica) ce se realizeaza dupa implementare

-analiza apriori (teoretica) ce se realizeaza inainte de implementare

-analiza hibrida, ce contine cele doua metode precedente, fiind metoda cea mai folosita.

Eficienta algoritmilor este in general analizata din punct de vedere, d.p.d.v., al:

-timpului de lucru

-memoriei utilizate.

Tratarea algoritmilor poate fi facuta considerind algoritmi:

-liniari, in cazul in care necesita un timp de lucru de orinul n, n fiind ordinul de marime ales pentru aplicatia data.

-patratici, cubici, polinomiali, un timp de ordinul n2, n3, …, nk.

-exponentiali, cu un timp de odinul en.

Tratarea algoritmilor se face privind cazurile:

-mediu, caz ce se trateaza relativ dificil

-cazul cel mai favorabil si cel mai nefavorabil, cazuri ce sunt mai usor de evaluat.

 

 

1.2. LIMBAJ DE PROGRAMARE

 

Prin programarea calculatoarelor intelegem ansamblul comunicarii OM-masina.

Prin program utilizatorul transmite masinii un algoritm.

Programatorul poate invata limbajul masinii pentru a-i transmite ceea ce doreste dar in acest caz el se va lovi de urmatoarele dezavantaje:

-este dificil de programat

-un program masina va functiona numai pe acel tip de masini. Folosirea unei alte masini va insemna modificarea sau rescrierea programului respectiv

-depanarea eventualelor erori strecurate in program este anevoioasa.

Pentru a elimina aceste neajunsuri au fost inventate limbajele de programare.

Limbajele de programare sunt mijloace de comunicare intre OM si masina avind un vocabular apropiat de limbajul uman dar si niste reguli precise lipsite de ambiguitate ce il apropie de rigurozitatea matematica.

aimagei

Utilizatorul va fi confruntat astfel cu 3 universuri:

-al calculatorului

-al limbajului

-al problemei de rezolvat.

 

Deci un limbaj de programare este un intermediar intre realitatea reprezentarilor utilizatorului asupra problemei de realizat si realitatea calculatorului. Se observa ca in cazul folosirii unui limbaj de programare este necesara o etapa in plus, compilarea, pentru traducerea programului din limbajul de programare in instructiuni ale masinii folosite.

In general un limbaj de programare se poate defini prin sintaxa si semantica lui, precum si prin detalii privind respectiva implementare ce ar putea impune diverse restrictii sau extensii.

Prin sintaxa unui limbaj de programare se intelege un set de reguli ce guverneaza alcatuirea programelor. Definirea sintaxei unui limbaj de programare se face in general cu ajutorul unui metalimbaj cum ar fi BNF (Backus Naur Form).

Prin semantica se intelege un set de reguli ce determina semnificatia propozitiilor unui limbaj.

Un limbaj de programare este in general implementat pe un anumit tip de calculator cu ajutorul unui program numit compilator. Compilatorul are mai multe scopuri:

-verifica corectitudinea ori carui text scris in cadrul acestui limbaj de programare, verificare ce se face d.p.d.v. sintactic si a unor aspecte semantice

-duce la obtinerea unei forme intermediare a programului ce contine pe de o parte structura sintactica a programului si pe de alta parte informatii referitoare la atributele semantice ale diferitelor unitati sintactice din program, operatii efectuate in cadrul fazei de analiza. Tot in cadrul compilarii in cadrul fazei de sinteza se efectueaza o optimizare a codului intermediar obtinut generindu-se asa numitul program obiect.

Programul initial scris intr-un limbaj de programare, il vom numi program sursa (PS) iar programul obtinut ca urmare a compilarii il vom numi program obiect, (PO).

Un limbaj de programare poate fi si de tip interpretor. In acest caz se executa pe un calculator real sau virtual un program scris intr-un limbaj sursa diferit de cel al masinii. Interpretorul presupune analiza programului si apoi executia lui instructiune cu instructiune. Diferenta fata de un compilator este ca nu produce un program obiect care urmeaza a fi folosit in vederea executarii programului, ci executa instructiune cu instructiune acest program. Interpretorul este mai usor de implementat dar este ineficient in comparatie cu un compilator mai ales in ceea ce priveste timpul de executie al programului.

Limbajele de programare sunt rezultatul unei evolutii determinata in principal de evolutia calculatoarelor precum si intr-o masura cel putin la fel de importanta de necesitatea rezolvarii unor probleme complexe.

Programarea primelor calculatoare se facea in limbajul propriu al calculatorului, asa numitul program (cod) masina. Un program reprezentat in acest fel era o succesiune de 0 si 1 introduse la anumite adrese de memorie. Utilizatorul unor astfel de calculatoare isi comunica programul prin actionarea unor butoane, a unor comutatoare sau prin cablarea unor panouri. Odata realizat un astfel de program el nu putea fi folosit decit pe acel calculator.

Necesitatea unor prelucrari tot mai complexe au impus trecerea la programarea simbolica prin utilizarea limbajelor de asamblare si apoi a limbajelor de nivel inalt. Acest salt a usurat modul de scriere a programelor si mai ales a asigurat independenta programarii fata de hardware-ul calculatorului.

Ultimii ani incearca sa introduca asa numita programare bazata pe limbaje naturale, programare ce ar trebui sa fie mult mai usoara utilizatorului simplu al unui calculator.

Limbajele de programare se pot clasifica intr-un mod relativ nerigid astfel:

  1. d.p.d.v. al dependentei de hard-ul calculatorului putem avea limbaje:

-de nivel coborit (limbaj masina si limbaj de asmblare)

-de nivel inalt (ce nu depind de structura hard)

-de nivel intermediar (mixt), (limbaje naturale si limbaje paralele).

  1. d.p.d.v. al facilitatilor puse la dispozitia utilizatorilor in timpul compilarii:

-limbaje conversationale

-limbaje neconversationale (neinteractive).

  1. d.p.d.v. al prelucrarilor pe care le efectueaza:

-procedurale, (majoritatea limbajelor care au fost folosite), bazate pe comenzi adresate calculatorului

-neprocedurale, (orientate spre aplicatii si nu spre gestiunea resurselor calculatorului), in care succesiunea instructiunilor in cadrul unui program nu influenteaza decit in mica masura succesiunea executarii lor

-obiectuale (majoritatea limbajelor actuale), vom reveni la o prezentare mai pe larg a acestor concepte

-multi-agent, (o continuare a celor obiectuale dar care pot fi incluse in cadrul limbajelor obiectuale).

 

Evolutia limbajelor de programare.

Primele limbaje de programare, asa numitele limbaje clasice (FORTRAN, BASIC), nu asigurau siguranta in programare datorita modului initial in care au fost proiectate, aceste limbaje evoluind si ele in timp.

Pentru a mari siguranta in functionare a aparut limbajul MODULA care introducea notiunea de modul. Acest limbaj asigura inchiderea vizibilitatii numelor in cadrul modulului aparind necesitatea definirii in fiecare modul a unor liste de import/export.

Apoi limbajul PASCAL aduce noi imbunatatirisi anume:

-introduce tipizarea si reguli de compatibilitate intre tipuri

-introduce notiunea de compilare separata, ce permite pastrarea unor module separat pe un suport, etc.

Pentru fiecare modul in PASCAL vom avea o parte de specificare si o parte de implementare. De asemenea pe linga cresterea sigurantei in functionare apar si alte avantaje pentru programatori si anume posibilitatea de a ascunde datele si detaliile de implementare.

In continuare limbajele ADA, CHILL si MODULA-2 aduc facilitati ce permitind programarea concurenta cu aplicatii in conducerea proceselor paralele, limbajul CHILL fiind dezvoltat pentru telefonie si telecomunicatii.

Necesitatile practice au dus la dezvoltarea si a unor limbaje ce permit programarea paralela, OCCAM, C Paralel, etc. Acest mod de programare este optim pe arhitecturile paralele care sunt tot mai mult folosite, paralelismul putind fi simulat soft daca arhitectura hard nu o permite.

Este de remarcat ca in literatura de specialitate aWatt,1990i, aGiumale,1997i, exista dezvoltata o teorie bine precizata asupra limbajelor de programare, evolutia lor precum si modalitatile in care au fost ele impuse pe piata. Utilizatorii din domeniul comercial, majoritatea celor ce folosesc calculatorul ca si instrument in realizarea unor aplicatii folosesc programarea procedurala si limbaje de tip obiectual si imperativ. In acest sens vorbim in special de limbajele Fortran, Algol, Pascal, C, C++, Ada, Simula, Smaltalk, Eiffel, Java.

In domeniul academic mai ales precum si in cadrul unor aplicatii deosebite se foloseste programarea declarativa (ca o reprezentare unitara simbolica a datelor si programelor, avind un model matematic al limbajului), cu folosirea limbajelor functionale si a celor logice. Cele mai reprezentative limbaje in cadrul acestui domeniu sunt Lisp, ML, Haskell, Prolog.

In cadrul prezentei lucrari se va prezenta in limbajul C si unele elemente ale limbajului C++, limbaje destinate in special dezvoltarii unor aplicatii care sa foloseaca facilitatile masinilor precum si avantajele programarii de nivel inalt.

Este de remarcat ca se pot scrie programe structurate in limbajul FORTRAN, programe ce ofera securitatea datelor in C, dar efortul de implementare nu se justifica deoarece aceste limbaje nu sprijina aceste tehnici de programare. Nu este cel mai important lucru faptul ca un limbaj poseda o posibilitate pe care alt limbaj nu o are, ci faptul ca vor fi exploatate facilitatile proprii limbajului care sa-i confere stilul de programare dorit in domeniul pentru care a fost gindit.

 

 

1.3. PRINCIPIILE PROGRAMARII

 

In domeniul programarii sunt considerate mai multe principii de baza asa numitele principii ale programarii. Aceste principii sunt:

-modularitatea, principiu ce se bazeaza pe diminuarea complexitatii unei probleme prin descompunerea acesteia in componente relativ independente, numite module

-abstractizarea, principiu ce se refera la separarea atributelor sau caracteristicilor unui obiect pentru a le pune in evidenta doar pe cele necesare la un moment dat.

In acest caz se evidentiaza proprietatile comune (intr-un context dat) a mai multor obiecte, ignorindu-se pentru moment diferentele existente.

-uniformitatea, principiu ce se refera la folosirea unei notatii libere, a unor structuri standard si a unor reguli care sa asigure accesibilitatea, flexibilitatea si standardizarea in programare precum si consistenta programelor

-localizarea, principiu ce se refera la localizarea de masini, subrutine, fisiere, etc., care unesc intr-un tot obiecte cu proprietati comune asupra carora putindu-se actiona mult mai eficient

-ascunderea informatiilor, (acoperirii) principiu ce se refera la faptul ca structura de date nu este cunoscuta decit in momentul definirii ei, toate functiile fiind deci definite pe structuri de date. In acest caz in exterior se observa doar operatiile ce se efectueaza cu aceste date, scotindu-se in evidenta elementele esentiale fata de cele neesentiale..

Este de remarcat ca aceste principii au stat la baza definirii notiunii de programare structurata, stil de programare inca folosit si in momentul de fata. Prin programare structurata se intelege tehnica rezultata din combinarea principiilor modularizarii, abstractizarii si localizarii informatiilor. In cadrul lucrarii vor fi prezentate de asemenea considerentele specifice programarii orientate pe obiect, P.O.O sau O.O.P. (Object Oriented Programming).

 

 

1.4. ARHITECTURA CALCULATOARELOR

 

In continuare vor fi prezentate citeva elemente de baza referitoare la arhitectura calculatoarelor de tip von Neuman, arhitectura inca des folosita de catre utilizatorii obisnuiti (desi procesoarele se adapteaza si altor arhitecturi mult mai evoluate).

Elementele de baza ale acestei arhitecturi sunt:

-unitatea centala, U.C., sau procesorul ce administreaza prelucrarea informatiilor

-memoria interna, M.I., pentru depozitarea informatiilor

-dispozitivele periferice, D.P., ce asigura comunicarea dintre U.C. si M.I. cu exteriorul. Aceste D.P. pot fi:

-de intrare

-de iesire

-mixte.

In cadrul unui calculator putem vorbi de:

-tastatura, prin care se transmit catre calculator comenzi cu ajutorul simbolurilor

-ecranul, (displayul) folosit pentru comunicarea informatiilor cu exteriorul

-mouse-ul (sau track ball sau IntelliMouse) pentru interactiunea rapida cu calculatorul

-imprimanta

-discuri flexibile si magneto-optice,

-discuri de memorare de tip dur (Whinchester), HD

-compact discuri CD, inscriptibile sau doar read only

-streamere

-scanere

-plotere

-placi de sunet, fax-modem, etc.

 

Organizarea memoriei interne intr-un calculator

 

Memoria interna este organizata in:

-cifre binare 0 sau 1, numiti biti

-octeti, bytes, formati din 8 biti avind pina la 256 de valori

-cuvinte, ce pot fi de 2, 4, 8, etc. octeti sau alte dimensiuni nu neaparat multipli de octeti

-adresa, numarul de ordine al unui octet in memorie

-locatia, zona fizica de memorie rezervata unei anumite informatii. In locatii pot fi adresele altor locatii de memorie, informatia de aici fiind considerata referinta.

 

 

 

1.5. TIPURI DE NUMERE REPREZENTABILE IN CALCULATOR

 

In memoria interna se reprezinta doar numere naturale folosind bitii 0 si 1, dar conventiile introduse permit reprezentarea de numere:

-negative

-reale

-caractere, etc.

Aceste conventii folosesc totdeauna numere naturale ce sunt totdeauna pozitive. Principalele conventii utilizate in cadrul reprezentarii numerelor in calculatoare sunt:

-a) pentru numere intregi cu semn, se folosesc doua numere naturale:

-primul cu 2 valori posibile 0-pozitiv, 1-negativ, numit semnul

-al doilea, valoarea absoluta a numarului.

Aceasta conventie de reprezentare se numeste C2, conventia complement fata de 2 si implica reprezentarea numerelor negative prin complementul fata de 1 a valorii lor absolute si adunarea valorii 1 la rezultatul obtinut.

Exemplu:

Numar: 1

Reprezentare: 00000001

C1: 11111110

C2: +1

Reprez. -1: 11111111

 

In aceasta conventie:

Numar: 0

Reprezentare: 00000000

 

Numar: -128

Reprezentare: 10000000 si nu este -0 lucru ce se justifica prin:

 

Numar: 128

Reprezentare: 10000000

C1: 01111111

C2: +1

Reprez. -128: 10000000 deci 128 si -128 au aceiasi reprezentare, iar conventia C2 spune ca se pastreaza reprezentarea pentru -128 cea pentru 128 fiind eliminata si in acest caz pe 8 biti pot fi reprezentante valori intregi i intre:

-27 <= i <= 27 - 1, iar in cazul in care avem reprezentarea pentru n cifre putem reprezenta numere intregi in C2 in intervalul:

-2n-1 <= i <= 2n-1 - 1.

 

-b)pentru reprezentarea numerelor reale, se folosesc:

-un numar pentru a memora citeva (sau toate) cifre (le) semnificative ale numarului, asa numita mantisa reprezentatata ca un numar cu semn

-un alt numar, legat de ordinul de marime al numarului real ce va fi reprezentat, numit exponent.

De obicei se impune ca virgula este plasata imediat in fata cifrelor semnificative ale numarului, si ca in fata mantisei este o singura cifra zero, 0, in acest caz aceasta conventie de reprezentare a numerelor reale este conventia pentru numere normalizate ea ducind la o reprezentare de forma:

0.mantisa Eexponent, unde E=28 = 256.

Daca exponentul este foarte mare si pozitiv avem un numar real foarte mare, iar daca exponentul este foarte mare si negativ avem un numar real foarte mic.

Aceasta conventie de reprezentare cu mutarea virgulei si deci modificarea adecvata a exponentului duce la numere fractionare care in limbajul calculatorului se numesc numere in virgula mobila sau flotante. Cu aceasta conventie nu se pot reprezenta toate numerele reale, dar se pot efectua calcule cu o anumita precizie, in general rezonabila. In calculator in general numerele flotante sunt reprezentate in simpla precizie sau dubla precizie functie de numarul de octeti rezervati pentru mantisa.

 

 

2. REPREZENTAREA INFORMATIILOR CU OBIECTE

 

2.1. NOTIUNEA DE OBIECT

 

In calculator dorim in general sa reprezentam informatii complexe care sa descrie obiectele fizice sau notiunile din lumea reala, notiuni ce sunt destul de complexe. Toate aceste notiuni sau obiecte care vor fi caracterizate prin proprietati specifice (trasaturi) vor fi reprezentate in calculator prin date (numere naturale in conventia C2 sau flotante normalizate). Numerele vor ocupa o zona compacta in memorie, zona pe care o vom numi obiect (pentru calculator).

Observatie:

Obiectul fizic sau notiunile din realitate sunt foarte complexe neexprimabile doar prin aceste proprietati caracteristice, astfel incit 2 copii identice ale unui obiect in realitate este foarte greu de obtinut, (vezi clonare pentru fiinte vii), dar in cadrul unui calculator se copiaza zona de memorie aferenta obiectului si se obtine o copie a obiectului din calculator.

Cind analizam un obiect fizic sau notiuni din lumea reala pentru a le reprezenta in calculator trebuie sa consideram:

-proprietatile acestora

-modul in care pot fi utilizate obiectele, dar si

-operatiile (metodele) ce pot fi executate asupra sau cu ajutorul obiectelor.

Multimea de operatii va trebui sa o redefinim ulterior in contextul multimii de numere care formeaza proprietatile obiectului din memoria calculatorului si sa-l descompunem in operatii numerice preexistente.

Prin comportamentul unui obiect, intelegem multimea de operatii specifice unui obiect impreuna cu modul in care reactioneaza la stimuli exteriori.

Din punct de vedere al programarii, un obiect este o reprezentare in memoria calculatorului a proprietatilor si a comportamentului unei notiuni sau ale unui obiect real.

 

 

Exemplu:aimagei

 

Obiectul minge are:

-proprietati referitoare la: -material (Piele, Plastic, etc.)

-dimensiune (Raza)

-culoare (Alba cu picatele negre, Rosie, etc.)

-pozitie (x, y, z)

-comportament definit prin:

-operatii ca:

-muta

-arunca

-umfla

-modul de reactionare:

-sare

-trece prin plasa, etc.

 

 

 

2.2. INCAPSULAREA INFORMATIILOR IN INTERIORUL OBIECTELOR

 

Procesul de incapsulare este procesul ascunderii detaliilor neimportante sau sensibile de constructie a obiectului. Scopul incapsularii este de a proteja impotriva distrugerii accidentale si nu in vederea necunoasterii lor (a detaliilor) de catre utilizator.

Pot fi incapsulate (protejate) atit proprietatile obiectelor cit si operatiile.

Deci un obiect va fi privit:

-ca o multime de valori care formeaza miezul obiectului, (date) si

-ca o multime de operatii (proceduri, metode) ce imbraca aceste valori, protejindu-le.

Din exterior se va vedea doar:

-modul de apel al operatiilor

-rezultatele apelurilor.

In practica programarii este nevoie de o rafinare a gradului de protejare a fiecarei operatii sau proprietati pentru a putea specifica observatorii care au acces (PUBLIC) si care nu au acces (PRIVATE, PROTECTED) la proprietatile si operatiile obiectului.

Pe baza protejarii (incapsularii) proprietatilor si operatiilor ce se pot executa cu ajutorul unui obiect, utilizatorul este independent de detaliile constructive ale obiectului respectiv.

Structura interna a obiectului poate fi astfel schimbata si perfectionata in timp fara ca functionalitatea de baza sa fie afectata.

 

 

2.3. CLASE DE OBIECTE

 

Familiile de obiecte sunt descrise in general (cum ar fi familia mingilor) prin:

-proprietati in general o singura data

-operatii (metode, proceduri) care pot fi executate.

Exemplu:

Nu toate obiectele minge sunt identice, diferenta dintre ele fiind data de valorile proprietatilor care sunt marimi numerice variabile (difera de la un obiect la altul).

In concluzie proprietatile sunt aceleasi dar valorile lor sunt diferite.

De asemenea operatiile sunt si ele intotdeauna aceleasi, dar rezultatul aplicarii lor poate sa fie diferit functie de valorile proprietatilor si de unele valori exterioare acestora.

(Mingea se ridica in aer dupa ce o bati functie de material, dimensiunea mingii, viteza de aruncare, conditii meteo, etc.).

Deci obiectele cu care lucram fac parte totdeauna dintr-o familie mai mare de obiecte cu proprietati si comportament similar, familii ce se vor numi, clase de obiecte, sau concepte.

In principiu :

CLASA= DATE + OPERATII, dar de fapt clasa se refera la proprietati si nu la date, datele fiind doar valorile unor proprietati.

Obiectul ce apartine unei anumite clase, il vom numi instanta a acelei clase.

Exemplu:

Clasa de obiecte mingi = toate obiectele minge din lume

Obiectul Minge_WorldCup = o instanta a acestei clase care are:

-proprietatile,

-operatiile, definite la fel ca la toate mingile doar ca valorile proprietatilor (datele) sunt altele, pielea are culori specifice, diametrul este unul prestabilit de FIFA, etc.

In concluzie valorile proprietatilor difera de la o instanta la alta (obiect la altul) si ele se vor numi variabile ale unei clase de obiecte.

Operatiile sunt insa aceleasi si le vom numi metode pentru o anumita clasa.

Exemplu:

In C++ declararea clasei de numere complexe se face prin:

class complex

A

double real;

double imag; //variabile de instantiere protejate cu acces prin metode

public:

double modul()

A

return sqrt(real*real + imag*imag);

S

double arg();

void adcomplex(complex *a, complex *b);

void sccomplex(complex *a, complex *b);

S; /* clasa complex */

Declaratia:

complex z,z1,z2; //declara 3 obiecte de tip complex si anume z, z1, z2

Definirea unei clase consta din:

-declararea, adica insiruirea de elemente ale clasei date (variabile, proprietati) si functii (metode)

-implementarea acelei clase, adica sectiunea din program care implementeaza functiile declarate ca apartinind clasei (daca nu sunt inline). In C++ accesul la elemente date si functii se face cu operatorul punct “.”, ele fiind membre ale unui tip de data (sau cu ajutorul pointerilor).

Ca si o concluzie precizam:

-o clasa de obiecte este o descriere a proprietatilor si operatiilor specifice unui nou tip de probleme reprezentabila in memorie.

-o instanta a unei clase de obiecte este un obiect de memorie ce respecta descrierea clasei

-o variabila a unei clase de obiecte este o proprietate a clasei respective ce poate lua valori diferite in instante diferite ale clasei

-o metoda a unei clase este descrierea unei operatii specifice clasei respective.

Metodele sunt memorate o singura data pentru toate obiectele. Comportarea diferita a obiectelor este data de faptul ca ele depind de valorile variabilelor.

Exista clase de obiecte care nu se pot instantia in mod direct, si asta pentru ca nu avem suficiente informatii pentru a le construi.

Exemplu:

Conceptul OM nu-l putem instantia, nu stim daca este Barbat sau Femeie, etc.

Putem insa instantia conceptul Barbat sau Femeie ce sunt subconcepte ale conceptului OM.

O asemenea clasa neinstantiabila, care serveste in general pentru definirea unor proprietati sau operatii comune ale mai multor clase si care permit generalizarea operatiilor referitoare la aceste clase se numeste clasa abstracta.

In cadrul clasei OM putem defini:

-metoda de alimentare, valabila la amindoua subconcepte Barbat respectiv Femeie

-metoda de comportament social este insa diferita la cele doua subconcepte deci netoda de comportament social la nivelul conceptului OM este abstracta.

Aceasta metoda insa se poate defini la nivelul subconceptului Barbat respectiv Femeie astfel incit aceste concepte sa fie instantiabile.

Deci, o clasa de obiecte care are cel putin o metoda abstracta, devine o clasa de obiecte abstracta si nu poate fi instantiata, adica nu i s-au precizat suficient de clar metodele astfel incit ea sa poata fi folosita direct.

 

 
 
Comentarii:

Nu ai gasit ce cautai? Crezi ca ceva ne lipseste? Lasa-ti comentariul si incercam sa te ajutam.
Esti satisfacut de calitarea acestui referat, eseu, cometariu? Apreciem aprecierile voastre.

Nume (obligatoriu):

Email (obligatoriu, nu va fi publicat):

Site URL (optional):


Comentariile tale: (NO HTML)


 
Noteaza referatul:
In prezent referatul este notat cu: ? (media unui numar de ? de note primite).

2345678910

 
Copyright 2005 - 2014| Trimite referat | Harta site | Adauga in favorite