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 22:38]
florina_elena.barbu [2.3.2. Fișiere header și include guards]
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 270: Linia 258:
  
  
-===== 4. Calculul complexității algoritmilor =====+===== 4. GDB =====
  
-Analiza complexității unui algoritm are ca scop estimarea volumului de resurse de calcul necesare pentru execuția algoritmuluiPrin resurse se înțelege:\\ +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). 
-• //Spațiul de memorie// necesar pentru stocarea datelor pe care le prelucrează algoritmul.\\ + 
-• //Timpul necesar pentru execuția// tuturor prelucrărilor specificate în algoritm+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>
  
-Această analiză este utilă pentru a stabili dacă un algoritm utilizează un volum acceptabil de resurse pentru rezolvarea unei probleme. 
  
 ---- ----
 ===== 5. Exerciții ===== ===== 5. Exerciții =====
  
-==== Exercițiul 1 - Hello world (2p) ==== +==== Exercițiul 1 - Hello world  ==== 
-==== Exercițiul 2 - Makefile (3p) ==== +Realizați un program un C/C++ care afișează mesajul //Hello, World// la ieșirea standard. 
-==== Exercițiul 3 - Makefile cu surse multiple (3p) ==== + 
-==== Exercițiul 4 - ?? ====+==== 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  ==== 
 + 
 + 
 + 
 +---- 
 +===== 6. Referinț====
 +  - [[https://ocw.cs.pub.ro/courses/so/laboratoare/laborator-01|More about GCC, Linux, Makefiles]] 
  
laboratoare/laborator-01.1487536701.txt.gz · Ultima modificare: 2017/02/19 22:38 de către florina_elena.barbu