Precedente :: Successivo |
Autore |
Messaggio |
er maximo Semidio


Registrato: 15/01/08 18:16 Messaggi: 268
|
Inviato: 04 Feb 2011 14:02 Oggetto: Aiuto c++?? |
|
|
Qualcuno potrebbe dirmi in cosa sbaglio??? :S.
Creo 2 matrici M1 e M2.
Nel vettore vmin devono andare tutti i valori, a uguale posizione rispetto M1 e M2, che sono minori o uguali rispetto l'altro; viceversa per vmag.
Non riesco a farlo... sintassi, semantica e grammatica sono corretti (dal mio punto di vista)... ma non i valori...
questo è il codice:
Codice: | #include <iostream>
#include <stdlib.h>
#include <string.h>
using namespace std;
int main()
{
int M1 [20][20];
int M2 [20][20];
int i=0,j=0,k=0,z=0;
int colonna=0, riga=0;
i=0;
j=0;
do {
cout<<endl<<"Inserisci grandezza colonna minore di 20" << endl;
cin>>colonna;
}
while (colonna>20);
cout<<endl<<"Inserisci grandezza riga" << endl;
cin>>riga;
for(i=0;i<riga;i++)
for (j=0;j<colonna;j++)
{
cout<<"inserisci valore "<<i<<"."<<j<<" ";
cin>>M1[i][j];
cout<<endl;
};
i=0;
j=0;
for(i=0;i<riga;i++) {
for (j=0;j<colonna;j++)
{
cout<<" "<<M1[i][j];
};
cout<<endl;
}
system("pause");
i=0;
j=0;
do {
cout<<endl<<"Inserisci grandezza colonna minore di 20" << endl;
cin>>colonna;
}
while (colonna>20);
do {
cout<<endl<<"Inserisci grandezza riga" << endl;
cin>>riga;
}
while (riga>20);
for(i=0;i<riga;i++){
for (j=0;j<colonna;j++)
{
cout<<"inserisci valore "<<i<<"."<<j<<" ";
cin>>M2[i][j];
cout<<endl;
}
cout<<endl;
};
i=0;
j=0;
for(i=0;i<riga;i++) {
for (j=0;j<colonna;j++)
{
cout<<" "<<M2[i][j];
};
cout<<endl;
}
system("pause");
cout<<"________________________________________________________________"<<endl;
int vmin[20], vmag[20];
k=0;
z=0;
int contk=0;
int contz=0;
for(i=0;i<riga;i++)
for (j=0;j<colonna;j++)
{
if(M1[i][j]<=M2[i][j])
{
vmin[k]=M1[i][j];
contk++;
k++;
}
else
{
vmag[z]=M2[i][j];
z++;
contz++;
}
};
i=0;
k=0;
j=0;
z=0;
cout<<endl<<"VMAG"<<endl;
if (contz==0)
cout<<endl<<"VAMG è vuoto"<<endl;
for (z=0;z<=contz;z++)
{
cout<<vmag[z];
cout<<endl;
}
cout<<endl<<"vmin";
if (contk==0)
cout<<endl<<"VMIN è vuoto"<<endl;
for (k=0;k<=contk;k++)
{
cout<<vmag[k];
cout<<endl;
}
system("pause");
return 0;
}
|
|
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11810 Residenza: Tokelau
|
Inviato: 04 Feb 2011 18:14 Oggetto: |
|
|
guarda, tu hai due for 'nidificati' e quindi fai riga per colonna confronti (quindi potenzialmente fino a 400 = 20 x 20) mentre metti i valori in due array di 20 elementi... qualche errore c'è di sicuro.
Secondo me k e z non ti servono, se si tratta di infilare il valore minimo o massimo tra i due per colonne o per righe.
Altrimenti anche vmin e vmag devono essere matrici 20x20... |
|
Top |
|
 |
er maximo Semidio


Registrato: 15/01/08 18:16 Messaggi: 268
|
Inviato: 04 Feb 2011 20:25 Oggetto: |
|
|
SverX ha scritto: | guarda, tu hai due for 'nidificati' e quindi fai riga per colonna confronti (quindi potenzialmente fino a 400 = 20 x 20) mentre metti i valori in due array di 20 elementi... qualche errore c'è di sicuro. |
è vero, a tal proposito posso fare i vmin e vmag di 400 (anche se nei miei esempi utilizzavo sempre (riga=3 x colonna=3)=9 dandomi risultati scorretti
SverX ha scritto: | Secondo me k e z non ti servono |
mi servono altrimenti se la posizione M1[0][3] è il primo carattare piccolo rispetto a M2[0][3], questo non va in vmin[0] ma va a vmin[3] (lasciandomi vuoti vmin[0], vmin[1], vmin[2])
SverX ha scritto: | se si tratta di infilare il valore minimo o massimo tra i due per colonne o per righe |
?????????? |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11810 Residenza: Tokelau
|
Inviato: 07 Feb 2011 15:40 Oggetto: |
|
|
allora non ho capito molto. hai le due matrici, e cosa devi trovare che non ho capito bene? |
|
Top |
|
 |
er maximo Semidio


Registrato: 15/01/08 18:16 Messaggi: 268
|
Inviato: 07 Feb 2011 19:15 Oggetto: |
|
|
SverX ha scritto: | allora non ho capito molto. hai le due matrici, e cosa devi trovare che non ho capito bene? |
Il vettore "VMin" deve contenere tutti gli elementi della matrice M1 che sono minori dei loro omologhi della matrice M2; "vmag" deve invece contenere tutti gli
elementi della matrice M1 che sono maggiori dei loro omologhi della matrice M2...
Posto il programma corretto (si, ho risolto il problema):
Codice: | #include <iostream>
#include <stdlib.h>
#include <string.h>
using namespace std;
int main()
{
int M1 [20][20];
int M2 [20][20];
int i=0,j=0,k=0,z=0;
int colonna=0, riga=0;
i=0;
j=0;
do {
cout<<endl<<"Prima matrice"<<endl<<"Inserisci grandezza colonna minore di 20" << endl;
cin>>colonna;
}
while (colonna>20);
do {
cout<<endl<<"Inserisci grandezza riga" << endl;
cin>>riga;
}
while (riga>20);
for(i=0;i<riga;i++)
for (j=0;j<colonna;j++)
{
cout<<"inserisci valore "<<i<<"."<<j<<" ";
cin>>M1[i][j];
cout<<endl;
};
i=0;
j=0;
do {
cout<<endl<<"Seconda matrice"<<endl<<"Inserisci grandezza colonna minore di 20" << endl;
cin>>colonna;
}
while (colonna>20);
do {
cout<<endl<<"Inserisci grandezza riga" << endl;
cin>>riga;
}
while (riga>20);
for(i=0;i<riga;i++){
for (j=0;j<colonna;j++)
{
cout<<"inserisci valore "<<i<<"."<<j<<" ";
cin>>M2[i][j];
cout<<endl;
}
cout<<endl;
};
i=0;
j=0;
cout<<endl<<"I Matrice"<<endl;
for(i=0;i<riga;i++) {
for (j=0;j<colonna;j++)
{
cout<<" "<<M1[i][j];
};
cout<<endl;
}
i=0;
j=0;
cout<<endl<<"II Matrice"<<endl;
for(i=0;i<riga;i++) {
for (j=0;j<colonna;j++)
{
cout<<" "<<M2[i][j];
};
cout<<endl;
}
system("pause");
cout<<"________________________________________________________________"<<endl;
int vmin[400], vmag[400];
int contk=0;
int contz=0;
for(i=0;i<riga;i++){
for (j=0;j<colonna;j++)
{
if(M1[i][j]<=M2[i][j])
{
vmin[contk]=M1[i][j];
contk++;
}
else
{
vmag[contz]=M1[i][j];
contz++;
}
}};
i=0;
k=0;
j=0;
z=0;
if (contz==0)
cout<<endl<<"VAMG è vuoto"<<endl;
else
{
cout<<endl<<"vmag"<<endl;
for(z=0;z<contz;z++)
{
cout<<vmag[z];
cout<<endl;
}
};
if (contk==0)
cout<<endl<<"VMIN è vuoto"<<endl;
else
{
cout<<endl<<"vmin"<<endl;
for (k=0;k<contk;k++)
{
cout<<vmin[k];
cout<<endl;
}
};
system("pause");
return 0;
}
|
|
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11810 Residenza: Tokelau
|
Inviato: 08 Feb 2011 11:11 Oggetto: |
|
|
mmm... probabilmente VMin e VMag dovrebbero essere anche loro delle matrici [20][20] e nel caso in cui M1[i][j]<=M2[i][j] farai
Vmin[i][j] = M1[i][j]
Vmag[i][j] = M2[i][j]
altrimenti (cioè quando il valore in M1 è maggiore di quello corrispondente in M2)
Vmin[i][j] = M2[i][j]
Vmag[i][j] = M1[i][j]
così ottieni la matrice dei minori e quella dei maggiori...  |
|
Top |
|
 |
|