3.3 Solutions

  1. case month of
        label 1, 3, 5, 7, 8, 10, 12 : days := 31
        label 4, 6, 9, 11           : days := 30
        label 2                     : if leapYear then
                                          days := 29
                                      else
                                          days := 28
                                      end if
    end case 
  2. if choice = 'A' then
       put num1 + num2
    elsif choice = 'D' then
       put num1 / num2
    elsif choice = 'M' then
       put num1 * num2
    elsif choice = 'P' then
       put num1 ** num2
    elsif choice = 'S' then
       put num1 - num2
    else
       put "Sorry that was an invalid choice"
    end if  
  3. var testNumber, score : int
    var weightedScore : real
    
    put "Enter test number"
    get testNumber
    put "Enter score"
    get score
    
    put "A score of ", score, " on test ", testNumber, " gives a weighted score of "..
    case testNumber of
       label 1      : weightedScore := score * 0.1
                      put weightedScore
       label 2, 3, 6: weightedScore := score * 0.2
                      put weightedScore
       label 4, 5   : weightedScore := score * 0.15
                      put weightedScore
       label        : weightedScore := 0
                      put "0 because \"", testNumber, "\" is not a valid test number"
    end case 
  4. var number : int
    
    put "Enter a number"
    get number
    
    put "The last digit is "..
    case number mod 10 of
       label 0: put "zero."
       label 1: put "one."
       label 2: put "two."
       label 3: put "three."
       label 4: put "four."
       label 5: put "five."
       label 6: put "six."
       label 7: put "seven."
       label 8: put "eight."
       label 9: put "nine."
    end case 
  5. var year, month, day : int
    
    put "enter date in form: yy mm dd"
    get year
    get month
    get day
    case month of
       label 1: put "January "..
       label 2: put "February "..
       label 3: put "March "..
       label 4: put "April "..
       label 5: put "May "..
       label 6: put "June "..
       label 7: put "July "..
       label 8: put "August "..
       label 9: put "September "..
       label 10: put "October "..
       label 11: put "November "..
       label 12: put "December "..
    end case
    
    put day, ", 20"..
    if year < 10 then
       put "0"..
    end if
    put year