Finding quotient using while loop

  • Thread starter DryRun
  • Start date
  • #1
DryRun
Gold Member
838
4

Main Question or Discussion Point

Suppose that the number ##\pi## is divided by 2. The resulting quotient is divided by 2 again. This process is continued till the current quotient is less than or equal to 0.01. What is the largest quotient that is greater than 0.01?

Here is my attempt:

Code:
r = 1;
quo = 1;

while  (quo  >  0.01)  
 
quo  =  pi / 2;  
num(r) = quo;
r = r+1;
end 

disp('The largest quotient greater than 0.01 is: ' ,(num(r-1)) )
The processing takes about 20 or 30 seconds and then i get this error in the command window:

Out of memory. Type HELP MEMORY for your options.

Error in piquo (line 7)
num(r) = quo;
 

Answers and Replies

  • #2
188
1
Suppose that the number ##\pi## is divided by 2. The resulting quotient is divided by 2 again. This process is continued till the current quotient is less than or equal to 0.01. What is the largest quotient that is greater than 0.01?

Here is my attempt:

Code:
r = 1;
quo = 1;

while  (quo  >  0.01)  
 
quo  =  pi / 2;  
num(r) = quo;
r = r+1;
end 

disp('The largest quotient greater than 0.01 is: ' ,(num(r-1)) )
The processing takes about 20 or 30 seconds and then i get this error in the command window:

Out of memory. Type HELP MEMORY for your options.

Error in piquo (line 7)
num(r) = quo;
It might be better to take the quo=pi/2 statement outside of the while loop ...
 
  • #3
DryRun
Gold Member
838
4
Here is the modified script:

Code:
r = 1;
quo = 1;

while  (quo  >  0.01)  

num(r) = quo;
r = r+1;
end 

quo  =  pi / 2;  

disp('The largest quotient greater than 0.01 is: ' ,(num(r-1)) )
But Matlab just keeps processing, and then crashes.

Maybe you meant to use a nested while loop? I don't know how that would work.

I'm quite sure that i need to use a while loop in this problem, as i don't know how many iterations are required for the quotient to become less than 0.01. num(r) is an array that represents the index which contains the corresponding quotient, based on the number of times r that the while loop is executed.
 
  • #4
188
1
Here is the modified script:

Code:
r = 1;
quo = 1;

while  (quo  >  0.01)  

num(r) = quo;
r = r+1;
end 

quo  =  pi / 2;  

disp('The largest quotient greater than 0.01 is: ' ,(num(r-1)) )
But Matlab just keeps processing, and then crashes.

Maybe you meant to use a nested while loop? I don't know how that would work.

I'm quite sure that i need to use a while loop in this problem, as i don't know how many iterations are required for the quotient to become less than 0.01. num(r) is an array that represents the index which contains the corresponding quotient, based on the number of times r that the while loop is executed.
No, what I meant was your loop kept setting quo to pi/2 as its first action, hence why it didn't terminate. You have a similar problem with your revised loop in that you never change quo.

Have a look at the attached Mathcad example of what I think you want to achieve.
 

Attachments

  • #5
DryRun
Gold Member
838
4
Here is the revised code:

Code:
r = 1;
quo = pi;

while  (quo  >  0.01)  

quo  =  quo / 2;  
num(r) = quo;
r = r+1;
end 

disp(num(r-2))
I believe it's correct, as i get the answer: 0.0123

However, i cannot display the line: The largest quotient greater than 0.01 is: 0.0123

I tried this format but it didn't work: disp('The largest quotient greater than 0.01 is: ' ,num(r-2) )
 
  • #6
188
1
Here is the revised code:

Code:
r = 1;
quo = pi;

while  (quo  >  0.01)  

quo  =  quo / 2;  
num(r) = quo;
r = r+1;
end 

disp(num(r-2))
I believe it's correct, as i get the answer: 0.0123

However, i cannot display the line: The largest quotient greater than 0.01 is: 0.0123

I tried this format but it didn't work: disp('The largest quotient greater than 0.01 is: ' ,num(r-2) )
I'm not a Matlab user, so don't take what I say as Gospel, but I don't think disp works like that. According to the on-line Help, you've got convert the number to a string and, for example, concatenate it with your string. See http://www.mathworks.co.uk/help/techdoc/ref/disp.html for details.

PS. The code looks better now and the result seems OK.
 
  • #7
DryRun
Gold Member
838
4
OK, thanks for your help, NemoReally.
 
  • #8
188
1
OK, thanks for your help, NemoReally.
No worries.
 

Related Threads on Finding quotient using while loop

Replies
1
Views
2K
Replies
1
Views
17K
Replies
1
Views
3K
Replies
12
Views
2K
Replies
1
Views
3K
Replies
7
Views
832
Replies
12
Views
5K
Replies
3
Views
7K
Replies
3
Views
2K
Replies
0
Views
2K
Top