Control of Flow: if-blocks

The following exercises are meant to be answered by a single MATLAB command. The command may be involved (i.e., it may use a number of parentheses or calls to functions) but can, in essence, be solved by the execution of a single command. If the command is too complicated, feel free to break it up over two or more lines.


[Back to main page] [Back to exercises page]

In each of the following questions, evaluate the given MATLAB code fragments for each of the cases indicated. Use MATLAB to check your answers.

1.   if n > 1            a. n = 7   m = ?
        m = n+1          b. n = 0   m = ?
     else                c. n = -10 m = ?
        m = n - 1
     end
    ans.
     
2.   if z < 5            a. z = 1    w = ?
        w = 2*z          b. z = 9    w = ?
     elseif z < 10       c. z = 60   w = ?
        w = 9 - z        d. z = 200  w = ?
     elseif z < 100
        w = sqrt(z)
     else
        w = z
     end
    ans.

     
3.   if T < 30           a. T = 50    h = ?
        h = 2*T + 1      b. T = 15    h = ?
     elseif T < 10       c. T = 0     h = ?
        h = T - 2
     else
        h = 0
     end
    ans.

4.   if 0 < x < 10           a. x = -1   y = ?
        y = 4*x              b. x = 5    y = ?
     elseif 10 < x < 40      c. x = 30   y = ?
        y = 10*x             d. x = 100  y = ?
     else
        y = 500
     end
    ans.

Write brief scripts to evaluate the following functions. If you start each script with a request for input (using input), you'll be able to test that your code provides the correct results.

5. h(T) = T - 10        when 0 < T < 100
        = 0.45 T + 900  when T > 100 
        
   Test cases:  a. T = 5, h = -5
                b. T = 110, h = 949.5
        
6. f(x) = -1     if x < 0
        = 0      if x = 0
        = 1      if x > 0
        
   Compare your results to the MATLAB function sign.
   
7.  t(y) = 200                        when y is below 10,000
         = 200 + 0.1 (y - 10,000)     when y is between 10,000 and 20,000
         = 1,200 + 0.15 (y - 20,000)  when y is between 20,000 and 50,000
         = 5,700 + 0.25 (y - 50,000)  when y is above 50,000
         
   Test cases:  a. y = 5,000   t = 200
                b. y = 17,000  t = 900
                b. y = 25,000  t = 1,950
                c. y = 75,000  t = 11,950
                
8. Explain why the following if-block would not be a correct solution to the
   previous exercise.
   
    if y < 10000
       t = 200
    elseif 10000 < y < 20000
       t = 200 + 0.1*(y - 10000)
    elseif 20000 < y < 50000
       t = 1200 + 0.15*(y - 20000)
    elseif y > 50000
       t = 5700 + 0.25*(y - 50000)
    end
    ans.

[Back to main page] [Back to exercises page]
Comments? Contact Jim Maneval at maneval@bucknell.edu