# PseudoCode -> Java-Code



## ILEmax (12. Nov 2009)

Hallo Java Profis,
ich bin Softwareentwickler, leider völlig ohne JAVA Kentnisse.
Eine Praktikantin sollte folgendes Pgm schreiben, hat es aber nicht hinbekommen.
Unser Java Entwickler sagt nun das geht auch nicht (ohne weitere Begründung, er ist manchmal so)

Ich hoffe ihr könnt meinen Pseudo Code lesen


```
i = 0
schleife solange i = 0
   bildschirmausgabe : bitte zahl eingeben (ein 'weiter' und ein 'ende' Button)
   ergebnis = ergebnis + zahl
   wenn ende gedrückt, i = 1
endeschleife
bildschirmausgabe ergebnis
```

Es wäre schön, wenn ihr einem Prozeduralen Entwicker mal erklären könntet, warum das nicht in java zu programmieren ist.
Wenn es doch geht würde ich die Lösung gerne der Praktikantin geben.

vielen Dank
Max


----------



## tfa (12. Nov 2009)

Klar geht das. Sogar ziemlich einfach.

Ist das ein verkappter Versuch, sich die Hausaufgaben machen zu lassen, oder was?


----------



## diggaa1984 (12. Nov 2009)

hm sieht mir auch irgendwie so aus .. ne praktikantin .. die nicht mal das schafft, hat den bereich verfehlt .. nen java-entwickler der die zeilen nicht umsetzen kann, wohl noch mehr


----------



## SlaterB (12. Nov 2009)

für zukünftige weitere Probleme mit Praktikanten:
Galileo Computing :: Java ist auch eine Insel (8. Auflage)

ist doch ein Klacks, da die Grundlagen zu lernen wenn man schon Softwareentwickler ist,
wenn es irgendeine Exoten-Sprache wäre.., aber Java oder C++, das ist doch gut dokumentiert


----------



## ILEmax (12. Nov 2009)

Wow, das geht ja schnell.
aber ...
Nein, das ist kein verkappter Versuch Hausaufgaben zu machen
Vielleich muß ich noch sagen das es in SWING gemacht werden soll
Die Lösung unseres java Menschen war, die Werte in einer dimesion (oder so ähnlich) zu speichern und später in einer Schleife mit get. raus zu lesen.
M.E. macht man sich damit den HSp voll, wenn auch nicht in diesem Beispiel.
es geht um Programmier Stil 

wär schön, wenn ihr doch ein bischen code hättet. 
(Die Praktikantin ist mittlerweile etwas veunsichert, da ich sage es geht (und es nicht beweisen kann), während unser Java mensch sagt, das geht SO nicht.

Danke
Max


----------



## ILEmax (12. Nov 2009)

SlaterB hat gesagt.:


> für zukünftige weitere Probleme mit Praktikanten:
> Galileo Computing :: Java ist auch eine Insel (8. Auflage)
> 
> ist doch ein Klacks, da die Grundlagen zu lernen wenn man schon Softwareentwickler ist,
> wenn es irgendeine Exoten-Sprache wäre.., aber Java oder C++, das ist doch gut dokumentiert



Nee, wenn mann ILERPG und Cobol gelernt hat ist Java ein Universum weit weg


----------



## diggaa1984 (12. Nov 2009)

> Die Lösung unseres java Menschen war ..


also gehts doch!?

im zweifelsfall meint er mit dimension n array in dem die ganzen eingaben jeweils abgelegt werden, alternativ auch eine Liste, und dann wenn man auf ende klickt einfach die ganze liste aufaddieren und ausgeben.

kommt zwar nich ganz hin mit 
	
	
	
	





```
ergebnis = ergebnis + zahl
```
 aber am ende steht das gleiche da


----------



## SlaterB (12. Nov 2009)

wie wärs wenn du es in irgendeiner Sprache programmierst, dann wäre die Übersetzung leicht,
Dimensionen gibts nicht, Listen und Arrays dagegen schon, die sind sicher auch in anderen Sprachen bekannt

> Nee, wenn mann ILERPG und Cobol gelernt hat ist Java ein Universum weit weg 

und dann bist du für die Java-Praktikantin zuständig und nicht einer der Java-Menschen?
ungünstig gelaufen

(sorry für die Späße drumherum)


----------



## ILEmax (12. Nov 2009)

@diggaa1984
ja, es geht. Nur ist es halt nicht mit der Schleife gelöst.

Ich habs wohl falsch erklärt. Es soll nicht 'Das gleiche Ergebnis' rauskommen sondern so gut wie möglich der Pseudocode (im Orginal ein Strucktogram aus alten RPG-Ausbilder Tagen) umgesetzt werden

@SlaterB
In ILERPG Oder Cobol ist das schnell gemacht.
aber wer will heute noch RPG lernen 
RPG (Programmiersprache) ? Wikipedia


Ich bin 'Chef' und misch mich immer ein, wenn jemand sagt: das geht nicht


gehts nun 'genau so'  oder gibt's nur eine Lösung mit gleichem Endergebnis (die hat Sie schon)
Danke
Max
Max


----------



## Der Müde Joe (12. Nov 2009)

>gehts nun 'genau so' oder gibt's nur eine Lösung mit gleichem Endergebnis (die hat Sie schon)

naja. siehe Link. Ersetze while(true) mit (i == 0) und ersetzt den Scanner und sysos durch Swing.

http://www.java-forum.org/java-basi...11-rechnen-komplexen-zahlen-2.html#post577651


----------



## diggaa1984 (12. Nov 2009)

naja sobald swing ins spiel kommt ists mit einer programmschleife, welche alles gemäß pseudocode erledigt eh schlecht, da hier aufgrund des Eventhandlings (Button-Aktionen) Methoden angesprochen werden, die dann den Programmfluss aus prozeduraler Sicht unterbrechen.


```
//wird automatisch von Java beim Druck auf Button aufgerufen, kein manueller Aufruf!!!
public void actionPerformed(ActionEvent e) {
   //pseudomaessig
   
   /* wenn e.source == weiterButton
    *    dann addNumber(eingabefeld.getText()) .. eigene Methode in der Klasse
    *
    * wenn e.source == endeButton
    *    dann printResult() .. eigene Methode in der Klasse
    */
}
```
Das muss man nun natürlich ordentlich verknüpfen mit den Gui-Komponenten etc.

Wenn du Swing nutzt hast du keine explizite Endlosschleife die das Programm am Leben hält. Der Programmfluss wird durch Eventhandling bestimmt.


----------



## tfa (12. Nov 2009)

diggaa1984 hat gesagt.:


> naja sobald swing ins spiel kommt ists mit einer programmschleife, welche alles gemäß pseudocode erledigt eh schlecht, da hier aufgrund des Eventhandlings (Button-Aktionen) Methoden angesprochen werden, die dann den Programmfluss aus prozeduraler Sicht unterbrechen.


Sowas kann man gut in einer eigenen Komponente (mit modalem Dialog) kapseln. Siehe JOptionPane.
Damit könnte man den Pseudo-Code praktisch 1:1 umsetzen.


----------



## ILEmax (12. Nov 2009)

Danke an alle 

@Der Müde Joe
aber sie sagt mit der Konsolenausgabe kann sie das.
und mit 





> ersetzt den Scanner und sysos durch Swing.


Kommt Sie nicht klar.
Was ist sysos ?


@diggaa1984
Schade das ich kein Java kan. Ich werde unserem Java Entwickler diesen Code Snip zeigen
Unsere Praktikantin (und ich) versteht das nicht


@tfa
Das hört sich recht komplex an.
Oh mann, wenn ich gewust hätte was ich da anrichte ...


Ich vermute mal, für jemand der 
- seit 9 Tagen Java macht, 
- weiblich ist (nicht böse sein)
- 15 Jahre alt ist 
- Vorkentnisse: angeblich ein bischen Schul VB


ist die Antwort " Das geht so nicht" vermutlich die richtige.

vielen Dank für Eure Bemühungen  
Max


----------



## diggaa1984 (12. Nov 2009)

ILEmax hat gesagt.:


> Ich vermute mal, für jemand der
> - seit 9 Tagen Java macht,
> - 15 Jahre alt ist
> - Vorkentnisse: angeblich ein bischen Schul VB



ist Swing definitiv too much verlangt, wenn sie es auf der Konsole kann ok, aber Swing kann man nich eben mal an einem Tag verstehen oder erfolgreich probieren ohne massig Aufwand mit Tutorials oder Büchern zu bewältigen. 
Und 9 Tage Jave .. hm weiss gar nich wie weit ich nach 9 Tagen war, aber ich hatte bestimmt noch mit der Synatax und dem OOP-Konzept zu kämpfen ^^

@sysos = System.out.println() .. entsprich der Ausgabe auf dem Standard-Ausgabe-Kanal (bspw. der Konsole)


----------



## tfa (12. Nov 2009)

Ich denke auch, dass die Aufgabe für eure Praktikantin so zu schwierig ist. Am besten lässt man für den Anfang die Geschichte mit den Buttons weg und programmiert alles für die Textkonsole. Eine leere Eingabe ist dann eben das Abbruchkriterium für die Schleife.


----------



## Der Müde Joe (12. Nov 2009)

>Schade das ich kein Java kan. Ich werde unserem Java Entwickler diesen Code Snip zeigen

schnip...

```
import javax.swing.JOptionPane;


public class Input {

	public static void main(String... args) {
		int sum = 0;
		while (true) {
			String s = JOptionPane.showInputDialog("Enter Number: sum is " + sum + " so far");
			if (s != null) {
				int i = Integer.parseInt(s); // exception hanling
				sum += i;
			} else {
				break;
			}
		}
		JOptionPane.showMessageDialog(null, "result is: " + sum);
	}
}
```


----------



## ILEmax (12. Nov 2009)

Danke müder Joe!

Sie hat es abgeschrieben und es geht. 
ich find's gut aber Sie und unser Java Mensch behaubten nur das wäre wieder was anderes.

Ich hat mich da nun raus, habe(glaube ich), mit meiner proceduralen denke und meinem einmischen schon genug Schaden angerichtet.

Danke nochmal an alle Helfer
Werde das Forum an die Praktikantin weiterempfehlen.
(an die Moderatoren: Meinen Forumsaccount könnt ihr löschen, ich misch mich nicht mehr in die Javaanleitung unserer Praktikanten ein)

Danke
Max


----------



## Der Müde Joe (12. Nov 2009)

>aber Sie

Naja..kann das nix dagegen sagen...programmier ja erst seit 10 Jahren Java und nicht seit 9 Tagen.

>Java Mensch behaubten nur das wäre wieder was anderes.

Ist halt nich so OO, aber macht genau das oben beschriebene (ausser dass ein if s.length() == 0 und eine catch NFE fehlt).
Einfacher gehts net. Sonst müsste man mit ActionListenern arbeiten und mit JFrames Jbuttons und JTextAreas und halt das ganze in der actionPerformerd zusammenbasteln. dann wärs der OO ansatz. Dann ginge das oben beschribene aber nicht mehr in dieser Art.


----------



## Gast2 (12. Nov 2009)

ILEmax hat gesagt.:


> - 15 Jahre alt ist
> - Vorkentnisse: angeblich ein bischen Schul VB



oh Gott ... in dem Alter reicht eine Programmiersprache ... wenn es nur darum geht das Sie was zu tun hat, dann zieht Euch die VB Express edition und lasst die Praktikantin damit arbeiten ... das Schul-VB drüfte auch recht mau ausfallen ... aber es heißt ja nicht umsonst BASIC 

im Moment vergrault Ihr da eine potenziellen Informatiker :autsch: ... und wir haben ja Fachkräftemangel :toll:

hand, mogel


----------

