Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct{
- int dim;
- float* elementi;
- }matrice;
- // Funzioni sul tipo di dato matrice
- // scrittura dimensione
- void ScriviDim( matrice* m1, int dim_val );
- // lettura dimensione
- int LeggiDim( matrice m1 );
- // scrittura elemento
- void ScriviElem( matrice* m1, int index, float value );
- // lettura elemento
- float LeggiElem( matrice m1, int index );
- // allocazione matrice
- matrice* AllocaMatrice( matrice* m1, int dim );
- // deallocazione matrice
- void DeallocaMatrice( matrice* m1 );
- // scalare di un numero reale per la matrice
- void scalare(matrice m1, int dim, float s );
- // stampa della matrice
- void StampaMatrice( matrice m1, int dim );
- int main()
- {
- matrice matrix;
- int righe = 2;
- int colonne = 3;
- int dimensione = righe * colonne;
- // scrivo la dimensione
- ScriviDim(&matrix ,dimensione);
- // alloco la matrice
- //AllocaMatrice( &matrix, LeggiDim(matrix) );
- // scrivo gli elementi della matrice
- int x = 0;
- while( x < LeggiDim(matrix) )
- {
- ScriviElem(&matrix,x,2.5);
- x = x + 1;
- }
- scalare(matrix, LeggiDim(matrix), 2.2 );
- StampaMatrice( matrix, LeggiDim(matrix) );
- DeallocaMatrice(&matrix);
- return 0;
- }
- void ScriviDim(matrice* m1, int dim_val )
- {
- m1->dim = dim_val;
- }
- int LeggiDim( matrice m1 )
- {
- return m1.dim;
- }
- void ScriviElem( matrice* m1, int index, float value )
- {
- m1->elementi[index] = value;
- }
- float LeggiElem( matrice m1, int index )
- {
- return m1.elementi[index];
- }
- matrice* AllocaMatrice( matrice* m1, int dim )
- {
- m1 = (matrice*) calloc(1,sizeof(matrice));
- if( dim > 0 )
- {
- m1->elementi = (float*) calloc(dim,sizeof(float) );
- }
- return m1;
- }
- void DeallocaMatrice( matrice* m1 )
- {
- free(m1->elementi);
- free(m1);
- }
- void scalare( matrice m1, int dim, float s )
- {
- // dichiaro matrice del prodotto scalare
- matrice* Mscalare;
- // alloco la matrice del prodotto scalare
- AllocaMatrice( Mscalare, dim );
- int i = 0;
- while( i < dim )
- {
- Mscalare->elementi[i] = s * LeggiElem( m1, i );
- i = i + 1;
- }
- }
- void StampaMatrice( matrice m1, int dim )
- {
- int i = 0;
- while( i < dim )
- {
- printf("%f \n" ,LeggiElem( m1, i) );
- i = i + 1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement