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:
wget http://elf.cs.pub.ro/pa/scheletCodPA.zip
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:
unzip scheletCodPA.zip
2) Trebuie sa editați fișierele din directorul corespunzător laboratorului curent:
codeBase/$Limbaj/src-labX/
De exemplu, un student care vrea să rezolve problema 2 din laboratorul 0 în C++ va edita fișierul corespunzător:
codeBase/C++/src-lab0/lab0p2.cpp
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:
codeBase/$Limbaj
si apelați Makefile, definind variabilele de mediu LAB și TASK astfel:
make LAB=0 TASK=2
Veți fi avertizați cu un mesaj la consola dacă unul din parametri este incorect.
4) Executabilele vor fi generate in directorul:
codeBase/$Limbaj
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:
#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 :).
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:
N v0 v1 v2 ... vn-1
6) Headerele și implementările pe care le punem noi la dispoziție se află în directoarele:
codeBase/C++/include codeBase/C++/src codeBase/Java/src
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++).