Wenn ich einen Zahlenbereich haben will von 1-10... mach ich dann einfach Math.random()*10 ?
Beiträge von Krackmoe
-
-
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..
-
Java
Alles anzeigenimport 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"); } } }
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
Alles anzeigenpublic 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++; } }
-
Beide Dateien sind im selben Verzeichnis.
Daniel.java lässt sich kompilieren.
-
Ja hab eine Klasse Daniel erstellt in Daniel.java
-
Java
Alles anzeigenpackage ds; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; import java.io.IOException; public class Calculator { public static void main (String[] args) throws IOException{ int a=0; int b=0; int ausgabe=0; ArrayList<Daniel> storage = new ArrayList<Daniel>(); BufferedReader in = new BufferedReader (new InputStreamReader(System.in)); String eingabe = in.readLine(); StringTokenizer s = new StringTokenizer( eingabe ); new Daniel(Integer.parseInt(s.nextToken()),Integer.parseInt(s.nextToken())); rechenop = s.nextToken().toCharArray(); while ( s.hasMoreTokens() ){ switch (rechenop) { case '+': System.out.println(getErgebnis()); break; case '-': System.out.println(getErgebnis()); break; } } } } Er haut mir aber immer die Fehlermeldung raus: "cannot find symbol Daniel" Kenn mich einfach zuwenig aus um den Fehler darin zu finden.
-
Check ich nicht, bei mir kommt NICHTS. Er tut einfach so als ob er noch auf eine Eingabe wartet.
-
das mit dem case ' ': hab ich schon ausprobiert. Funktioniert aber leider damit nicht.
Und rein mim default gehts auch nicht, dann tut er nämlich einfach gar nichts und gibt mir keine "Falsche Eingabe" aus. -
Möchte noch eine case Anweisung eingeben, dass falls rechenop ein leerzeichen sein sollte oder gar nichts eingegeben wird, das auch Falsche Eingabe erscheint.
Finde im ganzen Internets nichts dazu, wie ich so einen Case erstelle.Java
Alles anzeigenimport java.util.*; public class calc { public static void main (String[] args) { double a,b; double ausgabe=0.00; char rechenop; Scanner s = new Scanner (System.in); System.out.print("Geben sie Zahl 1 ein: "); a = s.nextInt(); System.out.print("Geben sie Zahl 2 ein: "); b = s.nextInt(); System.out.print("Geben sie den Rechenoperator ein: "); rechenop = s.next().charAt(0); System.out.println(); switch (rechenop) { case '+': ausgabe = a+b; System.out.print("Das Ergebnis lautet: " +ausgabe); break; case '-': ausgabe = a-b; System.out.print("Das Ergebnis lautet: " +ausgabe); break; case '*': ausgabe = a*b; System.out.print("Das Ergebnis lautet: " +ausgabe); break; case '/': ausgabe = a/b; System.out.print("Das Ergebnis lautet: " +ausgabe); break; default: System.out.print("Falsche Eingabe"); break; } } }
-
Nein kenne mich noch nicht mit Arrays aus.
Habs mir anhand deines Bsps angeschaut wie das mit Arrays funktioniert und ist für mich logisch. Danke.Möchte das Programm trotzdem noch irgendwie, auf meine Weise fertig bekommen ;P
-
Wah mich macht dieses a<b, b<c, c<a ganz crazy Ich hab da keinen durchblick mehr
-
Sodala jetzt hab ich das ganze bisel überarbeitet. Funktioniert jetzt auch.
Java
Alles anzeigenimport java.util.*; public class median { public static void main (String[] args) { int a,b,c; Scanner s = new Scanner (System.in); System.out.print("Geben sie Zahl 1 ein: "); a = s.nextInt(); System.out.print("Geben sie Zahl 2 ein: "); b = s.nextInt(); System.out.print("Geben sie Zahl 3 ein: "); c = s.nextInt(); if ( a < b ) if ( b < c ) System.out.print("Der Median lautet: " +b); if ( a < c ) System.out.print("Der Median lautet: " +c); else System.out.print("Der Median lautet: " +a); if ( b < c ) if ( a < c ) System.out.print("Der Median lautet: " +a); else System.out.print("Der Median lautet: " +c); else System.out.print("Der Median lautet: " +b); } }
Nur gibt er mir jetzt immer a b und c aus. Dabei will ich ja nur einen einzigen Wert nämlich den Mittelwert.
Jemand nur einen kleinen Tipp, damit ich in die richtige Richtung zu denken beginne? -
Java
Alles anzeigenimport java.util.*; public class median { public static void main (String[] args) { int x1; int x2; int x3; int median; int zahleingeben; Scanner a = new Scanner (System.in); Scanner b = new Scanner (System.in); Scanner c = new Scanner (System.in); System.out.print("Geben sie Zahl 1 ein: "); zahleingeben = a.nextInt(); System.out.println(); System.out.print("Geben sie Zahl 2 ein: "); zahleingeben = b.nextInt(); System.out.println(); System.out.print("Geben sie Zahl 3 ein: "); zahleingeben = c.nextInt(); System.out.println(); if ( a < b) { if ( b < c ) System.out.print(b); if ( a < c) System.out.print(c); else System.out.print(a); } } }
Programm ist natürlich noch nicht fertig. Aber ich kanns ned komplieren.
Weil er mir immer die Fehlermeldung Operator "<" cannot be applied to java.util.scanner.Hab ich da irgendwas entscheidendes vergessen?
-
Danke Leute
Wenn ich ein großes Char mache, sagt er mir immer cannot find Symbol.
-
Muss ich einen Anfangswert zuweisen? Kann ich nicht nur "" machen? Das funktioniert nämlich nicht.
Ich würd gern char ausweis = ""(j,n)"; machen aber das geht auch ned -
import java.util.*;
public class Flug
{public static void main (String[] args)
{int schalter;
char ausweis;
char j;
Scanner einlesen = new Scanner(System.in);
System.out.println("Wollen Sie zu Schalter 1 oder Schalter 2 gehen? ");
schalter = einlesen.nextInt();
if ( schalter == 1) {
System.out.println("Sie haben Schalter 1 gewaehlt!");
System.out.println("Wollen sie ihren Ausweis herzeigen? ");
ausweis = einlesen.next().charAt(0);
}
if ( ausweis == 'j')
{
System.out.println("Danke, auf Wiedersehen");
}--------------------------------
Das ist nur der erste Teil. Dürfte aber schon nur so vor Fehlern strotzen.
Ich hab 0 Plan warum!!
Allein das er andauernd meint, dass die Variable ausweis nicht initialisiert worden ist, versteh ich nicht. Hab sie oben doch eh mit char ausweis initialisiert!?