Verwendung von Arrays

babuschka

Top Contributor
Hallo,

ich bin totaler Anfänger in Java Programmierung. Ich habe mir in den letzten Stunden (!🙁) mühsam das untenstehende Programm zusammengebastelt aber komme nun überhaupt nicht weiter.

Die Ausgabe soll folgendermaßen aussehen:
1. Jahr: Abschreibungsbetrag 1,000.00 EUR; Restbuchwert 9,000.00 EUR
2. Jahr: Abschreibungsbetrag 1,000.00 EUR; Restbuchwert 8,000.00 EUR
...

Dazu soll folgende Variablendeklaration verwendet werden:
...
double[] restbuchwert = new double[20]; // Array mit 20 Platzen
...

Ich hab aber leider überhaupt keine Ahnung, was genau man schreiben muss, damit beim Restbuchwert die jeweils um den Abschreibungsbetrag des Vorjahres verminderten Werte erscheinen.

BITTE HELFT MIR😉

Achso, und gibt es eine Möglichkeit mit der ich für die Bezeichnung des Anlageguts ein Wort (z.B. Maschine) eingebe und es mir dieses Wort auch ausgibt ? Bisher bekomme ich das nur mit Zahlen hin.

so weit bin ich bis jetzt gekommen:

Java:
import java.io.*;
class abschreibung
{
public static void main (String[] args) throws IOException
{
BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in));
String input;
int Bezeichnung;
int Anschaffungswert;
int Nutzungsdauer;
int Abschreibungsbetrag;


System.out.println("Geben Sie die Bezeichnung des Anlageguts ein!");
input = stdin.readLine();
Bezeichnung = Integer.parseInt( input ); // input in int konvertieren);

System.out.println("Geben Sie den Anschaffungswert ein!");
input = stdin.readLine();
Anschaffungswert = Integer.parseInt( input ); // input in int konvertieren);

System.out.println("Geben Sie die Nutzungsdauer ein!");
input = stdin.readLine();
Nutzungsdauer = Integer.parseInt( input ); // input in int konvertieren);

System.out.println("Bezeichnung des Anlageguts: " + Bezeichnung);
System.out.println("Anschaffungswert: " + Anschaffungswert + " EUR");
System.out.println("Nutzungsdauer: " + Nutzungsdauer + " Jahre");



if (Nutzungsdauer > 20)
{
System.out.println("Die maximale Nutzungsdauer liegt bei 20 Jahren! Bitte kontrollieren Sie ihre Angaben!");
}
else
{
System.out.println("Abschreibungsverlauf der folgenden Jahre:"); 
}



int cnt = 1;
double[] restbuchwert = new double[20]; // Array mit 20 Platzen
while ( cnt <= 20 ) 
{
	
Abschreibungsbetrag=Anschaffungswert/Nutzungsdauer;


restbuchwert = Anschaffungswert-Abschreibungsbetrag;




System.out.println(cnt + ". Jahr: Abschreibungsbetrag " + Abschreibungsbetrag + " EUR; Restbuchwert " + restbuchwert + " EUR"); 
 cnt = cnt + 1; 
}



}
}

[edit]Dem Wunsch, Beiträge aus dem Forum zu entfernen kann nicht entsprochen werden, da dies ein öffentliches Forum ist. Wenn Beiträge nicht für die Öffentlichkeit bestimmt sind, was dem Sinn eines Forums widerspricht, sollte hier auch nichts gepostet werden.
Insbesondere dann, wenn man befürchtet, dass man Lösungen nicht als die eigenen ausgeben kann, sollte man sich andere Wege, als ein öffentliches Forum, suchen und Lösungen selbst finden.
Der Benutzername des Themeneröffners wurde als Kompromiss verändert.

Siehe dazu auch: http://www.java-forum.org/forum-faq-beitraege/128985-beitrag-loeschen.html#post841238

L-ectron-X
=Site-OP=[/edit]
 
Zuletzt bearbeitet von einem Moderator:
Ich hab aber leider überhaupt keine Ahnung, was genau man schreiben muss, damit beim Restbuchwert die jeweils um den Abschreibungsbetrag des Vorjahres verminderten Werte erscheinen.
Für eine Berechnung des Restbuchwerts nach n Jahren brauchst Du Dir die Zwischenergebnisse nicht in einem Array zu speichern. Das ginge im Zweifel auch mit nur einer einzigen Variable. Aber egal, Du möchtest es also kriegst Du es. Auf Elemente eines Arrays greifst Du über ihren Index zu. Du hast ja schon einen Ansatz mit der while-Schleife und der Variable cnt. Das könntest Du schon nehmen. Beachte aber, dass Arry-Indices bei 0 anfangen zu zählen.
Achso, und gibt es eine Möglichkeit mit der ich für die Bezeichnung des Anlageguts ein Wort (z.B. Maschine) eingebe und es mir dieses Wort auch ausgibt ? Bisher bekomme ich das nur mit Zahlen hin.
Mach aus Deiner Variablen "Bezeichnung" einen String und lass beim Einlesen in Deinem Code einfach das Integer.parseInt weg und Du hast direkt den eingegebenen String.
 
Seh ich das richtig, dass das Array eigentlich nur so viele Plätze braucht, wie die Nutzungsdauer angegeben ist?

Dann würde ich das Array nämlich gleich mit diesem Wert initialisieren und nicht immer pauschal von der Maximalzeit von 20 Jahren ausgehen.

Java:
double[] restbuchwert = new double[Nutzungsdauer]; // Array mit der Anzahl der Jahre an Platz.

Ansonsten ist es meist schlau die for Schleife zu verwenden um ein Array zu füllen.
Wie nillehammer schon sage, auf Arrays greift man mit Hifle von Indizes zu, also z.B

restbuchwert[0] = 1. Wert
restbuchwert[1] = 2. Wert
usw.

Mit einer for - Schleife und einem passenden i-Wert kann man einfach durchlaufen!
 

Zurück
Oben