programarea calculatoarelor
Post on 03-Feb-2016
213 Views
Preview:
DESCRIPTION
TRANSCRIPT
ROMÂNIA
Universitatea Politehnica din Bucuresti
Facultatea de Antreprenoriat, Ingineria si Managementul Afacerilor
Programarea Calculatoarelor - Laboratorul 1
Responsabil: Bogdan Ţigănoaia, bogdantiganoaia@yahoo.com
Obiectivele laboratorului sunt urmatoarele:
Introducere in programarea calculatoarelor si prezentarea notiunii de algoritm
Prezentarea notiunii de program
Limbaje de programare
1. Introducere in programarea calculatoarelor si prezentarea notiunii de algoritm
Programarea calculatoarelor este procesul de proiectare, implementare, testare, depanare a
codului sursa a programelor de calculator.Codul sursa este scris intr-un limbaj de programare
si poate fi o modificare a unei surse existente sau ceva complet nou.Obiectivele programarii
calculatoarelor este de a crea programe care corespund unui comportament anume.Scrierea
1
programelor (a codului sursa) necesita de cele mai multe ori o bogata expertiza in diferite
subdomenii, incluzand cunostinte de logica formala si algoritmi.
Notiunea de algoritm se refera la o succesiune de etape care se poate aplica mecanic pentru
rezolvarea unei clase de probleme. Pentru redactarea unui algoritm, putem folosi una din
urmatoarele mijloace:
Scheme logice
Pseudocod - este o scriere intermediară, menită să simplifice scrierea unui algoritm
într-un limbaj de programare i să ajute la realizarea clarită ii algoritmului, în timpș ț
scurt.
Mental, fara pseudocod sau scheme logice
Cerintele obligatorii pentru un algoritm sunt :
Claritate, algoritmul nu trebuie sa aiba ambiguitati
Generalitate, algorimul trebuie sa rezolve o intreaga clasa de probleme si nu
probleme particulare
Finitudine, algoritmul trebuie sa furnizeze un rezultat intr-un timp finit
Intrebare: O problema poate avea mai multi algoritmi de rezolvare? Care e cel mai
bun?
Obiectele cu care lucreaza algoritmii:
Date – de intrare, de iesire.
Dupa tipul datelor – intregi, reale, logice ( 0/1 sau False/True), caractere (‘a’), siruri
de caractere “abc”.
Constante – date din program care nu trebuie citite sau calculate – PI, e, etc.2
Variabile – au un nume unic, dar continutul nu ; Caracteristici ale variabilelor -
nume, tip, valoarea la un moment dat, adresa variabilei (locul in memorie).
Ex: x este de tip intreg, are valoare 10 si adresa la care se afla in memorie: 0xFF38
Expresii – sunt construite cu ajutorul constantelor, variabilelor si a operatorilor, fiind
de mai multe tipuri, ca si variabilele. Exemplu:10*x+2; x>y; x+y
Operatii - intrarea - preluarea unor date de la un dispozitiv de intrare si trecerea
unei date din memorie catre un dispozitiv de iesire (iesirea) ; decizia, atribuirea -
x=7; y=x+y ( se evalueaza expresia din dreapta atribuirii, valoarea obtinuta este
atribuita variabilei din stanga, care isi pierde vechea valoare).
2. Prezentarea notiunii de program si limbaje de programare
Prin program se intelege o descriere precisa si concisa a unui algoritm intr-un anumit
limbaj de programare.
Limbaje de programare:
Limbaje de nivel coborat, dependent de calculator:limbaj de asamblare (mnemonice
pentru operatii, simboluri pentru adrese, este un limbaj dependent de masina, greu de
programat)
Limbaje de nivel inalt, independente de structura calculatorului: Fortran -1955,
pentru probleme tehnico stiintifice, Cobol -1959, pentru probleme economice,
Programare structurata –’70, Programarea orientata obiect –‘80.
Programarea structurata – se refera la programarea top-down, adica se bazeaza pe
descompunerea unei probleme complexe in subprobleme mai simple numite module.
3
Teorema de structura a lui Bohm si Jacopini : Orice algoritm poate fi compus cu ajutorul
a trei structuri de calcul (fiecare va avea o singura intrare si o singura iesire):
structura secventiala - secventa
structura alternativa – decizia
structura repetitiva – ciclul
Programarea orientata obiect - POO: http://ro.wikipedia.org
Programarea orientată pe obiect (Programare Orientată Obiectual) este unul din cei mai
importan i pa i făcu i în evolu ia ț ș ț ț limbajelor de programare spre o mai puternică abstractizare
în implementarea programelor. Ea a apărut din necesitatea exprimării problemei într-un mod
mai natural fiin ei umane. O mare problemă a ț programării structurate era separarea datelor de
unită ile care prelucrau datele(subrutinele), ceea ce făcea foarte dificilă extinderea iț ș
între inerea unui program. Astfel s-a pus problema ca aceste două ț entită iț (date i subrutine)ș
să fie grupate într-un anumit mod, astfel încât subrutinele să " tie" în permanen ă ce dateș ț
prelucrează i, mai mult decăt atât, ele să formeze un modul, adică o unitate care separăș
implementarea de interfa ă, ceea ce implică posibilitatea refolosirii codului. A apărut astfelț
conceptul de clasă. Clasa realizează, în spe ă, ceea ce am văzut mai înainte: grupează dateleț
i unită ile de prelucrare a acestora într-un modul, unindu-le astfel într-o entitate mult maiș ț
naturală. Clasa, pe lângă faptul că abstractizează foarte mult analiza/sinteza problemei, are
proprietatea de generalitate, ea desemnând o mul ime de obiecte care împart o serie deț
proprietă i.De exemplu: Clasa "floare" desemnează toate plantele care au flori, precum clasaț
"Fruct" desemnează toate obiectele pe care noi le identificam ca fiind fructe. Bineîn eles, înț
implementarea efectivă a programului nu se lucrează cu entită i abstracte, precum clasele ciț
se lucrează cu obiecte, care sunt "instan ieri" ale claselor. Altfel spus, plecând de la exemplulț
de mai sus, dacă se construie te un program care să lucreze cu fructe, el nu va prelucraș 4
entitatea "fruct" ci va lucra cu entită i concrete ale clasei "fruct", adică "măr", "pară",ț
"portocală", etc.Apare însă următoarea problemă: "cum se trece de la o structură generală la
una particulară, mai precis ce înseamnă efectiv procesul de instan iere?". Instan iereaț ț
(trecerea de la clasă la obiect) înseamnă atribuirea unor proprietă i specifice clasei, astfelț
încât aceasta să indice un obiect anume, care se diferen iază de toate celelalte obiecte dinț
clasă printr-o serie de atribute. Dacă vom considera ca "fruct_exotic" care desemnează clasa
tuturor fructelor exotice con ine proprietatea "culoare" atunci atribuind acesteia valoareaț
"galben" noi vom crea o nouă mul ime( clasa fructelor exotice care au culoarea galbenă ) careț
este o subclasă a clasei "fruct_exotic", deci realizăm astfel o particularizare. Mai mult decât
atât, dacă vom adăuga noi i noi atribute vom individualiza clasa astfel încât să ajungem la unș
caz concret, care este Obiectul. Principiile de baza ale POO sunt urmatoarele:
• Abstractizarea – Este posibilitatea ca un program să ignore unele aspecte ale
informa iei pe care o manipulează, adică posibilitatea de a se concentra asupraț
esen ialului. Fiecare obiect în sistem are rolul unui “actor” abstract, care poateț
executa ac iuni, î i poate modifica i comunica starea i poate comunica cu alteț ș ș ș
obiecte din sistem fără a dezvălui cum au fost implementate acele facilita i. Procesele,ț
func iile sau metodele pot fi de asemenea abstracte, i în acest caz sunt necesare oț ș
varietate de tehnici pentru a extinde abstractizarea:
• Încapsularea – numită i ascunderea de informa ii: Asigură faptul că obiectele nu potș ț
schimba starea internă a altor obiecte în mod direct (ci doar prin metode puse la
dispozi ie de obiectul respectiv); doar metodele proprii ale obiectului pot accesaț
starea acestuia. Fiecare tip de obiect expune o interfa ă pentru celelalte obiecte careț
specifică modul cum acele obiecte pot interac iona cu el.ț
• Polimorfismul – Este abilitatea de a procesa obiectele în mod diferit, în func ie deț
tipul sau de clasa lor. Mai exact, este abilitatea de a redefini metode pentru clasele 5
derivate. De exemplu pentru o clasă Figura putem defini o metodă arie. Dacă Cerc,
Dreptunghi, etc. vor extinde clasa Figura, acestea pot redefini metoda arie.
• Mo tenirea ș – Organizează i facilitează polimorfismul i încapsularea, permi ândș ș ț
definirea i crearea unor clase specializate plecând de la clase (generale) deja definiteș
- acestea pot împărtă i ( i extinde) comportamentul lor, fără a fi nevoie de a-lș ș
redefini. Aceasta se face de obicei prin gruparea obiectelor în clase i prin definirea deș
clase ca extinderi ale unor clase existente. Conceptul de mo tenire permite construireaș
unor clase noi, care păstrează caracteristicile i comportarea, deci datele i func iileș ș ț
membru, de la una sau mai multe clase definite anterior, numite clase de bază, fiind
posibilă redefinirea sau adăugarea unor date i func ii noi. Se utilizează ideea:ș ț
”Anumite obiecte sunt similare, dar în acela i timp diferite”. O clasă mo tenitoare aș ș
uneia sau mai multor clase de bază se nume te clasă derivată. Esen a mo teniriiș ț ș
constă în posibilitatea refolosirii lucrurilor care func ionează.ț
Task 1: Scrieti pseudocodul pentru interschimbarea a doua variabile ce contin numere
reale.
Task 2: Scrieti pseudocodul pentru a rezolva o ecuatie de grad doi cu coeficienti reali.
Bibliografie: http://www.curs.cs.pub.ro, www.wikipedia.org
6
top related