задача

11 отговора 0 прегледа
#1

задача

Здравейте!
Искам да ви помоля за помощ в решаването на една задача.Задачата е следната:
Да се напише програма за изчисляването на дългосрочен заем с равни рати?Няма изисквания кой език да се използва за решаването на задача.Според мен ще е по-лесно на Паскал. но нещо не ми се получава.
Формулите, които трябва да се използват са:
1-ва год.: B=K/n;
L1=K*p/100;
a1=L1+b;
2ра год. и т.н: B=K/n;
L2=(K-B)*p/100+B;
a1=L1+B;
където n-години,L-лихва,K-заем,а-вноска.
Благодаря Ви предварително.

Отговор
в отговор на shushumigata #2

Re: задача

Какво са B и p?

Вноската предполагам, че е месечна - така ли е?

Лихвата предполагам, че е годишна - така ли е?

Може ли заема да е отпуснат за 1 година и 3 месеца примерно?

Какво не ти се получава - писал/а ли си нещо?

Мрънканици

Редактирано от ДъpвeнФилocoф на

Отговор
в отговор на ДъpвeнФилocoф #3

Re: задача

Здравей!
В е погашението,а Р е лихвеният %(примерно 15%).По принцип има два варианта за решаването на задачата.
1-ви:когато плащанията се извършват в края на всяка година;
2-ри:когато плащанията се извършват в края на всеки месец.
Лихвата е годишна.Вноската при вариант 1 е също годишна,а при вариант 2 е в края на всеки месец(примерно n=3 години,тогава ще имаме 3години по 12 месеца=36 вноски).
Може заемът да е отпуснат примерно и за година и 3 месеца, тогава n ще бъде 15, което означава 15 вноски и плащанията ще се извършват в края на всеки месец.Може да се направи и такъв вариант на задачата.Но аз предпочетох първият вариант,защото вторият ми се видя по труден.
Опитах се да направя задачата на Паскал,но се оказа че повечето неща съм ги забравила.Стигам само до смятането на вноската за първата година. Когато се опитам на направя цикъл и да сметна вноските за другите години, не ми се получава.
Благодаря за вниманието.

Отговор
в отговор на shushumigata #4

Re: задача

Имаше хубави формули, но трябва да си ги припомня. Написах набързо нещо, виж дали ти върши работа
var
n: Integer;
B,S,p: Double;
index: Integer;
vnoski: array of Double;
begin
write('n:=');readln(n);
write('p:=');readln(p);
write('S:=');readln(S);
B:=S/n;
Setlength(vnoski,n);
for index:= 0 to n-1 do begin
vnoski[index]:=B+S*p/100;
S:=S-B;
end;
for index:= 0 to n-1 do
writeln(vnoski[index]:10:5);
end.

Тук таме трябва да се сложат закръгления - все пак плащанията се правят с точност една стотинка Ама това после, кажи дали това ти върши работа ...

Мрънканици

Редактирано от ДъpвeнФилocoф на

Отговор
в отговор на ДъpвeнФилocoф #5

Re: задача

Здравей!
Благодаря ти много,че си отделил време.
Като логика трябва да е така задачата,но имам малък проблем-не мода да я накарам да тръгне.Първо стига до B:=S/n и ми дава че типовете се смесват и не може да продължи нататък.Като дам примерно B,S,p да не са Double a rial продължава до следващият ред и ми дава,че Setlength e непозната.

Отговор
в отговор на shushumigata #6

Я кажи ...

... с какво компилираш, за каква операционна система, с какви настройки, точните съобщения и кога излизат - при компилация или след това. целия код 1:1 ли компилираш?

Ако се сетиш още нещо - казвай.

Мрънканици

Редактирано от ДъpвeнФилocoф на

Отговор
в отговор на ДъpвeнФилocoф #7

Re: Я кажи ...

Здравей!
Използвам Turbo Pascal 5.5.Грешки се получавам когато искам да компилирам програмата.Първата грешка дори е свързана с масива("[" or "(." expected).Когато запиша да е array[1..100] of Double.След това като компилирам ми дава грешка must be in 8087 mode to compile this.
Незнам какво да правя по-нататък.А грешките за които предният път писах се получават след като оправя масива.

Отговор
в отговор на shushumigata #8

Re: Я кажи ...

Къде го видя тоя array[1..100] of Double ? За един и същи код ли говорим?

SetLength се намира в мудула System, опитай най-отгоре да сложиш

uses
System;

Въпреки, че TP 5.5 е доста стар и вече не помня какво се можеше и какво не можеше при него. Във всеки случай, ако държиш на точно този компилатор с версия 7.0 е малко вероятно да имаш проблеми с кода, който написах по-нагоре.

Аз лично в момента ползвам Free Pascal 2.2.0 (актуалната версия е 2.2.2) за Linux. Има версии за Wiindows, DOS и още една камара операционни системи и по документация би трябвало даписаното за една ОС да може да се компилира и за други. Сайта е [линк]

Мрънканици
Отговор
в отговор на ДъpвeнФилocoф #9

Re: Я кажи ...

Здравей!
Благодаря ти много за всичко.
След големи мъки задачата ми тръгна,но когато дам n=3,p=15,s=3000 и ми изчислява само за две години,а не за три.А когато на последният for задам да не е до n-1, a до n последната трета вноска ми я дава 0.

Редактирано от shushumigata на

Отговор
в отговор на shushumigata #10

Нищо не мога ...

... да отговоря, докато не видя какво си написала ...

Изобщо ако искаш помощ не е добре хората да ти вадят думите с ченгел от устата/пръстите. Тъй, че следващия път прочети много внимателно всичко до тук и отговори кратичко, но ясно и точно на всички въпросчета

Мрънканици

Редактирано от ДъpвeнФилocoф на

Отговор
в отговор на ДъpвeнФилocoф #11

Благодаря ...

за всичко което направи за мен.
Оправих задачата така,че да работи по начина по които исках.
Вече смята всичко.Извинявай ако съм те смутила и благодаря,че отдели време за мен.

Весели празници!
Жив и здрав

Отговор
в отговор на shushumigata #12

Ами ...

... ние благодарностите нито ги пием, нито се учим от тях. Баси скръндзата дето си - врънка тука, пита сто пъти, а не писа как точно си си решила проблема.

Много се радвам за теб, че си си свършила работа ...

Весели празници.

Мрънканици

Редактирано от ДъpвeнФилocoф на

Отговор