codice:
using namespace std;
string intToString(int value) {
stringstream ss;
ss << value;
return ss.str();
}
string floatToString(float value) {
stringstream ss;
ss << value;
return ss.str();
}
int main (int argc, char *argv[]) {
//cancello il file ambigeenrati.txt;
unlink("ambigenerati.txt"); /* 0 in caso di successo */
for (int c=1 ; c<91; c++) {
cout << "Valore fisso a girare: ";
cout << c;
cin.get();
//ricancello ambigenerati.txt e il vector dei precedenti ambi creati...
unlink("ambigenerati.txt"); /* 0 in caso di successo */
vec.clear();
//-----------------------------
for( int i=1; i <91; i++ )
{
if( i!=valore1 && i!=valore2 && i!=valore3)
{
// scrivi il valore1, valore2, valore3, i su file
cout << c;
cout << ",";
cout << i;
s += intToString(c);
s += ",";
s += intToString(i);
cout << "\n";
//cout << "stringa: "+s;
cout << "\n";
//cin.get();
insiemedistringhe.push_back(s);
//riazzero stringa...
//CREO FILE
ofstream fout;
fout.open("ambigenerati.txt", ios::app);
//cout << "\nLETTURA DI TUTTO L'INSIEME DELLE SINGOLE COMBINAZIONI SEPARATE:\n\n";
fout << s+"\n";
fout.close();
s="";
}
}
//PROVA VERIFICA con file ESTRAZIONI--------
cout << "\n\n\n";
cout << "\n\n\n";
cin.get();
ifstream fin("ambigenerati.txt");
if (fin) {
string s;
while(fin) // cattura tutti gli errori.
{
getline(fin,s);
//cout << s;
vec.push_back(s);
}
}
int sz = vec.size()-1;
//cout << "\n\n\n";
//cout << "Press ENTER to continue...x VISUAZLIZZAZIONE DELLE SINGOLE STRINGHE NELL'ARRAY1..." << endl;
//cout << "\n\n\n";
//cin.get();
for (int x=0; x<sz; x++) {
//contatore++;
//mostro a video contenuto dell'array formato...
cout << vec[x];
}
cout << "\n\n\n ESEMPIO DI VISUALIZZAZIONE DI UN ELEMENTO ARRAY ALL'INTERNO: ";
//cout << vec[117479];
cout << "\n\n\n";
cout << "NUMERO DI ELEMENTI DEL VETTORE: ";
cout << "\n\n\n";
cout << sz;
cout << "\n\n\n";
//PROVA VISUALIZZAZIONE ARRAY2....
cout << "Press ENTER to continue...x VISUALIZZAZIONE DELLE SINGOLE STRINGHE DELL'ARRAY2..." << endl;
cin.get();
vector<string> vec2;
int contatore2=0;
ifstream f2in("LOTTO-RUOTAVOLUTA.txt");
if (f2in) {
string s;
while(f2in) // cattura tutti gli errori.
{
getline(f2in,s);
//cout << s;
vec2.push_back(s);
}
}
int sz2 = vec2.size()-1;
//cout << "\n\n\n";
//cout << "Press ENTER to continue...x VISUAZLIZZAZIONE DELLE SINGOLE STRINGHE NELL'ARRAY1..." << endl;
//cout << "\n\n\n";
//cin.get();
for (int x=0; x<sz2; x++) {
//contatore++;
//mostro a video contenuto dell'array formato...
cout << vec2[x];
}
cout << "\n\n\n ESEMPIO DI VISUALIZZAZIONE DI UN ELEMENTO ARRAY ALL'INTERNO: ";
//cout << vec2[34];
cout << "\n\n\n";
cout << "NUMERO DI ELEMENTI DEL VETTORE: ";
cout << "\n\n\n";
cout << sz2;
cout << "\n\n\n";
cout << "\n\n\n";
cout << "Press ENTER to continue...x scomporre elementi stringa di array... in sottoarray relativi..." << endl;
cout << "\n\n\n";
cin.get();
//ADESSO HO DUE ARRAY CORRETTAMENTE CARICATI E DEVO PROCEDERE CON IL RAFFRONTO...
//scomposizione di OGNI ELEMENTO STRINGA DI ARRAY1 in RELATIVO SOTTOARRAY1
//e scomposizione di OGNI ELEMENTO STRINGA DI ARRAY2 in RELATIVO SOTTOARRAY2
for (int z=0; z<sz; z++) {
cout << vec[z];
contaterzina++;
//prova scomposizione di ogni stringa... nell'array1 (TERZINE)
string testo,estratta;
vector<string> token;
int inizio,fine,i,lparola;
bool continua;
cout << "Estrae tutte le parole contenute in un testo" << endl;
//cout << "\nTesto : ";
//cout << testo;
testo = vec[z];
// Estrazione parole (parola racchiusa fra spazi)
// fra due parole c'e' un solo spazio
continua = true;
inizio = -1; /*1*/
while(continua){
fine = testo.find(',',inizio+1); /*2*/
// ultima parola
if(fine==-1){ /*3*/
continua = false;
fine = testo.length(); /*4*/
}
// Estrazione parola
lparola = (fine-inizio)-1; /*5*/
estratta = testo.substr(inizio+1,lparola); /*6*/
token.push_back(estratta); /*7*/
inizio = fine; /*8*/
}
// Elenco parole
cout << "\n\nParole che compongono il testo" << endl;
// for(i=0;i<token.size();i++)
//}
for (int z2=0; z2<sz2; z2++) {
cout << vec2[z2];
string testo2,estratta2;
vector<string> token2;
int inizio2,fine2,x,lparola2;
bool continua2;
testo2 = vec2[z2];
continua2 = true;
inizio2 = -1; /*1*/
while(continua2){
fine2 = testo2.find(',',inizio2+1); /*2*/
// ultima parola
if(fine2==-1){ /*3*/
continua2 = false;
fine2 = testo2.length(); /*4*/
}
// Estrazione parola
lparola2 = (fine2-inizio2)-1; /*5*/
estratta2 = testo2.substr(inizio2+1,lparola2); /*6*/
token2.push_back(estratta2); /*7*/
inizio2 = fine2; /*8*/
}
// Elenco parole
cout << "\n\nElementi che compongono la combinazione uscita:\n\n" << endl;
for(x=0;x<token2.size();x++)
//cout << "\n\n";
cout << token2.at(x) << endl;
cout << "\n\n";
cout << "N. ";
cout << contaterzina;
cout << "\n";
cout << "COMBINAZIONE:"+testo<< endl;
//cout << "ELEMENTI combinazione da analizzare:"+token.at(0)+","+token.at(1)+","+token.at(2)+","+token.at(3)<< endl;
cout << "\n";
//cout << "\n";
//cout << "ELEMENTI COMBINAZIONE USCITA:"+token2.at(0)+","+token2.at(1)+","+token2.at(2)+","+token2.at(3)+","+token2.at(4)<< endl;
cout << "\n\n";
cout << "RITARDO A in COMBINAZIONE: ";
cout << conteggio;
cout << "\n\n";
//CONTROLLO EVENTUALI VALORI UGUALI E AGGIORNAMENTO INDICI RELATIVI xE (conteggio) e xA (conteggio2)..
int contaxambo=0;
for (int y=0; y<token2.size();y++) {
for (x=0; x<token.size();x++) {
//string token9 = token2.at(19).substr(0, token2.at(19).length()-1);
//cout << "\n";
if (token2.at(y)==token.at(x)) {
contaxambo++;
cout << "QUANTO VALE CONTAPUNTI ADESSO? ";
cout << contaxambo;
//cin.get();
//VERIFICA X ESTRATTO
}
else
{
}
}
}
cout << "punteggi totali x questa estrazione: ";
cout << contaxambo;
//cin.get();
if (contaxambo >=2) {
cout << "PUNTI:2 SCOVATO!";
presenze++;
conteggio=0;
ritardi.push_back(conteggio);
} else {
conteggio++;
ritardi.push_back(conteggio);
}
vector<int>::iterator max;
max = max_element(ritardi.begin(), ritardi.end());
cout << *max << endl;
cout << ritardi[ritardi.size()-1] << endl;
int ritardomassimo =*max;
int ritardoultimo = ritardi[ritardi.size()-1];
int colpirimanenti = *max-(ritardi[ritardi.size()-1]);
cout << colpirimanenti;
cout << "**************************";
string colpirimanenti3;
switch (colpirimanenti) {
case 1:
colpirimanenti3="01";
break;
case 2:
colpirimanenti3="02";
break;
case 3:
colpirimanenti3="03";
break;
case 4:
colpirimanenti3="04";
break;
case 5:
colpirimanenti3="05";
break;
case 6:
colpirimanenti3="06";
break;
case 7:
colpirimanenti3="07";
break;
case 8:
colpirimanenti3="08";
break;
case 9:
colpirimanenti3="09";
break;
default:
colpirimanenti3=intToString(colpirimanenti);
}
string rapportorars2;
string contaestrazioni2;
string colpirimanenti2;
string ritardomassimo2;
string ritardoultimo2;
string presenze2;
colpirimanenti2 = intToString(colpirimanenti);
ritardomassimo2 = intToString(ritardomassimo);
ritardoultimo2 = intToString(ritardoultimo);
string colpirimanenti4;
colpirimanenti4 = colpirimanenti3;
contaestrazioni2 = intToString(contaestrazioni);
presenze2 = intToString(presenze);
string stringariassuntiva = "combinazione: "+testo+" colpirimanenti:"+colpirimanenti4;
terzineconritardi.push_back(stringariassuntiva);
}
string datoultimoterzina0= terzineconritardi[terzineconritardi.size()-1];
cout << "lo posso valutare adesso???";
cout << datoultimoterzina0;
int pos0,pos1,pos2,pos3,pos4,pos5,pos6,pos7,pos8,pos9,pos10,pos11,pos12,pos13,pos14,pos15,pos16,pos17,pos18,pos19,pos20,pos21,pos22,pos23,pos24,pos25,pos26,pos27,pos28,pos29,pos30;
pos0 = datoultimoterzina0.find("colpirimanenti:30 ");
pos1 = datoultimoterzina0.find("colpirimanenti:29 ");
pos2 = datoultimoterzina0.find("colpirimanenti:28 ");
pos3 = datoultimoterzina0.find("colpirimanenti:27 ");
pos4 = datoultimoterzina0.find("colpirimanenti:26 ");
pos5 = datoultimoterzina0.find("colpirimanenti:25 ");
pos6 = datoultimoterzina0.find("colpirimanenti:24 ");
pos7 = datoultimoterzina0.find("colpirimanenti:23 ");
pos8 = datoultimoterzina0.find("colpirimanenti:22 ");
pos9 = datoultimoterzina0.find("colpirimanenti:21 ");
pos10 = datoultimoterzina0.find("colpirimanenti:20 ");
pos11 = datoultimoterzina0.find("colpirimanenti:19 ");
pos12 = datoultimoterzina0.find("colpirimanenti:18 ");
pos13 = datoultimoterzina0.find("colpirimanenti:17 ");
pos14 = datoultimoterzina0.find("colpirimanenti:16 ");
pos15 = datoultimoterzina0.find("colpirimanenti:15 ");
pos16 = datoultimoterzina0.find("colpirimanenti:14 ");
pos17 = datoultimoterzina0.find("colpirimanenti:13 ");
pos18 = datoultimoterzina0.find("colpirimanenti:12 ");
pos19 = datoultimoterzina0.find("colpirimanenti:11 ");
pos20 = datoultimoterzina0.find("colpirimanenti:10 ");
pos21 = datoultimoterzina0.find("colpirimanenti:09");
pos22 = datoultimoterzina0.find("colpirimanenti:08");
pos23 = datoultimoterzina0.find("colpirimanenti:07");
pos24 = datoultimoterzina0.find("colpirimanenti:06");
pos25 = datoultimoterzina0.find("colpirimanenti:05");
pos26 = datoultimoterzina0.find("colpirimanenti:04");
pos27 = datoultimoterzina0.find("colpirimanenti:03");
pos28 = datoultimoterzina0.find("colpirimanenti:02");
pos29 = datoultimoterzina0.find("colpirimanenti:01");
pos30 = datoultimoterzina0.find("colpirimanenti:0");
if (pos0 == -1 && pos1==-1 && pos2==-1 && pos3==-1 && pos4==-1 && pos5==-1 && pos6==-1 && pos7==-1 && pos8==-1 && pos9==-1 && pos10==-1 && pos11==-1 && pos12==-1 && pos13==-1 && pos14==-1 && pos15==-1 && pos16==-1 && pos17==-1 && pos18==-1 && pos19==-1 && pos20==-1 && pos21==-1 && pos22==-1 && pos23==-1 && pos24==-1 && pos25==-1 && pos26==-1 && pos27==-1 && pos28==-1 && pos29==-1 && pos30==-1) {
cout << "valore non trovato!";
}
else {
cout << "valore trovato!";
ofstream fout7;
fout7.open("RITARDI-AMBI-GENERATI-CON-1-FISSA-punti2-CR-da30a1.txt", ios::app);
fout7 << datoultimoterzina0;
fout7 << "\n";
}
cout << "FINE ANALISI... salvataggio nel primo file txt-";
ofstream fout;
fout.open("RITARDI-AMBI-GENERATI-CON-1-FISSA-punti2.txt", ios::app);
string datoultimoterzina= terzineconritardi[terzineconritardi.size()-1];
fout << datoultimoterzina;
fout << "\n";
contaestrazioni=0;
presenze=0;
presenze3=0;
conteggio=0;
conteggio2=0;
ritardi.clear();
ritardi2.clear();
terzineconritardi.clear();
}
cout << "\n\n\n";
cout << "Press ENTER to continue...x CHIUDERE..." << endl;
cout << "\n\n\n";
cin.get();
}
cout << "Press ENTER to continue...x CHIUDERE..." << endl;
cout << "\n\n\n";
cin.get();
}