Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sd-ca:laboratoare:lab-01 [2022/03/02 22:41]
iulia.corici [Exerciții]
sd-ca:laboratoare:lab-01 [2023/03/01 22:04] (current)
iulia.corici [Exerciții]
Line 55: Line 55:
  
 ===== Void pointer (void*) ===== ===== Void pointer (void*) =====
-Un pointer de tipul ''​void*''​ este un pointer care nu este asociat cu niciun tip de date, ceea ce îi permite să pointeze la adrese de memorie de orice tip. De asemenea, el poate fi castat ​la orice tip de date.+Un pointer de tipul ''​void*''​ este un pointer care nu este asociat cu niciun tip de date, ceea ce îi permite să pointeze la adrese de memorie de orice tip. De asemenea, el poate fi specializat (cast) ​la orice tip de date.
  
 ==== Exemplu de folosire în contextul genericității ==== ==== Exemplu de folosire în contextul genericității ====
Line 98: Line 98:
 Declarare vector static: Declarare vector static:
 <code c> <code c>
-int a[100]; // declarare statică: dimensiunea acestui vector trebuie să fie o constantă la compilare şi nu poate fi modificată în cursul +int a[100]; // declarare statică: dimensiunea acestui vector trebuie să fie o constantă ​ 
-            // execuţiei programului.+            // la compilare şi nu poate fi modificată în cursul execuţiei programului.
  
 </​code>​ </​code>​
Line 163: Line 163:
 </​code>​ </​code>​
 <note important>​ <note important>​
-În acest caz, toată matricea va fi alocată într-o zonă continuă de memorie. Pentru a explicita codul de mai sus, trebuie să ințelegem de ce ''​sizeof(*mat) == 40''​. Acest lucru este datorat faptului că ''​mat''​ desemnează un array de vectori de câte 10 ''​int''​-uri,​ adică 40 de octeți. Va sa zica, pentru oricare ''​i'',​ ''​mat[i]''​ este un vector de 10 ''​int''​-uri. ​Astfel, in memorie, ''​mat''​ arată astfel: +În acest caz, toată matricea va fi alocată într-o zonă continuă de memorie. Pentru a explicita codul de mai sus, trebuie să ințelegem de ce ''​sizeof(*mat) == 40''​. Acest lucru este datorat faptului că ''​mat''​ desemnează un array de vectori de câte 10 ''​int''​-uri,​ adică 40 de octeți. Va sa zica, pentru oricare ''​i'',​ ''​mat[i]''​ este un vector de 10 ''​int''​-uri. ​
- +
-TODO+
 </​note>​ </​note>​
  
Line 333: Line 331:
  
 ===== Exerciții ===== ===== Exerciții =====
 +{{:​sd-ca:​laboratoare:​lab01_recap_pc_skel.zip|Scheletul de laborator}}
  
-<​note>​ +1) Se citesc de la tastatura N cercuri definite prin coordonatele centrului si raza (toate, numere întregi). 
-Trebuie să vă creațcont de [[https://​lambdachecker.io | Lambda Checker]], pe care îl veți folosi la SD pe toată durata semestrului+Sa se numere cate perechi de cercuri se intersectează. Se consideră că două cercuri se intersectează șdacă acestea sunt doar tangente
-</​note>​+ 
 +Ex:\\ 
 +6\\ 
 +25 25 15\\ 
 +10 10 12\\ 
 +25 20 7\\ 
 +40 40 5\\ 
 +48 40 5\\ 
 +0 30 5\\ 
 + 
 +Output: 4 (se intersectează perechile de cercuri: (1, 2), (1, 3), (2, 3), (4, 5))
  
-{{:sd-ca:​laboratoare:​lab01_recap_pc.zip|Scheletul de laborator}}+2) Se citește o matrice de dimensiune n x m. Fiecare linie va forma un număr. Exemplulinia [3, 0, 2] va forma numărul 302. Afișați suma liniilor. 
 +  * Alocați dinamic matricea. 
 +  * Implementați logica problemei. 
 +  * Verificați cu Valgrind că nu aveți memory leaks.
  
-Enunțurile problemelor le găsiți pe Lambda Checker, [[https://​lambdachecker.io/​contest/​28 | aici]]. 
-Tot acolo veți și încărca soluțiile voastre. 
  
 ===== Interviu ===== ===== Interviu =====
sd-ca/laboratoare/lab-01.1646253718.txt.gz · Last modified: 2022/03/02 22:41 by iulia.corici
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0