Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it L'avatar di Il Pazzo
    Registrato dal
    Jul 2004
    Messaggi
    1,071

    [C++] Calcolo potenza metodo ricorsivo

    Sto utilizzando l'algoritmo binaro.... non mi da nessun errore in compilazione ne in runtime...
    codice:
    double algoritmoBinarioRicorsivo (float base, int esp){
    	if((base == 0) && (esp == 0)) return 0;
    	else if(esp = 0) return 1;
    	else if(esp < 0) return algoritmoBinarioRicorsivo(base, -esp);
    	else {
    		static double ris = 1;
    		float temp = base;
    		
    		if(esp%2 == 1) ris *= temp;
    		temp *= temp;
    		return ris * algoritmoBinarioRicorsivo(temp, esp/2);
    	}
    }
    
    void main(){
    	cout<<"2^3 = "<<potenzaSemplice(2, 3)<<endl;
    	cout<<"2^3 = "<<potenzaSempliceRicorsiva(2, 3)<<endl;
    	cout<<"2^-1 = "<<algoritmoBinario(2, -1)<<endl;
    	cout<<"2^3 = "<<algoritmoBinarioRicorsivo(2, 3)<<endl;
    }
    Questo è il codice che mi da problemi... non mi entra nell'ultima chiamata....

    Suggerimenti??

    grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Nella riga

    else if(esp == 0) return 1;

    devi usare == e non =

  3. #3
    Utente di HTML.it L'avatar di Il Pazzo
    Registrato dal
    Jul 2004
    Messaggi
    1,071
    ah giusto che cretino... non me ne ero accorto.... però perchè non mi faceva nessun return??

  4. #4
    Utente di HTML.it L'avatar di Il Pazzo
    Registrato dal
    Jul 2004
    Messaggi
    1,071

    [C++] Debug di visual studio ignora break point

    Dovrei debuggare questo benedetto programmma perchè non mi funziona la parte ricorsiva del programma

    codice:
    double algoritmoBinario (float base, int esp){
    	int negativo = 0;
    	if ((base == 0) && (esp == 0)) return 0; //Potenza indeterminata
    	else if(esp < 0){
    		negativo = 1;
    		esp = -esp;
    	}
    
    	double ris = 1;
    	float temp = base;
    
    	while(esp > 0){
    		if(esp%2 == 1) ris *= temp;
    		temp *= temp;
    		esp /= 2;
    	}
    
    	if(negativo)
    		return 1/ris;
    	else
    		return ris;
    }
    
    double algoritmoBinarioRicorsivo (float base, int esp){
    	if((base == 0) && (esp == 0)) return 0;
    	else if(esp == 0) return 1;
    	else if(esp < 0) return algoritmoBinarioRicorsivo(base, -esp);
    	else {
    		static double ris = 1;
    
    		if(esp%2 == 1) {
    			ris = base;
    			return ris * algoritmoBinarioRicorsivo(ris, esp/2);
    		}
    		else{ris *=ris;
    		return algoritmoBinarioRicorsivo(ris, esp/2);}
    	}
    }
    
    void main(){
    	cout<<"2^3 = "<<potenzaSemplice(2, 3)<<endl;
    	cout<<"2^3 = "<<potenzaSempliceRicorsiva(2, 3)<<endl;
    	cout<<"2^-1 = "<<algoritmoBinario(2, 3)<<endl;
    	cout<<"2^3 = "<<algoritmoBinarioRicorsivo(2, 3)<<endl;
    }
    Metto un bel punto di interruzione... premo F5 (avvia debug) ma lo ignora.... perchè???

    Configurazioni soluzioni è messo in DEBUG no in release....


    grazie

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Dove metti il break point?

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296

    Moderazione

    Originariamente inviato da Il Pazzo
    Dovrei debuggare questo benedetto programmma perchè non mi funziona la parte ricorsiva del programma
    Visto che si tratta dello stesso codice di cui stavi parlando in una discussione precedentemente aperta, tanto vale continuare a parlarne nella stessa.

    Ho unito le due discussioni.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  7. #7
    Utente di HTML.it L'avatar di Il Pazzo
    Registrato dal
    Jul 2004
    Messaggi
    1,071
    su questo if

    if(esp%2 == 1)


    nella funzione ricorsiva.....

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Nelle stesse tue condizioni il break point viene rispettato regolarmente ...

    Non so cosa dirti ...

  9. #9
    Utente di HTML.it L'avatar di Il Pazzo
    Registrato dal
    Jul 2004
    Messaggi
    1,071
    boh... i prodotti microsoft forse....

    grazie comunque

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da Il Pazzo
    boh... i prodotti microsoft forse....
    Non per fare un'inutile difesa di MS, ma non ho mai sentito dire ad altri che hanno il tuo problema. E ne conosco di gente che programma.

    E io scelgo sempre la ragione piu' "semplice" ad un problema ...

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.