# Einfacher Taschenrechner



## Bort (15. Apr 2008)

Guten Tag!

Ich bin gerade am machen meiner Algo Hü.

Hab euer Forum schon vor etwa ner Woche entdeckt.

Meine Hauptsächliche bitte wäre eigentlich nur, ob ich wo in meinem Code etwas verbessern kann. Da ich eigentlich keine Java erfahrung hab. Deswegen bin ich mir hierbei auch eher unsicher. Vom Code und der Ausführung passt eigentlich alles, deswegen stell ich jetzt die Spezifikation nicht rein.

Aber evtl. sieht jemand von euch eine Verbesserung.

Augenmerk bitte bei dem folgenden:
Case(0|1|2|3...|9)
Gibt es dafür eine Vereinfachung?

oder

return cache
ist das korrekt? oder sollte man write verwenden und wie wird write verwendet? "write cache"?

Über eure Hilfe wäre ich dankbar.



```
Int keyPress(↓char key){
	Static int eingabe
	Static int cache
	Switch (key) {
		Case(0|1|2|3...|9){
			eingabe=eingabe*10+eingabe
		}
Case (C){
			eingabe = 0
			cache = 0
		}
		Case(+){
			cache=eingabe+cache
			return cache
		}
	}
}
```

PS.: Habe die 5 einhalb Regeln gelesen. Wenn mir hier keiner weiterhelfen kann/will macht das auch nichts. gibts halt ein paar punkte abzug. ich werds überleben.

Danke schon im vorhinein,
mfg bort


----------



## SlaterB (15. Apr 2008)

welche Programmiersprache ist das? Java jedenfalls nicht von der gesammten Syntax her

Case(0|1|2|3...|9) gibts in Java auch nicht


----------



## Bort (15. Apr 2008)

Nun ja, es ist Jana. Eine Ableitung von Java. Jedoch sollte sich der Code von Java, was ich weis nur von den ";" am Ende unterscheiden und wenigen Kleinigkeiten.
Im Case soll es heißen --> 1 Oder 2 Oder 3 ...

Das habe ich aus wikipedia for jana ( http://de.wikipedia.org/wiki/Jana_(Informatik) ) mit dem |

Wie würdest du in Java diesen Case formulieren?


----------



## Noar (15. Apr 2008)

Hi JANA ist _keine_ Programmiersprache, sondern, wie auch die von dir genannte Wikipedia weiß:



> Jana (Java-Based Abstract Notation for Algorithms) ist eine in der Informatik gebräuchliche Beschreibungssprache zur Formulierung von Algorithmen, ein so genannter Pseudocode. Sie ist an die Programmiersprache Java angelehnt.



In Java gibt es dein Case-Konstrukt natürlich irgendwie schon.
Dein Beispiel müsste glaub ich, ungefähr so aussehen:


```
switch (key) {
      case '0' : case '1': ... : case '9': 
         eingabe=eingabe*10+eingabe;
         break;
      case 'C'
         eingabe = 0;
         cache = 0;
         break;
      case '+':
         cache=eingabe+cache;
   }
```


----------



## Marco13 (15. Apr 2008)

Noar hat gesagt.:
			
		

> Hi JANA ist _keine_ Programmiersprache, sondern, wie auch die von dir genannte Wikipedia weiß:
> 
> ```
> case '0' : case '1': ... : case '9':
> ```


Was so viel heißen soll wie

```
case '0' : case '1':  case '2': case '3': case '4': case '5': case '6': case '7': case '8':  case '9':
```
(Das mit den drei Punkten ist nämlich AUCH nur Pseudocode :wink: )

Besser wäre in diesem Fall aber vmtl, den key mit if's abzufragen:

```
if (key => '1' && key <= '9') 
{ 
    machWas();
}
else
{
    // Hier evtl. noch ein Switch....
}
```

"Bort"?! Wer heißt denn so? Sind wir hier in Itchy&Scratchy-Land oder was?!  :wink:


----------



## Bort (15. Apr 2008)

Oh jetzt ist mir ein weiteres Lichtlein aufgegangen.

Das heißt was wir hier machen ist eigenltich kein Programmieren. Sondern nur unsere gedanken zu einem Text in einer unwirklichen Sprache niederschreiben.
Das ist gut zu wissen, dann hat man ja eigentlich sehr viele Freizüge.

Heisst das jetzt wenn ich noch weitere fragen zu späteren HÜs häte, dann bin ich auch in diesem Forum "irgendwie" falsch?



> "Bort"?! Wer heißt denn so? Sind wir hier in Itchy&Scratchy-Land oder was?!


Ich hab aber noch ein Namensschild bekommen


----------



## Noar (15. Apr 2008)

@ Marco13:
Hast natürlich Recht. Hätte das ausschreiben sollen...


@ Bort:
Kannst schon weiter deine Fragen stellen. Der ein oder andere wird sich schon finden, der Ahnung hat.


----------

