Newsgroup: it.comp.lang.c
Titolo: Rmin

ciao a tutti...ho un piccolo problemino a calcolare Rmin macchina e 
pero possiate aiutarmi...
ecco il codice in C:
void func(float x, float base, float *res)
{
    float temp;
    while (x!=0)
    {
        temp = x;
        x = temp / base;
    }
    temp = *res;
}
main()
{
float e, base, tot;
e = 1.;
base = 2.;
func(e, base, &tot);
printf("l'Rmin e' : %f\n", tot);
  system("PAUSE");
  return 0;
}
ogni volta che lo eseguo mi da sempre come risultato 0.0000
non riesco però a trovare l'errore....grazie in anticipo per  l'aiuto
-- 
Renato Zero
Provaci a riemergere, da quei sogni che il tuo silenzio ha ucciso...che 
ne sai, dell'origine, delle lacrime, se non ha mai pianto...provaci, a 
scommettere, che al traguardo tu non sarai secondo...agile è 
quest'anima,  non puoi vincerla, non la puoi ingannare più......PROVA A 
PRENDERMI......

 }
L'istruzione
temp = *res;
e' inutile. Il valore di temp si perde all'uscita della funzione
Non e' che volevi scrivere
*res = temp;
?
C:\>iao Angelo
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 non riesco però a trovare l'errore....grazie in anticipo per  l'aiuto
Vedi sopra.
--
Cingar
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

infatti volevo scrivere
*res = tot;
cmq nn funziona lo stesso....
allora la funzione "dovrebbe" calcolare il "più piccolo numero 
rappresentabile dal sistema aritmetico".....
-- 
Renato Zero
un concerto dentro me la mia strada so qual'e'......siamo foreste 
montagne inviolabili ma poi...a sorprenderci e' il sole
che dissolve le ombre intorno a noi, e impariamo a sperare un po' di 
piu'
a camminare a sognare insieme......
a braccia aperte
col sorriso e un po' piu' di umanita'...............

cmq l'ho ricorretta....ecco cm doveva essere...
/*prototipo */
void minimo_rappresentabile_sp(float x, int b, float *tot);
main ( )
{
/*dichiarazione di variabili */
float e, rmins;
int base;
e=1.;
base=2;
/*chiamata della funzione */
minimo_rappresentabile_sp(e, base, &rmins);
/*stampa risultato */
printf ("\n Minimo Rappresentabile in Singola Precisione: %E\n", 
rmins);
system("PAUSE");
}
void minimo_rappresentabile_sp(float x, int b, float *tot)
{
float rmin;
while (x != 0.)
{
rmin = x;
x=rmin/(float)b;
}
*tot = rmin;


 non riesco perň a trovare l'errore....grazie in anticipo per  l'aiuto
#include <stdio.h>
float func(float x, float base)
{
    float temp;
    while (x!=0)
    {
        temp = x;
        x = temp / base;
    }
    return temp;
}
int main()
{
  printf("l'Rmin e' : %e\n", func(1,2));
  system("PAUSE");
  return 0;
}
%f ovvero  %.6f   e' un formato "fixed point" : ...xxx.xxxxxx. Stampa
6 decimali.
-- 
Horst

 }
Ah, così è già più umana. Ci sono ancora diverse dettagli che io
cambierei. In ordine di gravità:
- Il prototipo del main è sbagliato.
- Il main deve ritornare un valore.
- Mancano gli header di libreria.
- Perché c'è quel puntatore "tot"? Meglio ritornare il valore.
- Perché c'è quel prototipo iniziale? Meglio invertire la posizione delle
due funzioni
- Il messaggio è ortograficamente errato (l'italiano non è tedesco, e non
vuole tutte quelle maiuscole).
- Le variabili "e", "rmins" e "base" nel main sono perfettamente inutili.
- I commenti sono tutti inutili, visto che dicono cose ovvie.
- La spaziatura è incoerente (a volte metti spazi intorno agli operatori,
a volte no, ecc.).
Mettendo insieme tutto:
    #include <stdio.h>
    float minimo_rappresentabile_sp (float x, int b)
    {
        float rmin;
        while (x != 0.)
        {
            rmin = x;
            x = rmin / (float)b;
        }
        return rmin;
    }
    int main (void)
    {
        printf("\nMinimo rappresentabile in singola precisione: %E\n",
               minimo_rappresentabile_sp(1, 2));
        system("PAUSE");
        return 0;
    }
--


lo so che è giustissimo quello che hai scritto Cinagr, ma ma era un  
progetto x l'università e dovevo scriverla in questo modo...Altrimenti 
non mi danno un buon voto  :)
