numeri triangolari(esame di informatica)

« Older   Newer »
 
  Share  
.
  1.  
    .
    Avatar

    Senior Member

    Group
    Staff
    Posts
    10,796

    Status
    Anonymous
    L'informatica comprende molte discipline essendo molto vasta, e la matematica è molto importante, specie per un programmatore. Poi dipende ovviamente che cosa si sviluppa.
    L'informatica è appunto molto vasta, non c'è solo la programmazione o il C++, ci sono un sacco di altre cose in cui non è necessario (o strettamente necessario) saper programmare.

    CITAZIONE (aaa123 @ 31/10/2013, 10:10) 
    bhe in primis grazie,poi visto che ci siamo vorrei chiederti un paio di cose:questi 2 programmi non ho la minima ide di come si facciano


    )costruire una funzione che restituisce il valore base ^ esponente.usare una funzione ricorsiva,e considerare anche il caso di esponenti negativi

    2)scrivere un programma definendo una funzione che restituisca la somma dei reciproci dei primi n numeri interi positivi,con funzione ricorsiva

    Es. somma(2)=1/1+1/2=1.5
    somma(3)=1/1+1/2+1/3=1.83



    e poi,cosa più importante,per caso puoi consigliarmi qualche guida(in italiano visto che ho poco tempo,l'esame è il 20 novembre,e il mio inglese è pessimo) c++??
    magari on line o da scaricare sarebbe meglio,dimmi tu..qualcosa di semplice,che anche un idiota(informaticamente parlando) come me può capire....grazie in anticipo :)

    Il secondo ancora non l'ho scritto, per quanto riguarda il primo ho buttato giù due righe evitando i numeri negativi:
    CODICE
    int eleva(int base, int esp) {
     if(esp == 1) return base;
     return base*eleva(base,esp-1);
    }


    E' solo uno dei modi per risolverlo, non è l'unico. Puoi ad esempio fare anche così:
    CODICE
    int eleva(int base, int esp) {
     if(esp > 0) return base*eleva(base,esp-1);
     return 1;
    }


    Ci sono altri metodi, ma questi sono i classici che puoi scrivere ricorsivamente.

    Altri tipici problemi ricorsivi sono il fattoriale, la serie di fibonacci o il le torri di hanoi.

    Il libro di C++ non c'è, sempre se non scegli di comprarti un libro. Non ne conosco ad essere sincero, l'unico che conosco è un tomo di 1000 o 1200 pagine scritto da Herbert Shildt. Dovresti trovarlo anche in italiano senza problemi.
    Se guardi nella sezione del C/C++ dovresti trovare qualcosa da scaricare, anche se la maggior parte sono in inglese. Anzi, ora che ci penso, uno è in italiano: http://speedy.sh/RrFEU/Thinking-in-C-ITA-Pensare-in-C.7z

    PS: devi utilizzare 7zip per aprirlo.
     
    Top
    .
  2.  
    .
    Avatar

    Member

    Group
    Member
    Posts
    206

    Status
    Offline
    CITAZIONE (aaa123 @ 31/10/2013, 10:10) 
    CITAZIONE (RootkitNeo @ 30/10/2013, 16:47) 
    Di nulla. ;)

    Sai, c'è sempre il solito detto: "Dai un pesce ad un uomo e lo sfamerai per un giorno. Insegnagli a pescare e lo sfamerai per tutta la vita". Quindi se hai domande, o vuoi spiegazioni, approfittane se sei in tempo (se hai l'esame domani, ad esempio, non so quanto possa servirti), devi solo aprire un topic.

    bhe in primis grazie,poi visto che ci siamo vorrei chiederti un paio di cose:questi 2 programmi non ho la minima ide di come si facciano


    )costruire una funzione che restituisce il valore base ^ esponente.usare una funzione ricorsiva,e considerare anche il caso di esponenti negativi

    2)scrivere un programma definendo una funzione che restituisca la somma dei reciproci dei primi n numeri interi positivi,con funzione ricorsiva

    Es. somma(2)=1/1+1/2=1.5
    somma(3)=1/1+1/2+1/3=1.83




    e poi,cosa più importante,per caso puoi consigliarmi qualche guida(in italiano visto che ho poco tempo,l'esame è il 20 novembre,e il mio inglese è pessimo) c++??
    magari on line o da scaricare sarebbe meglio,dimmi tu..qualcosa di semplice,che anche un idiota(informaticamente parlando) come me può capire....grazie in anticipo :)

    quest'altro come si fa?per favore rispondetemi,grazie ancora ;)
     
    Top
    .
  3.  
    .
    Avatar

    Senior Member

    Group
    Staff
    Posts
    10,796

    Status
    Anonymous
    Di base è identico al precedente. La funzione puoi praticamente mantenerla cambiando solo le operazioni.
    Se dovessi fare la somma dei primi N numeri ricorsivamente, cosa faresti?
    Potresti fare così:
    CODICE
    int sommaN(int n) {
     if(n > 0) return n+reciproco(n-1);
     return 0;
    }


    Qui la cosa è analoga, cambia che devi fare il reciproco di N, quindi:

    CODICE
    double reciproco(double n) {
     if(n > 0) return (1./n)+reciproco(n-1);
     return 0;
    }
     
    Top
    .
17 replies since 28/10/2013, 14:44   972 views
  Share  
.