QReferate - referate pentru educatia ta.
Cercetarile noastre - sursa ta de inspiratie! Te ajutam gratuit, documente cu imagini si grafice. Fiecare document sau comentariu il poti downloada rapid si il poti folosi pentru temele tale de acasa.



AdministratieAlimentatieArta culturaAsistenta socialaAstronomie
BiologieChimieComunicareConstructiiCosmetica
DesenDiverseDreptEconomieEngleza
FilozofieFizicaFrancezaGeografieGermana
InformaticaIstorieLatinaManagementMarketing
MatematicaMecanicaMedicinaPedagogiePsihologie
RomanaStiinte politiceTransporturiTurism
Esti aici: Qreferat » Documente informatica

Programare modulara in limbajul C



Programare modulara in limbajul C


Scopul lucrarii
: Dezvoltarea si utilizarea unor module in limbajul C. 

Desfasurarea lucrarii: Se va proiecta si implementa un modul pentru gestionarea unor operatii specifice unui anumit domeniu. Se va utiliza acest modul pentru rezolvarea unei anumite aplicatii. Se vor crea cel putin trei fisiere:

un fisier header pentru interfata modulului

un fisier sursa pentru implementarea modulului



un fisier sursa pentru aplicatia care utilizeaza modulul.

Notiuni teoretice

Un modul sursa este o parte a codului sursa al programului, care se poate compila independent de restul programului. In urma compilarii rezulta modulul obiect. In cadrul unui modul sursa exista seturi de date si functii inrudite, care rezolva o subproblema. Prin functii inrudite putem intelege functii care utilizeaza in coumun un set de date. Modulele unui program se obtin in urma procesului de descompunere a unei probleme in subprobleme mai simple.

Programarea modulara  este paradigma de programare care are la baza utilizarea de module. Prin acest mod de programare se pun in valoare posibilitatile de "ascundere" a datelor si functiilor impotriva unor accese neautorizate din alte module. Astfel, datele statice declarate in afara functiilor modulului, pot fi utilizate in comun de acestea, dar nu pot fi accesate de catre functiile din alte module. Modularizarea unui program complex permite lucrul in echipa, permitand astfel o implementare si testare mai rapida. Modulele implementate pot fi utilizate ulterior pentru rezolvarea altor probleme.

In limbajul C, modulele sunt fisiere text (cu extensia .h sau .c) ce pot fi compilate separat. In mod uzual interfata modulului este plasata intr-un fisier header (extensii uzuale sunt: '.h' , '.hh'), in timp ce implementarea acestuia se va regasi intr-un fisier sursa (extensii uzuale sunt: '.cc', '.c'). Dependentele intre module sunt exprimate prin folosirerea directivelor de preprocesare '#include'.
    Variabilele globale se definesc fie la inceputul unui fisier sursa (.c), inaintea primei functii, fie intr-un fisier header (.h). In primul caz, variabilele sunt vizibile din locul in care au fost declarate pana la sfarsitul fisierului sursa respectiv. Daca programul are mai multe fisiere sursa, o variabila globala astfel definita intr-un fisier sursa poate fi utilizata in celelalte, daca este declarata ca externa. In cazul declararii intr-un fisier header  a unei variabile, aceasta este vizibila in toate fisierele care includ fisierul header.

Variabilele declarate in cadrul corpului unei functii sunt vizibile numai in cadrul functiei. Ele pot fi:

- automatice, alocate pe stiva in momentul executiei. Ele isi pierd valabilitatea la revenirea din functie. Declararea acestora este cea uzuala (char a; int x;);

- statice, alocate la compilare intr-o zona speciala. Se declara cu ajutorul cuvantului cheie static inaintea tipului variabilei (static int x;);

- variabile registru, alocate in registrele procesorului. Ele pot fi numai variabile int, char si pointer. Pentru declararea variabilelor registru se foloseste ajutorul cuvantului cheie register (register int x).

Reguli de modularizare:
1. Structura fiecarui modul trebuie sa fie suficient de simpla pentru a putea fi complet inteleasa.
2. Implementarea unui modul trebuie sa depinda doar de interfetele altor module, existand posibilitatea modificarii implementarii unui modul fara a avea cunostinte despre implementarea celorlalte module si fara a afecta comportarea acestora.
3. Detaliile sistemului care se presupune ca se vor modifica independent vor fi plasate in module diferite.
4. Singurele legaturi intre module vor fi acelea a caror modificare este improbabila.
5. Orice structura de date este incapsulata intr-un modul; ea poate fi accesata direct din interiorul modulului, dar nu poate fi accesata din afara modulului decat prin intermediul variabilelor globale continute in acel modul.


Teme propuse:

Sa se dezvolte un modul pentru operatii cu matrici cu coeficienti reali. Sa se utilizeze acest modul pentru determinarea matricii A la puterea n.

Sa se realizeze un program care cere introducerea unui sir de caractere si furnizeaza un meniu pentru a realiza urmatoarele operatii:

conversia sirului la litere mari

conversia la litere mici

adaugarea unui subsir la sirul dat

Sa se dezvolte un modul pentru operatii cu polinoame. Sa se utilizeze acest modul pentru determinarea celui mai mic divizor comun a doua polinoame

Sa se dezvolte un modul pentru operatii cu numere complexe. Sa se utilizeze acest modul pentru efectuarea operatiei de impartire a doua numere complexe.

Sa se dezvolte un modul pentru operatii cu matrici rare. Sa se utilizeze acest modul pentru determinarea matricii A la puterea n.

Sa se dezvolte un modul pentru operatii cu liste. Sa se utilizeze acest modul pentru rezolvarea urmatoarei aplicatii: Pentru concurentii unui concurs de admitere se cunosc urmatoarele informatii: nume, nota obtinuta. Sa se scrie un program care sa permita urmatoarele operatii:

creare listei cu concurenti;

sortarea listei dupa nota;

cautare in lista dupa nume;

separarea in doua liste (concurenti admisi si respinsi);

afisarea listelor.




Nu se poate descarca referatul
Acest document nu se poate descarca

E posibil sa te intereseze alte documente despre:


Copyright © 2024 - Toate drepturile rezervate QReferat.com Folositi documentele afisate ca sursa de inspiratie. Va recomandam sa nu copiati textul, ci sa compuneti propriul document pe baza informatiilor de pe site.
{ Home } { Contact } { Termeni si conditii }