CSC 160 CSC 160 Computer Programming Computer Programming for Non-Majors for Non-Majors Lecture #10: Conditionals Lecture #10: Conditionals I I Prof. Adam M. Wittenstein Prof. Adam M. Wittenstein [email protected][email protected]http://www.adelphi.edu/~wittensa/csc160/ http://www.adelphi.edu/~wittensa/csc160/
36
Embed
CSC 160 Computer Programming for Non-Majors Lecture #10: Conditionals I Prof. Adam M. Wittenstein [email protected]/csc160
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
CW5: part 1 on BooleansCW5: part 1 on Booleans Complete Exercise 4.1.2 from Complete Exercise 4.1.2 from How to Design How to Design
Programs without using DrScheme.Programs without using DrScheme. Feel free to use a calculator - there is one on Feel free to use a calculator - there is one on
each of your computers. To get to it the steps each of your computers. To get to it the steps are: are: Start->Programs->Accessories->Calculator.) Start->Programs->Accessories->Calculator.)
What are the results of What are the results of (> x 3) (> x 3) ((andand (> 4 x) (> x 3)) (> 4 x) (> x 3))
(= (* x x) x) (= (* x x) x) for (a) x = 4, (b) x = 2, and (c) x = 7/2 ? for (a) x = 4, (b) x = 2, and (c) x = 7/2 ?
Correction from last class: eq? and equal?
• The eq? predefined function always returns false for sentences (a.k.a. strings).
• There is another predefined function equal? that works just like eq?, except that it also works on sentences/strings.
• For simplicity, we will just also use equal?
Conditions
Conditions are most useful in the context of a program.
• We call the functions that use them conditional functions.
• We formulate them using conditional expressions.
I. Evaluating Conditional ExpressionsI. Evaluating Conditional Expressions
Question 1: Type into Definitions Window
;Variable Definition:(define AGE 10)
;Function Call:(cond
[(< AGE 3) ‘toddler][(and (>= AGE 3) (< AGE 13)) ‘pre-teen][(and (>= AGE 13) (< AGE 20)) ‘teen][(>= AGE 20) ‘adult])
; returns ‘pre-teenExperiment by changing AGE & re-executing
Often, the last part is what answer do you Often, the last part is what answer do you want for everything else, in which case, the want for everything else, in which case, the last question is last question is elseelse..
• The expressions are identical except for the third line so look at those.
• The second expression does not have an answer on the third line:
[(and (> n 20) (<= n 30))]
so it is an illegal expression.
Question 3: Why is this illegal?
(cond
[(< n 10) 20]
[ * 10 n]
[else 555])
Because…
There is no question on the third line.
CW5: part 2 on ConditionalsCW5: part 2 on Conditionals Complete this simplified version of Exercise 4.3.3 Complete this simplified version of Exercise 4.3.3
from from How to Design ProgramsHow to Design Programs without using without using DrScheme.DrScheme.
Feel free to use a calculator - there is one on each Feel free to use a calculator - there is one on each of your computers. To get to it the steps are: of your computers. To get to it the steps are: Start->Programs->Accessories->Calculator.) Start->Programs->Accessories->Calculator.)
What is the value of:What is the value of: (cond(cond [(<= N 1000) (* .040 1000)] [(<= N 1000) (* .040 1000)] [(<= N 5000) (+ 40 (* (- N 1000) .045))] [(<= N 5000) (+ 40 (* (- N 1000) .045))] [else (+ 220 (* (- N 5000) .055))]) [else (+ 220 (* (- N 5000) .055))])when n is (a) 500, (b) 2800, and (c) 15000when n is (a) 500, (b) 2800, and (c) 15000
II. Defining a Conditional FunctionII. Defining a Conditional Function
Question 4: interest-rate
A bank pays higher interest rates to
depositors with larger balances:
• over $10,000, 6%
• over $5000 and up to $10,000, 5.5%
• over $1000 and up to $5000, 4.5%
• up to $1000, 4%
How do we write this in Scheme?Use a conditional
(cond
[… …]
[… …]
[… …]
[… …])
How do we write this in Scheme?Filling in the questions
(cond
[(<= amount 1000) …]
[(<= amount 5000) …]
[(<= amount 10000) …]
[( > amount 10000) …])
How do we write this in Scheme?Filling in the answers
(cond
[(<= amount 1000) .040]
[(<= amount 5000) .045]
[(<= amount 10000) .055]
[( > amount 10000) .060])
Write the program
(define (interest-rate amount)
(cond
[(<= amount 1000) .040]
[(<= amount 5000) .045]
[(<= amount 10000) .055]
[( > amount 10000) .060]))
Strategy for conditionals
• Identify number of cases; write cond with
that many clauses
• If answers are simple, write all the answers
& then go back to fill in questions
• If questions are simple, write all the
questions & then fill in answers
III. III. DesignDesigning Conditional Functionsing Conditional Functions
Design Recipe – Version 2Design Recipe – Version 2
Figure out precisely what you need to do.Figure out precisely what you need to do.
1. Understand the problem1. Understand the problem2. Function contract2. Function contract3. NEW STEP – Data Analysis3. NEW STEP – Data Analysis4. Write examples (in Scheme notation)4. Write examples (in Scheme notation)
Tell the computer how to do it.Tell the computer how to do it.5. Write a skeleton5. Write a skeleton6. NEW STEP – Choose a template6. NEW STEP – Choose a template
7. Fill in the function body7. Fill in the function body Check that the computer does it right. Check that the computer does it right.
8. Testing and debugging8. Testing and debugging
“interest-rate” again
• Purpose
;To determine the interest rate given an ;amount of money in the bank.
• Contract; interest-rate: number -> number
“interest-rate” again
• NEW STEP: Data Analysis;We take in a number and determine which ;of four intervals it is in.
;We print out a different number for each of ;the intervals.