HtDF Lab
P3
A (much too) simple scheme for pluralizing words in English is to add an
s at the end unless the word already ends in s.
Design a function that consumes a string, and adds s to the end unless
the string already ends in s.
;; String -> String
;; Adds an s to end of given word, unless word already ends in s
(check-expect (pluralize "hello") "hellos")
(check-expect (pluralize "has") "has")
(check-expect (pluralize "") "")
m
er as
;(define (pluralize str) "") ;stub
co
eH w
;(define (pluralize str)
o.
; (... str)) ;template
rs e
ou urc
(define (pluralize str)
(if (string=? str "")
""
o
(if (string=? "s" (string-ith str (- (string-length str) 1)))
aC s
str
vi y re
(string-append str "s"))))
P4
Design a function called nth-char-equal? that consumes two strings
ed d
and a natural and produces true if the strings both have length greater
ar stu
than n and have the same character at position n.
Note, the signature for such a function is:
;; String String Natural -> Boolean
is
The template for such a function is:
Th
(define (nth-char-equal? s1 s2 n)
(... s1 s2 n))
sh
;; String String Natural -> Boolean
;; Produces true if string-length of s1 and s2 are greater than n and have the same character at position
n
(check-expect (nth-char-equal? "hello" "goodbye" 10) false)
(check-expect (nth-char-equal? "hello" "bell" 6) false)
(check-expect (nth-char-equal? "time" "bath" 3) false)
(check-expect (nth-char-equal? "candy" "mandy" 3) true)
This study source was downloaded by 100000805705997 from CourseHero.com on 10-14-2021 20:45:30 GMT -05:00
https://www.coursehero.com/file/46578028/CPSC-110-LAB-1docx/
, ;(define (nth-char-equal? s1 s2 n) false) ;stub
;(define (nth-char-equal? s1 s2 n)
; (... s1 s2 n)) ;template
(define (nth-char-equal? s1 s2 n)
(if (> (string-length s1) n)
(if (> (string-length s2) n)
(string=? (substring s1 (- n 1) n) (substring s2 (- n 1) n))
false)
false))
Balloon Lab
m
; Balloon popping
er as
co
;; CONSTANTS ==========================
eH w
o.
(define WIDTH 500)
(define HEIGHT 500)
rs e
ou urc
(define MTS (empty-scene WIDTH HEIGHT))
(define BALLOON-COLOUR "red")
o
(define POP-IMAGE (overlay (text "POP!" 80 "black")
(radial-star 30 (/ WIDTH 10) (/ WIDTH 2) "solid" "yellow")))
aC s
vi y re
(define CTR-X (/ WIDTH 2))
(define CTR-Y (/ HEIGHT 2))
ed d
(define SPEED 2)
ar stu
(define MAX-SIZE (/ WIDTH 2))
;; DATA DEFINITIONS ============================
is
;; Balloon is one of:
Th
;; - Number[1, MAX-SIZE]
;; - false
;; interp. number is the radius of balloon in screen pixels, false means balloon is popped
sh
(define B1 1)
(define B2 false)
(define B3 10)
(define B4 MAX-SIZE)
(define (fn-for-balloon b)
(cond [(and (number? b)
This study source was downloaded by 100000805705997 from CourseHero.com on 10-14-2021 20:45:30 GMT -05:00
https://www.coursehero.com/file/46578028/CPSC-110-LAB-1docx/