How to arrange this code in sequence order?

3 views (last 30 days)
Meenakshi S
Meenakshi S on 14 Jul 2017
Answered: Jan on 14 Jul 2017
% if a>b we swap the roles of a and b.
if (a > b)
c = a; a = b; b = c;
end
function computerGuess (a, b)
% function computerGuess (a, b)
% Game : the computer must guess the integer
% in the interval (a,b) which the user is thinking of.
% the computer asks the user to think of a number
disp(['Think of a number in ' num2str(a) ...
' and ' num2str(b)]);
% We keep track of the previous guess. It is initialized as a-1:
old_guess = a-1;
% Takes the integer part of a and b
a = floor(a);
b = ceil (b);
% loops while the computer guesses
% this loop is exited with a break
while (true)
% as a guess, the computer gives the middle of [a,b]
guess = ceil( (a+b)/2 );
if ( guess == old_guess )
% if the old guess is the same, then the computer is nearly there, the answer is:
guess = guess - 1;
end
elseif ( answer == 2 )
% we must keep the lower interval
b = guess;
answer = menu(['The number is ' num2str(guess) ' ? '], ...
'correct!', too high!', too low!');
else
% we must keep the upper interval
a = guess;
end
if ( answer == 1)
disp('I win !');
break;
old_guess = guess;
end
end
  1 Comment
John D'Errico
John D'Errico on 14 Jul 2017
Edited: John D'Errico on 14 Jul 2017
What does "sequence order" mean to you?
Do you think there is something wrong with your code? Why? Must we first figure out what you want the code to do? Given that the code apparently does not do what you want, how do we know what you want to do, and what you think is wrong?
If you want help, first make it possible for someone to help you.
Oh. And learn to format your code so it is readable.
https://www.mathworks.com/matlabcentral/answers/13205-tutorial-how-to-format-your-question-with-markup#answer_18099

Sign in to comment.

Answers (2)

Geoff Hayes
Geoff Hayes on 14 Jul 2017
Meenakshi - do you mean that the code does not work? Note that the first four lines are
% if a>b we swap the roles of a and b.
if (a > b)
c = a; a = b; b = c;
end
where a and b are undefined and (worse) precede the function signature of
function computerGuess (a, b)
Only comments can precede the signature so you have to move these lines into the body of the function? But where? Given what these lines are doing (checking to see if a is greater than b and then swapping the two if true) then this line should be used after the user has selected his or her a and b (for the interval).

Jan
Jan on 14 Jul 2017
This is a strange question. Do you want use to reorder the lines of the code based on guessing what the code should do? This is gun-shot programing. Okay:
Move the first 4 lines:
% if a>b we swap the roles of a and b.
if (a > b)
c = a; a = b; b = c;
end
behind the block:
% Takes the integer part of a and b
a = floor(a);
b = ceil (b);

Categories

Find more on Programming in Help Center and File Exchange

Tags

No tags entered yet.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!