Liczenie miejsca zerowego funkcji

0

Muszę przygotować program liczący miejsce zerowej funkcji podanej w pliku funkcja.c,
Plik main ma zliczać i sprawdzać podane argumenty(końce przedziału, dokładność obliczeń i metodę (bisekcja, sieczne):

#include<stdio.h>
#include<stdlib.h>
int main(int agrc, char *argv[]){
double x1,x2,f,x,e=1e-5;
int Flaga,iteracje;
if (argc<4){ //sprawdzic czy 4 czy 3
printf("cos nie tak!\n";
return 1;}
sscanf(argv[1], "%f",&x1);
if(konwert==0){
printf ("cos nie tak"); return 2;
}
sscanf(argv[2], "%f",&x2);
if(konwert==0){
printf ("cos nie tak"); return 3;
}
sscanf(argv[3], "%f",&Flaga); 
if(konwert==0){
printf ("cos nie tak"); return 4;
}
sscanf(argv[4], "%d",&e);
if(konwert==0){
printf ("cos nie tak"); return 5;
}
iteracje =mzero(x1,x2,e,Flaga,&x,&f);
printf("Miejsce zerowe znalezione w %d krokach, w punkcie %f wartość funkcji %f \n", iteracje,x,f);
} 

Plik mzero.c liczy miejsce zerowe.

#include "funkcja.h"
#include<math.h>
//sprawdzic czy ta gwiazdka ma byc - wkaznik
int mzero (double xp,xk,eps, int flaga, double*xm,*fm) { //int, który zwraca są literacje - ile razy trzeba przejśc przedział żeby dojsc do wyniku. a eps = dokładność
double fk, fp;
int iter=0;
fk=f(xk); fp=f(xp);

if(fk*fp > 0)
{
return -1; //program polega w tym miejscu, iteracje zadne nie przebiegly, nie jest w stanie znalezc miejsca zerowego
}

if (fp == 0){
*fm=fp;
*xm=xp;
return iter;
}
if(fk==0){
*fm=fk;
*xm=xk;
return iter;
}


do{
iter++;
if(flaga == 1){
*xm=(fk*xp-fp*xk)/(fk-fp);

}
else{*xm=0.5*(xp+xk);} //mnoze przez 0,5 zamiast dzielic przez 2
//tutaj  pisze wzor podstawiajac
fm=f(*xm);
if(*xm == xp || *xm==xk){return iter;}
if(*fm==0){return iter;}
if(fp* *xm>0){fp= /fm; xp=*xm} else {fk=*fm; xk=*xm}

}
while(
abs((xk-xp)/(*xm))>eps && (abs(*xm)>eps);
} 

Niestety program nie działa. Jestem początkująca. Bardzo proszę o pomoc...

0

Przeczytaj co ci mówi kompilator i popraw błąd.

0

Udostępnij źródła w formie projektu.
Program niestety na oko nie ma szans się skompilować.

1 użytkowników online, w tym zalogowanych: 0, gości: 1