Oct 21, 2013 at 11:13pm UTC
hi guys.I have a question.I created a program but this program execute for some input files but this program does not execute another input files. for example
input file is okey.
3
3 1 -2 4
but
if my input files is
5
1 0 0 -3 1 0 this program executes wrongly.
my code is here..
#include <iostream>
#include <fstream>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <string>
#include<cstdlib>
#include<vector>
using namespace std;
double u,newx;
double j,newson,newfin,term;
int sayac;
int result;
double top,final,y,sonuc,fark;
vector<int>satir;
string karakter;
int derece;
double eps=0.000001;
double olustur(double u)
{
double toplam = 0;
int value = derece;
for(int i=0; i<derece; i++)
{
toplam += satir[i] * pow(u,value);
value--;
}
toplam += satir[derece];
return toplam;
}
void oku(char file[])
{
ifstream reader(file);
reader >> derece;
int value;
for (int i=0; i<=derece; i++){
reader >> value;
satir.push_back(value);
}
}
double turev(double u)
{
double result=0;
int g=0;
int value = derece;
for (int k=value; k>=0; k--)
{
int gel=satir[g];
result=result + k*gel*pow(u,k-1);
g=g +1;
}
return result;
}
double newton(double u,double fx,double fxx)
{
double newx = u - (fx / fxx);
while (abs(fx)>eps)
{
u = newx;
fx=olustur(newx);
fxx=turev(newx);
newx=newx -(fx/fxx);
}
return newx;
}
void yaz(char file_name[])
{
ofstream output_file (file_name);
output_file << newfin;
output_file.close();
}
int main( int argc, char* argv[])
{
srand(time(NULL));
if(argc==3)
{
oku(argv[1]);
u =rand();
sonuc = olustur(u);
j=turev(u);
newfin=newton(u,sonuc,j);
yaz(argv[2]);
}else{
cout << "Wrong input";
}
return 0;
}
Last edited on Oct 21, 2013 at 11:32pm UTC