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

    [c++] pausa ogni 4 elementi...

    Ho provato così...
    ma non funzia...


    codice:
        
        for (int w=0; w<vec.size(); w++) {
        
        
        for (int c=0; c<4; c++){
        cout << vec[c];
        cout << "*";
        }
    
        
        cout << "\n\n";
        cout << "PROVA PAUSA OGNI 4 VALORI";
        cout << "\n\n";
        
        cin.get();
        
         }
    Mi mostra a video sempre i soliti primi 4 valori ... mentre io vorrei vedere 4 valori pausa 4 valori successivi pausa 4 valori successivi pausa ecc.. fino alla fine

    Qualcuno mi indicherebbe il giusto for o la giusta parametrizzazione?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: [c++] pausa ogni 4 elementi...

    Nel for interno non devi mostrare vec[c], altrimenti per forza vedi sempre i primi 4! Usa vec[w].
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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

    Re: Re: [c++] pausa ogni 4 elementi...

    Originariamente inviato da Alex'87
    Nel for interno non devi mostrare vec[c], altrimenti per forza vedi sempre i primi 4! Usa vec[w].
    Anche così non funzia...

    codice:
    for (int w=0; w<token.size(); w++) {
        
        
        for (int c=0; c<4; c++){
        cout << token[w];
        cout << "*";
        }
    
        
        cout << "\n\n";
        cout << "PROVA PAUSA OGNI 4 VALORI";
        cout << "\n\n";
        
        cin.get();
        
         }
    adesso mi mostra ogni singolo valore 4 volte...



    In particolare...

    ho token che contiene:

    1,2,3,4,1,2,3,5,1,2,3,6

    io vorrei mostrare a video qualcosa del tipo

    1,2,3,4
    pausa
    1,2,3,5
    pausa
    1,2,3,6
    pausa

    invece con l'ultima modifica ottengo:

    1,1,1,1
    pausa
    2,2,2,2
    pausa
    3,3,3,3
    pausa
    4,4,4,4
    pausa
    5,5,5,5
    pausa
    6,6,6,6
    pausa

  4. #4

    Re: Re: Re: [c++] pausa ogni 4 elementi...

    Originariamente inviato da freetom
    Anche così non funzia...

    codice:
    for (int w=0; w<token.size(); w++) {
        
        
        for (int c=0; c<4; c++){
        cout << token[w];
        cout << "*";
        }
    
        
        cout << "\n\n";
        cout << "PROVA PAUSA OGNI 4 VALORI";
        cout << "\n\n";
        
        cin.get();
        
         }
    adesso mi mostra ogni singolo valore 4 volte...
    Queste sono cose che s'imparano nei manuali base del C.
    Ti consiglio di leggertelo, anzi di studiare il C prima di postare queste domande che leggendo il manuale e ragionando riusciresti a risolvere.

    codice:
    for (int w=0; w<token.size(); w++) {
        
        
        for (int c=0; c<4; c++){
        cout << token[w];
        cout << "*";
        }
    
        
        cout << "\n\n";
        cout << "PROVA PAUSA OGNI 4 VALORI";
        cout << "\n\n";
        
        cin.get();
        
         }
    Tu fai un ciclo che passa tutto il vettore, ed un altro interno che scrive sempre lo stesso valore. Leggendo il codice e ragionando sul funzionamento, non hai notato che quel ciclo ripete 4 volte lo stesso valore ?

    codice:
    for (int w=0; w<token.size(); w++) {
    
        for (int c=w; c<w+4; c++){
        cout << token[c];
        cout << "*";
        }
        w = w + 3;
    
        
        cout << "\n\n";
        cout << "PROVA PAUSA OGNI 4 VALORI";
        cout << "\n\n";
        
        cin.get();
        
         }
    Prova questo codice e leggiti il manuale per capire come funziona.

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

    Re: Re: Re: Re: [c++] pausa ogni 4 elementi...

    Originariamente inviato da lolide
    Queste sono cose che s'imparano nei manuali base del C.
    Ti consiglio di leggertelo, anzi di studiare il C prima di postare queste domande che leggendo il manuale e ragionando riusciresti a risolvere.

    codice:
    for (int w=0; w<token.size(); w++) {
        
        
        for (int c=0; c<4; c++){
        cout << token[w];
        cout << "*";
        }
    
        
        cout << "\n\n";
        cout << "PROVA PAUSA OGNI 4 VALORI";
        cout << "\n\n";
        
        cin.get();
        
         }
    Tu fai un ciclo che passa tutto il vettore, ed un altro interno che scrive sempre lo stesso valore. Leggendo il codice e ragionando sul funzionamento, non hai notato che quel ciclo ripete 4 volte lo stesso valore ?

    codice:
    for (int w=0; w<token.size(); w++) {
    
        for (int c=w; c<w+4; c++){
        cout << token[w];
        cout << "*";
        }
        w = w + 4;
    
        
        cout << "\n\n";
        cout << "PROVA PAUSA OGNI 4 VALORI";
        cout << "\n\n";
        
        cin.get();
        
         }
    Prova questo codice e leggiti il manuale per capire come funziona.

    grazie comque sembra che anche cosi' non funzioni...

    in particolarwe credo che vada cambiato quel token[w] interno.. con token[c]

    Provato a farlo e.. nnostante l'ordine dei valoiri non venga mantenuto sembra che in questo modo legga 4 valori alla volta saltando stranamente l'8...

    Ho infatti qualcosa di questo tipo:

    01,02,03,04,01,02,03,05,01,02,03,06,01,02,03,07,01 ,02,03,08,01,02,03,09,01,02,03,10,01,02,03,11,01,0 2,03,12,01,02,03,13

    e con l'ultima modifica da te suggerita sostituendo però token[w] interno.. con token[c]
    (altrimenti mi mostra sempre lo stesso valore per 4 volte ecc..)

    mi viene un output del tipo:

    01,02,03,04 ok
    02,03,05,01 ok anche se non in ordine...
    03,06,01,02 ko anche se non in ordine...
    fino a...
    07,01,02,03 ok anche se non in ordine...
    poi salta 08,01,02,03 ???
    per ricominciare con
    01,02,03,09
    fino alla fine...

    ???

    Comunque grazie

  6. #6
    avevo modificato il codice. usa quello modificato, perchpè quello che hai letto è sbagliato.

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Dal punto di vista algoritmo, non credo sia necessario usare due cicli: basta introdurre l'attesa quando il resto della divisione per 4 dell'indice dell'elemento correntemente visualizzato è 0 (zero).
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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

    ho provato cosi'...

    Originariamente inviato da alka
    Dal punto di vista algoritmo, non credo sia necessario usare due cicli: basta introdurre l'attesa quando il resto della divisione per 4 dell'indice dell'elemento correntemente visualizzato è 0 (zero).
    codice:
        
    for (int w=0; w<token.size(); w++) {
    
        while (mod(w/4)==0) {
      
        cout << "\n\n";
        cout << "PROVA PAUSA OGNI 4 VALORI";
        cout << "\n\n";
        
        cin.get();
      
         }
    
    cout << token[w];
    
    }
    ma ovviamente non funzia
    perchè non so come mettere in codice "quando il resto della divisione per 4 dell'indice dell'elemento correntemente visualizzato è 0 "
    Mi ricordo vagamente che forse centra mod...

  9. #9
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Re: Re: Re: [c++] pausa ogni 4 elementi...

    Originariamente inviato da lolide
    Tu fai un ciclo che passa tutto il vettore, ed un altro interno che scrive sempre lo stesso valore. Leggendo il codice e ragionando sul funzionamento, non hai notato che quel ciclo ripete 4 volte lo stesso valore ?
    Oddio pensavo che fosse questo quello che voleva XD mea culpa
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    117

    Re: ho provato cosi'...

    Originariamente inviato da freetom
    codice:
        
    for (int w=0; w<token.size(); w++) {
    
        while (mod(w/4)==0) {
      
        cout << "\n\n";
        cout << "PROVA PAUSA OGNI 4 VALORI";
        cout << "\n\n";
        
        cin.get();
      
         }
    
    cout << token[w];
    
    }
    ma ovviamente non funzia
    perchè non so come mettere in codice "quando il resto della divisione per 4 dell'indice dell'elemento correntemente visualizzato è 0 "
    Mi ricordo vagamente che forse centra mod...
    Se alka ti ha detto che secondo lui non ci vogliono due cicli (cosa di cui sono convinto anche io), perché li metti? (anche il while è un ciclo, non solo il for)

    Per ottenere il resto della divisione intera devi usare l'operatore %.
    Ti faccio qualche esempio

    11%2=1 (perché 11/2=5 col resto di 1)
    20%7=6 (perché 20/7=2 col resto di 6)
    58%10=8 (perché 58/10=5 col resto di 8)


    Ora credo che tu abbia tutti gli elementi per fare l'esercizio da te ragionando.

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.