Oppure

Loading
04/01/10 10:39
Puffetta
Ciao!
Ho provato a fare questo esercizio. Il problema è che qualsiasi funzione io inserisca e per diversi valori dell'estremo a e b il programma mi stampa sempre gli stessi valori e quindi poi il grafico verrà sempre e comunque una retta. Mi potreste aiutare a risolvere il problema? grazie mille:)


/*Scrivere un programma C++ che acquisisce da tastiera un intero positivo N e due numeri reali a e b, e produce un file .dat contenente una tabella di N valori a passo costante per la funzione f(x) nell'intervallo [a,b]. Applicare il programma, con N = 100,
alle seguenti funzioni negli intervalli specificati.*/

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

double f(double t)
{      
       return(log(t)+t);
}


main()
{
      double a, b; int N=100; double h=((b-a)/N), x, y;
      
      printf("\n Qual'e' il valore dell'estremo sinistro?   a=");
      scanf("%lf", &a);
      
      printf("\n Qual'e' il valore dell'estremo destro?     b=");
      scanf("%lf", &b);
      
      FILE *fp; 
      
      fp = fopen("tabella.dat", "wt");
      
      if(fp==NULL)
                  {
                     system("PAUSE");
                     exit(1);
                  }
      
      for(int i=1; i<=N; i++)
              {
                   x=a+(i*h);
                   
                   y=f(x);
                   
                   fprintf(fp, " %f %f\n", x, y);
              }
      fclose(fp);
      
      system("Vista (C:)\Programmi\Intel\gnuplot-420win32\gnuplot\bin\wgnuplot.exe ");
      return 0; 
}
aaa
04/01/10 12:56
Un computer esegue le istruzioni di un programma sequenzialmente.

La formula

double h=((b-a)/N)

non va inserita prima che il programma conosca i valori di a e b.

Devi quindi dichiarare solamente

double h;

e poi, dopo le scanf, potrai scrivere

h=(b-a)/N;


P.S. Ma cosa c'entrano i Puntatori di cui parli nel titolo?
Ultima modifica effettuata da 04/01/10 13:05
05/01/10 3:45
Matthew
Non per fare il pignolo e non che in questo caso la cosa abbia poi tutta quell'importanza, ma il tuo codice è in C, non in C++. :rotfl:
aaa
05/01/10 8:54
Puffetta
grazie!!!!!! cmq lo so, è C ma all'università dicono di insegnarci il C++ quindi mi attengo a loro...
aaa
05/01/10 9:56
Continuo a non capire cosa c'entra il titolo dato a questo thread ... comunque ...