Zurück tutorials.de > Programming > Java

 
 
Hallo und herzlich willkommen! Tutorials.de ist eine Hilfe-Community mit dem Motto User helfen Usern. Als Gast verfügst Du über Schreibrechte in unseren Foren und Blogs. Du kannst dich aber gerne auch kostenlos registrieren und Teil unserer Gemeinschaft werden! Viel Spaß & Erfolg bei der Vermehrung deines Wissens :-)

Themen: 242.975 | Beiträge: 1.352.293 | Mitglieder: 169.418 (Stand 28.01.10) | Fragen zur Nutzung von Tutorials.de? Nutzungsregeln | Kontaktformular | Impressum

Jubiläums-Countdown 23.02 23.03 23.04 23.05 23.06 23.07 23.08 23.09


4 kostenlose Bücher bei unserer Buch-Verschenkaktion 03/2010
  AntwortAntworten (über Gastzugang)    
  AntwortAntworten (über Gastzugang)    
 
Themen-Optionen Ansicht
Alt 11.10.05, 07:37   #1 (permalink)
Mitglied Gold
 
Benutzerbild von morphi79  
 
Registriert seit: Jan 2005
Beiträge: 155
Renommee-Modifikator: 11
morphi79 hat eine blütenweiße Weste

Newbee vermasselt Prüfung, nun Fehlersuche step-by-step

Hallo Leute,

da ich meine Prüfung in JAVA voll in den Sand gesetzt hab, hoffe ich dass ihr mir etwas weiterhelfen könnt. Ich habe mir nochmals die Aufgaben geholt. Vielleicht könnt Ihr mir dabei helfen, damit ich sehen kann, was ich falsch gemacht habe.

Gleich mal zur ersten Aufgabe, gegeben ist folgendes:
Code:
public class Hausarbeit1 {

public static void main(String[] args) {

short zahl1 = 1234;

short zahl2 = 5678;

zahl1++;

zahl2++;

int ergebnis = (zahl1 + zahl2) << 4;

short kurz = (short)ergebnis;

System.out.println(zahl1);

System.out.println(zahl2);

System.out.println(ergebnis);

System.out.println(kurz);

}

}


Nun meine Aufgabe:
Nehmen Sie nun einige Erweiterungen an dieser Klasse vor. Definieren Sie eine
Methode toShort(), die ein Argument vom Typ int bekommt, dessen Wert in einen Wert vom Typ short umwandelt und zurückgibt. Definieren Sie ebenso eine Methode toFloat(), die einen Wert vom Typ double in einen Wert vom Typ float umwandelt.
Ersetzen Sie nun den expliziten Cast in der Methode main() durch die Verwendung von toShort(). Dividieren Sie in main() ferner den Wert von Ergebnis durch 9.876 und speichern Sie das Resultat in einer Variable doppelt vom Typ double. Weisen Sie diesen Wert anschließend unter Verwendung von toFloat() einer Variable einfach vom Typ float zu. Ergänzen Sie die Ausgabeanweisungen um die Ausgabe der Werte der beiden neuen Variablen.

Die Methode kann ich doch einfach so einsetzen, oder nicht?
int toShort = short(ergebnis)
  morphi79 ist offline  
 
Alt 11.10.05, 07:52   #2 (permalink)
Mitglied Gold
 
Registriert seit: Sep 2005
Ort: Essen
Beiträge: 108
Renommee-Modifikator: 10
Nospherates hat eine blütenweiße Weste

Re: Newbee vermasselt Prüfung, nun Fehlersuche step-by-step

Hi,
also für mich klingt das eher nach sowas in der Art:

Auszug Main:
Code:
short kurz = to_short(ergebnis);
Und vorher definierst du noch die Methode to_short:

Code:
private short to_short (int x){
 return short(x);
}
Das gleiche mit leichten Abwandlungen eben für to_Float. Naja die Division war denke ich mal nicht das Problem.
Hoffe mal hab das jetzt richtig verstanden .

Gruß
  Nospherates ist offline  
 
Alt 11.10.05, 08:11   #3 (permalink)
Mitglied Gold
 
Benutzerbild von morphi79  
 
Registriert seit: Jan 2005
Beiträge: 155
Renommee-Modifikator: 11
morphi79 hat eine blütenweiße Weste

Re: Newbee vermasselt Prüfung, nun Fehlersuche step-by-step

Wäre dass dann mal der Anfang soweit?

Code:
public class Hausarbeit1 {

public static void main(String[] args) {

short zahl1 = 1234;

short zahl2 = 5678;

zahl1++;

zahl2++;

int ergebnis = (zahl1 + zahl2) << 4;

short kurz = (short)ergebnis;



private short toShort (int x){

 return short(x);

}

short kurz = toShort(ergebnis);



private float toFloat (double y) {

 return float(y);

}

float kurz = toFloat(ergebnis);



System.out.println(zahl1);

System.out.println(zahl2);

System.out.println(ergebnis);

System.out.println(kurz);

}

}
  morphi79 ist offline  
 
Alt 11.10.05, 09:00   #4 (permalink)
Mitglied Gold
 
Registriert seit: Sep 2005
Ort: Essen
Beiträge: 108
Renommee-Modifikator: 10
Nospherates hat eine blütenweiße Weste

Re: Newbee vermasselt Prüfung, nun Fehlersuche step-by-step

Hi,
naja nicht ganz. Habt ihr Methoden nicht durchgenommen? Zumindest wirkt es auf mich so als wenn es für dich Neuland ist. Es müsste so aussehen:


Code:
public class Hausarbeit1 {

private short to_Short (int x){
 return short(x);
}

private float to_Float (double y) {
 return float(y);
}

public static void main(String[] args) {

short zahl1 = 1234;
short zahl2 = 5678;
zahl1++;
zahl2++;
int ergebnis = (zahl1 + zahl2) << 4;
short kurz = toShort(ergebnis);

double doppelt = ergebnis / 9.876;
float einfach = toFloat(doppelt);

System.out.println(zahl1);
System.out.println(zahl2);

System.out.println(ergebnis);
System.out.println(kurz);
System.out.println(doppelt);
System.out.println(einfach);
}

}
Das ist jetzt schon die ganze Aufgabe glaube ich. Wenn du Verständnisfragen hast stell sie einfach. Blind abschreiben würde dich ja nicht wirklich weiterbringen .

Gruß
  Nospherates ist offline  
 
Alt 11.10.05, 09:31   #5 (permalink)
Mitglied Gold
 
Benutzerbild von morphi79  
 
Registriert seit: Jan 2005
Beiträge: 155
Renommee-Modifikator: 11
morphi79 hat eine blütenweiße Weste

Re: Newbee vermasselt Prüfung, nun Fehlersuche step-by-step

naja, wir haben die nur kurz angeschnitten. in der prüfung sind 85% durchgefallen. Aber es bringt mir ja nichts, wenn ich es nicht verstehe. Das mit den Methoden hab ich jetzt die letzten 2 Tage durchgemacht. Es geht ja nur darum, dass ich die richtige Lösung mit meiner geschriebenen Aufgabe verlgeichen kann. Damit kann ich dann am besten sehen, wo meine Schwachpunkte liegen. Ich hoffe es zumindest. Ich glaub jetzt ich habs verstanden. So nun werde ich mal die nächste Aufgabe ansehen. Hoffe Ihr helft mir weiter, wenn ich das nicht verstehe.
  morphi79 ist offline  
 
Alt 11.10.05, 09:42   #6 (permalink)
Mitglied Gold
 
Benutzerbild von morphi79  
 
Registriert seit: Jan 2005
Beiträge: 155
Renommee-Modifikator: 11
morphi79 hat eine blütenweiße Weste

Re: Newbee vermasselt Prüfung, nun Fehlersuche step-by-step

Als nächstes hätte ich eine Frage. Ich soll eine eine Klasse Konto erstellen, die in
einfacher Weise ein Bankkonto beschreibt. Das habe ich auch gemacht mit zwei Klassen:
Hier die Klasse Konto
Code:
 public class Konto {
	// Instanzvariable
	private double kontostand;
 
	// Konstruktor
	public Konto(double stand_neu) {
kontostand = stand_neu;
	}
 
	// Kontostand abfragen
	public double getKontostand() {
return kontostand;
	}
 
	// Geldbetrag auf das Konto einzahlen
	public void einzahlen(double betrag) {
kontostand = kontostand + betrag;
	}
 
	// Geldbetrag vom Konto abheben
	public void abheben(double betrag) {
kontostand = kontostand - betrag;
	}
}
Hier die Klasse KontoTester
Code:
public class KontoTester {
	public static void main(String[] args) {
Konto einKonto;
 
// Konto anlegen
einKonto = new Konto(500.00);
System.out.println("Erster Kontostand: " + einKonto.getKontostand());
 
// Vom Konto abheben
einKonto.abheben(150.00);
System.out.println("Kontostand nach abheben von 150.00: "
	 + einKonto.getKontostand());
 
// Auf Konto einzahlen
einKonto.einzahlen(11.23);
System.out.println("Kontostand nach einzahlen von 11.23: "
	 + einKonto.getKontostand());
 
// Vom Konto abheben
einKonto.abheben(400.00);
System.out.println("Kontostand nach abheben von 400.00: "
	 + einKonto.getKontostand());
 
// Auf Konto einzahlen
einKonto.einzahlen(222.50);
System.out.println("Kontostand nach einzahlen von 222.50: "
	 + einKonto.getKontostand());
 
// Vom Konto abheben
einKonto.abheben(47.62);
System.out.println("Kontostand nach abheben von 47.62: "
	 + einKonto.getKontostand());
	}
}
Jetzt möchte ich folgendes hinzufügen:
- Ein Konto erhält als zusätzliche Eigenschaft eine Kontonummer, die als Wert
vom Typ long gespeichert wird. Die Kontonummer kann nur bei der Erzeugung
eines Konto-Objekts gesetzt werden. Danach soll sie nur noch abgefragt, aber
nicht mehr geändert werden können.
- Die Methode abheben() wird so geändert, dass nur noch Abhebungen möglich
sind, die durch Guthaben gedeckt sind. Die Methode soll einen Wahrheitswert
zurückgeben, der angibt, ob die Abhebung durchgeführt wurde. Wird versucht,
einen Betrag abzuheben, der größer als der Kontostand ist, so soll der
Kontostand unverändert bleiben und der Wert false zurückgegeben werden.
Anderenfalls soll die Abhebung ausgeführt und der Wert true zurückgegeben
werden.
- Die Klasse KontoTester will ich so abändern, das das erzeugte Konto die Kontonummer
12345678 erhalten soll. Am Ende der Methode main() soll die Kontonummer abgefragt
und ausgegeben werden. Bei jeder einzelnen Abhebung soll getestet werden, ob sie
erfolgreich war. Nur, wenn eine Abhebung ausgeführt werden konnte, soll der neue
Kontostand ausgegeben werden, anderenfalls soll jeweils die Meldung „Guthaben
nicht ausreichend.“ ausgegeben werden.
Die Eigenschaft Kontonummer ist ja einfach hinzugefügt. Nur wie kann ich die Kontonummer nur bei der Erzeugung eines Konto-Objekts gesetzt werden und nur noch abfragen, aber nicht mehr ändern?
  morphi79 ist offline  
 
Alt 11.10.05, 10:21   #7 (permalink)
Mitglied Gold
 
Registriert seit: Sep 2005
Ort: Essen
Beiträge: 108
Renommee-Modifikator: 10
Nospherates hat eine blütenweiße Weste

Re: Newbee vermasselt Prüfung, nun Fehlersuche step-by-step

Hi,
das du die Nummer nur bei Erzeugung erstellen kannst und dann nur noch Abfragen darfst, erreichst du dadurch das du den Wert nur im Konstruktor animmst um ihn da zu setzen. Über eine Methode schaffst du dann die Möglichkeit auf die Nummer zugreifen zu können, aber nur zum lesen. Eine setzende Methode lässt du einfach weg.

Gruß
  Nospherates ist offline  
 
Alt 11.10.05, 10:30   #8 (permalink)
Mitglied Gold
 
Benutzerbild von morphi79  
 
Registriert seit: Jan 2005
Beiträge: 155
Renommee-Modifikator: 11
morphi79 hat eine blütenweiße Weste

Re: Newbee vermasselt Prüfung, nun Fehlersuche step-by-step

Also muss ich hier
Code:
// Konstruktor
	public Konto(double stand_neu) {
kontostand = stand_neu;
	}
die Kontonummer einsetzen, oder?

Code:
 // Konstruktor
	public Konto(double stand_neu, int kontonummer) {
kontostand = stand_neu;
kontonummer = kontonummer;
 }
und die Methode:
Code:
  // Kontonummer auslesen
	public void kontonummer(int kontonummer) {
kontonummer = kontonummer;	}
richtig?
  morphi79 ist offline  
 
Alt 11.10.05, 10:41   #9 (permalink)
Mitglied Brokat
 
Registriert seit: Oct 2004
Ort: Hessen
Beiträge: 311
Renommee-Modifikator: 12
torsch2711 hat eine blütenweiße Weste

Re: Newbee vermasselt Prüfung, nun Fehlersuche step-by-step

Aehm, du willst doch die kontonummer auslesen oder?
Sprich sowas hier machen:


public int getKontoNummer() {
return this.kontonummer;
}

this ist nicht zwingend notwendig.

Habs mir nur irgendwie angewöhnt, da wir ja auch OO-orientiert denken


Gruss,

Torsten
__________________
"There's nothing we have to fear, except Fear itself....."
  torsch2711 ist offline  
 
Alt 11.10.05, 10:41   #10 (permalink)
Mitglied Gold
 
Registriert seit: Sep 2005
Ort: Essen
Beiträge: 108
Renommee-Modifikator: 10
Nospherates hat eine blütenweiße Weste

Re: Newbee vermasselt Prüfung, nun Fehlersuche step-by-step

du musst zuerst eine entsprechende Variabel deklarieren. Dann den Konstruktor, wie du ja schon korrekt geschrieben hast...
Code:
private int kontonr;
 // Konstruktor
public Konto(double stand_neu, int kontonummer) {
  kontostand = stand_neu;
  kontonr = kontonummer;
}
Und die Methode müsste genau anders rum sein. So wie du sie beschrieben hast würdest du ja die Nummer ändern! Müsste also so aussehen:

Code:
 // Kontonummer auslesen
public int getKontonummer() {
  return kontonr;	
}
Gruß

[EDIT] Siehe teilweise den schnelleren Vorposter [/EDIT]
  Nospherates ist offline  
 
Alt 11.10.05, 10:47   #11 (permalink)
Mitglied Gold
 
Benutzerbild von morphi79  
 
Registriert seit: Jan 2005
Beiträge: 155
Renommee-Modifikator: 11
morphi79 hat eine blütenweiße Weste

Re: Newbee vermasselt Prüfung, nun Fehlersuche step-by-step

ah, ok jetzt kommt es langsam. Dann würde die Klasse Konto so aussehen:
Code:
  public class Konto {
	// Instanzvariable
	private double kontostand;
	private int kontonr;
 
	// Konstruktor
	public Konto(double stand_neu, int kontonummer) {
	kontostand = stand_neu;
	kontonr = kontonummer;
	}
	
	// Kontostand abfragen
	public double getKontostand() {
 return kontostand;
	}
	
	// Geldbetrag auf das Konto einzahlen
	public void einzahlen(double betrag) {
 kontostand = kontostand + betrag;
	}
	
	// Geldbetrag vom Konto abheben
	public void abheben(double betrag) {
 kontostand = kontostand - betrag;
	}
 
	// Kontonummer auslesen
	public int getKontonummer() {
	return kontonr; 
}
}
und wie bekomme ich sowas hin?
Die Methode abheben() wird so geändert, dass nur noch Abhebungen möglich
sind, die durch Guthaben gedeckt sind. Die Methode soll einen Wahrheitswert
zurückgeben, der angibt, ob die Abhebung durchgeführt wurde. Wird versucht,
einen Betrag abzuheben, der größer als der Kontostand ist, so soll der
Kontostand unverändert bleiben und der Wert false zurückgegeben werden.
Anderenfalls soll die Abhebung ausgeführt und der Wert true zurückgegeben
werden.

Mit einer If Bedinung?
  morphi79 ist offline  
 
Alt 11.10.05, 11:03   #12 (permalink)
Mitglied Gold
 
Registriert seit: Sep 2005
Ort: Essen
Beiträge: 108
Renommee-Modifikator: 10
Nospherates hat eine blütenweiße Weste

Re: Newbee vermasselt Prüfung, nun Fehlersuche step-by-step

Hi,
auch das ist ziemlich simpel. Ich geb diesmal keinen Code vor sondern nur die Theorie .
Die Funktion muss statt void true oder false zurückgeben in Form eins boolean Wertes. False wenn das Konto nicht gedeckt ist und true wenn die Abhebung eben erfolgreich war.
Was nun zurückgegeben wird ermittelst du über eine If-Abfrage. Damit prüfst du ob der Kontostand über dem abzuhebenden Wert liegt oder eben nicht.
Versuch das mal in Code umzusetzen und poste nochmal .

Gruß
  Nospherates ist offline  
 
Alt 11.10.05, 11:09   #13 (permalink)
Mitglied Gold
 
Benutzerbild von morphi79  
 
Registriert seit: Jan 2005
Beiträge: 155
Renommee-Modifikator: 11
morphi79 hat eine blütenweiße Weste

Re: Newbee vermasselt Prüfung, nun Fehlersuche step-by-step

Code:
// Geldbetrag vom Konto abheben
	public boolean abheben(double betrag) {
if (kontostand=<0) kontostand = kontostand - betrag;
	}
so ?
  morphi79 ist offline  
 
Alt 11.10.05, 11:28   #14 (permalink)
Mitglied Gold
 
Registriert seit: Sep 2005
Ort: Essen
Beiträge: 108
Renommee-Modifikator: 10
Nospherates hat eine blütenweiße Weste

Re: Newbee vermasselt Prüfung, nun Fehlersuche step-by-step

Hm.. teilweise

Also der Kopf der Methode ist korrekt. Die Abfrage ist nicht wirklich richtig. Der Kontostand muss ja NACH dem Abheben 0 oder höher sein. Momentan testest du ja nur ob er davor 0 oder höher ist.
Ansonsten müsstest du noch ein return true oder false einbauen, je nach Resultat der Abfrage.

gruß
  Nospherates ist offline  
 
Alt 11.10.05, 11:34   #15 (permalink)
Mitglied Gold
 
Benutzerbild von morphi79  
 
Registriert seit: Jan 2005
Beiträge: 155
Renommee-Modifikator: 11
morphi79 hat eine blütenweiße Weste

Re: Newbee vermasselt Prüfung, nun Fehlersuche step-by-step

Code:
// Geldbetrag vom Konto abheben
	public boolean abheben(double betrag) {
if (kontostand - betrag =<0) {kontostand = kontostand - betrag;return true}return false;
	}
#
und so?
  morphi79 ist offline  
 
 
 
Lesezeichen:


Themen-Optionen
Ansicht
Ähnliche Themen
 
Thema Autor Forum Antworten Letzter Beitrag
MoveWindow step by step Thomasio C/C++ 6 23.05.07 05:06
AS Step by Step gygra Flash 24 05.05.07 12:25
Installation von Cocoon in Eclipse - Step by Step downset04 Java 0 13.12.05 21:09
Step (iso-10303) Krümel C/C++ 1 29.02.04 00:08
Suche Step-by-step Tut Oxygen 3D Studio Max 1 22.07.01 13:13
» Tools
 
tutorials.de-Tools tutorial.de-Suchfeld tutorial.de-Widget tutorial.de-RSS-Feed tutorial.de-Banner
» Neue Links
 
Hits: 134
»
JHT's Planetary...
(Cinema 4D-Objekte)
Hits: 261
»
Tageslicht ohne GI
(Cinema 4D-Tutorials)
Hits: 149
»
Puzzle
(Cinema 4D-Tutorials)
Hits: 100
»
Lacreme
(Cinema 4D-Tutorials)
Hits: 190
»
Liquid Light
(Cinema 4D-Tutorials)
» Aktuelle Umfrage
 
Bist du mit der Geschwindigkeit der Tutorials.de-Website zufrieden?
Ja, es putzt mir glatt den Staub vom Bildschirm! - 79,79%
150 Stimmen
Nein, ich denke da muss noch nachgebessert werden... - 20,21%
38 Stimmen
Stimmen gesamt: 188
Du darfst bei dieser Umfrage nicht abstimmen.

 

Alle Zeitangaben in WEZ +1. Es ist jetzt 07:22 Uhr.


Powered by vBulletin® Version 3.8.5 (Deutsch) & vBadvanced CMPS v.3.2.0
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.5.0 RC2 ©2010, Crawlability, Inc.
Alle Rechte vorbehalten ©2000 - 2010 tutorials.de
Design by Mark, CSS by Maik & Sven Mintel
Seite generiert in 0,27310 Sekunden mit 26 queries