Sunteți pe pagina 1din 16

PROGRAMARE 1

PREZENTAREA GENERAL A MEDIULUI DE DEZVOLTARE


1. Mediul de dezvoltare Eclipse
La sfritul anilor 90, IBM a nceput dezvoltarea a ceea ce este cunoscut azi ca
Eclipse. n noiembrie 2001, s-a decis s se adopte licenierea open source i modelul
acestei tehnologii pentru a accelera adoptarea Eclipse ca platform global de dezvoltare.
Principiul de baz al consoriului a fost urmtorul: comunitile open-source vor dirija
programarea, iar consoriul comercial va promova produsul respectiv. Aceasta era o nou
si interesant aplicaie a modelului open source, bazat pe o platform gratuit i
deschis. Pentru mai multe informaii accesai:
www.eclipse.org
http://www.ibm.com/developerworks/rational/library/nov05/cernosek/
Eclipse este mediul de dezvoltare integrat (IDE Integrated Development
Environment) pe care l vom folosi pentru scrierea programelor C. El permite dezvoltarea
de aplicaii n mai multe limbaje de programare: Java, C, C++, C#. n cadrul laboratorului
vom scrie programe C de tip consol.
Pentru instalarea versiunii de lucru trebuie accesate urmtoarele link-uri:
a) Jave SE Runtime Environment (JRE)
b) Mediul de dezvoltare Eclipse
http://eclipse.org/downloads
Se selecteaz IDE (Integrated Development Environment) pentru C
Eclipse IDE for C/C++ Developers
c) Pentru cazul n care se lucreaz pe sistemul de operare Windows, trebuie instalat
compilatorul de C (MinGW care este varianta pentru Windows a gcc compilator i link
editor pentru C/C++) i eventual debuggerul (programul de depanare) gdb. n cazul n
care se lucreaz pe Linux sau MacOS att gcc, ct i gdb vin instalate odat cu sistemul
de operare.
Pentru informaii suplimentare referitoare la instalarea Eclipse se acceseaz pagina
Welcome a mediului (Help->Welcome) se alege seciunea Tutorials, apoi C/C++
Development i din panoul din stnga C/C++ development User Guide -> Before you
begin.
2. Pornirea aplicaiei
n primul rnd se face precizarea c explicaiile care urmeaz (n cazul n care nu se
specific altfel sunt valabile pentru toate cele trei sisteme de operare amintite mai sus
(Windows, Linux, MacOS)
Pentru a lansa mediul de dezvoltare Eclipse se face dublu clic pe fiierul eclipse
existent n directorul n care a fost instalat aplicaia sau pe icoana corespunztoare de pe
desktop. Apare fereastra Workspace Launcher (prezentat n Figura 1). Aceast
fereastr permite alegerea directorului n care vor fi stocate proiectele realizate. n
exemplul din Figura 1 se stabilete ca director de lucru directorul c:\Temp. Facei clic pe
OK pentru a confirma alegerea directorului de lucru.
1

PROGRAMARE 1

Figura 1. Fereastra Workspace Launcher.


Dup nchiderea ferestrei Workspace Launcher apare fereastra Welcome (Figura 2)
dac mediul Eclipse este lansat pentru prima dat, sau fereastra mediului de dezvoltare
(prezentat n Figura 3). Fereastra Welcome poate fi reafiat din Help->Welcome.

Figura 2. Fereastra Welcome a mediului Eclipse


nchiderea ferestrei Welcome are ca efect apariia ferestrei mediului de dezvoltare
(Figura 3).

PROGRAMARE 1

Figura 3. Fereastra mediului de dezvoltare


3. Crearea unui proiect
Pentru fiecare problem pe care trebuie s o rezolvm trebuie s crem un proiect.
Pentru a crea un proiect nou alegem File -> New -> C Project (Figura 4)

Figura 4. Deschiderea unui proiect C nou

PROGRAMARE 1

Selectarea opiunii C Project are ca efect afiarea ferestrei C New Project wizard,
dup cum este prezentat n Figura 5.
n cmpul Project Name se introduce numele proiectului (n Figura 5 este
MyFirstProgram). Pe msur ce se tasteaz numele programului, cmpul Directory devine
c: \ Temp \ MyFirstProgram. Se alege tipul proiectului (din meniul Project types) ca fiind
Empty Project. Se poate alege tipul de compilator pe care l folsim din meniul Toolchain.
n acest caz singurul compilator instalat este MinGW GCC dup cum este prezentat n
Figura 5 (care este compilatorul implicit n aceast instalare). Pentru Linux trebuie selectat
Linux GCC, iar pentru MacOSX GCC.

F
Figura 5: Deschiderea unui nou proiect cu numele MyFirstProgram
Se selecteaz Finish pentru a finaliza crearea proiectului C.
Se deschide proiectul n perspectiv C. O perspectiv definete setarea iniial a
modului de vizualizare n fereastr. Perspectiva controleaz ceea ce apare n anumite
meniuri i bare de instrumente.
Proiectul este creat i deschis, ar trebui s vedem fereastra Project explorer n
partea stng. De aici se pot crea sau deschide fiierele proiectului. Iniial proiectul
conine (n mod implicit) fiierele header de bibliotec disponibile (Figura 6).

PROGRAMARE 1

Figura 6. Fereastra iniial a proiectului


Putem stabili un stil de scriere pentru programele sursa din Window->Preferences

Figura 6a. Alegerea opiunilor mediului


Pentru lucrrile de laborator din acest semestru vom utiliza stilul BSD/Allman
(built-in) (Figura 6b).

PROGRAMARE 1

Figura 6b. Alegerea stilului de scriere a codului.


3.1. Adugarea de fiiere la proiect
Pentru a putea scrie cel mai simplu program C n Eclipse, trebuie s adugm
fiiere surs / header. Pentru nceput vom aduga directorul src, iar n acest director vom
aduga fiierele proiectului. Pentru crearea directorului src vom executa urmtorii pai
Selectare folder MyFirstProgram n Project Explorer
File / New / Folder
Selectare Folder name: src
Acum vom aduga urmtoarele fiiere n directorul src:
FirstProgramMain.c fiierul care va conine funcia main
MyFunction.h fiierul care va conine definiia funciilor
MyFunction.c . fiierul care va conine implementarea funciilor

PROGRAMARE 1

Figura 7: Creare director src.


Pentru adugarea celor trei fiiere vom executa urmtorii pai:
1. Adugare fiier header (Figura 8):
Selectare folder src n Project Explorer
File / New / HeaderFile
Scriei numele fiierului header Header File: MyFunction.h - figura 8.

Figura 8: Adaugare fiier header.


2. Adugare fiiere surs (Figura 9)
Selectare folder src n Project Explorer
File / New / SourceFile
Scriei numele fiierului surs Source File: MyFunction.c - figura 7
File / New / SourceFile
Scriei numele fiierului surs Source File: FirstProgramMain.c

PROGRAMARE 1

Figura 9. Adugare fiier surs.


Atenie: cnd adugai fiiere header sau fiiere surs este obligatoriu s precizai i
extensia acestora.
3.2 Scrierea primului program
S se scrie un program care citete de la tastatur trei numere ntregi i afieaz
maximul lor.
Selectai din Project Explorer fiierul care vrei s-l editai (clic pe el), apoi scriei
codul C dorit:

Figura 10. Eclipse IDE dup adugarea fiierelor proiectului

PROGRAMARE 1

Mai jos este listat codul surs din cele trei fiiere ale aplicaiei.
Observaie: Fiecare student va completa cu numele su linia de comentariu care se
refer la autorul programului.
/*
* MyFunction.h - Proiect MyFirstProgram
*
*
Creat pe 11.02.2009
*
Autor <nume autor program>
* Copyright 2009
*
* Descriere Fisierul cu prototipurile functiilor
* pentru primul proiect
*/
#ifndef MYFUNCTION_H_
#define MYFUNCTION_H_
int maxim(int x, int y, int z);
#endif /* MYFUNCTION_H_ */
/*
* MyFunction.c - Proiect MyFirstProgram
*
*
Creat pe 11.02.2009
*
Autor <nume autor program>
* Copyright 2009
*
* Descriere: Functiile pentru primul proiect
*/
#include "MyFunction.h"
/*
* maxim Functie pentru determinarea maximului dintre numere
*
intregi
* Parametri de intrare: trei numere intregi
* Parametri de iesire: maximul dintre cele trei numere
*/
int maxim(int x, int y, int z)
{
int nrMaxim;
if (x > y)
{
nrMaxim = x;
}
else
{
nrMaxim = y;
}
if(nrMaxim < z)
{
nrMaxim = z;
9

PROGRAMARE 1

}
return nrMaxim;
}
/*
* FirstProgramMain.c - Proiect MyFirstProgram
*
*
Creat pe 11.02.2009
*
Autor <nume autor program>
* Copyright 2009
*
* Descriere: Fisierul cu functia main pentru primul proiect
*
de calculare a maximului dintre 3 numere
*/
#include <stdio.h>
#include "MyFunction.h"
int main(void)
{
int nr1, nr2, nr3;
int max;
printf("Citeste primul numar: ");
scanf("%d", &nr1);
printf("Citeste al doilea numar: ");
scanf("%d", &nr2);
printf("Citeste al treilea numar: ");
scanf("%d", &nr3);
max = maxim(nr1, nr2, nr3);
printf("Cel mai mare numar este %d\n", max);
return 0;
}
3.3 Compilarea i rularea proiectului. Detectarea erorilor.
Pentru a compila proiectul selectm din meniul principal Project Build Project.
Atenie: ceea ce se compileaz este codul de la ultima salvare. De aceea salvai
ntotdeauna nainte de compilare: CTRL + S.
Dac sunt detectate erori de compilare, n partea de jos a ecranului va aprea
fereastra Problems. S introducem intenionat o eroare, de exemplu, putem nlocui linia
scanf(%d, &nr); cu scanf(%d, &nr) scond ;. La compilare, compilatorul i d
seama c lipsete ; i afieaz n fereastra Problems urmtorul mesaj:

10

PROGRAMARE 1

Figura 11. Compilare cu erori


Atenie: se observ X - ul rou cu care este marcat att fiierul, ct i linia unde a
aprut eroarea.
Dac dm dublu-clic pe mesajul de eroare, cursorul se va deplasa la linia de cod
coninnd eroarea. n general s-a observat urmtoarea regul eroarea trebuie cutat ori
pe linia afiat n error list, ori cu o linie mai sus. n exemplul nostru, mesajul de eroare ne
duce cu o linie mai jos.
Dup compilare, link-editare i eliminarea tuturor erorilor lansarea n execuie se poate
face (pentru Windows) n dou moduri:
A. Folosind Command prompt din Windows (cmd.exe)
pornim cmd.exe: Start /Run

Figura 12. Rulare cmd.exe


din linia de comand a aplicaiei cmd, folosind comanda MS-DOS cd (change
directory), setm directorul n care se gsete programul executabil (fiierul de
tip exe).
Alte comenzi MS-DOS utile:
type <nume_fisier> - listeaz pe monitor coninutul fiierului <nume_fisier>
dir listeaz toate fiierele din directorul curent
lansm n execuie fiierul exe rezultat n urma link-editrii tastnd numele dat
proiectului: MyFirstProgram
Observaie: pentru fiierele de tip exe (executabile) nu este necesar indicarea
extensiei atunci cnd sunt lansate n execuie.

B. Folosind Total Commander


lansm n execuie Total Commander i ne poziionm pe subdirectorul Debug
al directorului n care se gsete programul surs (Figura 13).
11

PROGRAMARE 1

Figura 13. Fereastr Total Commander

Selectm din meniul Command Run Dos (Figura 14).

Figura 14. Lansarea n execuie a MS-DOS

Apare fereastra MS-DOS din Figura 15.

Figura 15. Fereastera MS-DOS

12

PROGRAMARE 1

Se lanseaz n execuie prin tastarea numelui programului (aici p1). Numele


programului coincide ntotdeauna cu numele proiectului. n Figura 16 este
fereastra MS-DOS n care s-a executat programul p1 (care cere numele
utilizatorului i afieaz mesajul Primul program in C)

Figura 16. Lansarea n execuie i rularea programului p1


4. Deschiderea unui proiect existent
Pentru a ncrca un proiect existent se vor executa urmtorii pai:
Selectai File / Import
Selectai General / Existing Projects ca n figura de mai jos. Apsai butonul Next.

Figura 17. Deschiderea unui proiect existent

Apsai butonul Browse i selectai directorul n care se afl aplicaia:


C:\Temp\MyFirstProgram
Bifai proiectele dorite din lista Projects. n cazul nostru avem doar un proiect n
directorul specificat Figura 18.

13

PROGRAMARE 1

Figura 18. Selectare proiecte.

Facei clic pe Finish pentru a ncrca proiectul.

5. Utilizarea debuger-ului
Debuger-ul din acest mediu integrat este puternic i uor de folosit. Pentru a starta
aplicaia n modul debug:
Clic Run / Debug (F11).
n acest moment vei fi ntrebai dac dorii s deschidei perspectiva debug. O
perspectiv definete setarea iniial a modului de vizualizare n fereastr.
Perspectiva Debug conine moduri de vizualizare ce sunt folosite pentru
depanare de programe (clic pe yes). n acest moment aplicaia se va deschide
n modul debug dup cum este prezentat n Figura 19.:

Figura 19. Perspectiva Debug.


14

PROGRAMARE 1

Acum putem trasa aplicaia pas cu pas. Exist cteva butoane pe care le vom utiliza
pentru a depana proiectul nostru (meniul Run):
o Butonul "Resume" - F8 este folosit pentru a relua executarea pn cnd se
termin sau ntlnete un alt breakpoint.
o Butonul "Stop" CTRL-F2 va opri procesul de depanare.
o Butonul "Step into" F5 va executa codul linie cu linie i va intra n metodele
care vor fi apelate. Altfel, se va comporta ca butonul "Step over".

o Butonul "Step over" F6 va executa codul linie cu linie fr a intra n


metode.
Apsai F5 i observai linia la care a ajuns programul, linia selectat este linia care
se execut cnd apsai F5. Cnd ai ajuns pe instruciunea scanf (citete un
numr de la tastatur) apsai nc o dat F5, apoi introducei valoarea primului
numr n consol ca n figura de mai jos:

Figura 20. Debug pas cu pas.

Variabile: uitai-v la cadrul dreapta sus la fereastra Variables aici vor aprea
valorile variabilelor. Parcurgei liniile de cod pas cu pas apsnd butonul Step over
(F5 ca o comand rapid), uitai-v n fereastra Variables. O dat ce o nou
variabil este iniializat va aprea acolo i atunci cnd ea i schimb valoarea, se
va actualiza automat.
Se vor introduce valorile nr1= 3, nr2 = 76, nr3 = 43. Observai c, apsnd F5 cnd
linia selectat este: printf("Cel mai mare numar este %d", maxim(nr1, nr2, nr3)); se
va trasa codul funciei maxim, urmrii ramurile de execuie ale algoritmului n
cadrul acestei funcii.
Putei pune un breakpoint pe o anumit linie:
o selectnd linia respectiv - de exemplu: printf("Citeste al doilea numar: ");
o apsnd CTRL + SHIFT + B sau meniul Run Toggle Breakpoint acum
aplicaia se va opri la fiecare execuie n mod debug la linia ce conine
breakpointul.

15

PROGRAMARE 1

Fiecare problem se va rezolva folosind un proiect care va conine:


- un fiier header cu prototipurile funciilor folosite
- un fiier cu funcia main
- un fiier cu funciile din program
(Dup modelul de la curs).
De asemenea, pentru fiecare problem se va face o analiz pentru identificarea
datelor de intrare i de ieire din program i din fiecare funcie, a algoritmilor folosii, ct i
a seturilor de date de test).

16

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