Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Solved

Posted on 2006-11-21

Use the program skeleton below (starting with #include <stdio.h>)

as the starting point for quiz4. Add the necessary code to the

functions prob1() and prob2(), and add the other 2 functions, as

described in the text below.

You do not need to change anything in main().

In void prob1(void), take a double floating-point number x from

the keyboard and compute the function f(x), which is defined by:

f(x) = exp(x)-2*log10(x)+log(x) if x >=5

f(x) = 1.5+x*sin(x) if -2 < x < 5

f(x) = x^2+3*x-sinh(x) if x <= -2.

This function should be computed in: double func(double x).

In prob1(void), print x and f(x) on the screen.

In void prob2(void), scan the number of elements k that

is less than 9, and the elements of two k-component vectors

v[] and w[]. Print these vectors on the screen.

Then, pass the vectors v[] and w[] and k to a double function

double norm2(double *v, double *w, int k) which will normalize

these two vectors and return the length of the original vector w[].

In prob2(void), print the components of the normalized (unit)

vectors on the screen, as well as the length of the original vector

w[]. If k>5, let 5 components of the vector appear in one line.

*/

/* Program skeleton */

#include <stdio.h>

#include <math.h>

void prob1(void);

void prob2(void);

double func(double x);

double norm2(double *v, double *w, int k);

main()

{

int menu;

printf("There are two functions: prob1() and prob2().\n");

printf("Enter the function number to execute (1 or 2):");

scanf("%d", &menu);

/* form a switch to execute one function */

switch(menu)

{

case 1:

prob1();

break;

case 2:

prob2();

break;

default:

printf("prob%d() does not exist.\n", menu);

}

exit(0);

}

/* Problem 1 */

void prob1(void)

{

int x1;

double x;

printf("Here is Problem 1:\n\n");

printf("Enter a double f-p constant:");

/*

scanf("%d", &x1);

if (x1 == -2 || x1 < -2)

{

x == pow(x1, 2) + 3 * x1 - sinh(x1);

}

if (x1 > -2 && x1 < 5)

{

1.5+x*sin(x)

}

if (x1 == 5 or x1 > 5)

{

exp(x)-2*log10(x)+log(x)

}

f(x) = exp(x)-2*log10(x)+log(x) if x >=5

f(x) = 1.5+x*sin(x) if -2 < x < 5

f(x) = x^2+3*x-sinh(x) if x <= -2.

return;*/

}

double func(double x)

{

}

/* Problem 2 */

void prob2(void)

{

printf("Here is Problem 2:\n");

return;

}

double norm2(double *v, double *w, int k)

{

}

.........................

/*

Your output should look like:

iacs5.ucsd.edu% gcc quiz4.c -lm

iacs5.ucsd.edu% a.out

There are two functions: prob1() and prob2().

Enter the function number to execute (1 or 2): 1

Here is Problem 1:

Enter a double f-p constant: -2.5

f(-2.5) = 4.8002

There are two functions: prob1() and prob2().

Enter the function number to execute (1 or 2): 2

Here is Problem 2:

Enter the number of elements (<9): 7

Enter 7 components of v[]

-1 2.0 3.1 -5.2 11.2 -0.25 6.

Enter 7 components of w[]

0.25 -5.1 3.5 1.25 -7.1 0.0 -3.5

v[] as entered:

-1.000 +2.000 +3.100 -5.200 +11.200

-0.250 +6.000

w[] as entered:

+0.250 -5.100 +3.500 +1.250 -7.100

+0.000 -3.500

normalized v[]:

-0.070 +0.140 +0.217 -0.365 +0.786

-0.018 +0.421

normalized w[]:

+0.025 -0.504 +0.346 +0.123 -0.701

+0.000 -0.346

length_w = 10.126

*/

as the starting point for quiz4. Add the necessary code to the

functions prob1() and prob2(), and add the other 2 functions, as

described in the text below.

You do not need to change anything in main().

In void prob1(void), take a double floating-point number x from

the keyboard and compute the function f(x), which is defined by:

f(x) = exp(x)-2*log10(x)+log(x) if x >=5

f(x) = 1.5+x*sin(x) if -2 < x < 5

f(x) = x^2+3*x-sinh(x) if x <= -2.

This function should be computed in: double func(double x).

In prob1(void), print x and f(x) on the screen.

In void prob2(void), scan the number of elements k that

is less than 9, and the elements of two k-component vectors

v[] and w[]. Print these vectors on the screen.

Then, pass the vectors v[] and w[] and k to a double function

double norm2(double *v, double *w, int k) which will normalize

these two vectors and return the length of the original vector w[].

In prob2(void), print the components of the normalized (unit)

vectors on the screen, as well as the length of the original vector

w[]. If k>5, let 5 components of the vector appear in one line.

*/

/* Program skeleton */

#include <stdio.h>

#include <math.h>

void prob1(void);

void prob2(void);

double func(double x);

double norm2(double *v, double *w, int k);

main()

{

int menu;

printf("There are two functions: prob1() and prob2().\n");

printf("Enter the function number to execute (1 or 2):");

scanf("%d", &menu);

/* form a switch to execute one function */

switch(menu)

{

case 1:

prob1();

break;

case 2:

prob2();

break;

default:

printf("prob%d() does not exist.\n", menu);

}

exit(0);

}

/* Problem 1 */

void prob1(void)

{

int x1;

double x;

printf("Here is Problem 1:\n\n");

printf("Enter a double f-p constant:");

/*

scanf("%d", &x1);

if (x1 == -2 || x1 < -2)

{

x == pow(x1, 2) + 3 * x1 - sinh(x1);

}

if (x1 > -2 && x1 < 5)

{

1.5+x*sin(x)

}

if (x1 == 5 or x1 > 5)

{

exp(x)-2*log10(x)+log(x)

}

f(x) = exp(x)-2*log10(x)+log(x) if x >=5

f(x) = 1.5+x*sin(x) if -2 < x < 5

f(x) = x^2+3*x-sinh(x) if x <= -2.

return;*/

}

double func(double x)

{

}

/* Problem 2 */

void prob2(void)

{

printf("Here is Problem 2:\n");

return;

}

double norm2(double *v, double *w, int k)

{

}

.........................

/*

Your output should look like:

iacs5.ucsd.edu% gcc quiz4.c -lm

iacs5.ucsd.edu% a.out

There are two functions: prob1() and prob2().

Enter the function number to execute (1 or 2): 1

Here is Problem 1:

Enter a double f-p constant: -2.5

f(-2.5) = 4.8002

There are two functions: prob1() and prob2().

Enter the function number to execute (1 or 2): 2

Here is Problem 2:

Enter the number of elements (<9): 7

Enter 7 components of v[]

-1 2.0 3.1 -5.2 11.2 -0.25 6.

Enter 7 components of w[]

0.25 -5.1 3.5 1.25 -7.1 0.0 -3.5

v[] as entered:

-1.000 +2.000 +3.100 -5.200 +11.200

-0.250 +6.000

w[] as entered:

+0.250 -5.100 +3.500 +1.250 -7.100

+0.000 -3.500

normalized v[]:

-0.070 +0.140 +0.217 -0.365 +0.786

-0.018 +0.421

normalized w[]:

+0.025 -0.504 +0.346 +0.123 -0.701

+0.000 -0.346

length_w = 10.126

*/

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Course of the Month8 days, 2 hours left to enroll

Join the community of 500,000 technology professionals and ask your questions.