Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Ricerca valore in matrice bidimensionale c++
Forum - C/C++ - Ricerca valore in matrice bidimensionale c++

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
enlallaca (Normal User)
Newbie


Messaggi: 19
Iscritto: 13/03/2010

Segnala al moderatore
Postato alle 15:27
Venerdì, 02/04/2010
ciao a tutti, è il primo topic che apro dunque scusate di eventuali errori "tecnici"
Sto facendo un programma in c++ (utilizzo dev c++) e ora sono arrivata ad una parte che ad esempio inserita dell utente questa matrice
0 3 2 0 0
0 0 9 0 0
9 2 3 3 3
0 0 0 0 0
devo fare dei controlli per ricercare la posizione degli 1 e una volta trovato l'3 e la posizione devo controllare le celle attorno che lo racchiudono se ci sono altri 3, ma come faccio? So che servono cicli for ma non capisco come impostarli..
Grazie a tutti gia in anticipo...

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 14:50
Sabato, 03/04/2010
Ciao ti posto il codice che sono riuscito a fare:
Codice sorgente - presumibilmente C++

  1. #include  <iostream>
  2. #include <stdio.h>
  3. using namespace std;
  4.  
  5. void InserisciMat(int mat[][5]);
  6. int TrovaValore(int mat[][5],int valore, int* riga, int* colonna);
  7.  
  8. int main()
  9. {
  10.         int mat[4][5];
  11.         int riga[4];
  12.         int colonna[5];
  13.         int res = 0;
  14.  
  15.         InserisciMat(mat);
  16.         res = TrovaValore(mat,3,riga,colonna);
  17.        
  18.         for (int i =0; i <res;i++)
  19.                 cout << "valore trovato in: [" << riga[i] << "," << colonna[i] << "]" << endl;
  20.  
  21.         return 0;
  22. }
  23.  
  24. int TrovaValore(int mat[][5],int valore, int* riga, int* colonna)
  25. {
  26.         /* la funzione memorizza la posizione (riga e colonna) del valore da cercare, la funzione restituisce
  27.         il numero di volte in cui è presente il valore, altrimenti 0 se non c'è */
  28.  
  29.         int n=0;
  30.         int res = 0;
  31.        
  32.         for (int i =0; i <4;i++)
  33.         {
  34.                 for (int j = 0;j < 5; j++)
  35.                 {
  36.                         if (mat[i][j] == valore)
  37.                         {
  38.                                 riga[n]=i;
  39.                                 colonna[n++]=j;
  40.                                 res += 1;
  41.                         }
  42.                 }
  43.         }
  44.  
  45.         return res;
  46. }
  47. void InserisciMat(int mat[][5])
  48. {
  49.         /* inserisco i dati nella matrice */
  50.         for (int i=0; i<4;i++)
  51.         {
  52.                 for(int j = 0;j <5;j++)
  53.                 {
  54.                         cout << "Inserisci elemento: ["<< i << "," << j << "]" << endl;
  55.                         cin >> mat[i][j];
  56.                 }
  57.         }
  58. }



c'è la funzione InserisciMat che inserisce in una matrice 4X5 i dati dell'utente.
La funzione TrovaValore trova appunto un valore (esempio 3) e ne salva le cordinate in due vettore uno colonna e uno riga(quindi riga[0] e colonna[0] sono le cordinate del primo 3 che viene trovato nel tuo esempio [0,1] se non ricordo male), sarebbe stato meglio utilizzare una struttura ma non conosco il tuo livello di preparazione quindi ho usato due semplici vettori.
Sono bastati due semplici for, uno che scorre le righe e l'altro le colonne.

PM Quote
Avatar
enlallaca (Normal User)
Newbie


Messaggi: 19
Iscritto: 13/03/2010

Segnala al moderatore
Postato alle 15:43
Lunedì, 05/04/2010
credo di aver capito...:asd::asd:
grazie mille....

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 9:15
Martedì, 06/04/2010
cameriere tavolo 4!

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 12:34
Martedì, 06/04/2010
Testo quotato

Postato originariamente da HeDo:

cameriere tavolo 4!



so che non avrei dovuto postare il codice, ma spero che non si sia limitata a copiare il mio codice ma che abbia cercato di capirne il funzionamento, la logica. Comunque nell'altro post ha scritto di aver capito! Speriamo bene allora... ;)

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 20:53
Martedì, 06/04/2010
Testo quotato

Postato originariamente da Overflow:

Testo quotato

Postato originariamente da HeDo:

cameriere tavolo 4!



so che non avrei dovuto postare il codice, ma spero che non si sia limitata a copiare il mio codice ma che abbia cercato di capirne il funzionamento, la logica. Comunque nell'altro post ha scritto di aver capito! Speriamo bene allora... ;)



non voglio fare di tutta l'erba un fascio, ma una ragazza che chiede in un forum di programmazione vuole semplicemente il compito fatto. Il prossimo compito le verrà suggerito da qualcun ALTRO.

sottolineo il maschile.

P.S magari semplicemente non è una ragazza...

PM Quote
Avatar
enlallaca (Normal User)
Newbie


Messaggi: 19
Iscritto: 13/03/2010

Segnala al moderatore
Postato alle 14:54
Domenica, 11/04/2010
Testo quotato

Postato originariamente da Overflow:

Testo quotato

Postato originariamente da HeDo:

cameriere tavolo 4!



so che non avrei dovuto postare il codice, ma spero che non si sia limitata a copiare il mio codice ma che abbia cercato di capirne il funzionamento, la logica. Comunque nell'altro post ha scritto di aver capito! Speriamo bene allora... ;)



si sono una ragazza ma è la prima volta che chiedo aiuto! mi sono sempre arrangiata fin ora... sbaglio o ci sta un po' di maschilismo sotto?!!!?:_doubt:

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 16:05
Domenica, 11/04/2010
Testo quotato

Postato originariamente da enlallaca:

si sono una ragazza ma è la prima volta che chiedo aiuto! mi sono sempre arrangiata fin ora... sbaglio o ci sta un po' di maschilismo sotto?!!!?:_doubt:



io sto parlando in generale, come ho già detto, è sempre sbagliato fare di tutta l'erba un fascio, ma visto che ne ho viste tante, ma tante, tutte con lo stesso atteggiamento, parto sempre con un po di diffidenza verso queste cose.

PM Quote
Avatar
enlallaca (Normal User)
Newbie


Messaggi: 19
Iscritto: 13/03/2010

Segnala al moderatore
Postato alle 17:40
Martedì, 13/04/2010
Testo quotato

Postato originariamente da enlallaca:

Testo quotato

Postato originariamente da Overflow:

Testo quotato

Postato originariamente da HeDo:

cameriere tavolo 4!



so che non avrei dovuto postare il codice, ma spero che non si sia limitata a copiare il mio codice ma che abbia cercato di capirne il funzionamento, la logica. Comunque nell'altro post ha scritto di aver capito! Speriamo bene allora... ;)



si sono una ragazza ma è la prima volta che chiedo aiuto! mi sono sempre arrangiata fin ora... sbaglio o ci sta un po' di maschilismo sotto?!!!?:_doubt:



a....beh io programmo per piacere personale dunque non mi giovirebbe nulla copiare perchè me la faccio solo a me...io voglio imparare non copiare!

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo