Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
Aiuto c++??
Nuovo argomento   Rispondi    Indice del forum -> Programmazione
Precedente :: Successivo  
Autore Messaggio
er maximo
Semidio
Semidio


Registrato: 15/01/08 18:16
Messaggi: 268

MessaggioInviato: 04 Feb 2011 14:02    Oggetto: Aiuto c++?? Rispondi citando

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
Profilo Invia messaggio privato MSN
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 12:16
Messaggi: 11810
Residenza: Tokelau

MessaggioInviato: 04 Feb 2011 18:14    Oggetto: Rispondi citando

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
Profilo Invia messaggio privato HomePage
er maximo
Semidio
Semidio


Registrato: 15/01/08 18:16
Messaggi: 268

MessaggioInviato: 04 Feb 2011 20:25    Oggetto: Rispondi citando

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
Profilo Invia messaggio privato MSN
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 12:16
Messaggi: 11810
Residenza: Tokelau

MessaggioInviato: 07 Feb 2011 15:40    Oggetto: Rispondi citando

allora non ho capito molto. hai le due matrici, e cosa devi trovare che non ho capito bene?
Top
Profilo Invia messaggio privato HomePage
er maximo
Semidio
Semidio


Registrato: 15/01/08 18:16
Messaggi: 268

MessaggioInviato: 07 Feb 2011 19:15    Oggetto: Rispondi citando

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
Profilo Invia messaggio privato MSN
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 12:16
Messaggi: 11810
Residenza: Tokelau

MessaggioInviato: 08 Feb 2011 11:11    Oggetto: Rispondi

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... Rolling Eyes
Top
Profilo Invia messaggio privato HomePage
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Programmazione Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi