Zu den Aufzeichnungen der tutorials.de-Live-Workshops
Seite 1 von 4 1234 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
57
ZUGRIFFE
1802
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von morphi79
    morphi79 morphi79 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    155
    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 :
    1
    
     
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    
    [font=CourierNew][font=Times New Roman][size=3]public class Hausarbeit1 {[/size][/font][/font]
     
    [font=CourierNew][font=Times New Roman][size=3]public static void main(String[] args) {[/size][/font][/font]
     
    [font=CourierNew][font=Times New Roman][size=3]short zahl1 = 1234;[/size][/font][/font]
     
    [font=CourierNew][font=Times New Roman][size=3]short zahl2 = 5678;[/size][/font][/font]
     
    [font=CourierNew][font=Times New Roman][size=3]zahl1++;[/size][/font][/font]
     
    [font=CourierNew][font=Times New Roman][size=3]zahl2++;[/size][/font][/font]
     
    [font=CourierNew][font=Times New Roman][size=3]int ergebnis = (zahl1 + zahl2) << 4;[/size][/font][/font]
     
    [font=CourierNew][font=Times New Roman][size=3]short kurz = (short)ergebnis;[/size][/font][/font]
     
    [font=CourierNew][font=Times New Roman][size=3]System.out.println(zahl1);[/size][/font][/font]
     
    [font=CourierNew][font=Times New Roman][size=3]System.out.println(zahl2);[/size][/font][/font]
     
    [font=CourierNew][font=Times New Roman][size=3]System.out.println(ergebnis);[/size][/font][/font]
     
    [font=CourierNew][font=Times New Roman][size=3]System.out.println(kurz);[/size][/font][/font]
     
    [font=CourierNew][font=Times New Roman][size=3]}[/size][/font][/font]
     
    [font=CourierNew][font=Times New Roman][size=3]}[/size][/font][/font]
     
    [font=Arial][size=3] [/size][/font]


    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)
     

  2. #2
    Nospherates Nospherates ist offline Mitglied Gold
    Registriert seit
    Sep 2005
    Ort
    Essen
    Beiträge
    116
    Hi,
    also für mich klingt das eher nach sowas in der Art:

    Auszug Main:
    Code :
    1
    
    short kurz = to_short(ergebnis);

    Und vorher definierst du noch die Methode to_short:

    Code :
    1
    2
    3
    
    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ß
     

  3. #3
    Avatar von morphi79
    morphi79 morphi79 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    155
    Wäre dass dann mal der Anfang soweit?

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    
     
    [font=CourierNew][size=3][font=Times New Roman]public class Hausarbeit1 {[/font][/size][/font]
     
    [font=CourierNew][size=3][font=Times New Roman]public static void main(String[] args) {[/font][/size][/font]
     
    [font=CourierNew][size=3][font=Times New Roman]short zahl1 = 1234;[/font][/size][/font]
     
    [font=CourierNew][size=3][font=Times New Roman]short zahl2 = 5678;[/font][/size][/font]
     
    [font=CourierNew][size=3][font=Times New Roman]zahl1++;[/font][/size][/font]
     
    [font=CourierNew][size=3][font=Times New Roman]zahl2++;[/font][/size][/font]
     
    [font=CourierNew][size=3][font=Times New Roman]int ergebnis = (zahl1 + zahl2) << 4;[/font][/size][/font]
     
    [font=CourierNew][size=3][font=Times New Roman]short kurz = (short)ergebnis;[/font][/size][/font]
     
    [font=CourierNew][font=Times New Roman][size=3] [/size][/font][/font]
     
    [font=CourierNew][size=3][font=Times New Roman]private short toShort (int x){[/font][/size][/font]
     
    [font=CourierNew][size=3][font=Times New Roman] return short(x);[/font][/size][/font]
     
    [font=CourierNew][size=3][font=Times New Roman]}[/font][/size][/font]
     
    [color=#3f3849][size=3][font=Times New Roman]short kurz = toShort(ergebnis);[/font][/size][/color]
     
    [color=#3f3849][font=Times New Roman][size=3] [/size][/font][/color]
     
    [color=#3f3849][size=3][font=Times New Roman]private float toFloat (double y) {[/font][/size][/color]
     
    [color=#3f3849][size=3][font=Times New Roman] return float(y);[/font][/size][/color]
     
    [color=#3f3849][size=3][font=Times New Roman]}[/font][/size][/color]
     
    [color=#3f3849][size=3][font=Times New Roman]float kurz = toFloat(ergebnis);[/font][/size][/color]
     
    [color=#3f3849][font=Times New Roman][size=3] [/size][/font][/color]
     
    [font=CourierNew][size=3][font=Times New Roman]System.out.println(zahl1);[/font][/size][/font]
     
    [font=CourierNew][size=3][font=Times New Roman]System.out.println(zahl2);[/font][/size][/font]
     
    [font=CourierNew][size=3][font=Times New Roman]System.out.println(ergebnis);[/font][/size][/font]
     
    [font=CourierNew][size=3][font=Times New Roman]System.out.println(kurz);[/font][/size][/font]
     
    [font=CourierNew][size=3][font=Times New Roman]}[/font][/size][/font]
     
    [font=CourierNew][size=3][font=Times New Roman]}[/font][/size][/font]
     

  4. #4
    Nospherates Nospherates ist offline Mitglied Gold
    Registriert seit
    Sep 2005
    Ort
    Essen
    Beiträge
    116
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    
    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ß
     

  5. #5
    Avatar von morphi79
    morphi79 morphi79 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    155
    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.
     

  6. #6
    Avatar von morphi79
    morphi79 morphi79 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    155
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
     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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    
    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?
     

  7. #7
    Nospherates Nospherates ist offline Mitglied Gold
    Registriert seit
    Sep 2005
    Ort
    Essen
    Beiträge
    116
    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ß
     

  8. #8
    Avatar von morphi79
    morphi79 morphi79 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    155
    Also muss ich hier
    Code :
    1
    2
    3
    4
    
    // Konstruktor
        public Konto(double stand_neu) {
    kontostand = stand_neu;
        }

    die Kontonummer einsetzen, oder?

    Code :
    1
    2
    3
    4
    5
    
     // Konstruktor
        public Konto(double stand_neu, int kontonummer) {
    kontostand = stand_neu;
    kontonummer = kontonummer;
     }

    und die Methode:
    Code :
    1
    2
    3
    
      // Kontonummer auslesen
        public void kontonummer(int kontonummer) {
    kontonummer = kontonummer;  }
    richtig?
     

  9. #9
    torsch2711 torsch2711 ist offline Mitglied Brokat
    Registriert seit
    Oct 2004
    Ort
    Hessen
    Beiträge
    310
    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....."

  10. #10
    Nospherates Nospherates ist offline Mitglied Gold
    Registriert seit
    Sep 2005
    Ort
    Essen
    Beiträge
    116
    du musst zuerst eine entsprechende Variabel deklarieren. Dann den Konstruktor, wie du ja schon korrekt geschrieben hast...
    Code :
    1
    2
    3
    4
    5
    6
    
    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 :
    1
    2
    3
    4
    
     // Kontonummer auslesen
    public int getKontonummer() {
      return kontonr;   
    }

    Gruß

    [EDIT] Siehe teilweise den schnelleren Vorposter [/EDIT]
     

  11. #11
    Avatar von morphi79
    morphi79 morphi79 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    155
    ah, ok jetzt kommt es langsam. Dann würde die Klasse Konto so aussehen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
      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?
     

  12. #12
    Nospherates Nospherates ist offline Mitglied Gold
    Registriert seit
    Sep 2005
    Ort
    Essen
    Beiträge
    116
    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ß
     

  13. #13
    Avatar von morphi79
    morphi79 morphi79 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    155
    Code :
    1
    2
    3
    4
    
    // Geldbetrag vom Konto abheben
        public boolean abheben(double betrag) {
    if (kontostand=<0) kontostand = kontostand - betrag;
        }

    so ?
     

  14. #14
    Nospherates Nospherates ist offline Mitglied Gold
    Registriert seit
    Sep 2005
    Ort
    Essen
    Beiträge
    116
    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ß
     

  15. #15
    Avatar von morphi79
    morphi79 morphi79 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    155
    Code :
    1
    2
    3
    4
    
    // Geldbetrag vom Konto abheben
        public boolean abheben(double betrag) {
    if (kontostand - betrag =<0) {kontostand = kontostand - betrag;return true}return false;
        }
    #
    und so?
     

Ähnliche Themen

  1. Microsoft Exchange 2007 Step by Step
    Von denisSCR im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 24.02.10, 11:25
  2. "making of" eines 3d characters - step by step
    Von pixel-panik im Forum Cinema 4D
    Antworten: 1
    Letzter Beitrag: 07.02.08, 11:15
  3. Step-by-Step Tutorial: Achieve Rapid Application Development with Seam+Eclipse+Tomcat
    Von Techieexchange im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 1
    Letzter Beitrag: 13.11.07, 22:43
  4. Antworten: 0
    Letzter Beitrag: 13.12.05, 21:09
  5. Suche Step-by-step Tut
    Von Oxygen im Forum 3D Studio Max
    Antworten: 1
    Letzter Beitrag: 22.07.01, 13:13