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: 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) * (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: Pay Rate Input: Hours Output 15030Rs 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
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 Pseudocode
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?
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 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 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);