Esercizio sulle matrici.

di il
19 risposte

19 Risposte - Pagina 2

  • Re: Esercizio sulle matrici.

    
    #include <stdio.h>
    #include <time.h>
    #include <stdlib.h>
    #define N 3
    
    
    void stampamatrice(int matrice[N][N]);
    void prodottomatrici(int matrice1[][N], int matrice2[][N], int matrice3[][N]);
    
    int main ()
    {
        int matrice1[N][N], matrice2[N][N];
        int matrice3[N][N];
        int i,j,k;
        srand(time(NULL));
    
        printf("\n Prodotto di due matrici 1, 2 \n");
    
        printf("\n MATRICE1 \n");
        for(i=0; i<N; i++)
            for(j=0; j<N; j++)
                matrice1[i][j]=rand()%10 ;
        printf("\n Genero una matrice1 di dimensioni %dX%d:\n\n",N,N);
        stampamatrice(matrice1);
    
    
    
        printf("\n MATRICE2\n");
        for(i=0; i<N; i++)
            for(j=0; j<N; j++)
                matrice2[i][j]=rand()%10 ;
        printf("\n Genero una matrice2 di dimensioni %dX%d:\n\n",N,N);
        stampamatrice(matrice2);
    
    
        printf("\n RISULTATO \n");
        /*for(i=0; i<N; i++)
        {
            for(j=0; j<N; j++)
            {
                matrice3[i][j] = 0;
                for(k=0; k<N; k++)
                    matrice3[i][j]+=matrice1[i][k]*matrice2[k][j];
    
            }
            printf("\n");
        }*/
    
        prodottomatrici(matrice1,matrice2,matrice3);      //va prima di stampamatrice   //devi dargli in input tutte le matrici
        stampamatrice(matrice3);
    
        printf("FINE \n\n");
        getchar();
    
    }
    
    
    
    
    void stampamatrice(int matrice[N][N])
    {
        int i,j;
        for(i=0; i<N; i++)
        {
            for(j=0; j<N; j++)printf("%4d",matrice[i][j]);
            printf("\n\n");
        }
    }
    
    
    void prodottomatrici(int matrice1[][N], int matrice2[][N], int matrice3[][N])         //deve essere matrice[][N]
    {
        int i,j,k;
    
        for(i=0; i<N; i++)
        {
            for(j=0; j<N; j++)
            {
                matrice3[i][j] = 0;
                for(k=0; k<N; k++)
                    matrice3[i][j]+=matrice1[i][k]*matrice2[k][j];
    
            }
            printf("\n");
        }
    }
    
    Con tre correzioni

    -alla funzione prodotto devi dare tutte le matrici
    -prima calcoli il prodotto, poi lo visualizzi
    -di un vettore devi dichiarare tutte le dimensioni tranne la prima(facoltativa)
    al massimo gli passi un puntatore al primo elemento della matrice e separatamente le dimensioni
  • Re: Esercizio sulle matrici.

    Tipo
    
    main{
    
    int n[3][3][3];
    
    funzione(**n,3,3,3);         puntatore a primo elemento, ovvero n[0][0][0];
    
    }
    
    int funzione(int* matrice, int dimX, int dimY, int dimZ){ }
    
  • Re: Esercizio sulle matrici.

    Ok alee grazie mille .
    Sei stato molto gentile;)
  • Re: Esercizio sulle matrici.

    GIusto come nota: il prodotto di due matrici NON E' IL PRODOTTO DEI SINGOLI ELEMENTI

  • Re: Esercizio sulle matrici.

    Chi ha considerato questo????
Devi accedere o registrarti per scrivere nel forum
19 risposte