Sunteți pe pagina 1din 6

ROMNIA

Universitatea Politehnica din Bucuresti


Facultatea de Antreprenoriat, Ingineria si Managementul
Afacerilor

Programarea Calculatoarelor - Laboratorul 1

Responsabil: l.dr.ing. Bogdan ignoaia, 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.Obiectivul programarii
calculatoarelor este de a crea programe care corespund unui comportament anume.Scrierea

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 claritii 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.

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:


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. O mare problem a programrii structurate 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. A aprut astfel
conceptul de clas. Clasa realizeaz, n spe, ceea ce am vzut mai nainte: grupeaz datele
i unitile de prelucrare a acestora ntr-un modul, unindu-le astfel ntr-o entitate mult mai
natural. Clasa, pe lng faptul c abstractizeaz foarte mult analiza/sinteza problemei, are
proprietatea de generalitate, ea desemnnd o mulime de obiecte care mpart o serie de
proprieti.De exemplu: Clasa "floare" desemneaz toate plantele care au flori, precum clasa
"Fruct" desemneaz toate obiectele pe care noi le identificam ca fiind fructe. Bineneles, n
implementarea efectiv a programului nu se lucreaz cu entiti abstracte, precum clasele ci
se lucreaz cu obiecte, care sunt "instanieri" ale claselor. Altfel spus, plecnd de la exemplul
de mai sus, dac se construiete un program care s lucreze cu fructe, el nu va prelucra
4

entitatea "fruct" ci va lucra cu entiti concrete ale clasei "fruct", adic "mr", "par",
"portocal", etc.Apare ns urmtoarea problem: "cum se trece de la o structur general la
una particular, mai precis ce nseamn efectiv procesul de instaniere?". Instanierea
(trecerea de la clas la obiect) nseamn atribuirea unor proprieti specifice clasei, astfel
nct aceasta s indice un obiect anume, care se difereniaz de toate celelalte obiecte din
clas printr-o serie de atribute. Dac vom considera ca "fruct_exotic" care desemneaz clasa
tuturor fructelor exotice conine proprietatea "culoare" atunci atribuind acesteia valoarea
"galben" noi vom crea o nou mulime( clasa fructelor exotice care au culoarea galben ) care
este o subclas a clasei "fruct_exotic", deci realizm astfel o particularizare. Mai mult dect
att, dac vom aduga noi i noi atribute vom individualiza clasa astfel nct 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


informaiei pe care o manipuleaz, adic posibilitatea de a se concentra asupra
esenialului. Fiecare obiect n sistem are rolul unui actor abstract, care poate
executa aciuni, i poate modifica i comunica starea i poate comunica cu alte
obiecte din sistem fr a dezvlui cum au fost implementate acele facilitai. Procesele,
funciile 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 informaii: Asigur faptul c obiectele nu pot


schimba starea intern a altor obiecte n mod direct (ci doar prin metode puse la
dispoziie 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 interaciona cu el.

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
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.

Motenirea Organizeaz i faciliteaz polimorfismul i ncapsularea, permind


definirea i crearea unor clase specializate plecnd de la clase (generale) deja definite
- acestea pot mprti (i extinde) comportamentul lor, fr 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 motenire permite
construirea unor clase noi, care pstreaz caracteristicile i comportarea, deci datele i
funciile membru, de la una sau mai multe clase definite anterior, numite clase de
baz, fiind posibil redefinirea sau adugarea unor date i funcii noi. Se utilizeaz
ideea: Anumite obiecte sunt similare, dar n acelai timp diferite. O clas
motenitoare a uneia sau mai multor clase de baz se numete clas derivat. Esena
motenirii const n posibilitatea refolosirii lucrurilor care funcioneaz.

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: Programarea calculatoarelor i limbaje de programare aplicaii de
laborator, Bogdan ignoaia, Nirvana Popescu, Editura Universitar, Bucureti, ISBN: 978606-591-659-3, 134 pagini, 2013;
http://www.curs.cs.pub.ro, www.wikipedia.org.

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