This shows you the differences between two versions of the page.
— |
pa:instructiuni-schelet-cod-laborator [2013/02/10 02:43] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Instructiuni schelet cod laborator ====== | ||
+ | |||
+ | 1) Scheletele pentru problemele din laborator se pot descărca de pe wiki (în dreapta sus, este un link către scheletul de cod) sau direct din linia de comandă cu: | ||
+ | |||
+ | <code> | ||
+ | wget http://elf.cs.pub.ro/pa/scheletCodPA.zip | ||
+ | </code> | ||
+ | |||
+ | Atentie! Numele arhivei este case sensitive. Dupa ce o descărcați, puteți să o dezarhivati pe HDD local. Din linia de comandă, puteți folosi: | ||
+ | |||
+ | <code> | ||
+ | unzip scheletCodPA.zip | ||
+ | </code> | ||
+ | |||
+ | 2) Trebuie sa editați fișierele din directorul corespunzător laboratorului curent: | ||
+ | |||
+ | <code> | ||
+ | codeBase/$Limbaj/src-labX/ | ||
+ | </code> | ||
+ | |||
+ | De exemplu, un student care vrea să rezolve problema 2 din laboratorul 0 în C++ va edita fișierul corespunzător: | ||
+ | |||
+ | <code> | ||
+ | codeBase/C++/src-lab0/lab0p2.cpp | ||
+ | </code> | ||
+ | |||
+ | Nu trebuie să mutați sau să redenumiți fișiere, pentru că nu va mai functiona corect Makefile-ul. | ||
+ | |||
+ | 3) Pentru a compila soluțiile, mergeți în directorul: | ||
+ | |||
+ | <code> | ||
+ | codeBase/$Limbaj | ||
+ | </code> | ||
+ | |||
+ | si apelați Makefile, definind variabilele de mediu **LAB** și **TASK** astfel: | ||
+ | |||
+ | <code> | ||
+ | make LAB=0 TASK=2 | ||
+ | </code> | ||
+ | |||
+ | Veți fi avertizați cu un mesaj la consola dacă unul din parametri este incorect. | ||
+ | |||
+ | 4) Executabilele vor fi generate in directorul: | ||
+ | |||
+ | <code> | ||
+ | codeBase/$Limbaj | ||
+ | </code> | ||
+ | |||
+ | de unde le puteți rula cu **./**. | ||
+ | |||
+ | 5) Anul acesta ne dorim simplificarea fundamentală a scheletelor de cod scrise în C++. Pentru aceasta, am scris headere template-izate în **VectorIO.h** si **PairIO.h**. Practic, acum pentru citirea/scrierea de vectori/perechi la consolă/în fișiere, este suficient următorul cod: | ||
+ | |||
+ | <code cpp> | ||
+ | #include "VectorIO.h" // Includem headerul pentru IO. | ||
+ | |||
+ | std::vector<double> v; // Se poate specializa vectorul cu orice tip: float, int, string, std::pair<float, int>, etc. | ||
+ | std::cin >> v; std::cout << v; // Automagically works :). | ||
+ | </code> | ||
+ | |||
+ | De exemplu, dacă aveți de citit un vector de perechi, trebuie să includeți atât **VectorIO.h**, cat și **PairIO.h**. | ||
+ | |||
+ | Singura observatie de facut aici este că atunci când se citește un vector, el trebuie dat la consolă sub forma: | ||
+ | |||
+ | <code> | ||
+ | N | ||
+ | v0 v1 v2 ... vn-1 | ||
+ | </code> | ||
+ | |||
+ | 6) Headerele și implementările pe care le punem noi la dispoziție se află în directoarele: | ||
+ | |||
+ | <code> | ||
+ | codeBase/C++/include | ||
+ | codeBase/C++/src | ||
+ | codeBase/Java/src | ||
+ | </code> | ||
+ | |||
+ | Le puteți consulta și folosi după bunul plac, dar nu vă recomandăm să le modificați sau să le mutați în altă locație din motive ce țin de buna funcționare a comenzii **make**. | ||
+ | |||
+ | Observații! | ||
+ | - Makefile-ul este util doar in Linux! | ||
+ | - Comanda wget exista doar in Linux! | ||
+ | - $Limbaj poate fi **C++** sau **Java**, în funcție de preferințele fiecăruia (cu excepția Laboratorului 0, care are exerciții simple de acomodare cu STL și deci trebuie rezolvat în C++). | ||