problema con gcc

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
macisamuele
Prode Principiante
Messaggi: 162
Iscrizione: giovedì 8 marzo 2007, 22:44

problema con gcc

Messaggio da macisamuele »

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
Scoppiettante Seguace
Messaggi: 349
Iscrizione: venerdì 11 maggio 2007, 0:01

Re: problema con gcc

Messaggio da max.achille »

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..
Avatar utente
macisamuele
Prode Principiante
Messaggi: 162
Iscrizione: giovedì 8 marzo 2007, 22:44

Re: problema con gcc

Messaggio da macisamuele »

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...

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/2097152
grazie 1000
macisamuele
Avatar utente
macisamuele
Prode Principiante
Messaggi: 162
Iscrizione: giovedì 8 marzo 2007, 22:44

Re: problema con gcc

Messaggio da macisamuele »

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
Scoppiettante Seguace
Messaggi: 349
Iscrizione: venerdì 11 maggio 2007, 0:01

Re: problema con gcc

Messaggio da max.achille »

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!  :-\
Avatar utente
Uno
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 412
Iscrizione: sabato 3 marzo 2007, 21:47
Contatti:

Re: problema con gcc

Messaggio da Uno »

max.achille ha scritto: Credo comunque andrebbe ricercato un algoritmo numericamente più stabile!  :-\
Si, anche secondo me il problema è tutto lì.

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...
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti