I need to find out what this program is missing
1 view (last 30 days)
Show older comments
I'm trying to use this program to calculate the cos of a given(prompted) angle in degrees.
A=input('Enter angle:');
x=(pi/180)*A;
format long
a=0;c=0;sg=1;
while
c=c+sg*((x^(2*a))/(factorial(2*a))); % Infinite series calculation.
a=a+1;sg=-sg;
end
fprintf('cos = %6f',c);
I get no answer and I have to close Matlab and restart.
4 Comments
Accepted Answer
Albert Yam
on 12 Jul 2012
while [condition] %that should only be true to run the loop
%stuff in loop
end % make sure to end the loop, but should give a warning about that
If your condition is just a constant, than your loop is always running. But your code is not 'copy/paste'-able into Matlab for us to check.
4 Comments
Albert Yam
on 12 Jul 2012
A=input('Enter angle:');%angle in degrees
x=(pi/180)*A; % radians
n=input('Enter the number of places; ')
format long
a=0;c=0;sg=1;
while a~=n % New condition.
c=c+sg*((x^(2*a))/(factorial(2*a))); % Infinite series calculation.
a=a+1;sg=-sg;
end
fprintf('%6f',c);
You can always just hardcode n=6, in the condition, since you said it is a 'need'. While loops need a condition, how else would it know to stop looping (your previous problem)? Unless you know exactly how many times to loop (For loop). For the '>>' on the next line,
fprintf('%6f\n',c);
Please use the {}code formatting next time. It is easier for people to copy/paste into Matlab to see what is wrong.
A=input('Enter angle:');%angle in degrees x=(pi/180)*A; % radians n=input('Enter the number of places; ') format long a=0;c=0;sg=1; while a~=n % New condition. c=c+sg*((x^(2*a))/(factorial(2*a))); % Infinite series calculation. a=a+1;sg=-sg; end fprintf('%6f',c);
Comments out everything after the A=input
More Answers (0)
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!