Homework 1, Recursion.

Short Description:

Write several recursive functions.

This assignment is worth 40 points.

Goals

When you finish this homework, you should have:

Formal Description

  1. [5 points] Design and implement a recursive function to compute ab where b is a non-negative integer.
  2. [5 points] Using the function from the previous exercise, print a complete version of the following table
    Base\Exponent01234567
    1 1 1 1          
    2 1 2 4          
    3 1 3 9          
    4 1 4 16          
    5 1 5 25          
    6 1 6 36         279936
  3. [10 points] Design and implement a recursive program to compute Ackermann's Function
  4. [5 points] Implement a program that computes ackermann's function for all values of m between 0 and 3 inclusive and ll values of n between 0 and 4 inclusive. (See the Wikipedia page for an example table.
  5. [10 points] Design and implement a recursive function to determine if a string is a palindrome. This should only report that a string is a palindrome if it is exactly the same forward and backward, spaces, case and non-alphabetic characters included.
  6. [5 points] Implement a program that tests all of the lines in a file to see if they are a palindrome using the function developed in the previous exercise.

Other Requirements

Your code must compile and run on cslab103 without warnings or errors using the following compiler flags
-g -O3 -Wpedantic -Wall -Wextra -Wmisleading-indentation -Wunused -Wuninitialized -Wshadow -Wconversion  -D_FORTIFY_SOURCE=2 -std=c++17

Required Files

A single tar file containing the source code, example input files, and a makefile for this program.

If you do not know how to produce a tar file, or need assistance with your Makefile, please contact me.

Submission

Submit your tar file to the D2L folder HW1 by the due date.