Sunteți pe pagina 1din 13

program informatic: o succesiune logic de instruciuni sau expresii destinate executrii lor de ctre calculator n vederea obinerii unor

rezultate -sinonime: produs program, aplicaie, pachet de programe, produs -soft, software Niklaus E. WIRTH: structuri de date + algoritmi =program -Program: Ieiri =Funcie(intrri) -traducerea ntr-un limbaj de programare a unuia sau mai multor algoritmi Programarea orientat pe obiecte (OOP Object Oriented Programming) este tehnica prin care programul este format dintr-un ansamblu de obiecte care comunic ntre ele prin intermediul mesajelor. Conceptele de baz ale programrii orientate obiect sunt: obiectul, abstractizarea, ncapsularea, motenirea, polimorfismul i persistena. Metoda de programare reprezint un set de concepte, principii i regulile aferente, dup care programatorul se poate ghida n scrierea programelor. Limbajul de programare reprezint o tehnic de comunicare dintre om i calculator, caracterizat prin vocabular, sintax i semantic proprii. Limbajul de programare se caracterizeaz prin: vocabular - mulimea cuvintelor rezervate; sintax - reguli de compunere a propoziiilor (instruciunilor sau expresiilor); regulile de punctuaie; semantic - semnificaiile atribuite cuvintelor i instruciunilor. Algoritmul reprezint o metod prin care sunt descrii paii necesari rezolvrii unei probleme - o succesiune de etape aplicate unei probleme specificate cu scopul obinerii unei soluii, pornind de la un set de date de intrare. Caracteristicile (proprietile) fundamentale ale algoritmului sunt: finitudine: pornind de la datele de intrare, un algoritm trebuie s determine datele de ieire ntr-un timp finit, cu un efort de calcul ct mai mic; claritate: descrierea precis, fr ambiguiti, a procesului de calcul implic stabilirea unei ordini stricte, unice, a transformrilor suferite de datele de intrare; generalitate: un algoritm trebuie s fie conceput pentru rezolvarea unei clase de probleme de acelai tip, nu numai pentru determinarea soluiei unei probleme particulare; Programarea orientat pe obiecte (OOP Object Oriented Programming) este tehnica cea mai utilizat ncepnd cu nceputul anilor 90, cnd paradigmele sale principale au fost adoptate i dezvoltate i de cele mai utilizate limbaje ale perioadei respective: C++, Pascal, Basic, Ada, Java, etc. Conceptele de baz ale OOP au fost totui dezvoltate nc din anii 60, odat cu proiectarea limbajului Simula67. Programarea orientat pe obiect (Programare Orientat Obiectual) este unul din cei mai importani pai fcui n evoluia limbajelor de programare spre o mai puternic abstractizare n implementarea programelor. Ea a aprut din necesitatea exprimrii problemei ntr-un mod mai natural fiinei umane. Astfel unitile care alctuiesc un program se apropie mai mult de modul nostru de a gndi dect modul de lucru al calculatorului. Pn la apariia programrii orientate pe obiect programele erau implementate n limbaje de programare procedurale (C, Pascal) sau n limbaje care nici mcar nu ofereau o modalitate de grupare a instruciunilor n uniti logice (funcii, proceduri) cum este cazul limbajului de asamblare (assembler). Altfel spus o problem preluat din natur trebuia fragmentat n repetate rnduri astfel nct s se identifice elementele distincte, implementabile ntr-un limbaj de programare. O mare problem a programrii procedurale era separarea datelor de unitile care prelucrau datele (subrutinele), ceea ce fcea foarte dificil extinderea i ntreinerea unui program. Astfel s-a pus problema ca aceste dou entiti (date i subrutine) s fie grupate ntr-un anumit mod, astfel nct subrutinele s "tie" n permanen ce date prelucreaz i, mai mult dect att, ele s formeze un modul, adic o unitate care separ implementarea de interfa, ceea ce implic posibilitatea refolosirii codului. Conceptele de baz ale programrii

orientate obiect sunt: obiectul; abstractizarea: Este posibilitatea ca un program s ignore unele aspecte ale informaiei pe care o manipuleaz, adic posibilitatea de a se concentra asupra esenialului. Este procesul prin care se identific i se rein numai caracteristicile eseniale ale realitii modelate. Cel mai des , abstractizarea este ntlnit atunci cnd obiectele cu aceleai atribute i acelai comportament sunt grupate n tipuri abstracte numite clase. Clasele sunt reprezentri (modele) abstracte, conceptuale ale unor entiti; clasa; ncapsularea (ascunderea de informaii); motenirea; polimorfismul: Este abilitatea de a procesa obiectele n mod diferit, n funcie de tipul sau de clasa lor. Mai exact, este abilitatea de a redefini metode pentru clasele derivate. persistena: descrie durata de via a unui obiect n raport cu aplicaia ce l-a creat. Un program este format dintr-un ansamblu de obiecte ce comunic ntre ele, prin intermediul mesajelor. n decursul timpului au fost dezvoltate mai multe metode de programare, dintre care cele mai importante sunt: programarea structurat, programarea orientat pe obiecte i programarea dirijat de evenimente. caracteristicile (proprietile) fundamentale ale programelor?-corectitudine: la date de intrare corecte se obin rezultate scontate -robustee: face fa unor evenimente neprevzute -reutilizabilitate -compatibilitate portabilitate:poate fi executat pe calculatoare (platforme) diverse -eficien: utilizeaz optim resursele de calcul claritate un limbaj de programare - o tehnic de comunicare dintre om i calculator caracterizeaz un limbaj de programare -vocabular: mulimea cuvintelor rezervate - sintax:reguli de compunere a propoziiilor (instruciunilor sau expresiilor); regulile de punctuaie - semantic: semnificaia clasificai algoritmii? a) dup metoda de proiectare (concepere) -backtracking (cutare cu revenire) -divide et impera (metoda divizrii) -greedy (optimul local) -genetici (principiile geneticii i ale seleciei naturale) b) dup metoda de implementare -iterativi: cicluri repetitive -recursivi: se autoapeleaz caracterizeaz programarea orientat pe obiect -programul este format dintr-un ansamblu de obiecte care comunic ntre ele prin intermediul mesajelor -conceptele de baz ale programrii orientate obiect sunt: obiectul, abstractizarea, ncapsularea, motenirea, polimorfismul i persistena criterii de clasificare a) dup distana fa de limbajul calculatorului -limbaje de nivel cobort (apropiate de calculator): cod main, de asamblare i macro-asamblare -limbaje de nivel nalt (apropiate de programator). dup clasa de probleme pe care le rezolv n mod eficient limbajele de nivel nalt . universale -specializate (domeniul tiinific, economic, inteligena artificial) . dup modul de realizare al funciilor de prelucrare automat -procedurale (Ce? i Cum?) -neprocedurale (Ce?) Paradigmele programrii obiect -obiectul, abstractizarea (clasa), ncapsularea, motenirea, polimorfismul i persistena OBIECTUL - este o entitate (concret) cu identitate proprie, caracterizat prin stare i comportament - modeleaz o entitate din lumea real sau imaginar, definit de un set propriu i unic de proprieti - anticipnd: este o instan a unei clase caracteristiciele unui obiect? - identitatea este dat de un cod unic care asigur diferenierea unui obiect fa de altul i implementat software sub forma unui identificator (ID) de tip read-only (o adres logic invariant de memorie pointer), de regul transparent utilizatorului - starea este reprezentat de structura obiectului i valorile curente ale elementelor acestei structuri (de exemplu: valorile proprietilor, atributelor unui obiect) -comportamentul este

definit de modul n care obiectul reacioneaz la evenimente cauzate de surse externe i de modul n care interacioneaz cu alte obiecte prin intermediul mesajelor (ceea ce tie s fac); este descris printr -un set de metode (operaii). Starea unui obiect este o caracteristic static a sa, iar comportamentul o caracteristic dinamic. o metod i cum se implementeaz -modalitatea prin care obiectul trateaz un mesaj -implementarea este echivalent cu o funcie sau o procedur din programarea clasic abstractizarea -procesul prin care se identific i se rein numai caracteristicile eseniale ale realitii modelate -n programarea orientat pe obiecte reprezint o tehnic fundamental prin care se obin tipuri abstracte de date Clasa reprezint un tip de date obinut prin abstractizarea unor obiecte similare. O clas este schia (modelul) unui obiect. Clasa spune mainii virtuale cum s construiasc un obiect de tipul respectiv. Din punct de vedere structural, o clas este descris prin: denumire; atribute (date); metode (operaii). Atributele i metodele se mai numesc i membri clasei. Atributele vor servi drept depozite pentru datele concrete deinute de obiectele clasei, iar metodele vor fi partajate de toate instanele clasei. Atunci cnd proiectm o clas ne gndim la obiectele care vor fi create din clasa respectiv. Identificm ce tiu obiectele despre ele nsele i ce vor face. Practic cnd proiectm o clas ne gndim la informaiile (datele) pe care un obiect trebuie s le dein despre el nsui, dar vom proiecta i metodele care opereaz asupra datelor respective. Membri unei clase pot viza:clasa n ansamblu ei nu necesit o instan (atribute i metode de clas sau statice shared \sher\); fiecare obiect al clasei (atribute i metode de instan). Orice clas trebuie s implementeze cel puin urmtoarele tipuri de metode: constructori - asigur crearea i iniializarea obiectelor; destructori asigur eliminarea obiectelor; modificatori permit actualizarea strii obiectelor; selectori permit redarea strii obiectelor. -constructor: asigur crearea i iniializarea obiectelor -destructor: asigur tergerea sau eliminarea obiectelor -modificatori: metode de modificare (actualizare) a valorii unor proprieti -selectori: metode de citire (redare) a valorii unor proprieti tipuri de clase -clase instaniabile sau concrete: clasele care au instanieri directe (contract, factur, etc.; triunghi, cerc, etc.; femeie, brbat) -clase abstracte:clasele care nu pot fi instaniate direct, nu au corespondene concrete din realitate (document; form geometric; om) Procedeul de derivare permite definirea unei clase noi, numita clasa derivata, care mosteneste proprietatile unei clase deja definite, numita clasa de baza, pe care le completeaza cu proprietati noi. Clasa derivata contine membrii clasei de baza, la care se adauga membri suplimentari, specifici (date si functii). Dintr-o clasa de baza pot fi derivate mai multe clase si fiecare clasa derivata poate servi ca baza pentru alte clase derivate. Se poate realiza o ierarhie de clase, care sa modeleze n mod adecvat sisteme complexe. Este posibil ca o clasa sa mosteneasca proprietatile mai multor clase de baza (mostenire multipla). ncapsularea reprezint capacitatea obiectelor (claselor) de a conine la un loc att date, ct i operaii/metode, dintre care numai o parte sunt vizibile din exterior. ncapsularea asigur faptul c starea intern a obiectelor nu poate fi cunoscut sau schimb n mod direct (ci doar prin metode i proprieti puse la dispoziie de obiectul respectiv); doar metodele i proprietile proprii ale obiectului pot accesa starea acestuia i i pot induce un anumit comportament. Fiecare tip de obiect expune o interfa pentru celelalte obiecte care specific modul cum acele obiecte pot interaciona cu el.

Principiul ncapsulrii impune ca toate atributele de instan ale unei clase s fie invizibile din exteriorul acesteia, accesarea lor fiind posibil numai prin intermediul unei metode dedicate sau proprieti care formeaz interfaa clasei. -impune: ca toate atributele de instan ale unei clase s fie invizibile din exteriorul acesteia; accesarea lor s fie posibil doar prin intermediul unor metode puse la dispoziie de clas (interfa) avantajele ncapsulrii : datele nu mai sunt separate de prelucrri; obiectele apar ca nite cutii negre care ascund detaliile de implementare; se asigur securitatea datelor stocate de un obiect mpotriva modificrilor neautorizate sau accidentale; obiectele sunt uor de utilizat prin intermediul interfeei care descrie ce poate realiza o clas Declarare membrii -public: accesibili din afara clasei -private: nu sunt accesibili din exteriorul clasei -protected: accesibili numai claselor derivate motenirea -o caracteristic a clasei derivate (secundare/copil) de a moteni toate atributele (proprietile) i metodele clasei de baz (supraclas/printe); singurele elemente care nu se motenesc sunt constructorii -n VB.NET se accept doar motenirea simpl (adic o clas derivat motenete doar caracteristicile unei singure clas de baz clasa copil motenete doar un printe) -se implementeaz prin comanda: Inherits numeClasDeBaz care trebuie s fie prima linie din clasa derivat .Pentru a eficientiza activitatea de proiectare a claselor i pentru valorificarea relaiilor dintre clase se procedeaz astfel: se analizeaz ce au clasele n comun; se abstractizeaz caracteristicile comune care se extrag i se pun ntr-o nou clas (clas de baz); se leag clasele analizate (clase derivate) la noua clas (clas de baz) printr-o relaie de motenire. Dac apar cerine suplimentare se poate proiecta o nou clas (clasa derivat, secundar sau copil ), care deriv din clasa de baz (sau printe), care va moteni caracteristicile acesteia, creia i putem aduga atribute i metode noi, sau putem s rescriem anumite metode pe care le motenete conform noilor cerine. -procesul prin care atributele i operaiile unei clase (clas de baz, superclas) sunt preluate automat de o alt clas (clas derivat sau subclas). orice clas derivat va fi de tipul (is a) clasei de baz. -o tehnic prin care se ncurajeaz reutilizarea i partajarea datelor (permite crearea de noi clase pe baza unora deja existente). -prin motenire se pot exprima relaii deosebite ntre clase: clasificri, ierarhizri, generalizri, specializri Polimorfismul reprezint capacitatea obiectelor de a se comporta diferit la primirea aceluiai mesaj (adic obiecte diferite conin aceleai operaii, care ns vor executa aciuni diferite exemple: apeleaz un numr de telefon, schimb viteza la main). Polimorfismul mrete flexibilitatea utilizrii obiectelor. -suprancrcarea unei operaii (n cadrul aceleiai clase): utilizarea unei metode cu acelai nume, dar cu un numr diferit de parametrii -rescrierea unei operaii (ntr-o clas derivat): metoda resriscris are acelai nume, acelai numr de parametrii dar execut alt prelucrare Persistenta: -durata de via a unui obiect n raport cu aplicaia care l-a creat. -un obiect se consider persistent, dac starea i comportamentul su sunt conservate ntre dou execuii ale programului ce la generat. Un tip de date este un plan (un model) pentru alocarea unei zone de memorie. Acest plan determin domeniul de valori pe care memoria le poate stoca, modul de stocare i operaiile pe care le putem realiza n memorie. Categorii de tipuri de date VB.NET utilizeaz dou categorii de tipuri de date: tipul valoare i tipul referin. nelegerea diferenelor dintre tipurile de date valoare i referin este important din mai multe motive: Sunt tratate diferit de ctre sistemul de gestiune a memoriei; Testeaz egalitatea n mod diferit; Sunt iniializate diferit de rutina de execuie a limbajului comun (CLR); Sunt tratate diferit n declaraiile de atribuire.

a) tipul valoare (primitiv sau elementar): conine ntotdeauna o valoare; se iniializeaz cu valoarea predefinit (dac nu sunt iniializate explicit), pot fi ntotdeauna accesate direct; nu pot fi derivate n alte tipuri (sunt nchise sealed); sunt memorate n stiv (stack). Tipurile primitive din VB.NET sunt identificate prin intermediul cuvintelor cheie care sunt n realitate alias-uri pentru tipuri de structuri predefinite din spaiul de nume System (exemplu - tipul Byte este alias-ul pentru System.Byte). b) tipul referin: conine o referire ctre o alt adres de memorie la care se afl datele propriu-zise; un tip referin conine o adres valid ctre un obiect sau o adres vid (Nothing). Cu o referin vid este ilegal s se fac altceva dect s i se atribuie o valoare adecvat; nu pot fi iniializate automat cu valori implicite; referinele sunt pstrate de obicei n stiv; datele propriu-zise sunt pstrate n memoria dinamic (heap grmad, mulime ).. Acest aranjament permite colectorului de gunoaie s urmreasc un obiect care a fost marcat pentru a fi ters i s elibereze memoria alocat obiectului atunci cnd acesta nu mai este necesar. Variabilele reprezint o zon din memoria intern n care este stocat o valoare de un anumit tip, care poate fi modificat n timp: o variabil este descris printr-un nume, un tip de dat i o valoare -lucrul cu variabilele de memorie impun declararea acestora i iniializarea lor. Variabila reprezint o zon din memoria intern n care este stocat o valoare de un anumit tip, care poate fi modificat n timp. O variabil este definit: printr-un calificativ de acces; printr-un nume (identificator); printr-un tip de dat; printr-o valoare. Declararea variabilei [calificator de acces] numeVariabil [As tipData] [=valoare iniial] Definirea variabilei presupune:alocarea unei zone n memoria intern; stabilirea unui identificator (denumire); specificarea tipului de dat pe care o conine; precizarea calificativului de acces. Declararea unei variabile stabilete: durata de via (perioada de timp n care variabila poate fi utilizat); domeniul de vizibilitate (zona din program din care variabila este vizibil (accesibil, cunoscut). Domeniul de vizibilitate este dependent de locul n care variabila a fost definit i de nivelul de protecie stabilit); nivelul (drepturile) de acces (definete nivelul de protecie (de acces). Precizeaz permisiunea de acces a variabilei din afara zonei n care a fost definit). Drepturile de acces sunt : public, private, protected (accesibil n clasa n care a fost definit i n cl asele derivate din aceasta), friend (\frend\) (accesibil numai n proiectul unde a fost definit), protectedFriend (combinaia celor dou). Iniializarea unei variabile nseamn setarea sa cu o valoare iniial. Iniializarea poate fi: realizat automat de compilator cu valoarea implicit (n cazul variabilei de tip valoare, dac programatorul nu o iniializeaz n mod explicit); trebuie realizat explicit de programator (n cazul variabilei de tip referin). Constantele descriu zone din memoria intern n care sunt stocate valori de un anumit tip care nu pot fi modificate. O constant este definit astfel: [calificator de acces] Const numeConstant [As tipData] =valoare -vizeaz: a) durata de via (perioada de timp n care variabila poate fi utilizat); b) domeniul de vizibilitate (zona din program din care variabila este vizibil (accesibil, cunoscut)); c) nivelul (drepturile) de acces (definete nivelul de protecie (de acces)). Drepturile de acces sunt : public, private, protected (accesibil n clasa n care a fost definit i n clasele derivate din aceasta), friend (\frend\) (accesibil numai n proiectul unde a fost definit), protectedFriend declararea variabilelor [calificator de acces] Dim numeVariabil [As tipData] [=valoare iniial] constantele -descriu zone din memoria intern n care sunt stocate valori de un anumit tip care nu pot fi modificate se definesc n VB.NET prin: [calificator de acces] Const numeConstant [As tipData] =valoare iniial

Ce sunt funciile de sistem (intrinseci) n VB.NET? -funciile VB.NET sunt uniti lexicale definite de creatorul limbajului care execut anumite prelucrri; care pot fi apelate pentru a executa anumite prelucrri predefinite -n VB numele unei funcii trebuie urmate de paranteze rotunde (), ntre care se introduc parametrii actuali dac este cazul i sunt permise doar n interiorul subprogramelor (proceduri sau funcii) -deoarece funciile ntorc prin numele su o valoare, aa cum am mai precizat, funciile pot fi utilizate i ca operanzi ntr-o expresie Care sunt principalele categorii de funcii intrinseci (de sistem) n VB.NET? a) Funcii pentru conversii de tipuri-permit conversia valorilor dintr-un tip de date n altul b) Funcii pentru operaii cu iruri de caractere -mai sunt pstrate n VB.NET din motive de compatibilitate cu versiunile anterioare ale limbajului VB -n VB.NET este de recomandat s se utilizeze metodele clasei String (IndexOf, Replace, Substring, ToLower, ToUpper, Trim, etc.) c) Funcii pentru operaii cu date calendaristice d) Funcii de informare -testeaz apartenena unei variabile la un anumit tip de dat e) Funcii pentru interaciunea cu utilizatorul final -cele mai utilizate sunt InputBox (p1, [p2],[p3]) i MsgBox(p4, [p5],[p6]) Unde: p1, p4-mesajul afiat; p2,p6 titlul ferestrei, p3-valoarea predefinit, p5-butoanele generate f) Funcii matematice g) Funcii financiare SUBPROGRAMELE-reprezint proceduri sau funcii definite de utilizator, formate din blocuri de instruciuni destinate realizrii mpreun a unor operaii pentru atingerea unui obiectiv -procedurile (numite i subrutine) sunt subprograme care nu returneaz valori -funciile sunt subprograme ca returneaz o valoare prin numele funcieisemntura unui subprogramnumele procedurii sau funciei i lista de parametrii avantajele utilizrii subprogramelor?-simplific programul (prelucrrile ca se repet se scriu o singur dat i apoi sunt apelate nu mai sunt inserate n program) -programele sunt mai uor de verificat i de ntreinut (se verific mai nti subprogramul i dup ce se constat c este corect poate fi utilizat cu ncredere; cnd se fac modificri acestea se fac doar n subprogramele afectate restul programului nu este afectat) -se ncurajeaz reutilizarea (sunprogramele pot fi utilizate n mai multe programe sau proiecte) definete o procedur (subrutin)Public/Private/Protected/Friend/ Sub numeSubrutina([List formali]) Instruciuni [Return ] End Sub -la apel se execut prelucrrile cuprinse ntre Sub i End Sub sau ntre Sub i prima instruciune Return/Exit ntlnit dup care prelucrarea va continua cu instruciunea urmtoare celei care a apelat-o -prelucrrile se fac asupra (cu valorile) parametrilor actuali (reali) transmii la apel apeleaz o procedura [Call] numeSubrutina([List parametrii actuali]) Cum se definete o funcie:Public/Private/Protected/Friend/ Sub numeFunctie([List parametrii _ formali]) [As tipRezultat] Instruciuni [Return expresie] End Function -la apel se execut prelucrrile cuprinse ntre Function i End Function sau ntre Function i prima instruciune Return/Exit ntlnit, dup care prelucrarea va continua cu instruciunea urmtoare celei care a apelat -o sau imediat dup locul apelului n cazul utilizrii n cadrul unei expresii -prelucrrile se fac asupra (cu valorile) parametrilor parametrii _

actuali (reali) transmii la apel -deoarece numeleFunctiei ntoarce un rezultat atunci: fie numele funciei va apare cel puin o dat n partea stng a unei expresii de atribuire, fi se va uti liza Retun expresie (expresia este cea care calculeaz i ntoarce rezultatul) apeleaz o funcie? [Call] numeFunctie([List parametrii actuali]) -cnd se ignor (nu se valorific) rezultatul returnat de funcie [rezultat =] numeFunctie([List parametrii actuali]) cnd se valorific rezultatul returnat de funcie prin variabila rezultat sau n cadrul unei expresii o clas n VB.NET?-este: un model, un ablon, un tipar, o descriere a mai multor obiecte asemntoare -nu este: o colecie (mulime) de obiecte . Se defines n fiiere clas; n cadrul unui fiier declaraia clasei este posibil numai la nivel fiier sau la nivel clas; un fiier surs poate conine mai multe clase sintaxa de definire a unei clase n VB.NET[acces][MustInherit/NotInheritable][Partial] Class numeClasa[Inherits numeClasaBaza][Implements numeInterfata][Instructiuni]End Class Sub forma unor variabile, dup sintaxa: [acces] [Shared][ReadOnly] Dim ListaAtribute -atributele de nivel instan: numeObiect.numeAtribut -atributele de nivel clas: numeClasa.numeAtribut selectorii i modificatorii - reprezint: metodele specifice unei clase destinate redrii (citirii) valorilor unor atribute protejate selectorii i actualizrii (scrierii/setrii) valorilor unor atribute protejate modificatorii; asigur accesul controlat asupra datelor stocate n atribute; ofer posibilitatea definirii unor reguli (condiii) de validare a datelor la scriere- se mai numesc i proprieti (property) cu dou seciuni: Get pentru selector (citire); Set pen tru modificator (scriere)-sintaxa:[acces][ReadOnly/WriteOnly] Property nume ([Lista parametrii]) [As _ tipRezultat] [acces] Get[instructiuni]End Get[acces] Set (ByVal nouaValoare As tipDate [, listaParametrii])[instructiuni]End Set End Property structura alternativ generalizat= permite execuia selectiv a unui singur bloc de instruciuni ales dintre mai multe blocuri n funcie de o condiie (opiune) stabilit. O instruciune Select Case are aceleai posibiliti cu instruciunea If ... Then ... Else, dar ea face codul mai lizibil atunci cnd exist mai multe opiuni. Subprogramele definite de utilizator reprezint proceduri sau funcii definite de utilizator, formate din blocuri de instruciuni destinate realizrii mpreun a unor operaii pentru atingerea unui obiectiv. Procedurile (numite i subrutine) sunt subprograme care nu returneaz valori. Funciile sunt subprograme ca returneaz o valoare prin numele funciei. Numele procedurii sau funciei i lista de parametrii definesc semntura procedurii sau funciei. Avantajele utilizrii subprogramelor sunt: simplific programul (prelucrrile ca se repet se scriu o singur dat i apoi sunt apelate nu mai sunt inserate n program);programele sunt mai uor de verificat i de ntreinut (se verific mai nti subprogramul i dup ce se constat c este corect poate fi utilizat cu ncredere; cnd se fac modificri acestea se fac doar n subprogramele afectate restul programului nu este afectat); se ncurajeaz reutilizarea (subprogramele pot fi utilizate n mai multe programe sau proiecte). Procedurile i funciile utilizatorului, n cadrul claselor se numesc metode. Definirea i apelul unei proceduri (subrutine)Definirea unei proceduri Public/Private/Protected/Friend/numeSubrutina ([List parametrii _ formali] Instruciuni [Return] End Sub

la apel se execut prelucrrile cuprinse ntre Sub i End Sub sau ntre Sub i prima instruciune Return/Exit ntlnit dup care prelucrarea va continua cu instruciunea urmtoare celei care a apelat-o. prelucrrile se fac asupra (cu valorile) parametrilor actuali (reali) transmii la apel Apelul unei proceduri [Call] numeSubrutina([List parametrii actuali]) Metode:-sunt proceduri sau funcii ncorporate n clase care programeaz comportamentul dinamic al obiectelor instaniate din clasa respectiv; o metod poate accesa orice atribut i poate apela orice alt metod a clasei indiferent de calificatorul de acces al acesteia; variabilele i constantele declarate la nivelul unei metode sunt valabile (accesibile, vizibile) numai n interiorul acesteia. tablou = o variabil de memorie ce conine o list (o mulime) de elemente de acelai tip, stocate n zone contiguie de memorie; Un tablou se caracterizeaz prin: -nume (numele variabilei) -rang/dimensiune (numrul de dimensiuni/ indeci): unidimensional (1 index), bidimensional (2 indeci); tridimensional (3 indeci), etc. Pentru fiecare dimensiune tabloul va avea alocat un index. Indexul pentru fiecare dimensiune are o valoare de nceput/limita inferioar (n VB.NET 0) i o limit superioar (egal cu numrul de valori ale unei dimensiuni - 1) -capacitate (numrul de elemente care pot fi memorate/nregistrate) n tablou), care definete numrul maxim de elemente care pot fi memorate. Exemplu capacitatea tabloului tridimensional VanzariJudetMagazinLuna(39,15,11) care va memora vnzrile unei firme pentru 40 de judee, maxim 16 magazine n jude pe luni (12) va fi: 40 x 16 x 12 = 7.680 celule (sau elemente) -tipul/natura elementului memorat (toate elementele sunt de acelai tip) [Acces] numeTablou([listIndeci]) As tipData - listIndeci: conine valorile maxime ale indecilori pentru fiecare dimensiune. La definire lista poate lipsi dar este obligatorie nainte de utilizare. Dac la definire lista lipsete, n VB se considera c tabloul este definit dinamic (adic) putea fi redimensionat dup necesiti. In VB.NET toate tablourile sunt dinamice, pot fi redimensionate. O colectie de obicete-o variabil de memorie ce conine o mulime (o list) de elemente de tip obiect stocate n memoria intern n zone neadiacente de memorie 2) Care sunt etapele necesare definirii, ncrcrii i utilizrii (valorificrii) unei colecii ArrayList de obiecte? se definesc clasele, se definete colecia, se ncarc obiectele n colecie, se instaniaz un obiect al unei clase, se preiau valorile proprietilor (uneori i ale atributelor neprotejate) ale obiectelor i se adaug n colecie, se actualizeaz colecia -se terg anumite obiecte din colecie -se adaug noi obiecte n colecie -se modific valorile unor proprieti ale unui obiect din colecie, se valorific (se utilizez) datele unei colecii, se parcurge colecia i se fac prelucrrile solicitate pe baza datelor din colecie Exist mai multe tipuri de erori: - erori n faza de proiectare (erori de sintax) care survin cnd o comand este scris greit (cuvinte cheie incorecte, parametrii lips, expresii incorecte, etc.) -erori de execuie (detectabile) care sunt cauzate de situaii necontrolabile de program (mprirea la zero, un fiier lips, un fiier deja activ, depirea sau violarea memoriei, etc.) - erori de logic care duc la obinerea de rezultate incorecte sau imprevizibile 2) Care este asemnarea i deosebirea dintre o eroare i o excepie? Limbajele de programare tradiionale aveau un foarte bine dezvoltat concept care cuprindea noiunea de eroare (error). Se considera ca fiind eroare orice situaie n care programul nu evolua corect. Ulterior, platformele moderne (C++, Java) au introdus un nou concept excepia (excepion) n aceste noi condiii (din punctul strict de vedere al programrii): -eroarea ine strict de programator, atunci cnd nu gestioneaz n mod corect structurile aplicaiei (exemplu: a nu prevedea faptul c numrul la care se realizeaz mprirea poate fi zero poate fi considerat o eroare)

-excepia este o situaie care nu se ncadreaz n modul de execuie uzual sau dorit al aplicaiei, ns nu nseamn c apare mai rar sau mai des dect situaia situaia dorit de proframator sau utilizator (exemplu: dac stabilim c numrul la care se realizeaz mprirea nu poate fi zero, atunci cazul n care utilizatorul introduce valoarea zero este o excepie) tratate AUTOMAT excepiile n VB.NET?-atunci cnd apare o exceie programul se ntrerupe i sistemul afieaz o caset ajuttoare pentru a depista cauza anomaliei Cum ar trebui tratate excepiile de programator n VB.NET?Programatorul ar trebui s prevad posibilitatea apariiei unor asemenea anomalii i s le trateze prin program prin mecanisme specifice Excepiile sunt obiecte derivate din clasa System.Exception, care ofer dou proprieti mai importante: Message conine o descriere textual a erorii; Source red numele aplicaiei sau al obiectului care a generat eroarea 4) Ce ofer VB.NET pentru tratarea excepiilor? VB.NET ofer o modalitate structurat de interceptare i tratare a excepiilor, bazat pe structura Try Catch Finally cu sintaxa Try[instructiuni monitorizate][Exit Try] [Catch NumeExceptie [As TipExcepte][instructiuni de tratare a tipului de exceptie][Exit Try] Finally[instructiuni care se executa la sfarsit] End Try Ce alte posibiliti de tratare a erorilor mai exist n VB.NET?A) Exit posibilitatea de a ne crea propria clas pentru tratarea erorilor, evident o clas derivat dintr-o clas a sistemului, de regul derivat din clasa System.Exception.B) Vom avea posibilitatea s generm propriile excepii atunci cnd sunt ndeplinite anumite condiii. Generarea aruncarea unei excepii se poate face prin instruciunea:Throw exceptie, unde excepie reprezint o instan a unei clase de excepie. n momentul apariiei sau generrii unei excepii, execuia programului se oprete n punctul respectiv i se transfer blocului Catch (dac este definit, dac nu, aa cum artat mai sus apare o caset de excepie i progranul se ncheie). Generarea excepiilor se poate folosi la implementarea mai riguroas a validrilor de integritate a proprietilor, cnd n loc s afim un mesasj de eroare vom ntrerupe controlat execuia programului la introducerea unor date incorecte i nu vom permite continuarea programului dect dup introducerea corect a datelor Tipuri de erori: Exist mai multe tipuri de erori: erori n faza de proiectare (erori de sintax) care survin cnd o comand este scris greit (cuvinte cheie incorecte, parametrii lips, expresii incorecte, etc.); erori de execuie (detectabile) care sunt cauzate de situaii necontrolabile de program (mprirea la zero, un fiier lips, un fiier deja activ, depirea sau violarea memoriei, etc.); erori de logic care duc la obinerea de rezultate incorecte sau imprevizibile. Tratarea erorilor de execuie: Erorile de rulare (execuie) se mai numesc i detectabile, deoarece programul Visual Basic sesiseaz c s-a produs o eroare, dnd posibilitatea detectrii i soluionrii ei. Public MustInherit Class Animal 'definirea atributelor (proprietatilor) locale Private m_greutate As Single Private m_culoare As String 'utilizarea selectorilor si modificatorilor Public Property greutate() As Single 'citire Get greutate = m_greutate End Get 'scriere Set(ByVal nouaGreutate As Single) m_greutate = nouaGreutate End Set End Property Public Property culoare() As String

Get culoare = m_culoare End Get Set(ByVal value As String) m_culoare = value End Set End Property 'definirea metodelor 'metoda concreta Public Sub Respira() MsgBox("Inspira si expira") End Sub 'metoda concreta Public Sub Doarme() MsgBox("Puf..., pufff") End Sub 'metoda abstracta Public MustOverride Sub Mananca()

End Class 'definirea unei clase abstracte derivate Public MustInherit Class Feline 'definirea clasei de baza (parinte) Inherits Animal 'dfinire atribute Private m_ghiareCuPernute As String 'definire selectori si modificatori Public Property ghiareCuPernute() As String Get ghiareCuPernute = m_ghiareCuPernute End Get Set(ByVal value As String) m_ghiareCuPernute = value End Set End Property 'definirea metodelor 'metoda abstracta Public MustOverride Sub Vaneaza() 'metoda concreta Public Sub SeFuriseaza() MsgBox("P..p..") End Sub End Class 'Definirea unei clase derivate concrete Public Class Pisica 'Definirea clasei parinte Inherits Feline 'Definire meta proprie Public Sub Toarce() MsgBox("Sfrr..sfr") End Sub

'Rescrierea metodei clasei Animal Public Overrides Sub Mananca() MsgBox("Roan..roan") End Sub 'Rescrierea metodei clasei Feline Public Overrides Sub Vaneaza() MsgBox("Zdup..") End Sub End Class Public Class Form1 Private unAngajatRegie As New AngajatRegie Public Class Persoana 'Definre atribute Private m_Nume As String Private m_Sex As String Private m_DataNasterii As Date 'Definire proprietati Public Property Nume As String Get Nume = m_Nume End Get Set(ByVal value As String) If value <> "" Then m_Nume = value Else MsgBox("Nume incorect") End If End Set End Property Public Property DataNasterii() As Date Get DataNasterii = m_DataNasterii End Get Set(ByVal value As Date) m_DataNasterii = value End Set End Property 'Definire metode Public Function dCalculVarstaAni() As Integer dCalculVarstaAni = Now().Year - m_DataNasterii.Year If Now().Month < m_DataNasterii.Month Then dCalculVarstaAni = Now().Year - m_DataNasterii.Year - 1 End If If (Now().Month = m_DataNasterii.Month) And (Now().Day < m_DataNasterii.Day) Then dCalculVarstaAni = Now().Year - m_DataNasterii.Year - 1 End If End Function End Class Public Class Angajat 'Definire clasa parinte Inherits Persoana 'Defire atribute Private m_DataAngajarii As Date

'definire proprietati Public Property DataAngajarii As Date Get DataAngajarii = m_DataAngajarii End Get Set(ByVal value As Date) m_DataAngajarii = value End Set End Property 'Definire metode Public Overridable Function dCalculSalariu() As Decimal dCalculSalariu = 0 End Function Private Function iCalculVechimeAni() As Integer iCalculVechimeAni = Now().Year - m_DataAngajarii.Year If Now().Month < m_DataAngajarii.Month Then iCalculVechimeAni = Now().Year - m_DataAngajarii.Year - 1 End If If (Now().Month = m_DataAngajarii.Month) And (Now().Day < m_DataAngajarii.Day) Then iCalculVechimeAni = Now().Year - m_DataAngajarii.Year - 1 End If End Function Public Function dCalculSporFidel() As Decimal If iCalculVechimeAni() >= 5 Then dCalculSporFidel = 0.15 ElseIf iCalculVechimeAni() >= 3 Then dCalculSporFidel = 0.1 Else dCalculSporFidel = 0 End If End Function End Class Public Class AngajatRegie 'Definire clasa parinte Inherits Angajat 'Definire atribute Private m_SalNegociat As Decimal Private m_OreAbsente As Integer 'Definire proprietati Public Property SalNegociat As Decimal Get SalNegociat = m_SalNegociat End Get Set(ByVal value As Decimal) m_SalNegociat = value End Set End Property Public Property OreAbsente As Integer Get OreAbsente = m_OreAbsente End Get Set(ByVal value As Integer) m_OreAbsente = value

End Set End Property 'Definire metode Public Overrides Function dCalculSalariu() As Decimal dCalculSalariu = m_SalNegociat - (m_SalNegociat / 168 * m_OreAbsente) End Function Public Overloads Function dCalculSalariu(ByVal fi As Decimal) As Decimal dCalculSalariu = dCalculSalariu() + dCalculSalariu() * fi End Function End Class Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim spor As Decimal MsgBox("data=" & Now()) With unAngajatRegie .Nume = InputBox("Tastati nume") .DataNasterii = InputBox("Tastati data nasterii") .DataAngajarii = InputBox("Tastati data anjajarii") .SalNegociat = InputBox("Tastati salariu negociat") .OreAbsente = InputBox("Tastati ore absente") End With spor = unAngajatRegie.dCalculSporFidel MsgBox("Salariatul " & unAngajatRegie.Nume & " are varsta de " & unAngajatRegie.dCalculVarstaAni & " ani, un salariul fara spor de fidelitate de " & unAngajatRegie.dCalculSalariu & " lei iar cu spor este de " & unAngajatRegie.dCalculSalariu(spor)) End Sub End Class

S-ar putea să vă placă și