Salve a tutti!
E' la prima volta che uso variabili char, e nonostante mi sia letta molti appunti su internet c'è ancora qualcosa che mi sfugge. So che è possibile riempire una stringa leggendo i caratteri da tastiera, mentre non riesco a capire se è possibile farlo assegnandole caratteri all'interno del programma.
Il mio intento è plottare su Gnuplot una funzione e le sue approssimazioni tramite il metodo di Lagrange, ma non riesco a scrivere sul file dei comandi per Gnuplot la funzione esatta (non approssimata)
Ecco la funzione che ho provato a scrivere:
void plot(int n){
int i;
double x1,x2,y1,y2;
char F[40];
FILE* file1;
//assegno all'array i caratteri della funzione che ho scelto all'inizio del programma
if(n==1) F[40]="exp(x)\0";
if(n==2) F[40]="cos(x)\0";
if(n==3) F[40]="sin(3*x)\0";
if(n==4) F[40]="log(1+x)\0";
if(n==5) F[40]="1./(1+x*x)\0";
if(n==6) F[40]="(1-x*x)*(1-x*x)\0";
if(n==7) F[40]="x*x*x*x*x+3*x*x*x*x+2*x*x*x-x*x-5*x+1\0";
if(n==8) F[40]="exp(-x*x)\0";
if(n==9) F[40]="fabs(x)\0";
if(n==10) F[40]="sin(x*x)\0";
//scelgo la porzione di grafico e scrivo su file i comandi (Linux)
file1=fopen("comandi.txt","w");
printf("\n\nScegli la porzione di grafico che vuoi vedere");
do {
printf("\n\nIntervallo sulle x");
printf("\nx1: ");
scanf("%lf",&x1);
printf("\nx2: ");
scanf("%lf",&x2);
} while(x1>x2);
do {
printf("\n\nIntervallo sulle y");
printf("\ny1: ");
scanf("%lf",&y1);
printf("\ny2: ");
scanf("%lf",&y2);
} while (y1>y2);
fprintf(file1,"set yrange [%lf:%lf]\n",y1,y2);
fprintf(file1,"plot \"polinomio.txt\" with lines\n");
fprintf(file1,"plot \"lineare.txt\" with lines\n");
fprintf(file1,"plot \"quadratica.txt\" with lines\n");
fprintf(file1,"plot %s",F[40]);
fclose(file1);
//chiamo gnuplot
system("gnuplot comandi.txt -persist");
return;
}
consigli?
AGGIUNTA: compilando mi dà questo errore
[Error] invalid conversion from 'const char*' to 'char' [-fpermissive]