Unelte utilizator

Unelte site


laboratoare:laborator-03

Diferențe

Aici sunt prezentate diferențele dintre versiunile selectate și versiunea curentă a paginii.

Link către această vizualizare comparativă

Ambele părți revizuirea anterioară Versiuni anterioare
Urmatoarea versiune
Versiuni anterioare
Ultima versiune Ambele părți următoarea reviziune
laboratoare:laborator-03 [2017/03/05 19:07]
iulian.matesica
laboratoare:laborator-03 [2017/03/06 22:59]
mihai.iacov [2.2 Operații cu stive]
Linia 21: Linia 21:
 struct stack{ struct stack{
      int s[size];      int s[size];
-     int top;+     int top = -1;
 } st; } st;
 </file> </file>
Linia 45: Linia 45:
 int pop(){ int pop(){
      int item;      int item;
 +     if(st_empty())  //presupunem ca nu exista elemente
 +        return -1; //cu valoarea -1
      item = st.s[st.top];      item = st.s[st.top];
      st.top--;      st.top--;
Linia 69: Linia 71:
      int queue[size];      int queue[size];
      int rear = -1;      int rear = -1;
-}Q +     int front = 0
-int front = 0;+}Q;
 </file> </file>
  
Linia 76: Linia 78:
 <file cpp> <file cpp>
 int Qempty(){ int Qempty(){
-     if(front > rear)+     if(Q.front > Q.rear)
           return 1;           return 1;
      return 0;      return 0;
Linia 85: Linia 87:
 void Qinsert(int item){ void Qinsert(int item){
      Q.rear++;      Q.rear++;
-     Q.queue[Q.rear]==item;+     Q.queue[Q.rear] = item;
 } }
 </file> </file>
 * **Dequeue/ștergere** - șterge un element din coadă și îl returnează.Ștergerea se poate face doar la începutul cozii. * **Dequeue/ștergere** - șterge un element din coadă și îl returnează.Ștergerea se poate face doar la începutul cozii.
 <file cpp> <file cpp>
-void Qdelete(){+int Qdelete(){
      int item;      int item;
-     if( Qempty() ) +     if( Qempty() ) //in acest caz, alegem o valoare de return 
-          return -1;+          return -1; // ce NU poate fi confundata cu un element 
 +          //presupunem ca NU exista niciun element cu valoarea -1
      else {      else {
-          elem = Q.queue[Q.front]; +          item = Q.queue[Q.front]; 
-          front ++;+          Q.front ++;
           return item;           return item;
      }      }
Linia 141: Linia 144:
 Pentru acest laborator sunt două exerciții, primul cu stive și al doilea cu cozi. Fiecare are mai multe task-uri. Urmăriți cu atenție comentariile din fișierele sursă. Pentru acest laborator sunt două exerciții, primul cu stive și al doilea cu cozi. Fiecare are mai multe task-uri. Urmăriți cu atenție comentariile din fișierele sursă.
  
 +===4.2.1 Linux===
 +Puteti folosi utilitarul ''%%wget%%'' pentru descarcare si utilitarul ''%%unzip%%'' pentru dezarhivare.
 +
 +  * ''%%wget http://elf.cs.pub.ro/sda-ab/wiki/_media/laboratoare/lab2-skel.zip%%''
 +  * ''%%unzip lab2-skel.zip%%''
 +
 +
 +<code bash>
 +student@sda-ab-vm:~/Documents$ wget http://elf.cs.pub.ro/sda-ab/wiki/_media/laboratoare/lab2-skel.zip
 +--2017-03-02 20:45:55--  http://elf.cs.pub.ro/sda-ab/wiki/_media/laboratoare/lab2-skel.zip
 +Resolving elf.cs.pub.ro (elf.cs.pub.ro)... 141.85.227.116
 +Connecting to elf.cs.pub.ro (elf.cs.pub.ro)|141.85.227.116|:80... connected.
 +HTTP request sent, awaiting response... 200 OK
 +Length: 2368 (2,3K) [application/zip]
 +Saving to: ‘lab1-skel.zip’
 +
 +lab1-skel.zip       100%[===================>  2,31K  --.-KB/   in 0s      
 +
 +2017-03-02 20:45:56 (4,78 MB/s) - ‘lab1-skel.zip’ saved [2368/2368]
 +
 +student@sda-ab-vm:~/Documents$ ls
 +lab1-skel.zip
 +student@sda-ab-vm:~/Documents$ unzip lab2-skel.zip
 +Archive:  lab2-skel.zip
 +   creating: lab2_stive-si-cozi/
 +   creating: lab2_stive-si-cozi/1-stack/
 +  inflating: lab2_stive-si-cozi/1-stack/Makefile  
 +  inflating: lab2_stive-si-cozi/1-stack/stack.c  
 +   creating: lab2_stive-si-cozi/2-queue/
 +  inflating: lab2_stive-si-cozi/2-queue/Makefile  
 +  inflating: lab2_stive-si-cozi/2-queue/queue.
 +student@sda-ab-vm:~/Documents$ cd lab2_stive-si-cozi
 +student@sda-ab-vm:~/Documents/lab2_stive-si-cozi$ ls -l
 +total 0
 +drwxrwxrwx 1 student student 248 mar  5 15:57 1-stack
 +drwxrwxrwx 1 student student 248 mar  5 15:58 2-queue
 +
 +student@sda-ab-vm:~/Documents/lab2_stive-si-cozi$ cd 1-stack
 +student@sda-ab-vm:~/Documents/lab2_stive-si-cozi/1-stack$ make
 +student@sda-ab-vm:~/Documents/lab2_stive-si-cozi/1-stack$ make run
 +</code>
 +
 +Pentru compilare folositi comanda ''%%make%%''. Pentru rulare puteti folosi comanda ''%%make run%%''.
 +
 +  * Pentru exercițiul ''1-stack'', executabilul rezultat în urma comenzii ''%%make%%'' se numește ''%%stack%%''.
 +  * Pentru exercițiul ''2-queue'', executabilul rezultat în urma comenzii ''%%make%%'' se numește ''%%queue%%''
 +
 +===4.2.2 Linux + Github===
 +[[https://github.com/mateiuli/sda-ab_laboratoare|Aici]] puteți găsi repository-ul de pe GitHub unde se află scheletul de cod pentru fiecare laborator.
 +
 +Dacă sunteți familiari cu git puteți clona repo-ul local folosind comanda ''%%git clone https://github.com/mateiuli/sda-ab_laboratoare%%''.
 ====4.3 Opţional - de interviu==== ====4.3 Opţional - de interviu====
  
laboratoare/laborator-03.txt · Ultima modificare: 2018/02/25 22:13 de către mihai.iacov