This shows you the differences between two versions of the page.
poo-is:laboratoare:01 [2020/09/07 14:24] alexandru.ionita99 [Dev-C++] |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Laboratorul 01: Introducere ====== | ||
- | |||
- | ===== Introducere ===== | ||
- | |||
- | Bine ati venit la primul laborator al materiei Programare Orientata pe Obiecte! | ||
- | |||
- | Laboratorul de astazi are ca scop acomodarea voastra cu toate resursele necesare pentru un parcurs lin al materiei. | ||
- | Dupa cum vedeti, pe dreapta sunt dispuse mai multe sectiuni. Pe langa cele sugestive (Cursuri si Laboratoare), avem resursele puse la dispozitie pentru a va ajuta in abordarea materiei, atat din punct de vedere administrativ, cat si practic. | ||
- | |||
- | ===== Etapele initiale organizarii pentru aceasta materie sunt: ===== | ||
- | |||
- | * Intelegerea punctajului acordat, impreuna cu repartizarea sa. Asta implica si maniera distribuirii punctajului pentru orele de Laborator. Pentru mai multe detalii, click TODO. | ||
- | * Accesarea Catalogului Online, pentru a fi mereu la curent cu notele acordate, dar si eventualele neconcordante ce pot aparea. Accesul se face TODO. | ||
- | * Instalarea unui IDE (CodeBlocks SAU Dev C++) pentru a putea implementa laboratoarele. Pasii necesari sunt inclusi mai jos, in functie de preferinte. Se face mentiunea ca dintre cele doua, recomandarea echipei de POO este pentru Dev C++. | ||
- | * Setup-ul necesar pentru a implementa Assignment-urile Practice (Temele). Acesta implica niste pasi aditionali fata de setup-ul necesar pentru Laborator. Click TODO pentru toate detaliile necesare. | ||
- | * Surse aditionale de informatii, care va vor oferi explicatii aditionale asupra materiei. Acestea vin sub forma de CARTE (Link) sau Documentatii (Link). | ||
- | * Prezenta Temei 0, care are ca scop 'testarea' faptului ca ati reusit sa va faceti setup-urile practice necesare pentru a parcurge cu succes materia Programare Orientata pe Obiecte. Pentru detalii asupra Temei 0, click aici (TODO). | ||
- | |||
- | |||
- | Stim ca toate lucrurile pot parea intimidante la inceput. Cu toate acestea, incercam constant sa oferim modalitati intuitive de a invata, care sa asigure o intelegere cat se poate de buna asupra materiei, intr-o maniera cat mai abordabila. | ||
- | |||
- | Consideram ca succesul la Programare Orientata pe Obiecte este consecventa, adica ore depuse saptamanal pentru a intelege si a deprinde noile concepte prezentate. Ritmul impus nu este deloc unul lent, dar nici infricosator. Speram ca ne veti crede pe cuvant. | ||
- | |||
- | Recomandarile noastre sunt sa fiti prezenti la cursuri si sa cititi laboratorul inainte de a-l avea efectiv. Laboratoarele sunt gandite astfel incat sa va ofere o sumarizare a conceptelor necesare in exercitiile pentru laboratoare. Acestea ofera atat explicatii intuitive, cat si exemple efective. Veti observa ca unele concepte 'par ok', dar pot deveni relativ complexe atunci cand trebuiesc implementate concret. | ||
- | |||
- | ===== Instalarea unui IDE si crearea primului proiect ===== | ||
- | |||
- | <note important>Recomandam Dev-C++. **de completat cu motivele**</note> | ||
- | ==== Dev-C++ ==== | ||
- | |||
- | === Pasul 1: Download === | ||
- | Ultima varianta a Dev-C++ poate fi descarcat de la urmatoarea adresa: | ||
- | [[https://sourceforge.net/projects/orwelldevcpp/files/latest/download|Download]]\\ | ||
- | Aceasta varianta contine atat IDE-ul, cat si compilatorul GCC/G++, necesar crearii unei aplicatii C/C++. Fara un compilator, un IDE este nimic mai mult decat un editor de text mai interesant\\ | ||
- | {{:poo-is:laboratoare:lab1:dev-cpp:download.png?direct&600|}} | ||
- | |||
- | === Pasul 2: Instalare === | ||
- | Instalarea programului se realizeaza similar cu cea a altor aplicatii. Pentru a nu intampina probleme, selectati varianta de instalare “Full”\\ | ||
- | {{:poo-is:laboratoare:lab1:dev-cpp:instalare.png?direct&300|}} | ||
- | |||
- | === Pasul 3: Rulare Dev-C++ === | ||
- | Cand rulati pentru prima oara aplicatia, puteti configura setari precum limba, fontul sau aspectul butoanelor\\ | ||
- | {{:poo-is:laboratoare:lab1:dev-cpp:configurare_first_time.png?direct&300|}}\\ | ||
- | Interfata Dev-C++ arata astfel: \\ | ||
- | {{:poo-is:laboratoare:lab1:dev-cpp:interfata.png?direct&600|}}\\ | ||
- | |||
- | === Pasul 4: Crearea unui proiect === | ||
- | Un proiect nou este creat astfel:\\ | ||
- | **1. **Selectati File -> New -> Project\\ | ||
- | {{:poo-is:laboratoare:lab1:dev-cpp:proiect_nou.png?direct&600|}}\\ | ||
- | |||
- | **2. **Selectati **Console Application**, **C++** si denumiti proiectul\\ | ||
- | {{:poo-is:laboratoare:lab1:dev-cpp:setare_proiect.png?direct&300|}}\\ | ||
- | |||
- | **3. **Selectati calea dorita si creati un director nou (de preferat cu numele identic cu cel al proiectului)\\ | ||
- | {{:poo-is:laboratoare:lab1:dev-cpp:cale_proiect.png?direct&300|}}\\ | ||
- | |||
- | **4. **Deschideti directorul si salvati in el fisierul cu numele **nume_proiect**.dev\\ | ||
- | {{:poo-is:laboratoare:lab1:dev-cpp:cale_proiect2.png?direct&300|}}\\ | ||
- | |||
- | **5. **In acest moment o sa se genereze automat un fiser care contine functia main(). Proiectul este vizibil in fereastra din partea stanga\\ | ||
- | {{:poo-is:laboratoare:lab1:dev-cpp:proiect_creat.png?direct&600|}}\\ | ||
- | |||
- | **6. **Salvati acest fisier pentru a putea compila si rula proiectul\\ | ||
- | {{:poo-is:laboratoare:lab1:dev-cpp:salvare_main.png?direct&300|}}\\ | ||
- | |||
- | === Pasul 5: Rularea proiectului === | ||
- | Pentru a compila si rula proiectul, apasati **Compile** -> **Run** sau **Compile & Run**, butoane aflate in zona de sus a ferestrei\\ | ||
- | {{:poo-is:laboratoare:lab1:dev-cpp:butoane_run.png?direct&600|}} | ||
- | |||
- | <note tip>De asemenea, puteti utiliza si urmatoarele shortcuts:\\ **Compile** - F9\\ **Run** - F10\\ **Compile & Run** - F11</note> | ||
- | |||
- | === Pasul 6: Adaugarea fisierelor === | ||
- | Dupa cum veti vedea in laboratoarele viitoare, un pas important va fi reprezentat de crearea unor noi fisiere si adaugarea acestora in proiect. Pentru a realiza acest lucru, trebuie sa:\\ | ||
- | **1. ** Selectati File -> New -> Source File. Raspundeti **Yes** pentru a adauga fisierul in cadrul proiectului curent **SAU** Click-dreapta pe numele proiectului -> **New File**\\ | ||
- | {{:poo-is:laboratoare:lab1:dev-cpp:new_file.png?direct&600|}}\\ | ||
- | |||
- | **2. ** Salvati fisierul apasand pe butonul **Save** sau **CTRL + S**\\ | ||
- | {{:poo-is:laboratoare:lab1:dev-cpp:save_fisier.png?direct&600|}}\\ | ||
- | |||
- | **3. ** Completati numele fisierului si selectati tipul acestuia: sursa sau header\\ | ||
- | {{:poo-is:laboratoare:lab1:dev-cpp:tip_fisier.png?direct&300|}}\\ | ||
- | |||
- | <note tip>** Ce este un fisier header?**\\ Fisierele de tip header sunt utilizate pentru a declara diferite elemente ce pot fi utilizate de fisierele sursa. De exemplu, fisierul "math.h" contine declarari de functii matematice precum cos, sin, radical (sqrt) sau exponential (exp). Astfel, putem utiliza aceste functii fara a mai fi necesara implemetarea acestora, atat timp cat fisierul header este specificat in fisierul sursa (.cpp), prin utilizarea directivei preprocesor **#include**. Un alt exemplu poate fi utilizarea functiilor cin si cout, atat timp cat fisierul "iostream.h" este inclus.\\ \\ Cele doua tipuri de fisiere header sunt:\\ | ||
- | * Fisiere header din **Standard Library** (detalii [[https://en.cppreference.com/w/cpp/header|aici]]). Sunt cuprinse in **biblioteci** pre-existente (Input/output library, Strings library, Containers library etc). Exemple de fisiere header: iostream.h, math.h, string.h, stdlib.h etc\\ | ||
- | * Fisiere header user-defined, ce contin declarari ale utilizatorului\\ \\ | ||
- | Mai mult informatii despre fisierele header puteti gasi [[https://www.learncpp.com/cpp-tutorial/header-files/|aici]] si despre directivele preprocesor [[https://www.learncpp.com/cpp-tutorial/introduction-to-the-preprocessor/|aici]]</note> | ||
- | |||
- | |||
- | **6. ** Selectati "**Save**". Fisierul nou adaugat poate fi editat si compilat\\ | ||
- | {{:poo-is:laboratoare:lab1:dev-cpp:fisiere_noi.png?direct&600|}}\\ | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ==== CodeBlocks ==== | ||
- | |||
- | === Pasul 1: Alegerea variantei potrivite === | ||
- | CodeBlocks poate fi descarcat de la urmatoarea adresa: [[http://www.codeblocks.org/downloads/26|Download]]\\ | ||
- | <note warning>Pentru a putea crea aplicatii in C/C++, este **necesara ** instalarea unui compilator. CodeBlocks ofera posibilitatea de a instala compilatorul GCC/G++, parte a proiectului MinGW (detalii [[http://www.mingw.org/|aici]]), impreuna cu mediul de dezvoltare, prin descarcarea variantei **codeblocks-x.xmingw-setup.exe**</note> | ||
- | {{:poo-is:laboratoare:lab1:code_blocks:dowloadcodeblocks.png?direct&600|}} | ||
- | <note tip>Versiunea "nosetup" permite utilizarea CodeBlocks fara ca acesta sa fie instalat. Totusi, recomandam varianta "setup" pentru o functionare fără probleme</note> | ||
- | Descarcati varianta dorita de pe unul dintre link-urile oferite\\ | ||
- | |||
- | === Pasul 2: Instalare === | ||
- | Instalarea programului se realizeaza similar cu cea a altor aplicatii. Pentru a nu intampina probleme, selectati varianta de instalare "Full"\\ | ||
- | {{:poo-is:laboratoare:lab1:code_blocks:instalare.png?direct&400|}}\\ | ||
- | |||
- | === Pasul 3: Rulare CodeBlocks=== | ||
- | In momentul rularii, interfata CodeBlocks arata astfel:\\ | ||
- | {{:poo-is:laboratoare:lab1:code_blocks:interfata.png?direct&600|}}\\ | ||
- | |||
- | === Pasul 4: Crearea unui proiect === | ||
- | Un proiect nou este creat astfel:\\ | ||
- | **1. ** Apasati butonului "Create a new project" aflat in centrul interfetei sau prin selectarea File -> New -> Project\\ | ||
- | {{:poo-is:laboratoare:lab1:code_blocks:creareproiect.png?direct&600|}}\\ | ||
- | **2. **Alegeti optiunile "Console application", respectiv "C++"\\ | ||
- | {{:poo-is:laboratoare:lab1:code_blocks:consoleapp.png?direct&300|}} | ||
- | {{:poo-is:laboratoare:lab1:code_blocks:cpp.png?direct&300|}}\\ | ||
- | **3. **Denumiti proiectul si alegeti folder-ul in care va fi creat\\ | ||
- | {{:poo-is:laboratoare:lab1:code_blocks:nume.png?direct&300|}}\\ | ||
- | **4. **Alegeti compilatorul GNU GCC\\ | ||
- | {{:poo-is:laboratoare:lab1:code_blocks:compilator.png?direct&300|}}\\ | ||
- | |||
- | === Pasul 5: Rularea proiectului === | ||
- | In acest moment, proiectul a fost creat. Acesta contine o singura sursa, "main.cpp", ce contine functia main()\\ | ||
- | {{:poo-is:laboratoare:lab1:code_blocks:proiect_creat.png?direct&600|}}\\ | ||
- | Pentru a compila si rula proiectul, utilizati **Build -> Run** sau **Build & Run**, butoane aflate in partea de sus a ferestrei. Fisierul editat este salvat automat inainte de a fi compilat\\ | ||
- | {{:poo-is:laboratoare:lab1:code_blocks:butoane_run.png?direct&600|}}\\ | ||
- | <note tip>Puteti utiliza si urmatoarele shortcuts:\\ **Build and Run** - F9\\ **Build** - CTRL + F9\\ **Run** - F10\\ **Compilare fisier curent** - CTRL + Shift + F9</note> | ||
- | Aplicatia va rula in consola\\ | ||
- | {{:poo-is:laboratoare:lab1:code_blocks:aplicatie.png?direct&600|}}\\ | ||
- | |||
- | === Pasul 6: Adaugarea fisierelor === | ||
- | Dupa cum veti vedea in laboratoarele viitoare, un pas important va fi reprezentat de crearea unor noi fisiere si adaugarea acestora in proiect. Pentru a realiza acest lucru, trebuie sa:\\ | ||
- | **1. ** Selectati File -> New -> File\\ | ||
- | {{:poo-is:laboratoare:lab1:code_blocks:new_file.png?direct&600|}}\\ | ||
- | |||
- | **2. ** Selectati tipul: Fisier header sau sursa\\ | ||
- | {{:poo-is:laboratoare:lab1:code_blocks:header_sursa.png?direct&300|}}\\ | ||
- | <note tip>** Ce este un fisier header?**\\ Fisierele de tip header sunt utilizate pentru a declara diferite elemente ce pot fi utilizate de fisierele sursa. De exemplu, fisierul "math.h" contine declarari de functii matematice precum cos, sin, radical (sqrt) sau exponential (exp). Astfel, putem utiliza aceste functii fara a mai fi necesara implemetarea acestora, atat timp cat fisierul header este specificat in fisierul sursa (.cpp), prin utilizarea directivei preprocesor **#include**. Un alt exemplu poate fi utilizarea functiilor cin si cout, atat timp cat fisierul "iostream.h" este inclus.\\ \\ Cele doua tipuri de fisiere header sunt:\\ | ||
- | * Fisiere header din **Standard Library** (detalii [[https://en.cppreference.com/w/cpp/header|aici]]). Sunt cuprinse in **biblioteci** pre-existente (Input/output library, Strings library, Containers library etc). Exemple de fisiere header: iostream.h, math.h, string.h, stdlib.h etc\\ | ||
- | * Fisiere header user-defined, ce contin declarari ale utilizatorului\\ \\ | ||
- | Mai mult informatii despre fisierele header puteti gasi [[https://www.learncpp.com/cpp-tutorial/header-files/|aici]] si despre directivele preprocesor [[https://www.learncpp.com/cpp-tutorial/introduction-to-the-preprocessor/|aici]]</note> | ||
- | |||
- | **3. ** Selectati "C++"\\ | ||
- | {{:poo-is:laboratoare:lab1:code_blocks:select_cpp.png?direct&300|}}\\ | ||
- | |||
- | **4. ** Specificati calea fisierului si numele acestuia (cu sau fara extensie, deoarece este setata automat)\\ | ||
- | {{:poo-is:laboratoare:lab1:code_blocks:cale.png?direct&300|}} | ||
- | {{:poo-is:laboratoare:lab1:code_blocks:cale2.png?direct&300|}}\\ | ||
- | |||
- | **5. ** Bifati optiunea "**Add file to active project**", impreuna cu optiunile "**Debug**" si "**Release**"\\ | ||
- | {{:poo-is:laboratoare:lab1:code_blocks:adaugare_proiect.png?direct&300|}}\\ | ||
- | |||
- | **6. ** Selectati "**Finish**". Fisierul nou adaugat va fi deschis automat pentru editare si va aparea in fereastra "Management"\\ | ||
- | {{:poo-is:laboratoare:lab1:code_blocks:fisier_adaugat.png?direct&600|}}\\ | ||
- | <note tip>Fisierele de tip header vor fi adaugate intr-un folder separat fata de fisierele sursa</note>\\ | ||
- | |||
- | |||
- | |||
- | |||
- | |||