Oppure

Loading
16/11/09 21:10
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:

cont_x=0;
cont_y=0;    

for (i=0;i<m;i++)
    if   (w[i]<1)
         {
             x[cont_x]=w[i];
             cont_x++;
         }
    else           
         {
             y[cont_y]=w[i];
             cont_y++;                
         }

cout << "\n\nLe componenti di x sono " <<cont_x <<endl <<endl;   
cout << "Le componenti di y sono " <<cont_y <<endl <<endl <<endl;


...se magari qualcuno mi aiutasse:)
aaa
17/11/09 2:41
gigisoft
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:

cont_x=0;
cont_y=0;    

for (i=0;i<m;i++)
    if   (w[i]<1)
         {
             x[cont_x]=w[i];
             cont_x++;
         }
    else           
         {
             y[cont_y]=w[i];
             cont_y++;                
         }

cout << "\n\nLe componenti di x sono " <<cont_x <<endl <<endl;   
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:

[...]
    if   (w[i]<1)
         {
             if (w[i] == 0)
                {
                 zero[count_zero] = cont_x; 
                 count_zero++;
                }

             x[cont_x]=w[i];
             cont_x++;
         }

[...]


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
aaa
17/11/09 20:37
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
aaa
17/11/09 22:14
gigisoft
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
aaa
17/11/09 22:43
zaire90
Giusto...hai ragione...ok proverò a convincermene ancora di piu!GRAZIE:k:
aaa