This shows you the differences between two versions of the page.
programare:laboratoare:lab08 [2017/11/13 16:02] darius.neatu [Operatorul de dereferențiere] |
programare:laboratoare:lab08 [2020/10/05 00:37] (current) darius.neatu [Pointeri. Abordarea lucrului cu tablouri folosind pointeri.] |
||
---|---|---|---|
Line 1: | Line 1: | ||
===== Pointeri. Abordarea lucrului cu tablouri folosind pointeri. ===== | ===== Pointeri. Abordarea lucrului cu tablouri folosind pointeri. ===== | ||
- | **Responsabil:** [[laura.vasilescu@cti.pub.ro|Laura Vasilescu]] | + | **Responsabili:** |
+ | * [[neatudarius@gmail.com|Darius Neațu (CA 2019-2020)]] | ||
+ | * [[ion_dorinel.filip@cti.pub.ro|Dorinel Filip (CA 2019-2020)]] | ||
+ | * [[laura.vasilescu@cti.pub.ro|Laura Vasilescu]] | ||
Line 62: | Line 65: | ||
int *a; /* Pointer */ | int *a; /* Pointer */ | ||
int b = 5; /* Variabila */ | int b = 5; /* Variabila */ | ||
- | char *c; /* Pointer catre un caracter (sau sir de caractere) */ | + | char *c; /* Pointer catre un caracter (sau sir de caractere) */ |
- | void *buff = NULL; /* Pointer catre void, initializat la NULL */ | + | void *buff = NULL; /* Pointer catre void, initializat la NULL */ |
/* Asignare NEVALIDA; a este un pointer neinitializat */ | /* Asignare NEVALIDA; a este un pointer neinitializat */ | ||
Line 72: | Line 75: | ||
/* Continutul memoriei de la adresa a (care a fost initializata mai sus) | /* Continutul memoriei de la adresa a (care a fost initializata mai sus) | ||
- | ia valoarea 5 . Acest lucru este echivalent cu "b = 5;" | + | ia valoarea 5. Acest lucru este echivalent cu "b = 5;" |
*/ | */ | ||
*a = 5; | *a = 5; | ||
Line 258: | Line 261: | ||
* Alocă dinamic memoria pentru vector (folosind ''malloc''), iar această alocare se menţine şi la ieşirea din funcţie. | * Alocă dinamic memoria pentru vector (folosind ''malloc''), iar această alocare se menţine şi la ieşirea din funcţie. | ||
- | ==== Pointeri la funcţii ==== | + | ==== Studiu de caz ==== |
+ | <spoiler Pointeri la funcţii> | ||
Anumite aplicaţii numerice necesită scrierea unei funcţii care să poată apela o funcţie cu nume necunoscut, dar cu prototip şi efect cunoscut. | Anumite aplicaţii numerice necesită scrierea unei funcţii care să poată apela o funcţie cu nume necunoscut, dar cu prototip şi efect cunoscut. | ||
Line 307: | Line 311: | ||
break; // iesire din ciclu la apasarea unei taste | break; // iesire din ciclu la apasarea unei taste | ||
</code> | </code> | ||
+ | </spoiler> | ||
- | ===== Expresii complexe cu pointeri ===== | + | <spoiler Expresii complexe cu pointeri> |
Deşi sunt întâlnite mai rar în practică, limbajul C permite declararea unor tipuri de date complexe, precum: | Deşi sunt întâlnite mai rar în practică, limbajul C permite declararea unor tipuri de date complexe, precum: | ||
Line 330: | Line 334: | ||
</code> | </code> | ||
care semnifică o matrice de 5x10 de pointeri către pointeri constanţi la o funcţie, care nu ia nici un parametru, şi care întoarce un pointer către tipul ''unsigned int''. | care semnifică o matrice de 5x10 de pointeri către pointeri constanţi la o funcţie, care nu ia nici un parametru, şi care întoarce un pointer către tipul ''unsigned int''. | ||
+ | </spoiler> | ||
==== Exerciții Laborator CB/CD ==== | ==== Exerciții Laborator CB/CD ==== | ||
Primul exercițiu presupune rularea unei secvente de cod cu scopul de a clarifica diverse aspecte legate de pointeri. Analizați fiecare intrebare si incercati sa intuiti ce ar trebui sa se afiseze in continuare. După aceea verificați | Primul exercițiu presupune rularea unei secvente de cod cu scopul de a clarifica diverse aspecte legate de pointeri. Analizați fiecare intrebare si incercati sa intuiti ce ar trebui sa se afiseze in continuare. După aceea verificați | ||
Line 394: | Line 398: | ||
</code> | </code> | ||
**Următoarele două probleme vă vor fi date de asistent în cadrul laboratorului.** | **Următoarele două probleme vă vor fi date de asistent în cadrul laboratorului.** | ||
+ | |||
+ | [[https://drive.google.com/drive/u/0/folders/1qB6EZLGVubKbuTXMtMue06egH_8fo25M|Checker laborator 8]] | ||
+ | [[ https://ocw.cs.pub.ro/courses/programare/checker | Tutorial folosire checker laborator ]] | ||
<hidden> | <hidden> | ||
+ | |||
Link direct către lista completă de probleme: [[https://docs.google.com/document/d/1nERoSfIgBICsjXPB7SE5fH7Spq3WwlOzWNes6Eivp48/edit|aici]] | Link direct către lista completă de probleme: [[https://docs.google.com/document/d/1nERoSfIgBICsjXPB7SE5fH7Spq3WwlOzWNes6Eivp48/edit|aici]] | ||
</hidden> | </hidden> | ||
Line 424: | Line 432: | ||
</hidden> | </hidden> | ||
+ | |||
+ | [[https://drive.google.com/open?id=1xohyDQGMxXdGMvzyega5wKBi9WWk6qXW|Probleme laborator 14-16]] |