(Latest Revision: 03/09/2009)

Recursion: A Program That Makes Palindromes From Lines of Text


PRELIMINARIES:

You need to read chapter two of Carrano before you begin this assignment. You also need to read the directions and examples here: http://www.cs.csustan.edu/~john/Classes/General_Info/progAsgRules/


THE ASSIGNMENT:

Take a look at this script of me running a program.

Your assignment is to write a program that works like the program illustrated by the script.


INPUT:

The program must read a series of lines of text from standard input.

The program must be able to input any series of lines of text -- no matter how long the lines happen to be and no matter how many lines there are. (That includes blank lines and the case where there are no lines at all in the series.)


OUTPUT:

The program writes one line of output for each line of input. The line of output corresponding to a given line of input consists of three items printed one after the other:
  1. The characters of the input line,
  2. A single hyphen, and
  3. the characters of the input line in reverse order.
For example, if one of the lines of input is:

Hi There!

the corresponding line of output will be:

Hi There!-!erehT iH

The output lines are palindromes. A palindrome is a series of characters that reads the same backwards or forwards.


PROCESSING:

One of the goals of this assignment is to give you practice using recursion. Therefore you are required to solve this problem using recursion.

I want you to write a recursive function that inputs exactly one line of text from standard input and writes to standard output the corresponding palindrome. (The 'corresponding palindrome' is described above under 'OUTPUT.')

I want you to write the main function of the program to run a loop that calls the recursive function while EOF has not been reached.

The program should have only the two functions - the main function and the recursive helper function.

I advise you not to start writing code until you have thought of a very simple way for the recursive function to work. If you are thinking of a solution that is at all complicated, you are most probably on the wrong track.


HELP AND HINTS:

The problem of writing the recursive function to make a palindromes is very similar to a problem that Carrano discusses in chapter two of our textbook, and so be sure to read at least the first half of that chapter before beginning this assignment.

We can discuss details of the assignment in class.


WHAT TO TURN IN:

You will turn in one printer output (hardcopy) and you will send me two e-mail messages. Please follow these rules: Here is the list of things you have to turn in: Note that there are no spaces in the subject lines given. It is important that you do not insert any spaces. My e-mail address is: john@ishi.csustan.edu.


DUE DATES:

For the due dates, see the class schedule.