Oppure

Loading
24/02/10 13:52
ciao a tutti. Ripeto che ho appena iniziato a programmare in c++ e sto vedendo adesso le funzioni.
Non riesco a capire come attribuire un determinato valore alla funzione in modo che mi restituisca un determinato valore.
Non ho alcun valore in entrata ma non so come far uscire un determinato valore dalla funzione.
Ad esempio in pascal io usavo:
function Ciao():integer;
begin
  Ciao:= 5;
end;

begin
(*..*)
writeln(Ciao());


e in effetti mi dava in output il 5.
In c++ io ho un codice di questo genere:
int ecalc()
{
  (*...*)
   while (i < 60)
    {
        a = a/i;
        e = e + a;
        i = i + 1;
    }
}

main()
{
   (*...*)
   cout<<ecalc();
}


Io vorrei che in output ci fosse la variabile e (che ho dichiarato double)
ma non mi dà il risultato che cerco:d

Grazie per l'aiuto anticipatamente
Saluti
Ultima modifica effettuata da 24/02/10 13:53
24/02/10 14:25
LittleHacker
Postato originariamente da a_butta:
Io vorrei che in output ci fosse la variabile e (che ho dichiarato double)
ma non mi dà il risultato che cerco:d

Grazie per l'aiuto anticipatamente
Saluti

Beh alla fine del tuo ciclo...qui:
   while (i < 60)
    {
        a = a/i;
        e = e + a;
        i = i + 1;
       /* qui */
    }

scrivi:
return e;

ti esce così:
   while (i < 60)
    {
        a = a/i;
        e = e + a;
        i = i + 1;
        return e;
    }

oppure anche fuori dal ciclo:k:
aaa
24/02/10 16:25
nessuno
Little ... se lo metti dentro al ciclo, il ciclo non serve piu' a nulla ... non credi?

E se viene restituito un valore double, allora il tipo va indicato per la funzione con

double ecalc()
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
24/02/10 18:04
LittleHacker
Postato originariamente da nessuno:

Little ... se lo metti dentro al ciclo, il ciclo non serve piu' a nulla ... non credi?

E se viene restituito un valore double, allora il tipo va indicato per la funzione con

double ecalc()


Si...scusami ho sbagliato io:_doubt:...:k:
aaa
24/02/10 20:10
continuando qui, sto cercando di fare una funzione seno secondo la serie di taylor (la trovate qui: it.wikipedia.org/wiki/… sulle Proprietà analitiche della funzione seno

Io ho fatto questo codice:
float seno(float alfa)
{
    int k,i;
    k = 2;
    i = 3;
    while (k++ < 100)
    {
        if (k % 2 == 0) alfa = alfa + potric(alfa,i)/fattoriale(i);
        else alfa = alfa - potric(alfa,i)/fattoriale(i);
        i = i + 2;
    }
    return alfa;
}


spiego: potric è una funzione che rende una potenza secondo potric(base,esponente). Fattoriale invece lo si capisce dal nome. Sono entrambe perfettamente funzionanti (le ho provate separatamente).

nel codice principale metto
(*...*)
cout<<"Angolo:  ";
cin>>alfa;
cout<<seno(alfa);
(*...*)


Purtroppo non mi dà il risultato sperato. Ho postato il risultato nell'immagine.
Ho provato a invertire i casi in cui andasse alfa + e alfa - ma niente...:d
voi cosa suggerite?

Grazie mille



Ultima modifica effettuata da 24/02/10 20:11
24/02/10 20:31
nessuno
Ad un certo punto, il fattoriale di i supera le capacità di calcolo del sistema ...
Ultima modifica effettuata da nessuno 24/02/10 20:38
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.