## Q8iEnG

Hi guys :)

I have small question of course I don't want to ask for solving my homework, no i'll work on it on my own.

I just need some tips :) please.

I want to make a program that calculate these function:
F1 = 1;
F2 = 2*lgn + 2;
F3 = 2*n + 2;
F4 = 2*n*lgn + 2;
F5 = 2*n^2 + 2;
F6 = 2*(n!) + 2;
F7 = 2*(2^n) + 2;

for these values: (replace "n" with these values)
array[7] = {0,1,2,3,4,5,6}
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

my question is, how should I write the could so that it'll replace "n" with "0,1,2,3,4,5,6" and get the result for each integer from that several functions.

Also, what should I write instead of "lg n"? I meant if I wrote in C++ "lg n" it won't understand that!!!

This is my code at the moment

``````// Mohammed Aldhaferi
// 205112766
// Program that compute the value for some integers in several functions such as (1, log n, n...etc).

#include <iostream> // input\output stream.

#include <cmath> // To be able to use Math Library.

using namespace std; // This command will help us to not write "std::" all the time.

int main()
{
int array[7] = {0, 1, 2, 3, 4, 5, 6}; // Initiating an array of size 7, of type integer.
float F1, // Creating these
F2, // variables
F3, // to
F4, // assgin to
F5, // them
F6, // the functions
F7; // we want.

cout << "We'll have these following functions:\n";
cout << "F1 = 1\nF2 = 2*logn + 2\nF3 = 2*n + 2\nF4 = 2*nlogn + 2\nF5 = 2*n^2 + 2\nF6 = 2*(n!) + 2\nF7 = 2*(2^n) + 2\n\n";

/*F1 = 1;
F2 = 2 * logn + 2;
F3 = 2 * n + 2;
F4 = 2 * n * logn + 2;
F5 = 2 * ( pow(n, 2) ) + 2;
F6 = 2 * (n!) + 2;
F7 = 2 * ( pow(2, n) ) + 2;*/

// Output the head of the table we want to create.
cout << "no.		" << "F1		" << "F2		" << "F3		" << "F4		" << "F5		" << "F6		" << "F7		";

for( int i = 0; i < 7; i++ )
{

}

return 0; // to indicate successfully termination.

} // end function main.``````

## onaclov2000 1

With regard to the n part of the question:
I would say use a for loop.
Since you have the specific n values in the array, just loop through the array from 0 to the number of items you have/want to use in your array.
I.E. F3 = 2 * array + 2

same concept for the rest of the for loop,
I'm really not sure as far as the log or ln functions go as I've never used them, I would say take a look in cmath at the actual class?

Someone else can probably give you a better answer for that.

I hope this makes sense....
Have a good day

## onaclov2000 1

One more thing, you might want to look out for and I don't know if this will be a problem, but if you try to use the array in the equation it might need you to type cast it, although I am not sure, so watchout for that if you're getting erroneous data.

## Q8iEnG

With regard to the n part of the question:
I would say use a for loop.
Since you have the specific n values in the array, just loop through the array from 0 to the number of items you have/want to use in your array.
I.E. F3 = 2 * array + 2

same concept for the rest of the for loop,
I'm really not sure as far as the log or ln functions go as I've never used them, I would say take a look in cmath at the actual class?

Someone else can probably give you a better answer for that.

I hope this makes sense....
Have a good day

Thanks for the comments and the tips :)

Umm, Do you know how to use factorial from the cmath? OR I should make a function that calculates it?

## onaclov2000 1

I really haven't been programming long, I don't know if there is a factorial function, I actually had to write a factorial function in my class (school that is...LOL)a few months ago, I've attached it since I happen to keep my pen drive on me at all times (dork I know)

Mine happens to only allow up to and including the value 12, some simple changes will allow any number, although I never tested it with negative numbers, technically you can't factorial with negative numbers, but I think you should be able to, but your value will change from positive to negative depending on the number that you try to "negative factorial"

Hopefully it helps, and doesn't confuse you!!!

``````long factorial(int x)
{
// This function finds the factorial of a number

//declare the variable
long factorialValue = x;
//check the number for validity
if (x == 1 || x == 0)
{
return 1;
}
else if ((x < 13) && (x > 1))
{

//If the number passes the validity test run the factorial
for (int i = x-1; i>0; i--)
{
factorialValue = factorialValue * i;
}
return factorialValue;
}
else
{
cout << "You have selected an incorrect number please re-run the program"<< endl;
return 0;
}

}``````
commented: Thanks :) +1

## Q8iEnG

Well, thanks a lot I guess I worked on your advice I built up my factorial function LOL :D

btw, this is the final code I finished it, but I got stuck in using "log n"

try to run it

``````// Program that compute the value for some integers in several functions such as (1, log n, n...etc).

#include <iostream> // input\output stream.

#include <cmath> // To be able to use Math Library.

using namespace std; // This command will help us to not write "std::" all the time.

// Defining function that calculates the factorial.
double factorial ( double );

int main()
{
int array[7] = {0, 1, 2, 3, 4, 5, 6}; // Initiating an array of size 7, of type integer.
double F1, // Creating these
F2, // variables
F3, // to
F4, // assgin to
F5, // them
F6, // the functions
F7; // we want.

cout << "We'll have these following functions:\n";
cout << "F1 = 1\nF2 = 2*logn + 2\nF3 = 2*n + 2\nF4 = 2*nlogn + 2\nF5 = 2*n^2 + 2\nF6 = 2*(n!) + 2\nF7 = 2*(2^n) + 2\n\n";

/*F1 = 1;
F2 = 2 * logn + 2;
F3 = 2 * n + 2;
F4 = 2 * n * logn + 2;
F5 = 2 * ( pow(n, 2) ) + 2;
F6 = 2 * (n!) + 2;
F7 = 2 * ( pow(2, n) ) + 2;*/

// Output the head of the table we want to create.
cout << "no.	" << "F1	" << "F2	" << "F3	" << "F4	" << "F5	" << "F6	" << "F7	\n";

for( int i = 0; i < 7; i++ )
{
F1 = 1;
F2 = 2 * log (array[i]) + 2;
F3 = 2 * array[i] + 2;
F4 = 2 * array[i] * log (array[i]) + 2;
F5 = 2 * pow(array[i], 2) + 2;
F6 = 2 * factorial( array[i] ) + 2;
F7 = 2 * pow(2, array[i]) + 2;

cout << array[i] << "	" << F1 << "	" << F2 << "	" << F3 << "	" << F4 << "	" << F5 << "	" << F6 << "	" << F7 << endl;
}

cout << endl; // To output a new line.

return 0; // to indicate successfully termination.

} // end function main.

// Function factorial to compute the factorial of a given number.
double factorial( double n )
{
if( n == 0 || n == 1 )
return 1;

else
return n * factorial( n - 1 );

}``````

Anyone can help in getting the correct value of "lg n"?

## onaclov2000 1

Not sure if this will help but here goes:
http://www.cplusplus.com/reference/clibrary/cmath/log.html

Looks like you can just call log(n) and it should work?

I'm not sure why it's not working, are you trying to use a different base or something? (I forget how log works...LOL)

## Q8iEnG

Thanks guys I did it.

Here's the fixed completed code.

``````// Mohammed Aldhaferi
// 205112766
// Program that compute the value for some integers in several functions such as (1, log n, n...etc).

#include <iostream> // input\output stream.

#include <cmath> // To be able to use Math Library.

using namespace std; // This command will help us to not write "std::" all the time.

// Defining function that calculates the factorial.
double factorial ( double );

int main()
{
int array[7] = {0, 1, 2, 3, 4, 5, 6}; // Initiating an array of size 7, of type integer.
double F1, // Creating these
F2, // variables
F3, // to
F4, // assgin to
F5, // them
F6, // the functions
F7; // we want.

cout << "We'll have these following functions:\n";
cout << "F1 = 1\nF2 = 2 * log n + 2\nF3 = 2 * n + 2\nF4 = 2 * n * log n + 2\nF5 = 2 * n^2 + 2\nF6 = 2 * (n!) + 2\nF7 = 2 * (2^n) + 2\n\n";

/*F1 = 1;
F2 = 2 * logn + 2;
F3 = 2 * n + 2;
F4 = 2 * n * logn + 2;
F5 = 2 * ( pow(n, 2) ) + 2;
F6 = 2 * (n!) + 2;
F7 = 2 * ( pow(2, n) ) + 2;*/

// Output the head of the table we want to create.
cout << "no.	" << "F1	" << "F2	" << "F3	" << "F4	" << "F5	" << "F6	" << "F7	\n";

for( int i = 0; i < 7; i++ )
{
F1 = 1;

if( array[i] == 0 )
F2 = 2 * 0 + 2;
else
F2 = 2 * log ( array[i] ) + 2;
F3 = 2 * array[i] + 2;

if( array[i] == 0 )
F4 = 2 * array[i] * 0 + 2;
else
F4 = 2 * array[i] * log (array[i]) + 2;
F5 = 2 * pow(array[i], 2) + 2;
F6 = 2 * factorial( array[i] ) + 2;
F7 = 2 * pow(2, array[i]) + 2;

cout << array[i] << "	" << F1 << "	" << F2 << "	" << F3 << "	" << F4 << "	" << F5 << "	" << F6 << "	" << F7 << endl;
}

cout << endl; // To output a new line.

return 0; // to indicate successfully termination.

} // end function main.

// Function factorial to compute the factorial of a given number.
double factorial( double n )
{
if( n == 0 || n == 1 )
return 1;

else
return n * factorial( n - 1 );

}``````

## Q8iEnG

Not sure if this will help but here goes:
http://www.cplusplus.com/reference/clibrary/cmath/log.html

Looks like you can just call log(n) and it should work?

I'm not sure why it's not working, are you trying to use a different base or something? (I forget how log works...LOL)

Thanks a lot for the help, I did it ;)

## onaclov2000 1

Also you may want to take a look at this for setw
http://www.cplusplus.com/reference/iostream/manipulators/setw.html

Basically you wouldnt have to do the " " in all the places you do, and it will set the width of the "string" I believe,
May make it easier to get the desired result you are looking for (column format I assume?)