23/11/20 19:25
enneZeta
Postato originariamente da AldoBaldo:
Non so se comprenda argomenti che enneZeta non ha ancora affrontato, però potrebbe essere una soluzione anche quella di basare il programma su cicli che possano operare su quantità di vettori e di elementi per vettori più semplicemente modificabili.
Ad esempio, in questo caso basterebbe modificare g_qVett, g_qMinVal e g_qMaxVal per adattare il programma a una gamma di vettori più flessibile...
Ricorrere all'allocazione dinamica dei vettori sarebbe ancora più flessibile, ma dal tipo di esercizio proposto dubito che enneZeta abbia già studiato quel che serve.
P.S.
Lo so, quel che ho proposto è più vicino al C che al C++. Pignoli.
Non so se comprenda argomenti che enneZeta non ha ancora affrontato, però potrebbe essere una soluzione anche quella di basare il programma su cicli che possano operare su quantità di vettori e di elementi per vettori più semplicemente modificabili.
Ad esempio, in questo caso basterebbe modificare g_qVett, g_qMinVal e g_qMaxVal per adattare il programma a una gamma di vettori più flessibile...
#include <iostream> using namespace std; // costanti globali (volendo si potrebbero anche usare dei #define) const int g_qVett = 2; // quantita' dei vettori da trattare const int g_qMinVal = 1; // quantita' minima dei valori ammessi in ogni vettore const int g_qMaxVal = 9; // quantita' massima dei valori ammessi in ogni vettore // prototipi bool richiesta_dimensioni_vettore( int idVett, int *qEl ); bool richiesta_dati_vettore( int idVett, int *v, int qEl ); bool visualizzazione_dati_vettore( int idVett, const int *v, int qEl ); int main (){ int v[g_qVett][g_qMaxVal]; // i vettori int qEl[g_qVett]={0}; // la quantita' degli elementi nei vettori int i; for( i=0; i<g_qVett; ++i ) if( !richiesta_dimensioni_vettore(i+1,qEl+i) ) return 0; // errore gia' segnalato dalla funzione for( i=0; i<g_qVett; ++i ) if( !richiesta_dati_vettore(i+1,v[i],qEl[i]) ) return 0; // errore gia' segnalato dalla funzione for( i=0; i<g_qVett; ++i ) if( !visualizzazione_dati_vettore(i+1,v[i],qEl[i]) ) return 0; // errore gia' segnalato dalla funzione return 0; } bool richiesta_dimensioni_vettore( int idVett, int *qEl ) { if( idVett<1 || NULL==qEl ) { // verifica parametri cout<<&quot;Errore in richiesta_dimensioni_vettore():&quot;<<endl; // verifica i parametri, segnalando gli errori se qualcosa non va return false; // parametri non validi } // chiede le dimensioni del vettori, insistendo // finche' non viene fornita una risposta adeguata return true; } bool richiesta_dati_vettore( int idVett, int *v, int qEl ) { if( idVett<1 || NULL==v || qEl<1 ) { // verifica parametri cout<<&quot;Errore in richiesta_dati_vettore():&quot;<<endl; // verifica i parametri, segnalando gli errori se qualcosa non va return false; // parametri non validi } // in un ciclo che si ripete qEl volte, riceve i valori // da inserire nell'array, ripetendo le richieste ogni // volta che viene inserito un valore non accettabile return true; } bool visualizzazione_dati_vettore( int idVett, const int *v, int qEl ) { if( idVett<1 || NULL==v || qEl<1 ) { // verifica parametri cout<<&quot;Errore in visualizzazione_dati_vettore():&quot;<<endl; // verifica i parametri, segnalando gli errori se qualcosa non va return false; // parametri non validi } cout<<&quot;Valori immessi nel vettore n. &quot;<<idVett<<&quot;:&quot;<<endl; // in un ciclo che si ripete qEl volte, mostra il // valore contenuto in ogni elemento dell'array v return true; }
Ricorrere all'allocazione dinamica dei vettori sarebbe ancora più flessibile, ma dal tipo di esercizio proposto dubito che enneZeta abbia già studiato quel che serve.
P.S.
Lo so, quel che ho proposto è più vicino al C che al C++. Pignoli.
Grazie mille Aldo Baldo per la risposta e il bel compliemento. ho visto il codice ma non ho ben capito alcuni passaggi, probabilmente come hai già detto mi mancano alcuni concetti che dovrò affrontare in futuro. Non appena la mia conoscenza sarà più approfondita tornerò sicuramente a rivedere questa alternativa.
Ultima modifica effettuata da enneZeta 23/11/20 19:29