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++ - creazione vettori
Forum - C/C++ - creazione vettori

Avatar
zaire90 (Normal User)
Rookie


Messaggi: 46
Iscritto: 16/10/2009

Segnala al moderatore
Postato alle 22:10
Lunedì, 16/11/2009
Salve ho un programma in cui dopo aver creato un vettore w mi chiede di:

4. Creare due vettori x e y tali che x contiene le componenti di w maggiori di 1 e y contiene le componenti di w minori od uguali ad 1;
5. Scrive il numero di componenti di x e y;
6. Scrive se x ha componenti nulle e indica quante e quali.

Per primi due punti non ho problemi ma non so come fare il numero 6: posto qui la parte in cui eseguo i punti 4 e 5:

Codice sorgente - presumibilmente C/C++

  1. cont_x=0;
  2. cont_y=0;    
  3.  
  4. for (i=0;i<m;i++)
  5.     if   (w[i]<1)
  6.          {
  7.              x[cont_x]=w[i];
  8.              cont_x++;
  9.          }
  10.     else          
  11.          {
  12.              y[cont_y]=w[i];
  13.              cont_y++;                
  14.          }
  15.  
  16. cout << "\n\nLe componenti di x sono " <<cont_x <<endl <<endl;  
  17. cout << "Le componenti di y sono " <<cont_y <<endl <<endl <<endl;



...se magari qualcuno mi aiutasse:)

PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 696
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 3:41
Martedì, 17/11/2009
Testo quotato

Postato originariamente da zaire90:

Salve ho un programma in cui dopo aver creato un vettore w mi chiede di:

4. Creare due vettori x e y tali che x contiene le componenti di w maggiori di 1 e y contiene le componenti di w minori od uguali ad 1;
5. Scrive il numero di componenti di x e y;
6. Scrive se x ha componenti nulle e indica quante e quali.

Per primi due punti non ho problemi ma non so come fare il numero 6: posto qui la parte in cui eseguo i punti 4 e 5:

Codice sorgente - presumibilmente C/C++

  1. cont_x=0;
  2. cont_y=0;    
  3.  
  4. for (i=0;i<m;i++)
  5.     if   (w[i]<1)
  6.          {
  7.              x[cont_x]=w[i];
  8.              cont_x++;
  9.          }
  10.     else          
  11.          {
  12.              y[cont_y]=w[i];
  13.              cont_y++;                
  14.          }
  15.  
  16. cout << "\n\nLe componenti di x sono " <<cont_x <<endl <<endl;  
  17. cout << "Le componenti di y sono " <<cont_y <<endl <<endl <<endl;



...se magari qualcuno mi aiutasse:)



Salve,
per risolvere il punto 6 e' sufficiente dichiarare un terzo vettore e un terzo contatore ( per esempio zero[] e count_zero ) e inserire all'interno dell'if che hai gia' qualcosa del genere:

Codice sorgente - presumibilmente C/C++

  1. [...]
  2.     if   (w[i]<1)
  3.          {
  4.              if (w[i] == 0)
  5.                 {
  6.                  zero[count_zero] = cont_x;
  7.                  count_zero++;
  8.                 }
  9.  
  10.              x[cont_x]=w[i];
  11.              cont_x++;
  12.          }
  13.  
  14. [...]



dopodiche' in count_zero avrai il numero degli elementi nulli del vettore x, mentre nel vettore zero[] avrai le posizioni che essi occupano nel vettore x.
Ciao.

Luigi

PM Quote
Avatar
zaire90 (Normal User)
Rookie


Messaggi: 46
Iscritto: 16/10/2009

Segnala al moderatore
Postato alle 21:37
Martedì, 17/11/2009
Ciao Luigi. Scusami non ho chiara una cosa...allora ho capito che cont_zero mi darà giustamente alla fine il numero di zeri, però non ho capito perchè in zero[], dove c'è cont_zero dovrei trovarne la posizione. Cioè se ci sono piu zeri lui mi darà l'ultima posizione....o no??

Non è che hai la pazienza di scrivermi come faccio la stampa di queste componenti nulle, perchè cosi magari capisco anche meglio come avviene il tutto (visto che tra l'altro non ci riesco io a farne la stampa)??
GRAZIE

PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 696
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 23:14
Martedì, 17/11/2009
Testo quotato

Postato originariamente da zaire90:

Ciao Luigi. Scusami non ho chiara una cosa...allora ho capito che cont_zero mi darà giustamente alla fine il numero di zeri, però non ho capito perchè in zero[], dove c'è cont_zero dovrei trovarne la posizione. Cioè se ci sono piu zeri lui mi darà l'ultima posizione....o no??

Non è che hai la pazienza di scrivermi come faccio la stampa di queste componenti nulle, perchè cosi magari capisco anche meglio come avviene il tutto (visto che tra l'altro non ci riesco io a farne la stampa)??
GRAZIE



Ciao,
praticamente il vettore zero[] conterra', per ogni elemento nullo del vettore x[], la posizione che esso occupa all'interno del vettore x[]

cioe' per esempio se il vettore x[] e':

0.5; 0; 0.3; 0; -3;

il vettore zero[] sara':

1; 3;

e' chiaro ora?

Ciao.

Luigi

PM Quote
Avatar
zaire90 (Normal User)
Rookie


Messaggi: 46
Iscritto: 16/10/2009

Segnala al moderatore
Postato alle 23:43
Martedì, 17/11/2009
Giusto...hai ragione...ok proverò a convincermene ancora di piu!GRAZIE:k:

PM Quote