Programming Basics using Reallife examples Activities Recipe Assembly
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%, 35% and 35%) • Sample input & output: Input: 100 100 95 95 Output: 96. 5%
Pseudocode Prompt & get the score for assignment 1 Prompt & get the score for assignment 2 Prompt & get the score for assignment 3 Prompt & get the score for exam 1 Prompt & get the score for exam 2 weighted. Score = (assignment 1 + assignment 2 + assignment 3) * 0. 1 + (exam 1 + exam 2) *. 35 output weighted. Score
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: Pay Rate 150 Input: Hours 30 Output 150 60 Rs. 7500 Rs. 4500
Pseudocode Prompt & get hourly pay rate & # of hours IF hours <= 50 pay = hours * pay. Rate; ELSE pay = 50 * pay. Rate; ENDIF output pay
C code Prompt & get hourly pay rate & # of hours if (hours <= 50) pay = hours * pay. Rate; else pay = 50 * pay. Rate; output pay
Programming problem: using decision structure V 2: 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: pay. Rate Next 10 hours: pay. Rate * 1. 5 Beyond 50 hours: 0
pseudocode IF hours <= 40 pay = pay. Rate * hours; ELSE IF hours <= 50 pay = pay. Rate * 40 + pay. Rate * 1. 5 * (hours – 40); ELSE pay = pay. Rate * 40 + pay. Rate * 1. 5 * 10;
pseudocode #2 over. Hours = hours – 40; IF hours <= 40 pay = pay. Rate * hours; ELSE IF hours <= 50 pay = pay. Rate * 40 + pay. Rate * 1. 5 * over. Hours; ELSE pay = pay. Rate * 40 + pay. Rate * 1. 5 * 10;
pseudocode #3 hours = (hours > 50 ? 50 : hours); IF hours <= 40 pay = pay. Rate * hours; ELSE pay = pay. Rate * 40 + pay. Rate * 1. 5 * (hours – 40);
pseudocode #4 hours = (hours > 50 ? 50 : hours); IF hours <= 40 pay = pay. Rate * hours; ELSE base. Pay = pay. Rate * 40; over. Pay = pay. Rate * 1. 5 * (hours – 40); pay = base. Pay + over. Pay;
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 V 2 – 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 computer’s 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 guess. Word() • bool guessed[100]; initialize to false using loop • int exposed. Count = 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 exposed. Count. } while (exposed. Count < len);
- Slides: 28