Copyright ©
2005 Suradet Jitprapaikulsarn
สงวนลิขสิทธิ์ 2548 สุรเดช จิตประไพกุลศาล
Homework 2 (Due Monday 20 June 2548)
1. Write a program, grade?, to
determine grade from final scores using the following table. Solution.
A
|
> 85
|
B
|
> 73
|
C
|
> 62
|
D
|
> 50
|
F
|
≤
50
|
;----------------------------------------------------------------------------
;
@description determine grade from final scores
;
@param x final scores
;
@return grade
;
@contract grade? : number -> symbol
;
@example (grade? 90) = 'A
;
@example (grade? 85) = 'B
;
@example (grade? 80) = 'B
;
@example (grade? 73) = 'C
;
@example (grade? 65) = 'C
;
@example (grade? 62) = 'D
;
@example (grade? 54) = 'D
;
@example (grade? 50) = 'F
;
@example (grade? 35) = 'F
;----------------------------------------------------------------------------
(define
(grade? x)
(cond
[(> x 85) 'A]
[(> x 73) 'B]
[(> x 62) 'C]
[(> x 50) 'D]
[else 'F]))
;------
;
Test
;------
"(grade?
90) = " (grade? 90)
"(grade?
85) = " (grade? 85)
"(grade?
80) = " (grade? 80)
"(grade?
73) = " (grade? 73)
"(grade?
65) = " (grade? 65)
"(grade?
62) = " (grade? 62)
"(grade?
54) = " (grade? 54)
"(grade?
50) = " (grade? 50)
"(grade?
35) = " (grade? 35)
2. Write a program, normalBodyTemp?,
to check whether our body temperature is normal
(36.1 - 37.8 °C). Solution.
;----------------------------------------------------------------------------
;
@description check whether our body temperature is normal (36.1 - 37.8
Celsius)
;
@param temp our body temperature
;
@return true if 36.1 <= temp <= 37.8, otherwise false
;
@contract normalBodyTemp? : number -> boolean
;
@example (normalBodyTemp? 36.0) = false
;
@example (normalBodyTemp? 36.1) = true
;
@example (normalBodyTemp? 37.0) = true
;
@example (normalBodyTemp? 37.8) = true
;
@example (normalBodyTemp? 38.0) = false
;----------------------------------------------------------------------------
(define
(normalBodyTemp? temp)
(cond
[(< temp 36.1) false]
[(and (<= 36.1 temp) (<= temp 37.8)) true]
[else false]))
;------
;
Test
;------
"(normalBodyTemp?
36.0) = " (normalBodyTemp? 36.0)
"(normalBodyTemp?
36.1) = " (normalBodyTemp? 36.1)
"(normalBodyTemp?
37.0) = " (normalBodyTemp? 37.0)
"(normalBodyTemp?
37.8) = " (normalBodyTemp? 37.8)
"(normalBodyTemp?
38.0) = " (normalBodyTemp? 38.0)