Taschenrechner Ausgabe in einer Zeile

hayy leute,
mein lehrer hat mir die aufgabe gegeben einen taschenrechner zu programmieren ... aber nicht als applet sondern als eine simple eingabe
also in der ausgabe steht in der ersten zeile :
geben sie zahl eins ein : 15
geben sie ein rechenoperator ein : +
geben sie zahl zwei ein : 15
das ergebniss lautet : 30

jetzt will mein lehrer aber das das alles in einer zeile geschieht --> 15 + 15 = 30

wie soll das gehen ???
danke im voraus :)
 
Zuletzt bearbeitet von einem Moderator:
M

MiDniGG

Gast
Mit
Code:
System.out.print(String str);
wird die Zeile nicht umgebrochen...
 
hmm ..
also sry aber .. bin ein anfänger und kann damit nich viel anfangen xDD
also das ist mein programm :

Java:
import java.util.*;

class calc2
{

    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("Eingabe Rechenoperator:	");
            rechenop = s.next().charAt(0);

        System.out.print("Geben sie Zahl 2 ein:	");
            b = s.nextInt();


        System.out.println();


        switch (rechenop)
        {
        case '+':
            ausgabe = a+b;
            System.out.println("Das Ergebniss lautet: " +ausgabe);
            break;

        case '-':
            ausgabe = a-b;
            System.out.println("Das Ergebniss lautet: " +ausgabe);
            break;

        case '*':
            ausgabe = a*b;
            System.out.println("Das Ergebniss lautet: " +ausgabe);
            break;

        case '/':
            ausgabe = a/b;
            System.out.println("Das Ergebniss lautet: " +ausgabe);
            break;

        default:
            System.out.println("Falsche Eingabe");
            break;
		}
	}
}

was muss ich wo einsetzten damit am ende alles in einer zeile steht ?
 
Zuletzt bearbeitet von einem Moderator:
M

MiDniGG

Gast
Hm. OK. Versteh es nicht ganz... :)

Denn teilweise wird ja was vom User eingeben (15 + 15) und teilweise vom Programm ausgegeben ( = 30).
Das kann man eigentlich nicht in eine Zeile schreiben... -.-'
Was Du machen kannst ist, wie ARadauer schon sagte die Eingabe vom User aufzusplitten und dann mit den einzelnen Teilen Rechnern. Am Ende könntest Du dann nochmal alles in einem ausgeben.

Also bspw.:
Java:
System.out.print(a + " " + op + " " + b + " = " + erg);

oder so.
 
verstehe ich nicht :(
also theoretisch muss ja nur hier etwas verändert oder hinzugefügt werden

System.out.print("Geben sie Zahl 1 ein: ");
a = s.nextInt();

System.out.print("Eingabe Rechenoperator: ");
rechenop = s.next().charAt(0);

System.out.print("Geben sie Zahl 2 ein: ");
b = s.nextInt();


System.out.println();




oder ???
 
M

MiDniGG

Gast
Ich check immer noch nicht was Du willst.
Willst Du, dass der User "15 + 15" eingibt und dann 30 bekommt?
Oder soll der User
15
+
15
eingeben und bekommt dann "15 + 15 = 30" also einfach nochmal die ganze Rechnung?
Oder soll der User "15 + 15" eingeben und bekommt dann in der selben Zeile ein " = 30" angehängt?

Letzteres geht nicht!
Die ganze Rechnung nochmal aufgeben steht ja oben in meinem letzten Beitrag.
Beim Ersten musst Du einfach schaun, dass Du bspw. bei Leerzeichen splittest und dann mit den einzelnen Werten weiter umgehst.

bspw.:
Java:
String[] arr = str.split(" ");
int a = Integer.parseInt(arr[0]);
int b = Integer.parseInt(arr[2]);
String op = arr[1];

wobei str dann der String ist den der User eingegeben hat.
 
S

SlaterB

Gast
@javanator1994
am Anfang ein unsinniger Titel mit lauter '?!?!?'
nun Java-Code ohne Java-Tags

gib dir doch ein bisschen Mühe im Forum, wenn schon nicht in Java..
 
also
der user soll in einer zeile eingeben 15 + 15
und ich hab das so verstanden das hinterher in der selben zeile noch = 30 herauskommen soll was aber deiner aussage nach nicht möglich ist
wäre es möglich das der user die eingabe die er macht also 15 + 15 in einer zeile schreibt und das was berechnet wird also = 30 in der nächsten zeile ausgegeben wird ?
 
M

MiDniGG

Gast
Hab ich schon geschrieben...
Den String splitten (wie in meinem Beispielcode)... Vorraussetzung dafür ist, dass der User "15 + 15" eingibt. Also mit Leerzeichen. Ansonsten wie ARadauer meinte String#indexOf und String#substring nutzen! (die JAVA API hilft da!)
 
achso oke danke
aber wie splittet man denn einen string ?
oder wie und wo genau muss ich String#indexOf / String#substring verwenden ?
sry leute aba wir haben in der schule bis jetzt nur "hallo welt" programmiert xD und mein betreuer erwartet schon das mit dem taschenrechner von mir also ich peil nixx :(
 

Jango

Gesperrter Benutzer
achso oke danke
aber wie splittet man denn einen string ?
oder wie und wo genau muss ich String#indexOf / String#substring verwenden ?
sry leute aba wir haben in der schule bis jetzt nur "hallo welt" programmiert xD und mein betreuer erwartet schon das mit dem taschenrechner von mir also ich peil nixx :(

Lesen!
Sich selber bilden!

edit:

Alles in einer Zeile anzuzeigen geht nicht, weil 'Enter' auch immer ein Zeilenumbruch ist.
In C wäre sowas möglich, weil es da formatierte Ein-Ausgaben gibt (Stichwort: ungepuffert).
 
Zuletzt bearbeitet:

ARadauer

Top Contributor
aber wie splittet man denn einen string ?
oder wie und wo genau muss ich String#indexOf / String#substring verwenden ?
sry leute aba wir haben in der schule bis jetzt nur "hallo welt" programmiert xD und mein betreuer erwartet schon das mit dem taschenrechner von mir also ich peil nixx
Mhn sollen wir dir jetzt deine Aufgabe schreiben?
hier gibts die Doku von der Standard API Java 2 Platform SE 5.0 Links unten die Klasse String suchen, da sind die Methoden beschrieben.

Wenn du konkrete Fragen stellst helfen wir dir gerne. Wenn du nur rum jammerst, wird dir das hier nix helfen ;-)

Das wär noch eine Lösung:
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class Rechner {

   public static void main(String[] args) throws IOException {
      BufferedReader r = new BufferedReader(new InputStreamReader(System.in));

      System.out.print("Formel eingeben: ");
      String formel = r.readLine();
      ScriptEngineManager factory = new ScriptEngineManager();
      ScriptEngine engine = factory.getEngineByName("JavaScript");

      try {
         engine.eval("var v = eval('" + formel + "')");
         double b = (Double) engine.get("v");

         System.out.println("Ergebnis: " + b);
      } catch (ScriptException e) {
         System.out.println("Das war wohl nix");
         e.printStackTrace();
      }

   }
}
 
jaa schon kla :)
aba die aufgabe hat mir nicht mein lehrer sondern mein betreuer vom praktikum gegeben ich mache ein einjahrespraktikum ...^^
weil in der schule sind wir im mom dabei zu lernen was integer bedeutet xD
in der schule komme ich ja auch gut mit nur mein betruer erwartet etwas zu viel .. ^^
 

ARadauer

Top Contributor
der schule komme ich ja auch gut mit nur mein betruer erwartet etwas zu viel
tut er nicht! Jeder zweite Student darf einen Taschenrechner schreiben...

ok wo ist nun das problem. du suchst dir mit indexOf das +,-,* oder das /
dann schneidest du dir mit substring die beiden zahlen raus und parst mit Integer.parse zu Zahlen und dann rechnest du das ergebnis aus. jed nach deas du für ein rechenzeichen gefunden hast...

was klappt jetzt genau nicht?
 
Zuletzt bearbeitet:
doch tut er !!
das hat nix mit statistiken zu tun sondern etwas mit den erfahrungen die die studenten schon haben ! du kannst nicht einen studenten der vorher nix mit it gemacht hat und einen studenten der sich schon siet jahren damit beschäftigt vergleichen !!

ja jetzt klappt ja alles vorher hat es nicht geklappt
 

thE_29

Top Contributor
Wenn hier nicht gleich Ruhe ist, hagelt es Sperren..

Kanns ja echt nicht sein, dass man sich immer wie in einem Kindergarten benehmen muss!
 

ARadauer

Top Contributor
OHHHH jetzt hab ich das alles nicht lesen könne.. Flames sind doch immer eine Erheiterung eines trockenen Programmerier Altage ;-)
 

Jango

Gesperrter Benutzer
OHHHH jetzt hab ich das alles nicht lesen könne.. Flames sind doch immer eine Erheiterung eines trockenen Programmerier Altage ;-)

Hahahaha...
Hier versteht man einfach keinen Spaß - oder die Moderatoren handeln nach Lust und Laune - dann haben sie Spaß...:bahnhof:

edit:

Wenn hier nicht gleich Ruhe ist, hagelt es Sperren..

Mit welchem juristischem Hintergrund? Weil dir die Suppe gerade nicht schmeckt?
 
Zuletzt bearbeitet:
T

Tomate_Salat

Gast
Schade hätte das geflame gerne gelesen, muss ja gut abgegangen sein ^^.

Schau vllt mal hier Parser für Math. formeln.

Weis nicht mehr, wie tiefgründig das ganze war, aber vllt hilfts ja.

MFG

Tomate_Salat
 

Neue Themen


Oben