This shows you the differences between two versions of the page.
|
programare-cc:laboratoare:10 [2020/12/12 11:14] andrei.simescu [Problema 2] |
programare-cc:laboratoare:10 [2025/12/11 12:44] (current) carmen.odubasteanu [Problema 4] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ===== Laboratorul 10. Pointeri la funcţii. Operatori pe biţi. ===== | + | ===== Laboratorul 10. Pointeri la funcţii. Operatori pe biţi. Structuri-Enumerări ===== |
| În acest laborator veţi învăţa să folosiţi: | În acest laborator veţi învăţa să folosiţi: | ||
| Line 5: | Line 5: | ||
| * Pointeri la funcţii | * Pointeri la funcţii | ||
| * Directive de preprocesare | * Directive de preprocesare | ||
| + | * Structuri-Enumerări | ||
| ==== Problema 1 ==== | ==== Problema 1 ==== | ||
| Line 13: | Line 14: | ||
| Funcţia primeşte ca argument adresa funcţiei de integrat şi numărul de paşi şi va avea antetul: | Funcţia primeşte ca argument adresa funcţiei de integrat şi numărul de paşi şi va avea antetul: | ||
| <code c>double integrala(double (*func) (double x), double a, double b, int n) </code> | <code c>double integrala(double (*func) (double x), double a, double b, int n) </code> | ||
| - | Programul principal va apela funcţia de calcul a integralei pentru două funcţii diferite şi un n suficient de mare. Se pot | + | Programul principal va apela funcţia de calcul a integralei pentru două funcţii diferite şi un n suficient de mare(peste 100). Se pot |
| - | integra functiile **sin(x)** si **cos(x)** pe intervalul **[0, PI]**. | + | integra functiile **sin(x)** si **cos(x)** pe intervalul **[0, PI]**. Pentru sin rezultatul va fi 2, iar pentru cos va fi 0. |
| + | Verificati si cu sin pe intervalul **[PI/2, PI]** ca rezultatul este 1. | ||
| ==== Problema 2 ==== | ==== Problema 2 ==== | ||
| Line 36: | Line 39: | ||
| void add(struct multime *m, int x) // adaugă pe x la mulţimea m | void add(struct multime *m, int x) // adaugă pe x la mulţimea m | ||
| void del(struct multime *m, int x) // şterge pe x din mulţimea m | void del(struct multime *m, int x) // şterge pe x din mulţimea m | ||
| - | void print(struct multime *m) // afişează mulţimea m | + | void print(struct multime m) // afişează mulţimea m |
| - | int contains(struct multime *m, int x) // returnează 1 dacă x se află în mulţimea m şi 0 altfel | + | int contains(struct multime m, int x) // returnează 1 dacă x se află în mulţimea m şi 0 altfel |
| </code> | </code> | ||
| Să se scrie un program ce testează funcţiile definite mai sus. | Să se scrie un program ce testează funcţiile definite mai sus. | ||
| Line 92: | Line 95: | ||
| Definiţi tabloul **PROGRAMA** de **MAX** elemente de tip **MATERIA**, **MAX** fiind o constantă predefinită. | Definiţi tabloul **PROGRAMA** de **MAX** elemente de tip **MATERIA**, **MAX** fiind o constantă predefinită. | ||
| + | |||
| Scrieţi funcţia **citire_PROGRAMA**, de tip **void**, care iniţializează tabloul **PROGRAMA**, prin apelul funcţiei | Scrieţi funcţia **citire_PROGRAMA**, de tip **void**, care iniţializează tabloul **PROGRAMA**, prin apelul funcţiei | ||
| **citire_MAT**. | **citire_MAT**. | ||
| Line 122: | Line 126: | ||
| /* afiseaza pe ecran matricea transmisă ca parametru. | /* afiseaza pe ecran matricea transmisă ca parametru. | ||
| */ | */ | ||
| - | void scrie_MATRICE(MATRICE* ma) | + | void scrie_MATRICE(MATRICE ma) |
| /* dacă matricile ma şi mb au aceleaşi dimensiuni, atunci funcţia returnează adresa unei noi | /* dacă matricile ma şi mb au aceleaşi dimensiuni, atunci funcţia returnează adresa unei noi | ||
| Line 128: | Line 132: | ||
| *(adunarea nu se poate face, deci rezultatul nu există). | *(adunarea nu se poate face, deci rezultatul nu există). | ||
| */ | */ | ||
| - | MATRICE* aduna_MATRICE(MATRICE* ma, MATRICE* mb) | + | MATRICE* aduna_MATRICE(MATRICE ma, MATRICE mb) |
| /* dacă matricile ma şi mb se pot înmulţi, atunci funcţia returnează adresa unei noi matrici | /* dacă matricile ma şi mb se pot înmulţi, atunci funcţia returnează adresa unei noi matrici | ||
| Line 134: | Line 138: | ||
| * (înmulţirea nu se poate face, deci rezultatul nu există). | * (înmulţirea nu se poate face, deci rezultatul nu există). | ||
| */ | */ | ||
| - | MATRICE* inmulteste_MATRICE(MATRICE* ma, MATRICE* mb) | + | MATRICE* inmulteste_MATRICE(MATRICE ma, MATRICE mb) |
| </code> | </code> | ||
| Scrieti un main in care testati functiile implementate anterior! | Scrieti un main in care testati functiile implementate anterior! | ||