Title: CMP 131 Introduction to Computer Programming
1CMP 131Introduction to Computer Programming
- Violetta Cavalli-Sforza
- Week 2, Lecture 2
2Case Study 1Converting Units of Measurements
- Problem Statement
- You work in a store that sells imported fabric,
measured in square meters The store customer
wants to know the equivalent amount in square
yards. You need to write a program that performs
the conversion.
3Case Study 1Converting Units of Measurements
- Analysis
- Input
- Fabric size in square meters (SqMeters).
- Output
- Equivalent amount in square yards (SqYards).
- Relevant Formulas
- The relationship between sq. meter sq. yards
- (1 m2 1.196 y2)
4Case Study 1Converting Units of Measurements
- Design
- Algorithm
- 1. Read the fabric size in m2.
- 2. Convert size to yd2 using the formula
- (1 m2 1.196 y2).
- 3. Display fabric size in yd2.
- Refinement of step2
- 2.1 Fabric size in yd2 1.196 fabric size in
m2
5Case Study 1 Converting Units of Measurements
- Implementation
- Program header
- Give a logical name for your program
- Program Name ConvertSqMtoSqYd
- The name of the source code file of the program
can be different from the logical name - File name CONVMYSQ.PAS
- TurboPascal limits file names to 8 characters
- Declaration section
- Memory cells used in your program
- Constant declaration use constants for unchanged
values - Variable declaration use variables for values
that change - Program body
- Data processing takes place here
6Case Study 1Converting Units of Measurements
- Implementation (Using Turbo Pascal)
- program ConvertSqMtoSqYd
- Convert square meters to square yards
- const MetersToYards 1.96 conversion constant
- var SqMeters, input - fabric size in meters
- SqYards real output - fabric size in yards
- begin
- Read the fabric size in square meters.
- WriteLn ('Enter the fabric size in square meters
gt') - ReadLn(SqMeters)
-
- Convert the fabric size to square yards.
- SqYards MetersToYards SqMeters
- Display the fabric size in square yards.
- WriteLn ('The fabric size in square yards is ',
SqYards) - end.
7Case Study 1Converting Units of Measurements
- Testing (Output Window)
- A program run
- Enter the fabric size in square meters gt 2.00
- The fabric size in square yards is 2.392000E00
8Case Study 2 Square Cube
- Problem Statement
- Write a program that calculates the square root,
square, and cube of a number - Is this statement clear sufficient for analysis
design steps? - NO
9Case Study 2 Square Cube
- Modified Problem Statement
- Write a program that gets an integer number
from the user, calculates the square root, square
and cube of the number and then prints the
number,the square root, the square, and the cube.
If the number is negative, the square root should
not be evaluated. An error message should be
written instead. The output should be labeled
with suitable headings.
10Case Study 2 Square Cube
- Analysis
- Input
- Get a number from the user
- Processing formulas
- Calculate the square root, the square, the cube
- SquareRoot sqrt(Number)
- Square Number x Number.
- Cube Number x Square.
- Output
- Write labels for Number, Square root, Square, and
Cube - Write values of Number, Square root, Square, and
Cube - (This is one way of doing it)
11Case Study 2 Square Cube
- Design (Algorithm)
- Pseudocode for initialization
- Clear screen
- Write program purpose
- 2. Pseudocode for Input
- Read Number
- 3. Pseudocode for Processing
- SquareRoot Sqrt(Number)
- Square Number Number
- Cube Square Number
- 4. Pseudocode for Output
- Write Number, Sq. Root,Square, Cube
- Write Number, SquareRoot, Square, Cube
- 5. Pseudocode for termination
- Write Goodbye message
12Case Study 2 Square Cube
- Implementation
- Program headerprogram SquareNCube
- Declaration section
- const
- HEAD Number Sq.Root Square Cube
Heading - var
- Number, input- number being processed
- Square, output - square of the number
- Cube integer output- cube of
the number - SquareRoot real output- square root
of the number - Program body
13Case Study 2 Square Cube
- Implementation First draft
- Program Body
- Enclosed between begin end.
- Write algorithm as comments
- begin Program body
- 1. Initialize
- 2. Read Number
- 3. Calculations / Evaluate formulas
- 4. Output heading values
- 5. Terminate
- end.
14Case Study 2 Square Cube
- Implementation Second draft
- Add Pascal statements in corresponding places
- begin Program body
- 1. Initialize
- Clrscr
- WriteLn(This program calculates square rt.,
) - WriteLn(square cube of a given number)
- 2. Read Number
- write (Enter a number )
- readln (Number)
- 3. Evaluate formulas
- if (Number gt 0) then SquareRoot sqrt(Number)
- else WriteLn(Square root can't accept negative
values) - Square Number Number evaluate square
- Cube Square Number evaluate cube
- 4. Output heading values
- writeln ( HEAD )
- writeln (Number Sq.Root Square
Cube) - writeln ( Number, SquareRoot, Square,
Cube )
15Case Study 2 Square Cube
- Implementation (Final Pascal Code)
- program SquareNCube
- const Declaration part
- HEAD N umber Sq.Root Square Cube
Heading - var
- Number, input- number being processed
- Square, output - square of the number
- Cube integer output- cube of the
number - SquareRoot Real output- square root of
the number - begin Program body
- Initialize
- Clrscr
- WriteLn(This program calculates square rt.,
) - WriteLn(square cube of a given number)
- Read Number
- write (Enter a number)
- readln (Number)
- Evaluate formulas
- if (Number gt 0)
16Ideas from Students
- A program for keeping track of my grades in a
course - Easy
- A program like those in graphic calculators that
allows entering the data and will automatically
display mean/average, the frequency, the median,
the mode - Easy, well do a simple version of it
- A special dictionary that will enable me to write
customized terms and the computer will
automatically recognize the word I meant and
transform it by itself. Ex dvlp would stand for
development. That would be very time saving while
writing reports. - Not hard, but in this course we dont learn
everything we need - A program for planning courses what courses do I
take next and what courses do I have left. - A planning and scheduling problem, can be
arbitrarily hard - A program for managing my time and schedule
- If you know an algorithm for doing that, let me
know.
17A Limitation
- In this course, given the syllabus, we are
limited to solving problems where you know
beforehand how many inputs you will have or where
you do not have to keep track of the values of
individual inputs (unless you use external files
to do so). - Why?
- Because we will look at only a limited set of
ways of representing data in memory
18Case Study 3 Keeping Track of Grades in a Course
- A program for keeping track of my grades in a
course - Is this specified clearly enough?
19Case Study 3 Revised Problem Statement
- A program that will let me enter and store the
score that I receive for each assessment in the
course, the maximum score that I could have
obtained in that assessment, and the name of the
assessment. When I run the program, it will
retrieve and display the scores it already knows
and give me the option to enter the new data.
When I exit the program, all the data (old and
new) will be stored to a file so that it can be
retrieved next time the program is run.
20Case Study 3 Begin Analysis
- A program that will let me enter and store the
score that I receive for each assessment in the
course, the maximum score that I could have
obtained in that assessment, and the name of the
assessment. When I run the program, it will
retrieve and display the scores it already knows
and give me the option to enter the new data.
When I exit the program, all the data (old and
new) will be stored to a file so that it can be
retrieved next time the program is run.
21Case Study 3 I/O Analysis
- Input
- Existing data from file
- New data from keyboard
- Output
- Existing data plus new data to file
22Case Study 3 Processing Analysis
- Processing
- Display existing data
- Decide about how to display the data. E.g.
Table with headers Assessment My
Score Max Score HW1
8 10 .
. - Prompt for new data
- Data Name of assessment, My score, Max score
- Decide
- prompt for data one by one or all 3 at a time?
- prompt for data for a single assessment or
multiple assessments?If multiple assessments,
how do you indicate you are done? - Store old and new data
- Decide
- Overwrite the old file?
- Make a new version of the file?
- Decide
- Display all the data the program knows about
before exiting?
23Case Study 3 Revised Problem Statement
- A program that will let me enter and store the
score that I receive for each assessment in the
course, the maximum score that I could have
obtained in that assessment, and the name of the
assessment. When I run the program, it will - Retrieve and display the scores it already knows
in a table with suitable headers - Give me the option to enter data for one or more
additional assessments or to exit - If I choose to enter data for an assessment it
will prompt me for all three values on one line - After I enter the values it will again give me
the option to enter new data or to exit. - When I exit the program
- all the data (old and new) will be stored to a
new file so that it can be retrieved next time
the program is run. - all the data it has for me will be shown.
Are you starting to think that you should use a
spreadsheet instead?