Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    27

    calcolo d'integrali con metodo dei trapezi , piccolo problemino

    questo è il codice :

    codice:
    #include<stdio.h>
    #include<stdlib.h>
    
    
    int main()
    {
        int a;
        int b;
        int c;
    double int_trapezium(double from, double to, double n, double (*func)())
    {
       double h = (to - from) / n;
       double sum = func(from) + func(to);
       int i;
       for(i = 1;i < n;i++)
           sum += 2.0*func(from + i * h);
       return  h * sum / 2.0;
    }
    
    
        printf("inserisci il primo intervallo di integrazione");
        scanf("%d",&a);
         printf("inserisci il secondo intervallo di integrazione");
        scanf("%d",&b);
        printf("inserisci il numero di intervalli");
        scanf("%d",&c);
    
    
        printf("%d,"int_trapezium(a,b,c,));
    
    
    }

    mi manca il quarto parametro da inserire nella funzione int_trapezium,devo mettere la funzione ma come?Fate un esempio
    Ultima modifica di LeleFT; 12-05-2015 a 16:23 Motivo: Aggiunti i tag CODE

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Scrivi una funzione e metti il suo puntatore (ovvero il suo nome) come parametro.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    @paulucc: il codice postalo all'interno degli appositi tag [CODE] .. [/CODE], così da mantenerlo indentato e formattato, quindi più leggibile.

    Ho corretto io.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    27
    codice:
    #include<stdio.h>
    codice:
    #include<stdlib.h>
    
    
    int main()
    {
    int a;
    int b;
    int c;
    
    int funzione(float x)
    {
    return 2*x;
    }
    double int_trapezium(double from, double to, double n, double (*func)())
    {
    double h = (to - from) / n;
    double sum = func(from) + func(to);
    int i;
    for(i = 1;i < n;i++)
    sum += 2.0*func(from + i * h);
    return h * sum / 2.0;
    }
    
    
    printf("inserisci il primo intervallo di integrazione");
    scanf("%d",&a);
    printf("inserisci il secondo intervallo di integrazione");
    scanf("%d",&b);
    printf("inserisci il numero di intervalli");
    scanf("%d",&c);
    
    
    printf("%d,"int_trapezium(a,b,c,funzione));
    
    
    }
    



    Ho provato così ma non va.
    si scusami @leleFT
    Ultima modifica di LeleFT; 12-05-2015 a 16:56 Motivo: Aggiunti i tag CODE

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma che scrivi le funzioni dentro il main??

    P.S. Lele ti ha detto di usare i tag CODE ma non lo fai ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    E anche sto giro li ho messi io i tag CODE... Esempio d'uso:

    [CODE]
    qui incolli il tuo codice
    [/CODE]


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    27
    codice:
    
    
    codice:
    #include<stdio.h>
    #include<stdlib.h>
     int funz(int x)
        {
            return 2*x;
        }
    
    
        double int_trapezium(double from, double to, double n, double (*func)())
    {
       double h = (to - from) / n;
       double sum = func(from) + func(to);
       int i;
       for(i = 1;i < n;i++)
           sum += 2.0*func(from + i * h);
       return  h * sum / 2.0;
    }
    
    
    int main()
    {
    
    
        int a;
        int b;
        int c;
    
    
        printf("inserisci il primo intervallo di integrazione");
        scanf("%d",&a);
         printf("inserisci il secondo intervallo di integrazione");
        scanf("%d",&b);
        printf("inserisci il numero di intervalli");
        scanf("%d",&c);
    
    
        printf("%d",int_trapezium(a,b,c,funz);
    
    
    }
    li ho messi fuori al main ,ma niente ancora
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Cosa vuol dire "niente ancora" ? Perché non indichi gli errori che hai compilando ?

    E poi, vedi l'incoerenza tra la funzione

    int funz(int x)

    e la funzione passata

    double (*func)()

    e poi usata

    func(from);

    ???

    Deve essere

    double funz(double x)

    e

    double (*func)(double x)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    27
    codice:
    #include<stdio.h>
    #include<stdlib.h>
     double funz(double x)
        {
            return (2*x);
        }
    
    
        double int_trapezium(double from, double to, double n, double (*func)(double x))
    {
       double h = (to - from) / n;
       double sum = func(from) + func(to);
       int i;
       for(i = 1;i < n;i++)
           sum += 2.0*func(from + i * h);
       return  h * sum / 2.0;
    }
    
    
    int main()
    {
    
    
        int a;
        int b;
        int c;
    
    
        printf("inserisci il primo intervallo di integrazione");
        scanf("%d",&a);
         printf("inserisci il secondo intervallo di integrazione");
        scanf("%d",&b);
        printf("inserisci il numero di intervalli");
        scanf("%d",&c);
    
    
        printf("%d",int_trapezium(a,b,c,funz));
    return 0;
    }


    Fatto come hai detto , allora il programma mi restituisce come valori a volte 0 e a volte -1.

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Dato che visualizzi un double nella printf non devi usare %d
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.