Programming Basics
using
Real-life examples
Activities
Recipe
Assembly instructions for a toy
Map out the plan at amusement park
A busy day schedule
What is the common idea for all these activities?
Programming problem:
Using sequence structure
Compute the weighted score based on
individual assignments scores. Let us say
there are only 3 assignments & 2 exams, each
with max score of 100. Respective weights are
(10%, 10%, 10%, 35% and 35%)
Sample input & output:
Input: 100 100 100 95 95
Output: 96.5%
Pseudocode
Prompt & get the score for assignment1
Prompt & get the score for assignment2
Prompt & get the score for assignment3
Prompt & get the score for exam1
Prompt & get the score for exam2
weightedScore = (assignment1 + assignment2 +
assignment3) * 0.1 + (exam1 + exam2) * .35
output weightedScore
Activities
Drive car or take DART bus?
Party or study?
Fly or drive?
What is the common idea for all these activities?
Programming problem:
using decision structure
Get hourly pay rate & # of hours, compute the
weekly pay, but do not pay for hours beyond
50.
Sample inputs:
Input: Input: Output
Pay Rate Hours
150 30 Rs. 4500
150 60 Rs. 7500
Pseudocode
Prompt & get hourly pay rate & # of hours
IF hours <= 50
pay = hours * payRate;
ELSE
pay = 50 * payRate;
ENDIF
output pay
C code
Prompt & get hourly pay rate & # of hours
if (hours <= 50)
pay = hours * payRate;
else
pay = 50 * payRate;
output pay
Programming problem:
using decision structure
V2: Get hourly pay rate & # of hours, compute
the weekly pay, but do not pay for >50 hours.
Also, pay 1.5 times regular pay for overtime
hours (that is, # of hours beyond regular 40
hours).
First 40 hours: payRate
Next 10 hours: payRate * 1.5
Beyond 50 hours: 0
pseudocode
IF hours <= 40
pay = payRate * hours;
ELSE IF hours <= 50
pay = payRate * 40 + payRate * 1.5 * (hours 40);
ELSE
pay = payRate * 40 + payRate * 1.5 * 10;
pseudocode #2
overHours = hours 40;
IF hours <= 40
pay = payRate * hours;
ELSE IF hours <= 50
pay = payRate * 40 + payRate * 1.5 * overHours;
ELSE
pay = payRate * 40 + payRate * 1.5 * 10;
pseudocode #3
hours = (hours > 50 ? 50 : hours);
IF hours <= 40
pay = payRate * hours;
ELSE
pay = payRate * 40 + payRate * 1.5 * (hours 40);
pseudocode #4
hours = (hours > 50 ? 50 : hours);
IF hours <= 40
pay = payRate * hours;
ELSE
basePay = payRate * 40;
overPay = payRate * 1.5 * (hours 40);
pay = basePay + overPay;
Activities
Bring in tons of purchased items from car to
house
Load up uhaul truck when cleaning up
apartment
Eat cookies from a box
Taking an exam that has several questions
What is the common idea for all these activities?
Programming problem:
Using repetition structure
Compute the average score for the whole class.
Are we ready to code it?
Guessing game
Guess a number between 1 and 100 in your
mind. Write a program so that the computer will
ask you a series of questions and determine that
number based on your answers.
Repeat the following steps as many times as
needed:
Computer asks, Is it NN?
User responds with <, =, or >
Pseudocode
Range 2 variables: low = 1 and high = 100
compute mid = (low + high) / 2
Ask the user: Is it mid?
Get user response
adjust low or high based on response
repeat as needed
Detailed pseudocode
Initialize range 2 variables: low = 1 and high = 100
do {
compute mid = (low + high) / 2
Ask the user: Is it mid?
Get user response
if (response == <)
high = mid-1;
else if (response == >)
low = mid+1;
while (response != =);
Are we ready to code it?
Are we ready to code it?
Google for Java random number generation
Guessing game V2 Role reversal
Let the computer guess a number between 1
and 100. Write a program so that the
computer will answer a series of your
questions and you will determine the number
based on computers responses.
Pseudocode
Generate a random number between 0 and
100: assign rand() % 101 to a variable.
then enter the loop
get a guess from the user
output <, >, or =
repeat until user enters =
Are we ready to code it?
How to make the computer guess a number?
Summary
All programs have only 3 control structures:
Sequence, decision & repetition
Problem description High level idea
Detailed Pseudocode Implement in specific
language Executable program
C++ strings
Similar functionality to hangman game
Write a method to return # of tries to guess all
the letters in a given word.
Sample run:
Guess the letters in *******:
s
letters in s******:
Pseudocode for guessWord()
bool guessed[100]; initialize to false using loop
int exposedCount = 0;
int len = word.length();
for(int i = 0; i < len ; i++)
guessed[i] = false;
do {
for(int i = 0; i < len ; i++)
cout << (guessed[i] ? word[i] : *);
include code for getting next guess from the user
and updating guessed[] array and exposedCount.
} while (exposedCount < len);