Odsetki, zadanie [Delphi]

0

Witam. Mam do was pytanie. Nie wiem jak poradzić sobie z tym zadaniem. Może wy mi pomożecie :)

Wkładasz swój kapitał do banku (wprowadzony z klawiatury do pola edit i oznaczony jako K), który jest co rok oprocentowany na dany procent (tak samo tylko oznaczony jako P).
Przykład
1.rok - 100zł+100zł10%=110zł
2.rok - 110zł+110zł
10%=121zł
3.rok - 121zł+121zł*10%=133,1zł
itd.

Zadanie polega na napisaniu programu, który obliczy po ilu latach końcowa suma będzie co najmniej 3 razy większa niż kapitał poczatkowy.
Wykorzystując do tego m.in funkcję repeat.

Byłabym bardzo, ale to bardzo wdzieczna za pomoc. Pozdrawiam :)

0

nie napisze gotowego kodu bo to nie w moim stylu, sama tez musisz pomyslec :P

zmienna "kapital" typu Real;
zmienna "procent" typu Real;
zmienna "suma" typu Real;  (te 3 zmienne typu real mozna zrobic w jednej lini: "zmienna kapital,procent,suma typu real;");
zmienna "rok" typu Integer
begin
  kapital=zamienStringNaFloat(tekst w polu edit1);
  procent=zamienStringNaFloat(tekst w polu edit2) podzielić przez 100; (zeby np 10% bylo w postaci 0.1)
  suma=kapital;
  rok=0;

  powtarzaj:
     rok=rok+1;
     suma=suma+(suma*procent);
  do momentu gdy: suma większa od (kapital*3);

  pokazWiadomosc( zamienIntegerNaString(rok)+' lat' );
end;

podpowiedzi: var, StrToFloat, IntToStr, ShowMessage.

teraz napisz to sama, a jak nie bedziesz czegos rozumiala to pytaj.
btw, prawdopodobnie za chwile Twoj post zostanie przenioesiony do dzialu Newbie wiec w razie czego tam go szukaj.

0

Repeat to pętla,a nie funkcja.
Wiesz jaka jest konstrukcja repeat? Bo jeżeli nie to nie mam co tłumaczyć. A gotowca dawać nie będę:)

0

Dziekuje, cimak :) Napisałam własnie z Twoimi wskazówkami juz to sama i dziala! :) Dziękuje jeszcze raz :)

0

btw, powinno sie jeszcze zabezpieczyc by nigdy kapital ani procent nie byly =0, bo wtedy petla bedzie nieskonczona.

0
cimak napisał(a)

btw, powinno sie jeszcze zabezpieczyc by nigdy kapital ani procent nie byly =0, bo wtedy petla bedzie nieskonczona.

przecież to jest proste zadanie i nie trzeba tutaj żadnej pętli

procent składany to:
początek * (1 + procent) ^ ilość_lat

czyli po trzech latach:
100 * 1.1 ^ 3 = 133,10 zł

wystarczy ułożyć proste równanie 100 * 1.1 ^ x >= 3 * 100
dzielimy obustronnie przez 100 (wartość początkową) i mamy: 1.1 ^ x >= 3

czyli pytanie - do której potęgi trzeba podnieść 110% (1.1) żeby było więcej niż 3 czyli sufit logarytmu o podstawie 1.1 z 3:
x = ceil log 1.1 3
albo inaczej:
x = ceil log 3 / log 1.1
i wychodzi nam 12 i to jest odpowiedź na nasze pytanie (spr.: 100 * 1.1 ^ 12 = 313,84)

czyli całe zadanie sprowadza się do postaci:
wynik := ceil(ln(3) / ln(1 + procent/100));
nawet nie trzeba podawać kapitału początkowego bo wynik jest od niego niezależny

// a sorry - chyba że takie jest założenie w zadaniu żeby wykorzystać pętlę, nie doczytałem :S

1 użytkowników online, w tym zalogowanych: 0, gości: 1