La didattica del C

di il
26 risposte

La didattica del C

Ciao ragazzi,
grazie per avermi accolto in questo forum e farmi sentire della famiglia.
Inizio un nuovo post perchè è da poco che stò iniziando a studiare il C (cosa che mi ero ripromesso di fare negli ultimi dieci anni) e stò avendo non poche difficolta. Studio il linguaggio C sul Libro di Deitel & Deitel e non posso dirvi quanto sia scritto male e poco rivolto alla didattica, ovvero per coloro che vogliono iniziare a destreggiarsi in questa bellissima professione. Mi chiedevo se qualcuno conoscesse qualche sito dove posso trovare le soluzioni dei problemi, non degli esercizi svolti che sono molto facili e banali da portare a termine. Oppure qualcuno potrebbe aiutarmi nella risoluzione di qualche problema. O ancora ho creato l'algoritmo e ho scritto il codice sorgente ma il compilatore si ostina a dirmi che c'è qualche errore. Mi potreste aiutare? Grazie.

26 Risposte

  • Re: La didattica del C

    Ciao, se vuoi dare un'occhiata, ho gia` risposto ad una domanda uguale in questo post:
    http://www.iprogrammatori.it/forum-programmazione/cplusplus/info-t8680.html#p8463031

    Se hai bisogno di altre info chiedi pure
  • Re: La didattica del C

    Ciao, sul mio canale youtube ho pubblicato video sulla base del c .Magari possono esserti utili:

    http://www.youtube.com/user/RichieSlash9

    Se hai bisogno qualcosa di particolare mi puoi mandare un messaggio su youtube o anche qui sul forum così magari potrei fare video proprio per le cose che ti servono.
    Ciao
  • Re: La didattica del C

    Ad esempio vi scrivo un questito che non riesco a svolgere:
    Scrivete una funzione integerPower (base, exponent) che restituisca il valore
    base elavato all'esponente
    Per esempio, integerPower (3, 4)= 3*3*3*3. Supponete che exponent sia un intero positivo diverso da zero e che base sia un intero. La funzione integerPower dovrà utilizzare for per controllare il calcolo. Non utilizzate nessuna funzione della libreria matematica.
    Questo è un problema del libro dei Deitel che si trova nel 5° capitolo, sotto riporto i sorgente che ho creato, ma che dà risultati errati, mi restituisce un numero elevato alla doppia potenza e non alla singola potenza dell'esponente da me inserito:
    #include <stdio.h>
    int integerPower (int base, int exponent);
    int main ()
    {
    int x,y;
    printf ("Digitare il valore della base e dell'esponenete della potenza:");
    scanf ("%d%d", &x,&y);
    printf ("il risultato Ë %d", integerPower(x,y));
    return 0;
    }
    int integerPower (int base, int exponent)
    {
    for (exponent > 0 ; exponent --;)
    base*=base;
    return base;
    }

    Grazie dell'eventuale aiuto.
  • Re: La didattica del C

    
    for ( ; exponent > 1 ; exponent--)
    
    Rimane il problema per esponente 0...
    
    if (!exponent) return 1;
    
    Saluti,
    Max
  • Re: La didattica del C

    #include <stdio.h>

    int main ()
    {

    int x,y,z;
    printf ("Digitare il valore della base e dell'esponenete della potenza:");
    scanf ("%d%d", &x,&y);
    z=pow(x,y);
    printf ("il risultato e' %d", z);
    system("pause");
    return 0;
    }


    così funziona..... e pow(x,y) già effettua il controllo .... quello ceh stai facendo per cosa ti serve?
  • Re: La didattica del C

    Grazie ragazzi
    ora lo provo ma il ; a cosa serve?
    in alcuni programmi gia compilati e perfettamente funzionanti ho omesso l'inizializzazione della variabile nel for e tutto è andato bene.
  • Re: La didattica del C

    In un for normale si ha che la variabile inizia cioè per esempio

    for(a=0;a<=10;a++) cioè la a viene istanziata come 0 e ogni volta che si ripete il ciclo viene incrementata. nel tuo caso exponent=0 non lo metti perchè lo istanzi nel integerpower(x,y)

    Non so se sono stato chiaro.
  • Re: La didattica del C

    Scuca marioprogrammer ma il testo dell'esercizio vieta di usare la funzione pow che si trova nella libreria math.h, cmq la dovresti includere no?
  • Re: La didattica del C

    No pow non va viene eseguita senza la libreria ... prova math.h contiene tutte altre funzioni ma pow no ...
  • Re: La didattica del C

    Mi correggo ..... pow è anche nella libreria math.h ... però la puoi utilizzare anche senza
  • Re: La didattica del C

    #include <stdio.h>
    int integerPower (int base, int exponent);
    int main ()
    {
    int x,y;
    printf ("Digitare il valore della base e dell'esponenete della potenza:");
    scanf ("%d%d", &x,&y);
    printf ("il risultato é %d", integerPower(x,y));
    return 0;
    }
    int integerPower (int base, int exponent)
    {
    if (exponent==0)
    return 1;
    for (; exponent > 1 ; exponent --;)
    base*=base;
    return base;
    }

    ora provo a compilarlo e vi sò dire.
  • Re: La didattica del C

    L'ultimo punto e virgola nel for non ci vuole
  • Re: La didattica del C

    Cmq ora ho notato un problema cioè nel for fai il primo ciclo base per base per esempio emttiamo esponente 2 facciamo base 2...allora la prima volta base*base = 4 la seconda volta però base *base sarà 4*4 quindi credo sia meglio fare una terza variabile fissa in modo che la prima volta abbiamo:

    variabile=base;
    for(;exponent>1;exponent--){
    variabile=variabile*base;
    return variabile} così avremo che la prima volta abbiamo 2*2=4 e la seconda 4*2=8 ....
  • Re: La didattica del C

    Quando si dice guardare con gli occhi di estranei per trovare gli errori, avrei potuto ricontrollare il sorgente mille volte ma non sarei mai arrivato a trovare l'errore. Grazie mille MarioProgrammer.
    Colgo l'occazione per chiederti se posso postare altri problemi di cui non riesco a trovare la soluzione o il cui risultato non è quello atteso. Di nuovo grazie .
Devi accedere o registrarti per scrivere nel forum
26 risposte