Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    [c++] Dati questi due cod non riesco a "mischiarli" in modo da avere...

    codice:
    generazione quaterne in modo dinamico:
    for(qix[0]=1; qix[0]<88; qix[0]++)
    for(qix[1]=qix[0]+1; qix[1]<89; qix[1]++)
    for(qix[2]=qix[1]+1; qix[2]<90; qix[2]++)
    for(qix[3]=qix[2]+1; qix[3]<91; qix[3]++)
    {
    //conversione in strighe...
    cout << qix[0];
    cout << ",";
    cout << qix[1];
    cout << ",";
    cout << qix[2];
    cout << ",";
    cout << qix[3];
    cout << ";";
     }
    
    
    
    
    lettura file estrazioni:
    src = fopen("ESTRAZIONI.txt", "r");
               
                    fgets(bsrc, 30, src);
    	while(!feof(src))
    	{
    		pch = strtok(bsrc," ,\n");
    		while(pch)
    		{
    			est[cest][atoi(pch)-1]++;
    			pch = strtok(NULL, ",\n");
    		}
    		cest++;
    		fgets(bsrc, 30, src);
                 }
                fclose(src);
    Dovrei ottenere un confronto di questo tipo:

    Ogni quaterna generata in modo dinamico dovrebbe essere confrontata con ogni estrazione presente nel file ESTRAZIONI.txt

    Il confronto dovrebbe rilevare se per ogni quaterna ci sono o meno 2 numeri uguali e in questo caso azzerare una variabile int ritardo altrimenti quest'ultima dovrebbe essere incrementata di uno.

    esempio:
    analizzando la prima quaterna... 1,2,3,4
    con tutte le estrazioni dovrò avere una sequenza della sua variabile ritardo x ambo di questo tipo (es.) 1.2.3.4.5.6.0.1.2.3.4.5.6.7.8.9.10.11.12.13.14.15. 0.1.2.1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18 .19.20.21.0 ecc...

    Grazie agli/alle esperti/e "mischiatori/trici" che interverranno


  2. #2
    Premettendo che il titolo è scorretto, e che hai postato solo un frammento di codice ti suggerisco di usare un vettore di integer di dimensioni 90 per memorizzare i vari ritardi dei numeri; per il confronto hai problemi? Da errori?

  3. #3
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    grazie ma...

    Non ho capito come dovrei procedere...

    Per quanto riguarda il confronto con questi ultimi due codici avviene velocissimo ma purtroppo non mi riconosce i numeri a due cifre.. contando carattere per carattere.

    Infatti per il sistema un caso del genere : 2 e 22 o 23 è perfettamente uguale... perchè il carattere 2 è sia nell'uno (2) che nell'altro numero (22 o 23)...

    Per quanto riguarda il confronto avviene senza intoppi se trasformo i vari elementi in stringa ma in questo caso perdo di rapidità arrivando a dei tempi insostenibili...



  4. #4

    Re: grazie ma...

    Originariamente inviato da freetom
    Non ho capito come dovrei procedere...

    Per quanto riguarda il confronto con questi ultimi due codici avviene velocissimo ma purtroppo non mi riconosce i numeri a due cifre.. contando carattere per carattere.

    Infatti per il sistema un caso del genere : 2 e 22 o 23 è perfettamente uguale... perchè il carattere 2 è sia nell'uno (2) che nell'altro numero (22 o 23)...

    Per quanto riguarda il confronto avviene senza intoppi se trasformo i vari elementi in stringa ma in questo caso perdo di rapidità arrivando a dei tempi insostenibili...


    Non hai risposto..

    Nel codice metti delle variabili che non hai dichiarato e inizializzato, come facciamo a capire?
    Dovresti utilizzare dei token anche tra un numero e l'altro (oltre che per distinguere le varie righe), caricare per ogni riga i vari elementi e compararli.
    Come sono salvati i dati nel file? Come li carichi?

  5. #5
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    dunque...

    I dati nel file estrazioni.txt sono del tipo:

    1,2,3,4,5;
    7,10,12,25,90;
    ecc...

    Le quaterne invece vengono generate in dinamico...

  6. #6
    Per ogni riga caricata, usa la strtok mettendo come carattere tipo la virgola, e con due cicli for compari i vari elementi (sono 4 dal momento che si parla di quaterne) con i tuoi dati generati dinamicamente.
    Sotto l'aspetto teorico è tutto chiaro?

  7. #7
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    In teoria...

    forse si...
    ma in pratica... buio pesto

  8. #8
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    se risolvo questo punto forse ce la faccio...

    codice:
        cout << qix[0];
        cout << ",";
        cout << qix[1];
        cout << ",";
        cout << qix[2];
        cout << ",";
        cout << qix[3];
        cout << " VS "; 
        cout << vec[k];
        cout << "\n";
        cin.get();
    in vec ho elementi di questo tipo...

    1,2,3,4,5
    20,30,45,77,90
    ecc...

    ovvero ogni elemento è una stringa di numeri intervallati da virgola...

    Io a questo punto dovrei solo... scomporre ogni stringa in sotto array
    di 5 elementi cadauno per poterli poi confrontare con altri 4 elementi...
    qix[0],qix[1],qix[2],qix[3]

    Come posso scomporre vec[k] le singole stringhe in

    elem1divec[k]
    elem2divec[k]
    elem3divec[k]
    elem4divec[k]
    elem5divec[k]

    Grazie!


  9. #9
    Mi ripeto: usa la funzione strtok, come descritto qua: http://www.cplusplus.com/reference/c...string/strtok/


    Ciao

  10. #10
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Ho trovato una soluzione alternativa forse...

    Adesso avrei solo necessità di sapere se un determinato vector di interi...

    vector <int> compara;

    avente di volta in volta 10 elementi...

    presenti o meno 1 coppia di valori identici...

    esempio se il vector contiene:

    1,10,4,7,90,1,7,25,60,89

    il sistema me lo dovrebbe "segnalare" in quanto sia il valore 1 che il valore 7 sono presenti due volte.., altrimenti no...

    come potrei fare per questa comparazione?

    Grazie!


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.