Starting from:
$35

$29

Programming Languages Homework 1 Solution




Integers



Define the function dollar2won, which consumes an integer number of dollars and produces the won equiv-alent. Use the won/dollar conversion rate of 1100 won per dollar.



Write the function volumeOfCuboid, which consumes three integer numbers denoting lengths of three sides and produces the volume of the cuboid.



Write the function isEven, which consumes an integer number and returns whether the number is even.



Write the function isOdd, which consumes an integer number and returns whether the number is odd.



Write the function gcd, which consumes two integer numbers and returns the greatest common divisor of them.



Write the function lcm, which consumes two integer numbers and returns the least common multiple of them.



Pattern Matching



You have a type COURSE, which is either CS320, CS311, or CS330. CS320 has two members: quiz for a number




of quizzes and homework for a number of programming assignments. CS311 has one member: homework which




is a number too. CS330 has two members: projects for a number of projects and homework for a number of programming assignments.







trait COURSE




case class CS320(quiz: Int, homework: Int) extends COURSE




case class CS311(homework: Int) extends COURSE




case class CS330(projects: Int, homework: Int) extends COURSE







Define the function numOfHomework, which consumes a course and produces the number of programming assignments for the given course.



Define the function hasProjects, which consumes a course and produces true only when the given course is CS330 with more than or equal to two projects, otherwise produces false.



List



Define the function namePets, which consumes a list of pets and produces a corresponding list of pets with names; it names all occurrences of dog with happy, cat with smart, pig with pinky, and keeps the other pets as unnamed. For example,



namePets(List("dog", "tiger", "cat")) == List("happy", "tiger", "smart")










1
Generalize namePets to the function giveName. The new function consumes two strings, called old and new. It produces a function that gets a list of strings and replaces all occurrences of old by new in the list. For example,



namePets(List("dog", "tiger", "cat")) == List("happy", "tiger", "smart") val nameBears: List[String] = List[String] = giveName("bear", "pooh") nameBears(List("pig", "cat", "bear")) = List("pig", "cat", "pooh")





















































































































































































2

More products