(Latest Revision: 02/28/2006)
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:
- The characters of the input line,
- A single hyphen, and
- the characters of the input line in reverse order.
The output for each line of input is a palindrome. A
palindrome is a series of characters that reads the same
backwards or forwards. Thus the program you will write is a
palindrome-maker.
PROCESSING:
One of the goals of this assignment is to give you practice
using recursion. You must therefore write a
recursive function that inputs one line of text
from standard input and writes the required items to standard
output. Your program must call this recursive function to
produce the specified output for each line of input.
HELP AND HINTS:
The problem of writing the recursive function that makes the palindromes is
very similar to 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 two printer outputs (hardcopies) and you will send me one
e-mail messages. Please follow these rules:
- Always send me e-mail as plain text in the main message body. Never send
me attachments.
- Always use the exact subject line I specify for each message.
(I often get hundreds of e-mail messages in a week. The subject line
allows me to find, filter and sort messages.) You will lose a
significant number of points on the assignment if you use the wrong
subject line.
- Be very careful when typing the command to send e-mail. You may use the
instructions in your
Hello World! lab excercise
for guidance. Of course, you will need to make the obvious changes to
those directions -- you have to use the correct subject line and
filename.
- Always send yourself a copy of each e-mail message you send to me, and
check immediately to see if you receive the message intact.
You are responsible for sending e-mail correctly.
Here is the list of things you have to turn in:
- At the start of class on the due date, place the following
items on the "counter" in front of me:
- a hardcopy of the finished program source code, and
- a hardcopy of your test script showing adequate testing of your
program.
Make sure that all of the code and script content shows on the paper.
Make sure all content is plainly readable and properly formatted.
- Send the following item to me by e-mail before midnight on the
due date:
Your
final version of the source code,
with subject line: CS2500,prog2.f
Note that there are no spaces in the subject line given above. 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.