Home » Blog » Problem Solving MATLAB Part 3 Chapman Book

Problem Solving MATLAB Part 3 Chapman Book

1. The following statements are intended to alert a user to dangerously high oral thermometer readings (values are in degrees Fahrenheit). Are they correct or incorrect? If they are incorrect, explain why and correct them.

if temp < 97.5
	disp('Temperature below normal');
elseif temp > 97.5
	disp('Temperature normal');
elseif temp > 99.5
	disp('Temperature slightly high');
elseif temp > 103.0
	disp('Temperature dangerously high');
end

Solution

This program executed without error, but there is a logical issue. When temperature is above 97.5 then it always goes into the second block, and rest of the conditions are not going to execute. So even if the temperature is danger then also it shows that the temperature is normal.

if temp < 97.5
	disp('Temperature below normal');
elseif temp >= 97.5
	if temp >= 103.0
	    disp('Temperature dangerously high');
	elseif temp >= 99.5
	    disp('Temperature slightly high');
	else
	    disp('Temperature normal');
	end
end

2. Write a MATLAB program to evaluate the function:

y(x)=ln 1/(1 –x)

for any user-specified value of x, where x is a number <1.0 (note that ln is the natural logarithm, the logarithm to the base e). Use an if structure to verify that the value passed to the program is legal. If the value of x is legal, calculate y(x). If not, write a suitable error message and quit.

Solution

clc;
clear all;
close all;
 
x = input('Enter Value For X ');
 
if x >= 1.0
	disp('Illegal Value For X!!');
	return
end
 
yx = log(1/(1-x));
disp(['y(x) = ',num2str(yx)]);

3. Examine the following MATLAB statements. Are they correct or incorrect? If they are correct, what do they output? If they are incorrect, what is wrong with them?

a.)

if volts > 125
	disp('WARNING: High voltage on line.');
	if volts < 105
		disp('WARNING: Low voltage on line.');
else
	disp('Line voltage is within tolerances.');
end

Solution

This program gives error, because inside inner if statement end keyword is missing, so that the program execution is aborted.

 b.)

color = 'yellow';
switch ( color )
	case 'red',
		disp('Stop now!');
	case 'yellow',
		disp('Prepare to stop.');
	case 'green',
		disp('Proceed through intersection.');
	otherwise,
	disp('Illegal color encountered.');
end

Output

Prepare to stop.

Solution

This program runs perfectly, and gives output ‘Prepare to stop.’, because the value of color is yellow, which match with the case yellow.

 c.)

if temperature > 37
	disp('Human body temperature exceeded.');
elseif temperature > 100
    disp('Boiling point of water exceeded.');
end

Output

Enter Temperature 102

Human body temperature exceeded.

Solution

This program executed without error, but when value of temperature is less than 37 then there is no message is printed, and when temperature is greater than 100 then also first if statement is executed.

Leave a Reply

Your email address will not be published.