User Tools

Site Tools


gibson:teaching:fall-2014:math445:lecture8-diary

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
gibson:teaching:fall-2014:math445:lecture8-diary [2014/10/08 12:50]
gibson [if-elseif-else statement]
gibson:teaching:fall-2014:math445:lecture8-diary [2014/10/09 17:01]
gibson [Example: if-elseif-else and multiple args and return val]
Line 33: Line 33:
  
 Write a Matlab function ''​temp2kcf''​ converts a temperature ''​t''​ in any one of the three units Kelvin, Celsius, or Farenheit, and returns the temperature in all three units. The function should have two arguments, the temperature ''​t''​ and a character ''​units''​ which specifies the units as either K, C, or F and three return values, ''​tK,​ tC, tF''​. ​ Write a Matlab function ''​temp2kcf''​ converts a temperature ''​t''​ in any one of the three units Kelvin, Celsius, or Farenheit, and returns the temperature in all three units. The function should have two arguments, the temperature ''​t''​ and a character ''​units''​ which specifies the units as either K, C, or F and three return values, ''​tK,​ tC, tF''​. ​
 +
 +Here's a decent solution to the problem using an ''​if-elseif-else''​ statement.
 +<code matlab>
 +function [tK, tC, tF] = temp2kcf(t, units);
 +% convert temperature t in units '​C',​ '​F',​ or '​K'​ to all three of those units
 +
 +  % convert input temp to Kelvin
 +  if units == '​F'​
 +    tK = 5/9*t + 255.37;
 +  elseif units == '​C'​
 +    tK = t + 273.15;
 +  elseif units == '​K'​
 +    tK = t;
 +  else
 +    fprintf('​error:​ unknown units %c, returning absolute zero\n',​ units);
 +    tK = 0;
 +  end
 +
 +  % convert Kelvin to output temps
 +  tC = tK - 273.15;
 +  tF = 9/5*tC + 32;
 +  ​
 +end
 +</​code>​
  
 ====switch statement==== ====switch statement====
Line 47: Line 71:
   otherwise   otherwise
     action4     action4
 +end
 +</​code>​
 +
 +Here's a solution to the problem using a ''​switch''​ statement.
 +<code matlab>
 +function [tK, tC, tF] = temp2kcf(t, units);
 +% convert temperature t in units '​C',​ '​F',​ or '​K'​ to all three of those units
 +
 +  % convert input temp to Kelvin
 +  switch units
 +    case '​F'​
 +      tK = 5/9*(t-32) + 273.15; ​     ​
 +    case '​C'​
 +      tK = t + 273.15;
 +    case '​K'​
 +      tK = t;  ​
 +    otherwise
 +      fprintf('​error:​ unknown units %c, returning absolute zero\n',​ units);
 +      tK = 0;
 +  end
 +  ​
 +  % convert Kelvin to output temps
 +  tC = tK - 273.15;
 +  tF = 9/5*tC + 32;
 +  ​
 end end
 </​code>​ </​code>​
gibson/teaching/fall-2014/math445/lecture8-diary.txt ยท Last modified: 2014/10/09 17:01 by gibson