Exercise Solutions

1. a) age>21

    b) height>=48 && height<74

2. a) true

    b) false

    c) false

    d) true

    e) true

    f) true

    g) true

    h) false

    i) true

    j) false

3. a) true

    b) false

    c) true

    d) true

    e) false

    f) true

    g) false

    h) true

    i) false

    j) false

4.

println("Enter a string to check if it is a palindrome.")

val str = readLine

println(if(str == str.reverse) "palindrome" else "not palindrome")

5.

println("Enter values for alpha, read, green, and blue on separate lines.")

val alpha = readInt max 0 min 255 // The max and min simply enforce bounds.

val red = readInt max 0 min 255

val green = readInt max 0 min 255

val blue = readInt max 0 min 255

val argb = (alpha << 24) | (red << 16) | (green << 8) | blue

println("The ARGB value is "+argb+" or "+argb.toHexString+" in hex.")

6.

println("Enter values for alpha, read, green, and blue on separate lines.")

// The max and min simply enforce bounds.

val alpha = (readDouble*256).toInt max 0 min 255

val red = (readDouble*256).toInt max 0 min 255

val green = (readDouble*256).toInt max 0 min 255

val blue = (readDouble*256).toInt max 0 min 255

val argb = (alpha << 24) | (red << 16) | (green << 8) | blue

println("The ARGB value is "+argb+" or "+argb.toHexString+" in hex.")

~                                                                     

7.

println("Enter a numeric ARGB value.")

val argb = readInt

val alpha = (argb >>> 24)

val red = (argb >>> 16) & 0xFF

val green = (argb >>> 8) & 0xFF

val blue = argb & 0xFF

println("Alpha = "+alpha)

println("Red = "+red)

println("Green = "+green)

println("Blue = "+blue)

8.

println("Enter a numeric ARGB value.")

val argb = readInt

val alpha = (argb >>> 24)/256.0

val red = ((argb >>> 16) & 0xFF)/256.0

val green = ((argb >>> 8) & 0xFF)/256.0

val blue = (argb & 0xFF)/256.0

println("Alpha = "+alpha)

println("Red = "+red)

println("Green = "+green)

println("Blue = "+blue)

9.

println("Input the x and y value for cartesian points.")

val x = readDouble

val y = readDouble

val magSqr = x*x+y*y

println(if(magSqr<=1) "Inside unit circle" else "Outside unit circle")