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 21:40]
andrei.vasiliu2211 [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 252: Line 250:
 </​code>​ </​code>​
  
-Putem defini constante ce vor fi înlocuite peste tot în program în etapa de procesare. Este recomandat să folosim aceasta optiune în defavoarea scrierii efective a constantei deoarece suntem mai predispuși la buguri putând uita sa modificăm constanta în unele părți ale programului.+Putem defini constante ce vor fi înlocuite peste tot în program în etapa de preprocesare. Este recomandat să folosim aceasta optiune în defavoarea scrierii efective a constantei deoarece suntem mai predispuși la buguri putând uita sa modificăm constanta în unele părți ale programului.
  
  
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 (toatenumere întregi). 
-La laboratoarele ​de Structuri de Date vom folosi compilatorul ''​clang''​pe care va trebui să-l instalațrulând comanda ''​sudo apt-get install clang''​+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:​01_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,​ precum și unde veți încărca soluția laboratorului,​ le găsiți pe Lambda Checker, [[https://​lambdachecker.io/​contest/​28 | aici]]. 
  
 ===== Interviu ===== ===== Interviu =====
sd-ca/laboratoare/lab-01.1646250025.txt.gz · Last modified: 2022/03/02 21:40 by andrei.vasiliu2211
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