Seite 2 von 10 ErsteErste 123456 ... LetzteLetzte
Ergebnis 16 bis 30 von 141

Thema: Garf will Java-Programmierer werden - und schafft es nicht. Hilfe!

  1. #16
    Herr der Kühe Avatar von Wozer
    Registriert seit
    24.04.05
    Ort
    Muhmuh-Farm
    Beiträge
    3.437
    Ist doch logisch. Das "+" ist bei einem String einfach eine Anhängoperation. Du musst vorher den string in nen int verwandeln, dann addieren und dann kannste das wieder ausgeben.

    String zahl1 = JOptionPane.showInputDialog("Wieviel bieten Sie: ");
    int zahl2 = Integer.parseInt(zahl1); //hier vllt. noch checken bzgl. der "Zahl"
    zahl2++;
    //wenn man es genau machen will kann man hier noch
    //String out = Integer.toString(zahl2); oder String out = String.valueOf(zahl2); machen. Dann statt zahl2 halt out ausgeben. Aber int sollte er eigentlich auch nehmen
    JOptionPane.showMessageDialog(null,"Ich biete: " + zahl2 + " Also viel mehr!");

  2. #17
    Seufz Avatar von GarfieldMcSnoopy
    Registriert seit
    24.08.06
    Beiträge
    6.904
    Supi, Danke, so klappt's

    War leider im Lehrbuch noch nicht beschrieben - und so was "banales" kommt wohl später auch gar nicht mehr

    Danke sehr!
    Das ist alles, was wir tun können: immer wieder von neuem anfangen, immer und immer wieder. (Thornton Wilder)

  3. #18
    Macht Musik Avatar von Peregrin_Tooc
    Registriert seit
    21.05.05
    Ort
    St. Ingbert
    Beiträge
    11.144
    Schmeiß die Lehrbücher weg

    (Im Ernst: ohne Projekt lernst Du nicht programmieren - oder willst Du Dir nur die Porgrammiersprache Java draufziehen und kannst eigentlich schon programmieren? Dann vergiss, was ich sage Ansonsten such Dir was, was Du programmieren willst, und ich würde vorschlagen, Benutzeroberflächen vergisst Du erstmal. Schau Dich mal beim project Euler um, die haben da sehr nette Programmierprobleme, viel Zahlentheorie usw. da lernst Du Unmengen an Algorithmik)
    Zitat Zitat von Leonard Bernstein
    This will be our reply to violence:
    to make music more intensely,
    more beautifully,
    more devotedly than ever before.
    Meine Stories:
    Civ VI aus der Sicht von Civ IV BTS, englischer Weltraumsieg auf König
    Der Erste Kaiser wieder aufgenommen

  4. #19
    Administrator
    Registriert seit
    20.08.04
    Beiträge
    8.965
    In den meisten Büchern werden immer nur so "Bankbeispiele" behandelt. Da finde ich das Projekt Euler auch ansprechender. Allerdings besteht Java zu 90% daraus, Klassen und Objekte zu verstehen. Das lernt man nicht, wenn man mathematische Probleme lösen will.
    Verstand op nul, frituur op 180.

  5. #20
    Macht Musik Avatar von Peregrin_Tooc
    Registriert seit
    21.05.05
    Ort
    St. Ingbert
    Beiträge
    11.144
    Das ist ganz richtig. Dann sollte man hingehen, und z.B. ein primitives Schiffe versenken programmieren oder so, da hat man schon ne Menge Möglichkeiten für OO-Programmierung.
    Zitat Zitat von Leonard Bernstein
    This will be our reply to violence:
    to make music more intensely,
    more beautifully,
    more devotedly than ever before.
    Meine Stories:
    Civ VI aus der Sicht von Civ IV BTS, englischer Weltraumsieg auf König
    Der Erste Kaiser wieder aufgenommen

  6. #21
    Seufz Avatar von GarfieldMcSnoopy
    Registriert seit
    24.08.06
    Beiträge
    6.904
    Ach, ich bin ein totaler Anti - sowohl beim Programmieren als auch bei Mathe. Kann nur großes Kino werden Hab mir ein Java-Anfängerbuch gekauft, für ein paar Grundlagen schadet mir das nicht. Ob ich da durchsteige, wird sich zeigen - danke jedenfalls für eure Hilfe!
    Das ist alles, was wir tun können: immer wieder von neuem anfangen, immer und immer wieder. (Thornton Wilder)

  7. #22
    Ausgetreten
    Gast
    Zitat Zitat von GarfieldMcSnoopy Beitrag anzeigen
    Ach, ich bin ein totaler Anti - sowohl beim Programmieren als auch bei Mathe. Kann nur großes Kino werden Hab mir ein Java-Anfängerbuch gekauft, für ein paar Grundlagen schadet mir das nicht. Ob ich da durchsteige, wird sich zeigen - danke jedenfalls für eure Hilfe!
    Die wohl umfangreichste Java-Hilfe im Netz: http://openbook.galileocomputing.de/javainsel/

  8. #23
    Seufz Avatar von GarfieldMcSnoopy
    Registriert seit
    24.08.06
    Beiträge
    6.904
    Das Buch ist als Ebook sogar bei meinem Buch (Programmieren lernen mit Java) dabei Das wird dann der nächste Schritt Aber Danke für den Tipp! Apropos Tipp:

    public class u2 {

    public static void main(String[] args) {
    int a = 3;
    int b = 5;
    int c = 6;
    double x = 1.5;
    double y = 2.3;
    int int_ergebnis;
    double double_ergebnis;
    boolean b_wert;
    b_wert = a < b | c++ == 6;
    System.out.println("Es sind = " + b_wert);
    System.out.println("c= " + c);
    }
    }


    Mir geht's um diese Zeile:
    b_wert = a < b | c++ == 6;

    b_wert ist entweder true oder false, da a kleiner als b, ist b_wert true. DANN prüft er noch, ob c+1 gleich 6 ist - c+1 ist aber 7. Macht nix, ist ja ein "oder"-Befehl, also gibt das Java-Dingens "true" und "7" aus. Tut es auch, passt soweit. Was ich nicht verstehe: c ist aber 6. Heißt das, dass | (und auch &) gar nicht nur als Vergleichsbefehle gelten, sondern auch quasi durchgeführt werden?

    PS: Fühlt ihr euch in den Kindergarten zurückversetzt?
    Das ist alles, was wir tun können: immer wieder von neuem anfangen, immer und immer wieder. (Thornton Wilder)

  9. #24
    Macht Musik Avatar von Peregrin_Tooc
    Registriert seit
    21.05.05
    Ort
    St. Ingbert
    Beiträge
    11.144
    c++ bedeutet: erhöhe c um eins, ist eine Kurzschreibweise für den Befehl c=c+1, wenn Du nur prüfen willst, musst Du schon c+1 schreiben

    Im übrigen gibt es mit diesen Inkrementen und Dekrementen noch Feinheiten, wann die genau ausgeführt werden, das ist recht Bug-Anfällig...

    Außerdem sollte man fast immer || statt | und && statt & verwenden, da diese operatoren performanter sind (da sie verhindern, dass der zweite Ausdruck ausgewertet wird, wenn der erste true bzw. false ist).

    Nochwas: binde mal den Quelltext in PHP-Tags ein, das macht ihn besser lesbar:

    PHP-Code:
    public class u2 {
     
      public static 
    void main(String[] args) {
         
    int a 3;
         
    int b 5;
         
    int c 6;
         
    double x 1.5;
         
    double y 2.3;
         
    int int_ergebnis;
         
    double double_ergebnis;
         
    boolean b_wert;
         
    b_wert c++ == 6;
         
    System.out.println("Es sind = " b_wert);
         
    System.out.println("c= " c);
       }
     } 
    Zitat Zitat von Leonard Bernstein
    This will be our reply to violence:
    to make music more intensely,
    more beautifully,
    more devotedly than ever before.
    Meine Stories:
    Civ VI aus der Sicht von Civ IV BTS, englischer Weltraumsieg auf König
    Der Erste Kaiser wieder aufgenommen

  10. #25
    Ausgetreten
    Gast
    Zitat Zitat von GarfieldMcSnoopy Beitrag anzeigen
    Mir geht's um diese Zeile:
    b_wert = a < b | c++ == 6;

    b_wert ist entweder true oder false, da a kleiner als b, ist b_wert true. DANN prüft er noch, ob c+1 gleich 6 ist - c+1 ist aber 7. Macht nix, ist ja ein "oder"-Befehl, also gibt das Java-Dingens "true" und "7" aus. Tut es auch, passt soweit. Was ich nicht verstehe: c ist aber 6. Heißt das, dass | (und auch &) gar nicht nur als Vergleichsbefehle gelten, sondern auch quasi durchgeführt werden?

    PS: Fühlt ihr euch in den Kindergarten zurückversetzt?
    Also erstens ist logisches Oder || und logisches Und ist && - die einfachen sind bitweises Und/Oder.

    Zweitens sieht Code im Forum besser aus, wenn man es in einen CODE-Block packt z.B.

    Achtung Spoiler:
    Code:
    public static void main(String[] args) {
    int a = 3;
    int b = 5;
    int c = 6;
    double x = 1.5;
    double y = 2.3;
    int int_ergebnis;
    double double_ergebnis;
    boolean b_wert;
    b_wert = a < b | c++ == 6;
    System.out.println("Es sind = " + b_wert);
    System.out.println("c= " + c);
    }
    }


    Ubnd drittens zu deiner Frage: beim Einsatz von UND bzw. ODER und einer Berechnung (sprich Methoden-Aufruf oder arithmetische Operation wie c+1) wird das natürlich ausgeführt. Sonst kann man ja gar nicht wissen, ob die Bedingung erfüllt ist.

    c++ ist hier gewisser Maßen ein Sonderfall. Weil es ja bedeutet: "Führe alles aus und erhöhe dann c um 1." Probier mal
    Code:
    ++c == 6

  11. #26
    Registrierter Benutzer
    Registriert seit
    04.04.09
    Beiträge
    5.069
    Solche Vergleiche sollte man übrigens der Übersichtlichkeit halber klammern. (Also halt b_wert = (a < b) | (c++ == 6))

    Führe alles aus und erhöhe dann c um 1.
    Nur um das alles etwas einzugrenzen: c++ erhöht c um 1 nachdem das c, an dem der Operator hängt "verwendet" wurde - wenn man also irgendwas in der Art x = c++ + c haben sollte, dann ist das Ergebnis x = 2*c + 1 (und nicht x = 2*c - was wiederum das Ergebnis wäre, wenn man x = c + c++ schreibt).

  12. #27
    Seufz Avatar von GarfieldMcSnoopy
    Registriert seit
    24.08.06
    Beiträge
    6.904
    Ok, wieder mal Danke. Ich war unsicher, ob ein Vergleichsbefehl sich auf die Variable selbst auswirkt, jetzt weiß ich es Vermutlich *hüstelhüstel* wird noch das ein oder andere Problem auftauchen, ehe ich mich an Civ V oder Battlefield Next Generation wagen kann Merke: Mehr Klammern setzen und außerdem Quelltext in PHP-Tag zeigen. Ich versuche es zu beherzigen Nochmals vielen Dank für eure geduldige Hilfe!
    Das ist alles, was wir tun können: immer wieder von neuem anfangen, immer und immer wieder. (Thornton Wilder)

  13. #28
    Macht Musik Avatar von Peregrin_Tooc
    Registriert seit
    21.05.05
    Ort
    St. Ingbert
    Beiträge
    11.144
    wie gesagt, wenn Du
    PHP-Code:
    c+1<
    prüfst, ändert sich der Wert von c nicht
    Zitat Zitat von Leonard Bernstein
    This will be our reply to violence:
    to make music more intensely,
    more beautifully,
    more devotedly than ever before.
    Meine Stories:
    Civ VI aus der Sicht von Civ IV BTS, englischer Weltraumsieg auf König
    Der Erste Kaiser wieder aufgenommen

  14. #29
    Seufz Avatar von GarfieldMcSnoopy
    Registriert seit
    24.08.06
    Beiträge
    6.904
    So, diesmal ist es glaub ich eher eine Logik und keine Programmierfrage Schaltjahre berechnen. Ein JAhr ist ein Schaltjahr, wenn es durch 4 und durch 400 ohne Rest teilbar ist, bei einer Division durch 100 aber ein Rest bleibt. Das Programm gibt keinen Fehler, aber auch kein Schaltjahr. 1996 war übrigens Schaltjahr, 1997 klarerweise nicht. Aber trotzdem kommt immer ""kein Schaltjahr"?

    Dafür hab ich mir das mit dem PHP gemerkt!

    PHP-Code:

    /* Schaltjahrtest */

    import javax.swing.JOptionPane;

    public class 
    Schalt2 {
        public static 
    void main(String[] args) {
        
    String jahr;
        
    double zahl;
        
        
    jahr JOptionPane.showInputDialog("Welches Jahr soll geprüft werden?");
        
    zahl Double.parseDouble(jahr);
        
        
        if (((
    zahl 4) == 0) & (zahl 100 != 0) & (zahl 400 == 0)) {
            
    JOptionPane.showMessageDialog(nulljahr " ist ein Schaltjahr."); }
        else { 
    JOptionPane.showMessageDialog(nulljahr " ist kein Schaltjahr."); }



        }

    @Peregin_Tooc: Ja, das hab ich jetzt soweit geschnallt. Vorerst zumindest Übrigens hab ich die anderen Übungsaufgaben des Kapitels ganz allein mit Google und viel Schweiß geschafft!
    Das ist alles, was wir tun können: immer wieder von neuem anfangen, immer und immer wieder. (Thornton Wilder)

  15. #30
    Gast
    Gast
    Wenn ein Jahr duch 400 teilbar ist, ist es immer durch 100 ohne Rest teilbar, deswegen liefert deine Überprüfung als Ausgabe immer "kein Schaltjahr".

    Richtig wäre:
    Ein Jahr ist ein Schaltjahr, wenn es durch 4 teilbar ist.
    -> Ausnahme: Es ist keins, wenn es durch 100 teilbar ist.
    --> Ausnahme von der Ausnahme: Es ist trotzdem eins, wenn es durch 400 teilbar ist.

    Ich hoffe ich hab es dir jetzt verständlich genug gemacht, ohne die Lösung vorneweg zu nehmen.

Seite 2 von 10 ErsteErste 123456 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •