problema con gcc
- macisamuele
- Prode Principiante
- Messaggi: 162
- Iscrizione: giovedì 8 marzo 2007, 22:44
problema con gcc
ho un piccolo problema io ho scritto 1 programma ke se lo compilo su mac (utilizzando gcc 4.01) mi gira ma ... se lo compilo su ubuntu (avendo installato gcc versione 4:4.1.2) non mi funziona bene...percè???grazie
macisamuele
-
max.achille
- Scoppiettante Seguace

- Messaggi: 349
- Iscrizione: venerdì 11 maggio 2007, 0:01
Re: problema con gcc
Cosa significa non mi funziona bene? segnala qualche errore? E' sempre possibile ci sia un errore che su Mac semplicemente non si manifesta e compare su Linux per una diversa gestione della memoria del SO ad es..
- macisamuele
- Prode Principiante
- Messaggi: 162
- Iscrizione: giovedì 8 marzo 2007, 22:44
Re: problema con gcc
praticamente ho scritto 1 programma x la semplificazione in frazioni di numeri...compilandolo su mac mi funziona bene...(scrivendo come numero 2.15 mi da come risultato 43/20)...compilandolo su ubuntu mi esce qst... grazie 1000
Codice: Seleziona tutto
samuele@samuele-desktop:~$ '/home/samuele/nuovo'
INSERISCI IL NUMERO DA CUI RICAVARE LA FRAZIONE: 2.15
parte intera 2
parte dopo la virgola 0.150000
LA FRAZIONE NON SEMPLIFICATA E': 21500001/10000000
4508877/2097152macisamuele
- macisamuele
- Prode Principiante
- Messaggi: 162
- Iscrizione: giovedì 8 marzo 2007, 22:44
Re: problema con gcc
x il codice in c andate al http://www.devid-filoni.com/?p=41 e lo troverete!!!vi prego rispondete
macisamuele
-
max.achille
- Scoppiettante Seguace

- Messaggi: 349
- Iscrizione: venerdì 11 maggio 2007, 0:01
Re: problema con gcc
Credo che il problema non sia tanto il gcc quanto l'algoritmo in se, in particolare questa riga:
while(((int)(((a*100000000)*e)/100000000)) != ((float)(a*e))) {
bhe in un corso di analisi numerica la sconsigliano molto.. credo che sei andato a "cozzare" contro un problema della precisione macchina. Magari in Mac OS la citata gestione della memoria porta a delle "semplificazioni" nel calcolo che fanno portare il tutto.. Anche il numero di conversioni int/float non fa molto bene al corretto risultato finale. Prova cosa succede utilizzando dei long int o dei double nelle variabili.. Credo comunque andrebbe ricercato un algoritmo numericamente più stabile! :-\
while(((int)(((a*100000000)*e)/100000000)) != ((float)(a*e))) {
bhe in un corso di analisi numerica la sconsigliano molto.. credo che sei andato a "cozzare" contro un problema della precisione macchina. Magari in Mac OS la citata gestione della memoria porta a delle "semplificazioni" nel calcolo che fanno portare il tutto.. Anche il numero di conversioni int/float non fa molto bene al corretto risultato finale. Prova cosa succede utilizzando dei long int o dei double nelle variabili.. Credo comunque andrebbe ricercato un algoritmo numericamente più stabile! :-\
Re: problema con gcc
Si, anche secondo me il problema è tutto lì.max.achille ha scritto: Credo comunque andrebbe ricercato un algoritmo numericamente più stabile! :-\
Io risolverei così, banalmente se moltiplico un numero con N cifre dopo la virgola per 10^N ottengo un numero intero, percui se x è un numero con N cifre dopo la virgola allora x = (x * 10^N) / 10^N dove numeratore e denominatore sono numeri interi, a questo punto conviene trovare il MCD di questi e ridurre la frazione ai minimi termini.
porco diodo...
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti