Originariamente inviato da MdE2005
Se non so come esamini ruota per ruota, come posso fare per suggerirti la valutazione delle 3 righe?
Per esempio, nel caso di un ciclo
for generico, in pseudocodice:
codice:
bool primariga, secondariga, terzariga
for (i=0, i<totalerighe, i=i+3)
primariga = confronto(riga(i))
secondariga = confronto(riga(i+1))
terzariga = confronto(riga(i+2))
Quindi, senza sapere come le confronti, non posso aiutarti..
codice:
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
#include <sstream>
#include <iomanip>
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <cstring>
#include<stdio.h>
#include<string.h>
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[]) {
vector<string> vec;
int contaterzina=0;
int contatore=0;
int conteggio=0;
int presenze=0;
int presenze3=0;
int contaxambo=0;
int contaestrazioni=0;
int conteggio2=0;
vector<int> ritardi;
vector<int> ritardi2;
vector<string> terzineconritardi;
vector<string> terzineconritardi2;
int contacolpibuoni=0;
int RAtreruoteunite=0;
int RStreruoteunite=0;
ifstream fin("27ine.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;
for (int x=0; x<sz; x++) {
cout << vec[x];
}
cout << "\n\n\n ESEMPIO DI VISUALIZZAZIONE DI UN ELEMENTO ARRAY ALL'INTERNO: ";
cout << "\n\n\n";
cout << "NUMERO DI ELEMENTI DEL VETTORE: ";
cout << "\n\n\n";
cout << sz;
cout << "\n\n\n";
cout << "Press ENTER to continue...";
cin.get();
vector<string> vec2;
int contatore2=0;
ifstream f2in("ESTRAZIONI-BACAFI-ok.txt");
if (f2in) {
string s;
while(f2in) // cattura tutti gli errori.
{
getline(f2in,s);
vec2.push_back(s);
}
}
int sz2 = vec2.size()-1;
for (int x=0; x<sz2; x++) {
cout << vec2[x];
}
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 << "\n\n\n";
cin.get();
for (int z=0; z<sz; z++) {
cout << vec[z];
contaterzina++;
string testo,estratta;
vector<string> token;
int inizio,fine,i,lparola;
bool continua;
cout << "Estrae tutte le parole contenute in un testo" << endl;
testo = vec[z];
continua = true;
inizio = -1; /*1*/
while(continua){
fine = testo.find(',',inizio+1); /*2*/
if(fine==-1){ /*3*/
continua = false;
fine = testo.length(); /*4*/
}
lparola = (fine-inizio)-1; /*5*/
estratta = testo.substr(inizio+1,lparola); /*6*/
token.push_back(estratta); /*7*/
inizio = fine; /*8*/
}
cout << "\n\nParole che compongono il testo" << endl;
for (int z2=0; z2<sz2; 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*/
if(fine2==-1){ /*3*/
continua2 = false;
fine2 = testo2.length(); /*4*/
}
lparola2 = (fine2-inizio2)-1; /*5*/
estratta2 = testo2.substr(inizio2+1,lparola2); /*6*/
token2.push_back(estratta2); /*7*/
inizio2 = fine2; /*8*/
}
cout << "\n\nElementi che compongono la combinazione uscita:\n\n" << endl;
for(x=0;x<token2.size();x++)
cout << token2.at(x) << endl;
cout << "\n\n";
cout << "N. ";
cout << contaterzina;
cout << "\n";
cout << "COMBINAZIONE:"+testo<< endl;
(2)<< endl;
cout << "\n";
(2)+","+token2.at(3)+","+token2.at(4)<< endl;
cout << "\n\n";
cout << "RITARDO A in COMBINAZIONE: ";
cout << conteggio;
cout << "\n\n";
int contaxambo=0;
for (int y=0; y<token2.size();y++) {
for (x=0; x<token.size();x++) {
if (token2.at(y)==token.at(x)) {
contaxambo++;
cout << "\n\n";
cout << "QUANTO VALE CONTAPUNTI ADESSO? ";
cout << contaxambo;
cout << "\n\n";
cin.get();
}
else
{
}
}
}
cout << "\n\n";
cout << "punteggi totali x questa estrazione: ";
cout << contaxambo;
cout << "\n\n";
cin.get();
if (contaxambo > 1) {
cout << "\n\n";
cout << "AMBO SCOVATO!";
presenze++;
conteggio=0;
ritardi.push_back(conteggio);
cout << "\n\n";
cin.get();
cout << "INCREMENTO RAtreruoteunite di 1";
cout << "E controllo il suo valore affinche' non superi il valore 3. Se > 3 si dovra' riazzerare";
cout << "Se il suo valore e' = 0 si incrementera' l'RA di 1 altrimenti si dovra' porre RA = 0";
cin.get();
} else {
conteggio++;
ritardi.push_back(conteggio);
}
//individuazione valore maximo
vector<int>::iterator max;
max = max_element(ritardi.begin(), ritardi.end());
cout << *max << endl;
cout << ritardi[ritardi.size()-1] << endl;
int ritardomassimo =*max;
//----------------------------
//individuazione valore ultimo
int ritardoultimo = ritardi[ritardi.size()-1];
//--------------------------------------------
//individuazione colpirimanenti
int colpirimanenti = *max-(ritardi[ritardi.size()-1]);
//cout << colpirimanenti ;
//cout << "\n\n";
//cin.get();
string rapportorars2;
string contaestrazioni2;
string colpirimanenti2;
string ritardomassimo2;
string ritardoultimo2;
string presenze2;
colpirimanenti2 = intToString(colpirimanenti);
ritardomassimo2 = intToString(ritardomassimo);
ritardoultimo2 = intToString(ritardoultimo);
contaestrazioni2 = intToString(contaestrazioni);
presenze2 = intToString(presenze);
string stringariassuntiva = "presenze: "+presenze2+" combinazione: "+testo+" rs: "+ritardomassimo2+" ra: "+ritardoultimo2+" colpirimanenti: "+colpirimanenti2;
terzineconritardi.push_back(stringariassuntiva);
}
//prova salvataggio NUMERO PRESENZE x ESTRATTO (E) con relativi parametri su file...
cout << "salvataggio nel primo file txt-";
//cin.get();
ofstream fout;
fout.open("RITARDI-A-su-lunghette-generate-prglento.txt", ios::app);
//DATO ULTIMO DELLA TERZINA ANALIZZATA...
string datoultimoterzina= terzineconritardi[terzineconritardi.size()-1];
//SE l'ULTIMO CARATTERE di string datoultimoterzina è uguale a 0 o a 1 allora mettimelo nel file //altrimenti nulla...
cout << "VERIFICA ULTIMO CARATTERE DELLA STRINGA:";
cout << "\n";
cout << datoultimoterzina;
cout << "\n";
cout << "|";
cout << datoultimoterzina.size()-1;
cout << "|";
string line;
line = datoultimoterzina.substr(datoultimoterzina.size()-2, line.length()-1);
cout << line;
cout << "\n";
cout << "\n";
cout << "\n";
cout << "|";
cout << line;
cout << "|";
cout << "\n";
cout << "\n";
cout << "\n";
cout << "|";
cout << line.size();
cout << "|";
string b,c;
b=" 9";
c=" 1";
if((line.compare(b) == 0) || (line.compare(c) == 0)) {
cout << "\n\n";
cout << "OK!";
cout << "\n\n";
fout << datoultimoterzina;
fout << "\n";
cin.get();
} else {
cout << "\n\n";
cout << "NO!";
cout << "\n\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();
}
l'obiettivo ti ricordo sarebbe quello di calcolare, nel miglior modo possibile in modo che i calcoli tornino con altri programmi molto piu' performanti e ben fatti , il ritardo attuale e quello massimo di tre combinazioni alla volta (ognuna xA) come specificato sopra...
Mi rendo conto che non sia per nulla facile ma grazie comunque per il tentativo