1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Complex

  • Krackmoe
  • 9. November 2007 um 20:51
  • Unerledigt
  • Krackmoe
    5
    Krackmoe
    Mitglied
    Punkte
    260
    Beiträge
    36
    • 9. November 2007 um 20:51
    • #1
    Java
    import java.util.*;
    
    
    public class Calculator {
    
    
        public static void main (String[] args) {
    
            Scanner s = new Scanner(System.in);
    
    
            
            ArrayList<Complex> storage = new ArrayList<Complex>();
    
    
            char rechenop = '0';
    
            rechenop= s.next().charAt(0);        
    
            while ( s.hasNextInt() ) 
            {
                try {
                    Complex b = new Complex(s.nextInt(),s.nextInt());
                    storage.add(b);
                       } catch (InputMismatchException e) {
                           System.out.println("FALSCHE EINGABE1");
                       } catch (NoSuchElementException e) {
                           System.out.println("FALSCHE EINGABE2");
                       } 
                   }
    
            Complex result = new Complex(0,0);
    
    
            switch (rechenop)
            {
                case '+':
    
                    for (int i = 0; i < storage.size(); i++) {
                    result.add(storage.get(i));
                    }
                    System.out.print(result.getAusgabe());
                    break;
                case '-':
    
                    for (int i = 0; i < storage.size(); i++){
                    result.sub(storage.get(i));
                    }
                    System.out.print(result.getAusgabe());
                    break;
                default:
                    System.out.print("FALSCHE EINGABE3");
    
            }
    
    
        }
    
    
    }
    Alles anzeigen

    Addition funktioniert wunderbar.

    Subtraktion nicht.

    Wenn ich z.b. - 1 2 3 4 eingebe, sollte rauskommen: -2 -2 bei mir kommt aber: -4 -6 raus

    Complex Klasse:

    Code
    public class Complex
    {
        private int imag, real;
        private int i = 0; //laufvariable
    
        public Complex(int real, int imag)
        {
            this.real = real;
            this.imag = imag;
        }
    
    
        public String getAusgabe()
        {
            return(this.real + " " + this.imag);
        }
    
        public void add(Complex c)
        {
            real += c.real;
        imag += c.imag;
        }
    
        public void sub(Complex c)
        {
            if (i == 0)
            {
                real = c.real;
                imag = c.imag;
            }
            else
            {
            real -= c.real;
            imag -= c.imag;
            }
            i++;
        }
    }
    Alles anzeigen


    http://paste-it.net/4449

  • Reinhard Seiler
    2
    Reinhard Seiler
    Mitglied
    Punkte
    40
    Beiträge
    8
    • 9. November 2007 um 21:28
    • #2

    Ist doch logisch, ne?

    Deine erste komplexe Zahl ist 0,0. Von dieser Zahl ziehst du jede eingegebene Zahl ab.

    Lösung: du musst deine Variable result mit der ersten komplexen Zahl füttern und sie aus deinem store werfen.


    Lg,
    Reinhard

  • Krackmoe
    5
    Krackmoe
    Mitglied
    Punkte
    260
    Beiträge
    36
    • 9. November 2007 um 21:41
    • #3

    Sodala hab den Fehler mit der Subtraktion nicht mehr.

    Jedoch, dass er mir einfach zuviele Meldungen raushaut beim Ergebnis.

    Z.b. wenn ich nur + 1 2 3 eingebe (also eine Zahl zuwenig) haut er mir 1. Falsche Eingabe 2 raus, was ja noch richtig ist... ABER dann auch nochmal das Ergebnis..

  • t_vie
    1
    t_vie
    Mitglied
    Punkte
    5
    Beiträge
    1
    • 6. April 2009 um 12:16
    • #4

    Muss momentan das selbe Programm schreiben bin aber noch ein Anfänger und frag mich ob das auch mit Werkzeugen aus den ersten 4 Lektionen der Vorlesung eprog möglich ist.
    Hab noch keine Ahnung von Exceptions und von ArrayList!:coolgrim:

  • davide
    23
    davide
    Mitglied
    Reaktionen
    110
    Punkte
    5.660
    Beiträge
    1.048
    • 6. April 2009 um 13:34
    • #5

    die deadlines für die beispiele sollten schon zulassen dass bis dahin die anzuwendenden konstrukte durchgenommen wurden

    Sich berühren ist wie Afrika, fremd und kalt.

    http://www.penisland.net

    http://runtastic.com/

  • anwesender
    8
    anwesender
    Mitglied
    Reaktionen
    12
    Punkte
    647
    Beiträge
    125
    • 17. April 2009 um 12:59
    • #6

    Für das Beispiel braucht man auch keine ArrayList :)

    aber jedem der noch nichts hat, kann ichs mal ca. in deutscher sprache notieren, code online stellen soll ja nicht so gut sein aufgrund der plagiatsüberprüfung...

    Code
    Operator einlesen (mittels Scanner, als String)
    1. Komplexe Zahl [1] einlesen (mittels Scanner, als int)
    solange Elemente im Scanner sind
    {
        nächste Komplexe Zahl [2] einlesen
        wenn Operator = "+"
            addiere komplexe Zahl[2] zu 1. komplexer Zahl [1]
        wenn Operator = "-"
            subtrahiere komplexe Zahl[2] von 1. komplexer Zahl [1]
        falls ein unbekannter Operator auftritt -> fehler passiert
    }
    wenn kein fehler passiert ist
        erste komplexe zahl [1] ausgeben (enthält dann schon das ergebnis)
    falls doch ein fehler passiert ist
        "falsche eingabe" ausgeben
    Alles anzeigen


    wenn sich eine zahl nicht einlesen lässt (weil zu wenig zahlen im scanner sind) tritt ebenfalls ein fehler auf; lässt sich alles über scanner.hasNext() überprüfen...

    hoffe das hilft ein bisschen :)

    Thomas
    P.S.: der Thread war noch aus 2007 :winking_face:

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung