poltronaMAN
Nuovo Utente
- Messaggi
- 3
- Reazioni
- 0
- Punteggio
- 19
buongiorno a tutti,
ho un problema che non riesco a risolvere (se esiste la soluzione). Faccio informatica alle superiori e come argomento siamo arrivati fino alle funzioni (no array, no puntatori, no variabili globali). Ogni volta che il mio prof di informatica fa una verifica, nel main vuole vedere SOLO dichiarazioni di variabili e SOLO funzioni.
Le verifiche che fa sono del tipo:
- richiedi un numero naturale N, richiedi due numeri a e b.
- genera N numeri (con la funzione rand) compresi nell'intervallo a e b. verificare:
- quanti sono quelli positivi e negativi
- quanti sono i multipli di 5 e 4 ma che siano quadrati perfetti
- calcola il cubo e il quadrato degli ultimi 2 numeri generati
eccetera eccetera
il mio prof vuole solo funzioni nel main e vuole che ogni valore ritorni nel main (tipo la variabile contenente il numero dei positivi eccetera). quindi dovrei creare una funzione dove vengono generati i numeri e per ogni numero generato devo fare le mille verifiche. il problema è che così facendo, la funzione si riempie con tantissimi parametri, facendo ritornare il valore delle variabili nel main tramite reference.
esempio:
non esiste un metodo alternativo? non potendo mettere neanche un "ciclo do while" nel main, mi tocca metterlo nella funzione e passare i parametri nel main!! ma ci sono troppi parametri!!
grazie mille a chiunque riesca ad aiutarmi
ho un problema che non riesco a risolvere (se esiste la soluzione). Faccio informatica alle superiori e come argomento siamo arrivati fino alle funzioni (no array, no puntatori, no variabili globali). Ogni volta che il mio prof di informatica fa una verifica, nel main vuole vedere SOLO dichiarazioni di variabili e SOLO funzioni.
Le verifiche che fa sono del tipo:
- richiedi un numero naturale N, richiedi due numeri a e b.
- genera N numeri (con la funzione rand) compresi nell'intervallo a e b. verificare:
- quanti sono quelli positivi e negativi
- quanti sono i multipli di 5 e 4 ma che siano quadrati perfetti
- calcola il cubo e il quadrato degli ultimi 2 numeri generati
eccetera eccetera
il mio prof vuole solo funzioni nel main e vuole che ogni valore ritorni nel main (tipo la variabile contenente il numero dei positivi eccetera). quindi dovrei creare una funzione dove vengono generati i numeri e per ogni numero generato devo fare le mille verifiche. il problema è che così facendo, la funzione si riempie con tantissimi parametri, facendo ritornare il valore delle variabili nel main tramite reference.
esempio:
C++:
#include <iostream>
#include <stdlib.h>
#include <ctime>
using namespace std;
void generazione_numeri(int N, int a, int b, int &positivi, int &negativi, int &multipli_4, int &multipli_5, int &quadrato, int &cubo);
int main()
{
srand(time(NULL));
int N, a, b, positivi = 0, negativi = 0, multipli_4, multipli_5, quadrato, cubo;
generazione_numeri(N, a, b, positivi, negativi, multipli_4, multipli_5, quadrato, cubo);
}
//facciamo finta che abbia già richiesto in input N, a, b con una funzione. (a < b)
bool negativo_positivo(int numero) //funzione per vedere se il numero è negativo o positivo
{
if(numero > 0)
return true;
}
void generazione_numeri(int N, int a, int b, int &positivi, int &negativi, int &multipli_4, int &multipli_5, int &quadrato, int &cubo) //generazione numeri
{
int counter = 1;
int N_generato;
do
{
N_generato = rand()%(b - a + 1) + a;
if(negativo_positivo(N_generato))
positivi++;
else
negativi++;
//qui metterò le chiamate delle altre funzioni per fare le varie verifiche (ad esempio vedere quanti sono i multipli di 5 e di 4, eccetera)
//ma, per far ritornare le variabili al main, devo passare i risultati al main tramite reference
//facendo in questo modo i parametri sono tantissimi!!
counter++;
}
while(counter <= N);
}
non esiste un metodo alternativo? non potendo mettere neanche un "ciclo do while" nel main, mi tocca metterlo nella funzione e passare i parametri nel main!! ma ci sono troppi parametri!!
grazie mille a chiunque riesca ad aiutarmi