# Darlehen Restschulden berechnen



## Rashakiel (26. Okt 2014)

Guten Tag,

ich versuche mich schon seit mehreren Tagen an dieser Aufgabe und muss diese in 2 Tagen abgeben, bin aber noch zu keinem Ergebnis gekommen  und verstehe die auch nicht so ganz.
Aufgabe:
Eine Bank vergibt ein Darlehen mit einer Laufzeit von 8 Monaten. Am Enden eines jeden Monats sind stets 12,5% der Darlehenssumme zu tilgen sowie (monatliche) Zinsen auf die Restschuld zu beginn des Monats zu zahlen. Ein Programm erfragt vom Benutzer die jeweilige Darlehenssumme sowie den jährlichen Zinssatz, mit dem die Restschuld zu verzinsen ist und informiert darüber, welche Restschuld dann jeweils zu Beginn eines Monats besteht und wie viel Zinsen am Monatsende anfallen.

Ein Lösungsbeispiel:
Darlehen = 8000
Zinssatz = 1.5

Monat = 1
Restschuld = 8000
Zinsen = 10.0

Monat = 1
Restschuld = 7000
Zinsen = 8.75

Monat = 1
Restschuld = 6000
Zinsen = 7.5

Monat = 1
Restschuld = 5000
Zinsen = 6.25

und so weiter.  Ich verstehe hier einfach nicht, wie man auf diese Zinsen s. o. dann kommt und was ich hier einfach rechnen muss 
Wäre wirklich nett, wenn mir jemand helfen / einen Denkanstoß geben könnte


----------



## JavaMeister (26. Okt 2014)

Also ich kenne das nicht so, dass der Zinssaz so variiert ;D Das wäre fatal.


----------



## pro2 (26. Okt 2014)

Es geht immer über acht Monate, sprich, jeden Monat muss er 12,5 % der Gesamtsumme zurückzahlen. Das dürfte ja nicht so schwer zu verstehen sein. In deinem Beispiel also muss er jeden Monat 1000 € zahlen, weshalb die Restschuld sich immer um 1000 € verringert. Der Zins errechnet sich anhand der Zinsformel. Hierbei nimmst du immer die Restsumme mal den Zinssatz / 100 mal die Laufzeit (30 / 360). 

Also im ersten Monat 8000 * (1.5 / 100) * (30 / 360), im zweiten Monat 7000 * (1.5 / 100) * (30 / 360) usw. Dann kommst du auch auf die Zinsen.


----------



## taro (26. Okt 2014)

Was hier variiert ist nicht der Zinssatz sondern die Höhe der Zinsen.

Bei dem Beispiel bitte daran denken, dass die 1,5 % PRO JAHR gelten - der Zins aber monatlich zu zahlen ist - also den Zinsbetrag durch 12 teilen:

Betrag: 8000
Zinssatz: 1,5 %

1. Monat: Zinsen: 8000/100*1.5 = 120 ... diese 120 durch 12 ergibt dann die angegebenen Zinsen von 10.0
2. Monat: 7000/100*1.5 = 105 ... diese wieder durch 12 = 8,75
usw ...

Ich hoffe das hilft weiter

EDIT: pro2 war schneller


----------



## Rashakiel (26. Okt 2014)

Hab es jetzt erstmal für die Restschuld probiert, ohne die Zinsen. Aber das funktioniert auch irgendwie nicht, es kommt immer 1000 raus 


```
package Test;

public class tesat6 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		double darlehen = 0;
		double zinssatz = 0;
		double restschuld = 0;
		
		System.out.println("Wie hoch ist das Darlehen?");
		darlehen = EAM.rDouble();
		System.out.println("Wie hoch sind die Zinsen?");
		zinssatz = EAM.rDouble();

		
		for (int i = 1; restschuld == 0; i++) {
			
			restschuld = (darlehen * (zinssatz/100));
			

			System.out.println(restschuld);
		}
		
		
	}
	}
```

ps: EAM ist eine Funktion unserer Uni zur Speicherung von Variablen (programmiere erst seit 1 Woche)


----------



## pro2 (26. Okt 2014)

Du rechnest ja auch so nur aus, was man pro Monat zahlen muss. Du musst das natürlich von dem Darlehen subtrahieren. Wenn du das dann hast, nur noch die Rechnung von oben anwenden. Nicht vergessen, dass du Fließkommazahlen-Division durchführen musst, also nicht so was wie 30 / 360 schreiben, sondern 30.0 / 360.0 z. B.


----------



## Rashakiel (26. Okt 2014)

```
for (int i = 1; restschuld == 0; i++) {
			
			tilgung = (darlehen * (zinssatz/100));
			restschuld = darlehen - tilgung;

			System.out.println(restschuld);
```

Jetzt zieht er zwar 1000 von den 8000 ab, aber er wiederholt das nicht so lange, dass er mir alles anzeigt, bis irgendwann 0 ist. Ist in der SchleifenBedingung irgendwas falsch?


----------



## pro2 (26. Okt 2014)

Ja, denn eine for-Schleife läuft solange, wie eine bestimmte Bedingung wahr ist, das heißt in diesem Fall solange, wie die restschuld == 0 ist.

Eine for-Schleife ist ohnehin unnötig, du benutzt den Zähler ja gar nicht! Stattdessen brauchst du so was: 
	
	
	
	





```
while (restschuld > 0) { ... }
```
 Sprich: Solange die Restschuld größer null ist, tue ... Alternativ wäre größer gleich null, wenn du den letzten Durchgang auch ausgeben möchtest.

edit: Auf Gleich- und Ungleichheit sollte man bei Double-Zahlen nicht prüfen. Darum wäre es vielleicht besser, du würdest einfach eine Zählschleife machen, denn du weißt ja, wie viele Monate das Ganze laufen soll.


----------



## Rashakiel (26. Okt 2014)

```
for (int i = 1; i <= 8; i++) {
			
			tilgung = (darlehen * (zinssatz/100));
			restschuld = darlehen - tilgung;
			

			
		}
		System.out.println(restschuld);
```

Jeder meiner Aufgaben habe ich jetzt geschafft, nur an dieser eigentlich einfachen Aufgabe verzweifel ich gerade.....dieSchleife ist ja jetzt dann richtig mit der Bedingung, das er das 8 mal durchgeht. Aber er gibt als Ergebnis einfach8 mal 7000 aus und geht dann nicht weiter bis 0


----------



## pro2 (26. Okt 2014)

Am Anfang musst du einmal die Restschuld gleich dem Darlehen setzen und in der Schleife restschuld -= tilgung. Tilgung musst du natürlich auch nur einmal berechnen und nicht jeden Schleifendurchlauf.


----------



## Rashakiel (26. Okt 2014)

```
restschuld = darlehen;
		
		tilgung = (darlehen * (zinssatz/100));

		
		for (int i = 1; i <= 8; i++) {
			
			restschuld -= darlehen;
			restschuld = darlehen - tilgung;
			
			System.out.println(restschuld);


		}
		
	}
	}
```

Leider kommt immer noch 8 x 7000 untereinander raus. Und wann bedeutet denn dieses - vor dem = ?

EDIT: Ich habe es  sorry habe mich im code total verschrieben, aber die Frage steht immer noch, was dieses - vor dem = heißt


----------



## pro2 (26. Okt 2014)

Es ist doch irgendwo sinnlos, einfach irgendwas zu versuchen. Das ist ja echt keine schwere Rechnung. Du sollst eine Schleife schreiben, bei der in jedem Durchlauf von einer Zahl eine andere subtrahiert wird. Wenn du damit programmatisch nicht zurecht kommst, nimm dir erst mal einen Stift und ein Stück Papier und rechne es da. 

Du hast in deiner Schleife jetzt nicht einmal das stehen, was ich gepostet habe.  Und in der zweiten Rechnung rechnest du jedes Mal wieder 8000 (darlehen) - 1000 (tilgung), da kann ja auch nie was anderes rauskommen. 

a -= b ist das gleiche wie a = a - b.


----------



## Rashakiel (26. Okt 2014)

Super danke dir. Und tut mir leid nen Kumpel und ich sitzen hier seid heute morgen 6 Uhr und sind am lernen, konzentration lässt langsam echt nacht


----------

