2014-11-21 44 views
-1

我正在嘗試爲家庭作業編寫一個超級基本程序,而且我很難入門,希望得到一些幫助。這裏是提示: 想象一下,你去銀行並在一個賬戶中存入20,000美元的賬戶,每年賺取6%的利息,每年的利息都存入賬戶。編寫 一個MATLAB程序,計算累計需要花費的年數 $ 500,000。嘗試一個用於計算興趣的MATLAB程序

所以,我知道我需要聲明一些變量,我想用if語句來使用for循環,因爲我們尚未覆蓋while循環。這是我迄今的嘗試:

%This program calculates interest accumulated on a given value and the 
%years it would take to reach a given goal value 

%initial deposit 
Deposit = 20000; 

year = 0; 

for year = 1:1:n 
    year = year + 1; 
    Deposit = Deposit*(1.06); 

if Deposit < 500000 


end 

謝謝大家!

+0

你必須使用循環?有一個衆所周知的方程來解決這個問題:http://en.wikipedia.org/wiki/Compound_interest#Compound_Interest – 2014-11-21 21:54:23

+0

年年代而不是我循環,因爲這是迭代。對於每年,考慮一年中存款如何變化(爲什麼每年增加20000美元?)。基本上,手寫前幾年,然後嘗試修改您的代碼以匹配您的公式。 – Peter 2014-11-21 22:27:54

+0

謝謝彼得。所以我的想法是,我必須計算興趣,然後將其添加到總體。這就是爲什麼我將20000添加到存款行的原因。好的,我編輯了代碼,但我不確定year = 1:n行。我應該定義n嗎? – 2014-11-21 23:30:02

回答

0

這裏有兩種for循環方法。一個是你原來有什麼:

year = 0; 
for i = 1:n 
    year = year + 1; 
    % blah blah Deposit 
end 

在這種情況下,i計數的for循環迭代次數,而你增加循環內的year變量。正如@Peter指出的那樣,這是多餘的,您可以簡單地使用year作爲循環變量,然後根據循環變量的性質自動遞增。

for year = 1:n 
    % No need to increment "year", that is being done by the for loop 
    % blah blah Deposit 
end 

我喜歡你原來的想法好(這將推廣更好,當你瞭解while循環來)。不管你選擇哪種版本,它最終都會運行完整的迭代,這可能不是你想要的。爲了提前停止它,你需要的break命令:

for ... 
    % blah blah Deposit 
    if (something about the Deposit) 
     % We achieved our stop condition, so break out of the for loop 
     break; 
    end 
    % Go on to the next for loop iteration 
end 

當它擊中break聲明,MATLAB跳過直奔循環的結束。

但是,這確實引起了一個問題:您不知道是否退出循環,因爲您重複執行了n或因爲您遇到了break語句。因此,您應該添加某種檢查,然後再假定這是您要查找的year的值。