Practice with Functions

Complete these exercises to test your understanding of functions.

Solutions


Exercise 1

Solution #1

#include <iostream>
using namespace std;

int AddTwo (int addend1, int addend2) {
return addend1 + addend2;
}

int main () {
int number1, number2, sum;

cout << "Enter two integers:\n";
cin >> number1 >> number2;
sum = AddTwo(number1, number2);
cout << "\nThe sum is " << sum << ".";


}


Solution #2

//by blazzer12
//Input two values. Call a function that returns the sum of the values.

#include<iostream>

using namespace std;

int getSum(int, int);

int main()
{
int number1, number2, sum;

//get values
cout<<"Enter two integers to add"<<endl;

cout<<"Number1 :";
cin>>number1;
cout<<"Number2 :";
cin>>number2;

//call getSum() and store result in sum
sum = getSum(number1, number2);

//print result
cout<<number1<<" + "<<number2<<" = "<<sum;
}

int getSum(int addend1, int addend2)
{
return addend1 + addend2;
}


Solutions (in C)

#include <stdio.h>

int add(int, int);

int main()
{
int a, b, sum;

printf("A: ");
scanf_s("%d", &a);

printf("B: ");
scanf_s("%d", &b);

sum = add(a, b);

printf("The sum of %d and %d is %d.\n", a, b, sum);

return 0;
}

int add(int a, int b)
{
return a + b;
}


// Another solution:
# include <iostream>

using namespace std;

int sum (int number1, int number2);

int number1;
int number2;

int main()
{

cout<<"Give me a number amigo: ";
cin>>number1;

cout<<"Give me another number dude: ";
cin>>number2;

cout<<"The sum of "<<number1<<" and "<<number2<<" is: "<<sum(number1,number2)<<"."<<endl;

return 0;


}

int sum (int number1, int number2)
{
return number1+number2;
}

// by neuroalchemist

 

Exercise 2

Solution #1

#include <iostream>
using namespace std;

void AddTwo (int addend1, int addend2, int &sum) {
sum = addend1 + addend2;
}

int main () {
int number1, number2, sum;

cout << "Enter two integers:\n";
cin >> number1 >> number2;
AddTwo(number1, number2, sum);
cout << "\nThe sum is " << sum << ".";

return 0;
}


Solution #2

//by blazzer12
//adds two integers using a "pass by reference" type function call.

#include <iostream>
using namespace std;

void addNum(int, int, int&);

int main()
{
int number1,number2,sum;

//get values;
cout<<"Enter two integers to add"<<endl;

cout<<"Enter Number 1: ";
cin>>number1;
cout<<"Enter Number 2: ";
cin>>number2;

//call addNum to add the numbers
addNum(number1, number2, sum);

//print sum
cout<<number1<<" + "<<number2<<" = "<<sum;
return 0;
}
void addNum(int addend1, int addend2, int &sum)
{
sum = addend1 + addend2;
}


Solution #3

#include<iostream>

using namespace std;

void add(int,int);

int sum=0;

int main(){
cout<<"Please input the first number you wanna add:"<<endl;
int num1;
cin>>num1;
cout<<"Please input the second number you wanna ad"<<endl;
int num2;
cin>>num2;
add(num1,num2);
cout<<"The sum of these two number:"<<num1<<"&"<<num2<<" is:"<<sum<<endl;
return 0;
}

void add(int a,int b){
sum=a+b;
}

 

Exercise 3

Solution #1

#include <iostream>

using namespace std;

unsigned fib(unsigned n);

int main()
{
// Printing the first 20 Fibonacci sequence values
for (unsigned i = 0; i < 20; i++){
cout << "fib(" << i << ") = " << fib(i) << endl;
}
}

unsigned fib(unsigned n)
{
if (n < 2)
return n;

return fib(n-2) + fib(n-1);
}

 

Exercise 4

Solution #1

#include <iostream>

using namespace std;

unsigned fib(unsigned n);

int main()
{
// Printing the first 20 Fibonacci sequence values
for (unsigned i = 0; i < 20; i++){
cout << "fib(" << i << ") = " << fib(i) << endl;
}
}

unsigned fib(unsigned n)
{
if (n < 2)
return n;

unsigned prev1 = 0;
unsigned prev2 = 1;

for (unsigned i = 0; i <= n-2; i++){
unsigned temp = prev1 + prev2;
// Just doing a rotation of values, since only the last two are needed
prev1 = prev2;
prev2 = temp;
}

return prev2;
}

For extra exercise, give a big number (like 1000000) to both exercise 3 and 4 solutions and compare the execution times. Ponder on the results ;)

 

Exercise 5

Solution #1

Hammad city university

#include<iostream>
using namespace std;
void calculator(int num, int num2, int result);
void calculator(int num,int num2,int result)
{
char op;
cout<<"\n Calculator:- \nEnter Number: " ;
cin>>num;
cout<<"Enter operator +,-,*,/,^ : ";
cin >>op;
cout<<"Enter second number: " ;
cin>>num2;
if(op=='+')result=num+num2;
if(op=='-')result=num-num2;
if(op=='*')result=num*num2;
if(op=='/')result=num/num2;
if(op=='^')result=num^num2;
cout<<"result: "<<result<<"\n";
}
main()
{
int a,b,c;
calculator(a,b,c);
return 0;
}

}


Solution #2

#include <iostream>
float add(float a, float b)
{
return a + b;
}
float sub(float a, float b)
{
return a - b;
}
float mul(float a, float b)
{
return a * b;
}
float div(float a, float b)
{
if(b != 0)
{
return a / b;

}
std::cout << "Error: division by zero.\n";
return 0;
}
float pow(float a, float b)
{
return pow(a, b);
}
float mod(float a, float b)
{
return fmod(a, b);
}
void calc()
{
float a, b;
char op;
std::cout << "Enter a #: ";
std::cin >> a;
std::cout << "Enter an operator (+, -, *, /, ^, %): ";
std::cin >> op;
std::cout << "Enter a second #: ";
std::cin >> b;
switch(op)
{
case '+':
std::cout << "Result: " << add(a, b);
break;
case '-':
std::cout << "Result: " << sub(a, b);
break;
case '*':
std::cout << "Result: " << mul(a, b);
break;
case '/':
std::cout << "Result: " << div(a, b);
break;
case '^':
std::cout << "Result: " << pow(a, b);
break;
case '%':
std::cout << "Result: " << mod(a, b);
break;
default:
std::cout << "Error: operator not valid.\n";
}
}
int main()
{
calc();
return 0;
}


Solution #3

// This program will do simple calculations involving + - * / and ^ //


#include <iostream>
#include <cmath>

using namespace std;

int main()
{
int x,y,sum;

cout << "Enter first number ";
cin >> x;
cout << endl;

cout << "Enter second number ";
cin >> y;
cout << endl;


cout << 1 << " +" << endl;
cout << 2 << " -" << endl;
cout << 3 << " *" << endl;
cout << 4 << " /" << endl;
cout << 5 << " ^" << endl << endl;
cout << "What math would you like to do? ";
cin >> sum;
cout << endl;


switch (sum){
case 1:
sum = x + y;
cout << "The answer to your addition is " << sum << endl;
break;

case 2:
sum = x - y;
cout << "The answer to your subtraction is " << sum << endl;
break;

case 3:
sum = x * y;
cout << "The answer to your multiplication is " << sum<< endl;
break;

case 4:
sum = x / y;
cout << "The answer to your division is " << sum << endl;
break;

case 5:
sum = pow(x,y);
cout << "The answer to your power function is " << sum << endl;
break;

default:
cout << "You have entered an invalid option " << endl;
break;
}



return 0;
}