Salve a tutti,
innanzitutto buon anno .
Ho creato il seguente codice che mi genera per un certo numero di istanti di tempo e per un certo numero di prove la domanda casuale di un certo numero di clienti anch'esso casuale che varia per ogni prova, mentre la domanda di ogni cliente varia per ogni istante di tempo.
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream f("C:\Domande programma tesi.txt",ios::out);
int istanti_di_tempo;
int numero_di_prove;
int rack;
int slot;
int domanda_tot_sistema;
int domanda_cliente;
int i;
int p;
int t;
int totale;
int clienti;//ho definito clienti come intero almeno c++ mi prende direttamente la parte intera inferiore
srand((unsigned)time(NULL));//per inizializzare la funzione rand()
cout<<"Quanti istanti di tempo vuoi considerare? ";
cin>>istanti_di_tempo;
cout<<endl;
cout<<"Quante prove vuoi fare? ";
cin>>numero_di_prove;
cout<<endl;
cout<<endl;
cout<<endl;
cout<<endl;
for(p=1;p<=numero_di_prove;p++)
{
cout<<"PROVA "<<p<<endl;
cout<<endl;
cout<<endl;
f<<"PROVA "<<p<<endl;
f<<endl;
f<<endl;
rack = rand() % (11) + 5;
cout<<"Numero di rack = "<<rack<<endl;
cout<<endl;
f<<"Numero di rack = "<<rack<<endl;
f<<endl;
slot = rand ()%(11)+20;
cout<<"Numero di slot per rack = "<<slot<<endl;
cout<<endl;
f<<"Numero di slot per rack = "<<slot<<endl;
f<<endl;
domanda_tot_sistema=slot*rack;
cout<<"Domanda totale che il sistema sopporta = "<<domanda_tot_sistema<<endl;
cout<<endl;
f<<"Domanda totale che il sistema sopporta = "<<domanda_tot_sistema<<endl;
f<<endl;
int domanda_min;
int clienti_max;
int clienti_min;
domanda_min=slot/3;
clienti_max=(domanda_tot_sistema/(domanda_min));
clienti_min=domanda_tot_sistema/slot;
clienti= rand()%(clienti_max-clienti_min+1)+clienti_min;
cout<<"Clienti MIN = "<<clienti_min<<endl;
cout<<endl;
cout<<"Clienti MAX = "<<clienti_max<<endl;
cout<<endl;
cout<<"Numero di clienti = "<<clienti<<endl;
cout<<endl;
cout<<"Domanda MIN = "<<domanda_min<<endl;
cout<<endl;
cout<<"Domanda MAX = "<<slot<<endl;
cout<<endl;
cout<<endl;
cout<<endl;
f<<"Clienti MIN = "<<clienti_min<<endl;
f<<endl;
f<<"Clienti MAX = "<<clienti_max<<endl;
f<<endl;
f<<"Numero di clienti = "<<clienti<<endl;
f<<endl;
f<<"Domanda MIN = "<<domanda_min<<endl;
f<<endl;
f<<"Domanda MAX = "<<slot<<endl;
f<<endl;
f<<endl;
f<<endl;
for (t=1;t<=istanti_di_tempo;t++)
{
cout<<"Istante di tempo "<<t<<endl;
cout<<endl;
cout<<endl;
cout<<endl;
f<<"Istante di tempo "<<t<<endl;
f<<endl;
f<<endl;
f<<endl;
totale=0;
int new_slot;
int new_domanda_min;
int new_domanda_tot_sistema;
new_slot=slot;
new_domanda_min=domanda_min;
new_domanda_tot_sistema=domanda_tot_sistema;
for (i = 1; i<= clienti; i++)
{
cout<<"DOMANDA MINIMA = "<<new_domanda_min<<endl;
cout<<"DOMANDA MASSIMA = "<<new_slot<<endl;
cout<<"SLOT = "<<new_slot<<endl;
f<<"DOMANDA MINIMA = "<<new_domanda_min<<endl;
f<<"DOMANDA MASSIMA = "<<new_slot<<endl;
f<<"SLOT = "<<new_slot<<endl;
domanda_cliente = rand() % (new_slot-new_domanda_min+1)+(new_domanda_min);
new_domanda_tot_sistema=new_domanda_tot_sistema-domanda_cliente;
totale=totale+domanda_cliente;
new_slot=new_domanda_tot_sistema/rack;
new_domanda_min=new_slot/3;
cout <<"Domanda cliente " << i << " = " << domanda_cliente << endl;
cout<<endl;
cout<<endl;
f<<"Domanda cliente " << i << " = " << domanda_cliente << endl;
f<<endl;
f<<endl;
}
cout<<endl;
cout<<"La capacita' richiesta dal sistema e' = "<<totale<<endl;
cout<<endl;
cout<<endl;
cout<<endl;
cout<<endl;
cout<<endl;
cout<<endl;
cout<<endl;
f<<"La capacita' richiesta dal sistema e' = "<<totale<<endl;
f<<endl;
f<<endl;
f<<endl;
f<<endl;
f<<endl;
f<<endl;
}
}
if(!f)
{
cout<<"Errore nella scrittura del file";
return 1;//termina il programma in anticipo
}
cout<<"Scrittura avvenuta con successo!!!";
cout<<endl;
system("PAUSE");
return 0;
}
Il problema è il seguente.
Siccome voglio ordinare in ordine decrescente la domanda per ogni cliente per ogni istante di tempo e per ogni prova, penso la cosa più logica da fare sia inserire la domanda dei clienti generata in un vettore.
Purtroppo non so dove mettere mano per inserire la domanda nel vettore; ho letto sul manuale ma non è che ci abbia capito molto.
Prima di tutto dovrei generare un vettore della dimensione dei clienti.
Comincerei in questo modo
int domanda_clienti [clienti]
poi come fare per inserire le domande create dal codice nel vettore?
Grazie a tutti