Ciao ragazzi, non capisco cosa mi chiedano di fare gli errori che ho trovato compilando questo programma di analisi numerica e dove io stia sbagliando. Premetto che conosco il C da un mesetto e col computer ho pochissima dimestichezza, quindi anche dopo 1 ora non ci ho cavato le gambe da sti errori.
#include <iostream>
#include <stdio.h>
#include <math.h>
double funz (double x) {
#define NINT (20)
#define TOL (1.e-4)
int main (void) {
FILE *file_out;
int n,k;
double a,b,h,xk,ak,bk,fxk,fak,fbk;
file_out=fopen("graph.dat","w");
n=NINT;
b=1.;
a=0.;
ak=a;
bk=b;
xk=0.5*(ak+bk);
h=0.5*(b-a);
fxk=funz(xk);
fak=funz(ak);
fbk=funz(bk);
fprintf(file_out,"%d %f %f %f %f %f %f %f \n", 0,h,ak,bk,xk,fak,fbk,fxk);
for (k=1;k<=n;k++) {
if (fxk*fak > 0){
ak = xk; fak = fxk;
}
else {
bk = xk;
fbk = fxk;
}
xk=0.5*(ak+bk);
fxk=funz(xk);
h=0.5*h;
fprintf(file_out,"%d %f %f %f %f %f %f %f \n", k,h,ak,bk,xk,fak,fbk,fxk); if (h < TOL) {
fprintf(file_out,"\nstima dell’errore: %e TOL: %e\n", h,TOL);
k++;
break;
}
}
printf("iterazioni: %2d z0: %12.8f stima dell’errore= %e \n", k-1,xk,h);
return 0;
}
double y;
y = exp(x)+x-2.;
return y;
}
ho più o meno copiato l esercizio del file del prof visto che lui non spiega nulla e si inalbera se fai domande. Il FILE *file_out cos è? A che scopo l ha messo? Non l ha mai usato prima. Anche file_out=fopen("graph.dat","w"); non so cosa significhi.
Comunque gli errori sono questi:
~/Desktop$ gcc -c an1.c -Wall -ansi -pedantic
an1.c: In function ‘funz’:
an1.c:9:1: warning: ISO C forbids nested functions [-Wpedantic]
int main (void) {
^~~
an1.c:9:5: warning: ‘main’ is normally a non-static function [-Wmain]
int main (void) {
^~~~
At top level:
an1.c:9:5: warning: ‘main’ defined but not used [-Wunused-function]
Ringrazio in anticipo chi avrà voglia di darmi una mano