Introduction

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.

Writing Algorithms

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

Writing, Storing, and Running Python Programs

The actions involved in creating and running Python programs are relatively simple:

  • Input the code using Notepad, and save the file as *.py (e.g., prog1.py). Save your programs in the Python folder on your hard disk.
  • Open the MS-DOS prompt window.
  • Change directory from Windows to Python
  • Run the Python interpreter on your program by typing python filename.py where "filename" is the actual name of your saved *.py file (e.g., python prog1.py).

Programs

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

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

PROGRAM 2 - USING INPUT

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

PROGRAM 3 - LOOPS AND IF CONDITIONS

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.

PROGRAM 4 - FUNCTIONS

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?
Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.