Problema calcolo della matrice

di il
18 risposte

Problema calcolo della matrice

Salve ragazzi sono Pippo e vi chiedo gentilmente di risolvermi questo piccolo problema ma che può essere grande per chi è alle prime armi come me.Questo programma attraverso un una funzione che mi restituisce il valore booleano true per gli elementi pari della matrice,e false per quelli dispari.Quando nella seconda funzione devo smistare gli elementi in due vettori differenti qui mi si crea un problema che al momento non sono in grado di risolvere.La funzione stampa e leggi sono fatte bene.In attesa di una risposta vi ringrazio in anticipo.






bool elementi_pari(matrice mat,int rig,int col)
{
bool trovato;
int i,j;

for(i=0;i<rig;i++)
for(j=0;j<col;j++)
if(mat[j]%2==0)
return true;
else
return false;

}



void par(matrice mat,vettore vebp,vettore vebd,int rig,int col,int &riembp,int &riembd)
{
int i,j;
bool trovato;
riembp=0,riembd=0;
for(i=0;i<rig;i++)
for(j=0;j<col;j++)
if(trovato){
vebp[riembp]=mat[j];
riembp++;
}
else
vebd[riembd]=mat[j];
riembd++;


}

18 Risposte

  • Re: Problema calcolo della matrice

    Non ho capito il problema: Cosa significa true per elementi pari e false per dispari. La somma di tutta la matrice dev'essere pari o dispari?
  • Re: Problema calcolo della matrice

    skynet ha scritto:


    Non ho capito il problema: Cosa significa true per elementi pari e false per dispari. La somma di tutta la matrice dev'essere pari o dispari?
    true gli elementi pari ,false quelli dispari.
  • Re: Problema calcolo della matrice

    Si ma cosa significa. m[0][0] con valore 4 mi da true ma m[0][1] di valore 3 mi da false. Tu stai controllando tutta la matrice o stai controllando un valore. Vuoi mettere in due vettori distinti gli elementi true/false?
  • Re: Problema calcolo della matrice

    Sto controllando tutta la matrice e poi i risultati devono andare in due vettori distinti uno per gli elementi true e l'altro per il false.
  • Re: Problema calcolo della matrice

    E qual'e il problema che ti si crea? Stai passando le variabili per riferimento o per valore?
  • Re: Problema calcolo della matrice

    Ho provato sia per riferimento e sia per valore,ma il problema è sempre lo stesso quando stampo i vettori questi hanno valori sbagliati tutti si trovano in quelli false
  • Re: Problema calcolo della matrice

    Fa vedere le dichiarazioni delle funzioni, non solo lo sviluppo.
  • Re: Problema calcolo della matrice

    Okkè allora posto tutto il codice....

    bool elementi_pari(matrice mat,int rig,int col)
    {
    bool trovato;
    int i,j;

    for(i=0;i<rig;i++)
    for(j=0;j<col;j++)
    if(mat[j]%2==0)
    return true;
    else
    return false;

    }



    void par(matrice mat,vettore vebp,vettore vebd,int rig,int col,int &riembp,int &riembd)
    {
    int i,j;
    bool trovato;
    riembp=0,riembd=0;
    for(i=0;i<rig;i++)
    for(j=0;j<col;j++)
    if(trovato){
    vebp[riembp]=mat[j];
    riembp++;
    }
    else
    vebd[riembd]=mat[j];
    riembd++;


    }



    int main()
    {
    matrice mat;
    vettore vebp, vebd;
    int rig,col;
    int riembp,riembd;


    leggimat(mat,rig,col);
    stampamat(mat,rig,col);
    par(mat,vebp,vebd,rig,col,riembp,riembd);
    cout<<"elementi pari";
    stampavet(vebp,riembp);
    cout<<endl;
    cout<<"elementi dispari \n";
    stampavet(vebd,riembd);
    cout<<endl;

    system("pause");

    }


    questo ho fatto ho omesso sia leggimat stampamat e stampavet perchè quelle sono ok
  • Re: Problema calcolo della matrice

    Madonna sei duro però. Come sono definiti le funzioni?
    cos'è matrice? e definito come int ** o cosa.
    Così non stai passando gli elementi per riferimento ma per valore, per forza che i risultati sono sbagliati.
  • Re: Problema calcolo della matrice

    Const int max=50;
    typedef int matrice[max][max];
    typedef int vettore[max];

    si avevo fatto anche per riferimento e non andava mi faresti vedere come va la cosa ?
  • Re: Problema calcolo della matrice

    La definizione giusta dovrebbe essere questa
    
    void par(matrice &mat,vettore &vebp,vettore &vebd,int rig,int col,int &riembp,int &riembd)
    
  • Re: Problema calcolo della matrice

    Si così avevo fatto prima e poi lo svolgimento ? per piacere ovviamente XD
  • Re: Problema calcolo della matrice

    
    void par(matrice mat,vettore vebp,vettore vebd,int rig,int col,int &riembp,int &riembd)
    {
    int i,j;
    bool trovato;
    riembp=0,riembd=0;
    for(i=0;i<rig;i++)
    for(j=0;j<col;j++)
    if(elementi_pari(mat,i,j)){
    vebp[riembp]=mat[i][j];
    riembp++;
    }
    else
    vebd[riembd]=mat[i][j];
    riembd++;
    
    
    }
    
    devi definire anche elementi pari così
    
    bool elementi_pari(matrice &mat,int rig,int col)
    {
       return ((mat[rig][col] % 2) == 0);
    }
    
  • Re: Problema calcolo della matrice

    Okok grazie veramente gentile
Devi accedere o registrarti per scrivere nel forum
18 risposte