Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 22

Discussione: C++ vecchi ricordi!

  1. #11

    Eseguito

    Ho eseguito il prog ma niente, il compilatore è della Borland, Borland C++ 5.5.1 cmq ho fatto uno screenshot del codice da implementare ora te la posto.

  2. #12

    Re: Eseguito

    Originariamente inviato da andypower
    Ho eseguito il prog ma niente, il compilatore è della Borland, Borland C++ 5.5.1 cmq ho fatto uno screenshot del codice da implementare ora te la posto.
    ho tradotto il tuo prog da quello shot :
    codice:
    for(i=0;i<N-1;i++){
     k=0;
     done=false;
     do{
     if ( P[i-k] <= P[i] ) k++;
       else
         done=true
         }while(k>1 || done);
    S[i]=k;
    }
    sostituisci questo al corpo della funz span();
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  3. #13

    Ennesima svista

    ennesima svista da parte mia, cmq l'unica differenze tra il cod ke mi hai gentilmente tradotto e il mio è che il ciclo deve andare avanti fino ad N-1 poi x il resto era uguale... se provo ad eseguire il programma come al solito va in loop e nn fa niente, devo interromperlo con Ctrl+C...

  4. #14

    Re: Ennesima svista

    Originariamente inviato da andypower
    ennesima svista da parte mia, cmq l'unica differenze tra il cod ke mi hai gentilmente tradotto e il mio è che il ciclo deve andare avanti fino ad N-1 poi x il resto era uguale... se provo ad eseguire il programma come al solito va in loop e nn fa niente, devo interromperlo con Ctrl+C...
    bè nn solo quello c'era anche un <= che avevi messo soltanto <.
    Cmq se anche la traduzione,presa se non erro da una slide di una università,dell'originale si blocca forse perchè devi controllare di aver scritto/incollato bene la parte che ti ho tradotto...
    ...
    ...oppure è propio l'algortimo iniziale che è bacato

    ...oppure cambia compilatore(scarica ed installa DevCPP che è gratutito è sotto licenza GPL)

    ...
    ciuaz vado
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  5. #15

    Grazie

    Bhè grazie tante cmq il cod ke compilo ed eseguo e' questo:

    codice:
    #include <iostream>
    
    using namespace std;
    
    const int N = 10;
    
    int* Span (int P[]);
    
    int main () {
    	int P[N] = {1,4,8,3,5,3,9,2,5,34}, *s;
    	s = new int[N];
    	s = Span (P);
    	for (int i = 0; i < N; i++) {
    		cout << s[i] << " " << endl;
    	}
    	return 0;
    }
    
    int* Span (int P[N]) {
    	int k, i, *S;
    	S = new int[N];
    	bool done;
    	for (i = 0; i < N-1; i++) {
    		k = 0;
    		done = false;
    		do {
    		    if (P[i-k] <= P[i]) {
    		    k = k + 1;
    		    } else {
    		    done = true;
    			}
    		} while (k > i || done);
    		S[i] = k;
    	}
    	return S;
    }
    Chissà dov'è il problema...

  6. #16

    Re: Grazie

    Originariamente inviato da andypower
    Bhè grazie tante cmq il cod ke compilo ed eseguo e' questo:


    Chissà dov'è il problema...
    sicuramente sulla definizione della funzione....
    compila/esegui questo:
    codice:
    #include <iostream>
    
    using namespace std;
    
    const int N = 10;
    
    int* Span (int P[]);
    
    int main () {
    	int P[N] = {1,4,8,3,5,3,9,2,5,34}, *s;
    	s = new int[N];
    	s = Span (P);
    	for (int i = 0; i < N; i++) {
    		cout << s[i] << " " << endl;
    	}
    	return 0;
    }
    
    int* Span (int P[]) { //tu qua avevi messo int P[N]
    	int k, i, *S;
    	S = new int[N];
    	bool done;
    	for (i = 0; i < N-1; i++) {
    		k = 0;
    		done = false;
    		do {
    		    if (P[i-k] <= P[i]) {
    		    k = k + 1;
    		    } else {
    		    done = true;
    			}
    		} while (k > i || done);
    		S[i] = k;
    	}
    	return S;
    }
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  7. #17

    Nada...

    Magari fosse stato quello il problema... ancora nn ci siamo, resta il warning e il programma và in loop e nn si ferma...

  8. #18

    Re: Nada...

    Originariamente inviato da andypower
    Magari fosse stato quello il problema... ancora nn ci siamo, resta il warning e il programma và in loop e nn si ferma...
    il prob del loop dipende quasi sicuramente dal do-while(l'ex repeat until ) che si trova dentro al for...è l'algortimo che ha qualche bug.
    Cmq proviamo cosi' :

    codice:
    ...
    
    
    do{
        if (P[i-k] <= P[i]) 
             k++;
        else 
             done = true;
                            
       }while ((k > i) || (done==true));
    
    
    ...
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  9. #19

    Finally!

    Finalmente!!! Nemmeno con la tua ultima modifica funzionava allora ho pensato di analizzare il codice in cerca di eventuali bug e mi son accorto ke per farlo funzionare correttamente bisognava fare delle modifiche, il repeat until andava negato per farlo funzionare nel do while e il ciclo deve andare avanti fino ad N e nn ad N-1 cmq questo è il codice:

    Codice PHP:
    #include <iostream>

    using namespace std;

    const 
    int N 7;

    intSpan (int P[]);

    int main () {
        
    int P[N] = {1,4,8,45,3,5,34}, *s;
        
    = new int[N];
        
    Span (P);
        for (
    int i 0Ni++) {
            
    cout << s[i] << " " << endl;
        }
        return 
    0;
    }


    intSpan (int P[]) {
        
    int ki, *S;
        
    = new int[N];
        
    bool done;
        for (
    0Ni++) { // il cod va avanti fino ad N
            
    0;
            
    done false;
            do {
                if (
    P[i-k] <= P[i]) {
                
    1;
                } else {
                
    done true;
                }
            } while (
    <= && done == false); //modificato quì
            
    S[i] = k;
        }
        return 
    S;

    Cmq grazie per la pazienza :metallica

  10. #20

    Re: Finally!

    Originariamente inviato da andypower
    Finalmente!!!

    Cmq grazie per la pazienza :metallica
    di niente.

    Cmq nello pseudocodice che avevi da tradurre era indicata N-1 e nella condizione while (vabbè repeat until in pascal) era indicato solo il nome della variabile booleana,quindi sottointesa come TRUE...


    ps sempre nella condizione del while ho visto che hai messo AND(&&) mentre in origine era OR (||) e k <= i contro k > i ...
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

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 © 2026 vBulletin Solutions, Inc. All rights reserved.