Ricerca occorrenze in matrice

di il
44 risposte

44 Risposte - Pagina 3

  • Re: Ricerca occorrenze in matrice

    E il mio esempio non fa quello che ti ha detto il prof? O c'è qualcosa che mi sfugge?
  • Re: Ricerca occorrenze in matrice

    Però effettivamente posso mettere che se occ = 1 non me lo mostra .... e tutto si risolverebbe
  • Re: Ricerca occorrenze in matrice

    Hem, me lo studio bene, quell'index_t mi sta un po confondendo
  • Re: Ricerca occorrenze in matrice

    Size_t è un unsigned int, pensalo come un int e sei a posto. index tiene conto di quante celle ne ho riempito fino ad adesso.
  • Re: Ricerca occorrenze in matrice

    Capitp capito, grande !

    ma vorrei comunque ringraziare ale per la pazienza spassionata con cui mi ha seguito !
  • Re: Ricerca occorrenze in matrice

    La mia è solo una delle tante soluzioni, non è detto che sia la migliore. Ma prima di incasinarti con mille for/if ecc... pensa a dividere il problema in tanti sottoproblemi e vedrai che tutto diventa facile.

    Cmq un grazie ad Ale anche da parte mia, vedo che è molto attivo sto ultimo periodo.
  • Re: Ricerca occorrenze in matrice

    Solo una cosa non mi è chiara:
    conteggio.occorrenze++;
    return;<----che vuol dire return, serve per ritornare conteggio.occorrenze++; ?
  • Re: Ricerca occorrenze in matrice

    No. Serve per uscire dalla funzione in quanto sei riuscito a trovare nel vettore il valore. Se invece non l'hai trovato, il for si esaurisce e cadi nella posizione in cui il valore non si trova nel vettore. A quel punto lo inserisci nel vettore e metti la sua occorrenza a 1.
  • Re: Ricerca occorrenze in matrice

    Come gli avevo detto, cercando di scrivere tutto in un unico programma, questo oltre a complicarti la vita ( più fatica ) aumenta anche la possibilità di errori. Comunque sia poel la condizione
    
     if ( q == j  && p == i ); 
                 else {
    
    In pratica se devi contare quante occorrenze ci sono nelle matrice dato un valore , devi eliminare da quella matrice la posizione di quel valore ( altrimenti te la conta come occorrenza ) e quindi quell' if xD.


    E di cosa skynet è un piacere ^^ anche se , essendo molto impegnato , scrivo il programma stesso qua nel forum e cerco di modificare il meno possibile quello creato dagli utenti.
    Comunque la soluzione di skynet è ottimale , solo che esempio il valore 9 entra nel vettore anche se non ha occorrenze. In quel caso comunque basta regolarsi con la stampa ^^
  • Re: Ricerca occorrenze in matrice

    skynet ha scritto:


    No. Serve per uscire dalla funzione in quanto sei riuscito a trovare nel vettore il valore. Se invece non l'hai trovato, il for si esaurisce e cadi nella posizione in cui il valore non si trova nel vettore. A quel punto lo inserisci nel vettore e metti la sua occorrenza a 1.
    Chiaro !

    ma sbaglio o una cosa simile si fa anche con il break?
  • Re: Ricerca occorrenze in matrice

    Il break ti fa uscire dal for e basta, noi vogliamo che una volta trovato esca proprio dalla funzione e non consideri la parte fuori dal for.
  • Re: Ricerca occorrenze in matrice

    Ho implementato nelle mia funzioni così:
    void controllaOcc (matrice m,int r,int c,int & val,vettore  v,int   rpm){
        cout<<"\nOccorrenze sull'intera matrice\n";
         rpm=0;
         for(int i=0;i<r;i++)
         {
           for (int j=0;j<c;j++){
             contaOcc (m[i][j],v, rpm);//***************************************************
             }
         }
         int max=v[0].occ;
         for(int p=0;p<rpm;p++){
         cout<<"\nL'elemento "<<v[p].val<<" si ripete "<<v[p].occ<<" volte";
         if(max<v[p].occ)
         max=v[p].occ;
         }
         cout<<"\nIl numero di occorrenze massimo e' "<<max<<endl<<endl;
    }
        
    
    
    void contaOcc(int val,vettore & v, int &  rpm)
    {
       for(int i = 0; i <rpm; i++)
       {
          if(val == v[i].val)
          {
             v[i].occ++;
             return;
          }
       }
       v[rpm].val = val;
       v[rpm].occ = 1;
       rpm++;
    }
    
         
    *********qui mi dice invalid initialization of reference of type 'ripetuti (&)[100]' from expression of type 'ripetuti*' --- ripetuti è l'array di record
    per un paio di compilazioni ha funzionato, poi non so cosa ho cambiato (sicuramente nel passaggio dei valori, e non va più )
  • Re: Ricerca occorrenze in matrice

    Prova a passare nella funzione ControllaOcc il vettore v per riferimento ( vettore & v )
  • Re: Ricerca occorrenze in matrice

    Ho già provato, ma niente
  • Re: Ricerca occorrenze in matrice

    Da sempre lo stesso errore? o.O mi sembra strano
Devi accedere o registrarti per scrivere nel forum
44 risposte