Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Ma dov'è l'errore ?

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    152

    Ma dov'è l'errore ?

    ragazzi sono ancora alle prese con un programma in c di cui ovviamente non tutto fila liscio, arrivo subito al succo: il programma calcola i valori che la funzione assume in alcuni punti di un'intervallo da noi fissato. Questi punti vengono calcolati tramite il passo ( con relativa istruzione ) e credo sia proprio lì il problema dato che se metto l'intervallo [2,10] con numero di punti =2, lui dovrebbe calcolarmi la funzione per x=2 e x=10. Nel caso di x=2 calcola bene, mentre per x=10 me lo calcola con x=5...Riuscite a capire il perchè? so che è difficile...ma se potete darmi una mano vi sarò grato. Ecco il programma:


    #include<conio.h>
    #include<stdio.h>
    #include<stdlib.h>
    float campionatura(float a,float b,float f_campionata[],float vetcoef[],int n,int grado);
    float f(float x,float vetcoef[],int grado);

    int main()
    {
    float a,b,f_campionata[100],vetcoef[100];
    int n,i,grado;
    printf("Inserisci il primo estremo dell'intervallo \n");
    scanf("%f",&a);
    printf("Inserisci il secondo estremo dell'intervallo \n");
    scanf("%f",&b);
    printf("Inserisci il numero di punti \n");
    scanf("%d",&n);
    printf("Inserire il grado del polinomio \n");
    scanf("%d",&grado);
    for(i=0;i<=grado;i++)
    {vetcoef[i]=0;
    }

    for(i=grado;i>=0;i--)
    {printf("Inserire il coefficiente di grado %d\n",i);
    scanf("%f",&vetcoef[i]);
    }
    campionatura (a,b,f_campionata,vetcoef,n,grado);
    printf("I valori che la funzione assume nei punti dell'intervallo sono:");
    for(i=1;i<=n;i++)
    { printf("%f\n",f_campionata[i]);
    }
    system("PAUSE");
    return 0;
    }

    float campionatura(float a,float b,float f_campionata[],float vetcoef[],int n,int grado)
    { int i;
    float passo,x;
    passo=(b-a)/(n-1);
    x=a;
    for(i=1;i<=n;i++)
    {
    f_campionata[i]=f(x,vetcoef,grado);
    x=x+passo;
    }
    system("PAUSE");
    return 0;
    }

    float f(float x,float vetcoef[],int grado)
    { float valpol;
    int j,h;
    valpol=0;
    valpol=valpol+vetcoef[0];
    for(h=1;h<=grado;h++)
    {for(j=1;j<h;j++)
    {x=x*x;
    }
    valpol=(x*vetcoef[h])+valpol;
    }
    system("PAUSE");
    printf("Il valore del polinomio è %f\n",valpol);
    return valpol;
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    152
    no ragazzi tutto risoltooooo, finalmente !!!

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Ecco, magari la prossima volta leggi il Regolamento interno, prima di postare.

    Titolo errato.
    Mancata indicazione del linguaggio sempre nel titolo
    Posting del codice senza tag CODE.


    Chiudo questa discussione.


    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

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 © 2026 vBulletin Solutions, Inc. All rights reserved.