The purpose of this project component is to provide a first experience in the actual writing of computer programs. Using a relatively simple introductory scripting language (Python), you will create program code in an editor (Notepad), save it to your disk, and run it from the command line prompt.
You will gain experience in planning, writing, debugging, documenting, and running simple programs. Learning Python serves as a convenient stepping-stone to more complex object-oriented languages, such as Java.
In this project, you will use online resources, including downloadable Python tools and tutorials.
Before writing programs, it is useful to plan the programming steps and actions by writing an algorithm. An algorithm is a set of plain English language commands or steps, each of which is then replaced by the appropriate command line for the programming language used. This technique becomes less useful when using complex object-oriented languages such as Java, but may be helpful in the early stages of learning to design programs. You will write algorithms for your first two programming exercises in this project.
In the traditional approach to programming, the program is seen as a series of steps, which may include branches and loops. A branch occurs when a program may go in two or more different directions, depending upon a logical condition or a choice made by the user. A loop is a situation where a particular step, or series of steps, may be repeated until a certain condition or choice occurs.
The following simple example of an algorithm includes both elements, and describes a simple program for performing addition or multiplication.
Step 1 - display the program name "Addition and Multiplication"
Step 2 - display the options menu "(A)dd, (M)ultiply"
Step 3 - request and store input of user choice A or M as "choice"
Step 4 - if "choice" does not equal "A" or "M", go to Step 9
Step 5 - request and store the first number to be used as variable X
Step 6 - request and store the second number to be used as variable Y
Step 7 - if "choice" = "A" go to Step 11
Step 8 - if "choice" = "M" go to Step 13
Step 9 - display message "Choose A or M"
Step 10 - go to Step 3
Step 11 - display "Sum is" X+Y
Step 12 - go to Step 3
Step 13 - display "Product is" X*Y
Step 14 - go to Step 3
The actions involved in creating and running Python programs are relatively simple:
The programs you will write for this project are copied with permission, or adapted from, the exercises in A Beginner's Python Tutorial.
Each program should be written, tested, and debugged. The first two programs should also be fully commented, with each line documented by a descriptive comment. The remaining programs should have a single comment line at the beginning to describe the function of the program. All programs should start with a display of your name, student id#, and the program number and name. When storing the files, name them as prog1.py, prog2.py, etc.
EXAMPLE OF AUTHOR/PROGRAM INFORMATION OUTPUT
Program author: B. Rubble
ID#: 1234567
Program 1 - Math Functions
Write an algorithm for a program that shows the use of all six math functions. Write, test, and debug the program using Python.
SAMPLE OUTPUT (not including author/program information)
ADDITION: 2+2=4
SUBTRACTION: 4-2=2
MULTIPLICATION: 4*2=8
DIVISION: 4/2=2
EXPONENT: 2**3=8
REMAINDER: 5%2=1
Write an algorithm for a program that receives, as input from the user, 2 string variables and 2 integer variables; then joins together and displays the combined strings; and finally multiplies the two numbers on a new line. Write, test, and debug the program using Python.
SAMPLE OUTPUT (not including author/program information)
Input string 1? Billy
Input String 2? Bob
Input integer A? 23
Input integer B? 2
BillyBob
46
Write a program that requests a password after the author/program information is displayed. Make the password "hello". The program should then ask the user for their name: if the name entered is the same as your name, the program should respond with "What a great name!"; if they enter "Madonna" or "Cher", the program should respond "May I have your autograph, please?". For any other input, the program should respond with "(input name), that's a nice name".
SAMPLE OUTPUT (including author/program information)
Program author: Barney Rubble
ID#: 1234567
Program 3 - LOOPS AND IF CONDITIONS
Password? unicorn
Password? opus
Password? hello
Welcome to the second half of the program!
What is your name? Barney
What a great name!
ALTERNATE OUTPUTS
What is your name? Cher
May I have your autograph, please?
What is your name? Bill
Bill, that’s a nice name.
Rewrite the area.py program (shown below, or in the Creating Functions section of the tutorial) so that it has separate functions for the perimeter and area of a square, a rectangle, and a circle (3.14 * radius**2). This program should include a menu interface that has 'exit the program' as one of its choices.
SAMPLE PROGRAM EXECUTION
Area.py
#This program calculates the perimeter and area of a rectangle
print "Calculate information about a rectangle"
length = input("Length:")
width = input("Width:")
print "Area",length*width
print "Perimeter",2*length+2*width
SAMPLE OUTPUT (not including author/program information)
CALCULATIONS MENU
1) AREA (SQUARE)
2) AREA (RECTANGLE)
3) AREA (CIRCLE)
4) PERIMETER (SQUARE)
5) PERIMETER (RECTANGLE)
6) PERIMETER (CIRCLE)
7) EXIT
INPUT MENU CHOICE (1,2,3,4,5,6 OR 7)? 2
YOU HAVE CHOSEN AREA (RECTANGLE)
INPUT WIDTH? 8
INPUT LENGTH? 4
AREA IS 32
INPUT MENU CHOICE?