2014-11-21 3 views
-1

Я пытаюсь написать супер базовую программу для домашнего задания, и мне трудно начать работу и надеялся на небольшую помощь. Вот подсказка: Представьте, что вы отправились в банк и депонировали 20 000 долларов на счет, который зарабатывает 6% процентов каждый год, при этом проценты каждого года возвращаются на счет. Напишите программу MATLAB, которая вычисляет количество лет, которое потребуется для накопления $ 500,000.Попытка программы MATLAB для расчета процентов

Итак, я знаю, что мне нужно объявить несколько переменных, и я хочу использовать цикл for с инструкцией if, потому что мы еще не закрывали пока петли. Вот моя попытка:

%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 –

+0

Цикл в течение года вместо i, так как это то, что итерация. За каждый год подумайте о том, как меняется депозит в течение года (почему вы добавляете еще 20000 в год?). В принципе, напишите первые несколько лет вручную, затем попробуйте изменить свой код в соответствии с вашими уравнениями. – Peter

+0

Спасибо, Питер. Поэтому я подумал, что мне нужно было рассчитать процент, а затем добавить его к общей сумме. Вот почему я добавил 20000 в линию Депозита. Хорошо, я редактировал код, но я не уверен в строке year = 1: n. Должен ли я определить n? –

ответ

0

Здесь есть два подхода к циклу for. Одним из них является то, что вы изначально были:

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

В этом случае i рассчитывает количество для итераций цикла, и вы приращение 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 петель). Тем не менее, любая версия, которую вы выберете, закончится тем, что она будет работать точно так же, как и итерации n, что, вероятно, не то, что вы хотите. Для того, чтобы остановить его раньше, вам нужно 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, которое вы ищете.

Смежные вопросы