### Thread: Help me with program.

1. No Profile Picture
Registered User
Devshed Newbie (0 - 499 posts)

Join Date
Dec 2012
Posts
1
Rep Power
0

#### Help me with program.

Write a C function that calculates the value of mathematical functions:
f (x) = 0.1 x2 - x ln x.
Function prototype should be:
float f (float x).

Change the program p4_7.c that she wouldn't search the polynomial, but the roots of this new function. Try the program by finding roots of functions in the range [1, 2].

I can't program at all, so i will be very pleased if someone will help me. But please, try to write this program using basic syntax, not the advanced or something.

p4_7.c
/* p4_7.c */
/*------------------------------------------------------------*/
/* Program chapter4_7 */
/* */
/* This program estimates the real roots of a */
/* polynomial function using incremental search. */

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

/* Declare function prototypes. */
void check_roots(double left,double right,double a0,
double a1,double a2,double a3);
double poly(double x,double a0,double a1,
double a2,double a3);

int main(void)
{
/* Declare variables. */
int n, k;
double a0, a1, a2, a3, a, b, step, left, right;

/* Get user input. */
printf("Enter coefficients a0, a1, a2, a3: \n");
scanf("%lf %lf %lf %lf",&a0,&a1,&a2,&a3);
printf("Enter interval limits a, b (a<b): \n");
scanf("%lf %lf",&a,&b);
printf("Enter step size: \n");
scanf("%lf",&step);

/* Check subintervals for roots. */
n = ceil((b - a)/step);
for (k=0; k<=n-1; k++)
{
left = a + k*step;
if (k == n-1)
right = b;
else
right = left + step;
check_roots(left,right,a0,a1,a2,a3);
}

/* Exit program. */
return 0;
}
/*------------------------------------------------------------*/
/* This function checks a subinterval for a root. */
void check_roots(double left,double right,double a0,
double a1,double a2,double a3)
{
/* Declare variables. */
double f_left, f_right;

/* Evaluate subinterval endpoints and test for roots. */
f_left = poly(left,a0,a1,a2,a3);
f_right = poly(right,a0,a1,a2,a3);
if (fabs(f_left) < 0.1e-04)
printf("Root detected at %.3f \n",left);
else
if (fabs(f_right) < 0.1e-04)
;
else
if (f_left*f_right < 0)
printf("Root detected at %.3f \n",(left+right)/2);

return;
}
/*------------------------------------------------------------*/
/* This function evaluates a cubic polynomial. */

double poly(double x,double a0,double a1,double a2,double a3)
{
return a0*x*x*x + a1*x*x + a2*x + a3;
}
/*------------------------------------------------------------*/
2. /* assume x2 means x squared */
#define F float
F f(F x){F logf(F);return x*(x/10-logf(x));}
3. No Profile Picture
I haz teh codez!
Devshed Frequenter (2500 - 2999 posts)

Join Date
Dec 2003
Posts
2,574
Rep Power
2342
I can't program at all
So why do you have this very specific task? Cheating on your homework because you didn't bother going to class all semester?
4. > I can't program at all,
As noted.

> so i will be very pleased if someone will help me.
Will your future employer be as pleased when they realise you're a fake?

> But please, try to write this program using basic syntax, not the advanced or something.
Well we wouldn't want to make it too obvious that you didn't write it now do we :rolleyes:

Not that you've written anything so far, since what you posted seems to be yet another ctrl-a/ctrl-c/ctrl-v job.
5. Plagiarism is the academic crime of submitting somebody else's work as your own.

Every time you ask somebody else to do your homework for you, you are attempting to commit plagiarism and you are trying to make others complicit in that crime of plagiarism.

If you are caught committing plagiarism, you are subject to dismissal from your school. That should be documented in your academic record, which will be read by all other schools that you will try to enroll in after your expulsion. Those of us whom you had made complicit in your crime of plagiarism will however go unpunished, since we are either already working professionals or we are students who have ourselves not committed that unpardonable crime of plagiarism.