Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Eseguire un programma particolare con DevC++

    Salve a tutti, ho intenzione di proporvi in questa discussione un Esercizio da risolvere con il programma DevC++; lo scrivo qui di seguito:

    1) Caricare una Matrice A con elementi a piacere;
    2) Stampare una Matrice B, i cui elementi siano quelli della Matrice A con la particolarità che nelle righe dispari siano stampati gli elementi dispari e che nelle righe pari siano stampati gli elementi pari.

    Ringrazio anticipatamente della vostra collaborazione.

    Un esempio di caricamento Matrice è il seguente, ma poi bisogna continuare ed eseguire il punto 2):
    codice:
    #include <iostream>
    #include <math.h>
    using namespace std;
    /**/
    int main()
    {
    int a[10][10];
    int n,m,i,j;
    cout<<"Inserire numero righe e numero colonne della Matrice:"<<endl<<endl;
    cout<<"Inserire numero righe (non oltre 5): ";cin>>n;cout<<endl;
    cout<<"Inserire numero colonne (non oltre 5): ";cin>>m;cout<<endl;
    
    while(n<1 || n>10 || m<1 || m>10)
    {
     cout<<"Errore di inserimento dati, riprova."<<endl<<endl;
     cout<<"Inserire numero righe e numero colonne della Matrice:"<<endl<<endl;
     cout<<"Inserire numero righe (non oltre 5): ";cin>>n;cout<<endl;
     cout<<"Inserire numero colonne (non oltre 5): ";cin>>m;cout<<endl;
    }
    
    cout<<"Inserimento elementi della Matrice:"<<endl<<endl;
    
    for(i=1;i<=n;i++)
     for(j=1;j<=m;j++)
      {
       cout<<"Elemento A["<<i<<","<<j<<"]= ";
       cin>>a[i][j];
       cout<<endl;
      }
    
    cout<<"La Matrice inserita e':"<<endl<<endl;
    
    for(i=1;i<=n;i++)
     {
      for(j=1;j<=m;j++)
      cout<<a[i][j]<<"  ";
      cout<<endl;
     }
    
    system("PAUSE");
    return 0;
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    250
    Mi sa che verrai invitato da qualche moderatore a prendere visione del regolamento perchè:

    1-Non si chiede lo svolgimento di alcun esercizio
    2-Il codice va postato col relativo tag code

  3. #3

    Moderazione

    Originariamente inviato da Marco1995
    Mi sa che verrai invitato da qualche moderatore a prendere visione del regolamento perchè:

    1-Non si chiede lo svolgimento di alcun esercizio
    2-Il codice va postato col relativo tag code
    Esattamente; come indicato nel regolamento,
    L'utente che apre la discussione ha il compito di fornire la propria proposta (o tentativo) di risoluzione ed eventualmente il codice sorgente scritto; in assenza di questi elementi, è comunque obbligatorio indicare con precisione i dettagli del problema, le indagini già fatte e il dubbio specifico in merito, senza limitarsi a porre la questione e delegare ad altri il lavoro.
    Per cui, posta un tuo abbozzo di soluzione per il punto 2, che ci si ragiona insieme.

    Per i tag code, ora ho sistemato io, in futuro ricordatene.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Ecco il programma che sono riuscito ad elaborare; vorrei che mi deste qualche consiglio a riguardo, grazie mille in anticipo per la collaborazione...approposito cosa sono i "tag code"?

    codice:
    #include <iostream>
    #include <math.h>
    using namespace std;
    /**/
    int main()
    {
    int a[10][10];
    int n,m,i,j;
    cout<<"Inserire numero righe e numero colonne della Matrice:"<<endl<<endl;
    cout<<"Inserire numero righe (non oltre 5): ";cin>>n;cout<<endl;
    cout<<"Inserire numero colonne (non oltre 5): ";cin>>m;cout<<endl;
    
    while(n<1 || n>10 || m<1 || m>10)
    {
     cout<<"Errore di inserimento dati, riprova."<<endl<<endl;
     cout<<"Inserire numero righe e numero colonne della Matrice:"<<endl<<endl;
     cout<<"Inserire numero righe (non oltre 5): ";cin>>n;cout<<endl;
     cout<<"Inserire numero colonne (non oltre 5): ";cin>>m;cout<<endl;
    }
    
    cout<<"Inserimento elementi della Matrice:"<<endl<<endl;
    
    for(i=1;i<=n;i++)
     for(j=1;j<=m;j++)
      {
       cout<<"Elemento A["<<i<<","<<j<<"]= ";
       cin>>a[i][j];
       cout<<endl;
      }
    
    cout<<"La Matrice inserita e':"<<endl<<endl;
    
    for(i=1;i<=n;i++)
     {
      for(j=1;j<=m;j++)
      cout<<a[i][j]<<"  ";
      cout<<endl;
     }
     
    cout<<"La Matrice B e':"<<endl<<endl;
    
    int b[10][10];
    
    for(i=1;i<=n;i++)
     for(j=1;j<=m;j++)
      {
       if(i%2!=0)
        {
         if(a[i][j]%2!=0)
         {b[i][j]=a[i][j];}
         else
         {b[i][j]=0;}
        }
       else
        {
         if(a[i][j]%2==0)
         {b[i][j]=a[i][j];}
         else
         {b[i][j]=0;}
        }  
      }
      
    for(i=1;i<=n;i++)
     {
      for(j=1;j<=m;j++)
      cout<<b[i][j]<<"  ";
      cout<<endl;
     }  
      
    system("PAUSE");
    return 0;
    }
    programma

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,476
    Occhio in tutte le for che gli indici partono da 0 e terminano con <m o <n ...

    I tag code sono le parole

    [ CODE ]

    e

    [ /CODE ]

    da aggiungere all'inizio e alla fine del codice senza gli spazi
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    250
    2) Stampare una Matrice B, i cui elementi siano quelli della Matrice A con la particolarità che nelle righe dispari siano stampati gli elementi dispari e che nelle righe pari siano stampati gli elementi pari.
    Questa richiesta mi risulta un pò ambigua...
    Tu vuoi che gli elementi pari siano copiati solo in riga pari mentre gli indici dispari vengano copiati sono nella riga dispari...se un elemento pari si trova nella posizione dispari vuoi che venga copiato nella posizione corretta o venga semplicemente ignorato?
    Nel primo caso simile al tuo può andare però devi ricordarti che gli indici partono da 0 e arrivano a n-1
    Nell'altro caso c'è da ragionarci un pò su..

  7. #7
    Ciao, per elementi pari intendo i valori pari e non la posizione pari dell'elemento (idem per gli elementi dispari); quindi, secondo te, quale modifica al programma si potrebbe apportare?
    Grazie per il tuo intervento.

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,476
    Originariamente inviato da Rinoleo
    quale modifica al programma si potrebbe apportare?
    Perché non cominci a modificare tutti i cicli dato che ti è stato detto un paio di volte che gli indici vanno da 0 a n-1 ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Secondo me il cambio degli indici non è poi così importante ai fini dell'esercizio; se mi sbaglio, mi puoi spiegare il perchè questo aspetto è importante?

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    250
    Ciao, per elementi pari intendo i valori pari e non la posizione pari dell'elemento (idem per gli elementi dispari); quindi, secondo te, quale modifica al programma si potrebbe apportare?
    Grazie per il tuo intervento.
    Ciao..innanzitutto come suggerito da oregon rivedrei tutti i cicli di inserimento e stampa...poi i numeri pari e dispari andrebbero immagazzinati all'interno di altri array.
    Bisognerebbe inoltre fare dei controlli:
    Supponi di avere una matrice 3x3 composta solo di numeri dispari,per un totale di 9 numeri dispari.Ovviamente la tua richiesta non è attuabile perchè nella nuova matrice ci possono stare al massimo solo 3 numeri dispari
    codice:
    Matrice a:
    1 3 5
    7 9 1
    3 5 7
    Matrice b:
    0 0 0
    1 3 5
    0 0 0
    Come puoi vedere tutti gli elementi dispari non possono venire disposti all'interno della matrice.
    Mentre le righe pari stanno a 0 perchè non vi è alcun elemento pari.

    Superati i controlli opportuni,puoi procedere al caricamento dei dati nella matrice.

    Secondo me il cambio degli indici non è poi così importante ai fini dell'esercizio; se mi sbaglio, mi puoi spiegare il perchè questo aspetto è importante?
    questo aspetto è importante perchè oltre a non caricare in maniera corretta i dati rischieresti di anare a scrivere in zone non destinate alla matrice stessa,provocando un potenziale crash.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.