Unelte utilizator

Unelte site


laboratoare:laborator-01

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
laboratoare:laborator-01 [2017/02/19 12:42]
florina_elena.barbu
laboratoare:laborator-01 [2018/02/21 16:32] (curent)
mihai.iacov [Reguli esenţiale pentru promovarea laboratorului]
Linia 1: Linia 1:
 ====== Laborator 01: Introducere ====== ====== Laborator 01: Introducere ======
  
-===== 1. Obiectivele laboratorului pe întreg semestrul=====+===== 1. Reguli pentru laborator=====
  
-* familiarizarea cu structuri de date +Mai multe detalii pot fi găsite pe pagina [[informaii-generale:notare|Reguli de notare]].
-    * liste +
-    * stive +
-    * cozi+
  
 +==== Reguli esenţiale pentru promovarea laboratorului====
  
-introducere in algoritmi și tehnici de programare +* **MAXIM** 3 absenţe la laborator (**NU*se poate reface la alte grupe) 
-    recursivitate  +**MINIM** jumătate din punctajul de laborator
-    divide et impera +
-    greedy +
-    programare dinamică +
-    backtracking +
- +
- +
-introducere în teoria grafurilor +
-    parcurgeri de grafuri/arbori +
-    arbori binari, arbori minimi de acoperire +
-    * drumuri minime in graf (Dijkstra)+
  
  
Linia 268: Linia 256:
  * **$^** se expandează la lista de cerințe (prerequisites - lista de dependențe)  * **$^** se expandează la lista de cerințe (prerequisites - lista de dependențe)
  * **$<** se expandează la prima cerință (la prima dependență)  * **$<** se expandează la prima cerință (la prima dependență)
 +
 +
 +===== 4. GDB =====
 +
 +GDB (GNU Debugger) este unealta standard pentru debugging (depanare) din GNU. Este portabil şi poate fi folosit, printre altele, pentru a detecta instrucţiunea ce determina blocarea unui program la rulare (precum şi semnalul asociat erorii).
 +
 +Exemplu de lansare:\\
 +<code>
 +gcc -Wall -g my_file.c -o my_file.exe
 +gdb my_file.exe
 +</code>
 +
 +**Câteva comenzi utile în timpul depanării:**\\
 +• **list** - arată conţinutul unui fişier (câteva rânduri, în jurul unui punct numit) \\
 +• **run** - porneşte executia\\
 +• **n** (sau **next**) - trece la instrucţiunea următoare (fără a intra în apeluri de funcţii)\\
 +• **s** (sau **step**) - intră în apel de funcţie pentru a inspecta execuţia\\
 +• **b** (sau **break** sau **breakpoint**) - setează un breakpoint ce va forţa oprirea execuţiei în punctul respectiv\\
 +• **continue** - continuă execuţia până la următorul breakpoint\\
 +• **fin** (sau **finish**) - iese din funcţia curentă\\
 +
 +<note important>**list** şi **breakpoint** au nevoie de un parametru care să indice o instrucţiune ("punctul" dorit).</note>
 +
 +Exemple de identificare a instrucţiunilor (la fel pentru list) - funcţie, rândul din fişier, adresa din memorie (eventual cu explicitarea fişierului):\\
 +<code>
 +breakpoint my_function
 +breakpoint 13
 +breakpoint *0x401377
 +
 +breakpoint my_file:10
 +breakpoint my_file:my_function
 +</code>
 +
 +
 +----
 +===== 5. Exerciții =====
 +
 +==== Exercițiul 1 - Hello world  ====
 +Realizați un program un C/C++ care afișează mesajul //Hello, World// la ieșirea standard.
 +
 +==== Exercițiul 2 - Makefile  ====
 +Realizați un fișier Makefile pentru programul de la exercițiul 1 astfel încat:
 +
 + * la rularea comenzii ''%%make build%%'' să se obțină executabilul ''%%hello%%''
 + * la rularea comenzii ''%%make clean%%'' să se șteargă fișierul ''%%hello%%'' de pe disc.
 +
 +
 +==== Exercițiul 3 - Makefile cu surse multiple  ====
 +
  
  
 ---- ----
-===== 4Exerciții =====+===== 6Referinț===== 
 +  - [[https://ocw.cs.pub.ro/courses/so/laboratoare/laborator-01|More about GCC, Linux, Makefiles]]
  
-==== Exercițiul 1 - Hello world (2p) ==== 
-==== Exercițiul 2 - Makefile (3p) ==== 
-==== Exercițiul 3 - Makefile cu surse multiple (3p) ==== 
-==== Exercițiul 4 - ?? ==== 
  
laboratoare/laborator-01.1487500932.txt.gz · Ultima modificare: 2017/02/19 12:42 de către florina_elena.barbu