Lazarus/Spielen mit dem Zufall und BlueJ: Unterschied zwischen den Seiten

Aus ZUM-Unterrichten
< Lazarus(Unterschied zwischen Seiten)
main>Peterdauscher
Keine Bearbeitungszusammenfassung
 
main>Ugh
(→‎Siehe auch: Beispiel Onlinebank als Einstieg in Java)
 
Zeile 1: Zeile 1:
{{Lazarus-Buch}}
{{Babel-2|Software|Links}}
{{Zitat wpde|'''BlueJ''' ist eine interaktive [[Integrierte Entwicklungsumgebung]] für [[Java]], mit der Anfängern die Zusammenhänge der [[Objektorientierte Programmierung|objektorientierten Programmierung]] vermittelt werden sollen. Dem Benutzer stehen zur Programmierung ein Fenster mit einem [[UML]]-[[Klassendiagramm]] und ein Texteditor mit [[Syntaxhervorhebung]] zur Verfügung. Im Klassendiagramm kann der Benutzer [[Klasse (Informatik)|Klassen]] erstellen und Assoziationen zwischen diesen schaffen. Änderungen am Diagramm wirken sich sofort auf den Quellcode aus und umgekehrt.|BlueJ|22.10.05}}


Bisher haben wir Zahlenwerte immer entweder fest im Programm vorgegeben (etwa a:=42),
==Aktuell==
vom Benutzer während der Eingabe erfragt (etwa mit <tt>ReadFrom(...)</tt>) oder aber irgendwie aus bereits bekannten Werten ausgerechnet (z.B. <tt>a:=sqrt(c)</tt>). Für viele Anwendungen – vor allem für die, die ein bisschen Spaß machen – wäre es jedoch nett, zufällige Zahlen zu haben. Das gilt z.B. für Glücksspiele genauso wie für Geschicklichkeitsspiele.
* [http://www.bluej.org/tutorial/blueJ-tutorial-deutsch.pdf BlueJ Tutorial] auf deutsch
* [http://edu.netbeans.org/bluej/index.html The NetBeans IDE 5.0 BlueJ Edition], die offizielle Version hat den Beta-Status verlassen, 29.07.2006


Für solche Fragen ist der Befehl <tt>random</tt> nützlich. Ohne Klammer hinter dem Befehl (also etwa <tt>x:=random;</tt>) “würfelt” der Befehl eine (reelle) Zufallszahl im Bereich zwischen 0 und 1. Damit ist es mit ein bisschen Mathematik nicht schwierig, auch natürliche Zufallszahlen in beliebigen Zahlenbereichen zu basteln. Allerdings nimmt Lazarus einem einen Teil dieser Arbeit ab, wenn man eine Zahl in Klammern hinter den Befehl schreibt (also etwa <tt>k:=random(bereich);</tt>). Der Computer würfelt dann eine Zufallszahl zwischen 0 und <tt>bereich-1</tt>.
== Kurzvorstellung BlueJ ==
* Einstieg mit Screenshots: [http://www.hs-niederrhein.de/~gstwolf/inf11/bluej/bluej_info.html Einstieg in Java mit BlueJ] (Hermann Josef Fels)
* Übersicht: [http://zim.informatik.uni-bremen.de/index.php/Main/BlueJ Kurzvorstellung BlueJ]


== Unterrichtsmaterial==
* [http://www.zitadelle.juel.nw.schule.de/if/java/java.html Informatik mit Java] - Turtlegrafik für BlueJ
* [http://www-is.informatik.uni-oldenburg.de/~dibo/hamster/ Hamstern mit BlueJ] - "BlueJ ist eine Entwicklungsumgebung für objektorientierte Java-Programme, die speziell für Programmieranfänger entworfen wurde. BlueJ richtet sich also an dieselbe Zielgruppe wie das Java-Hamster-Modell. Mit der Entwicklungsumgebung einher geht eine didaktische Methode zur Einführung in die objektorientierte Programmierung." - siehe auch [http://www-is.informatik.uni-oldenburg.de/~dibo/hamster/download/v22/HamsternMitBlueJ.pdf HamsternMitBlueJ.pdf]
* [http://informatik.zum.de/pieper/blog/index.php?d=24&m=07&y=06&category=2 Reader zum Einstieg in Java mit BlueJ] auf dem [[Blog]] von Uli Pieper
* [http://www.u-helmich.de/inf/BlueJ/ Progammieren mit Java] - Ein Lehrgang von Ulrich Helmich


{{kasten_blau|<source  line start=30 highlight="6" lang="pascal">
==Problemquellen bei der Arbeit mit BlueJ==
procedure TForm1.Button1Click(Sender: TObject);
Folgende Probleme wurden festgestellt:
begin
* Verschiedene Versionen von Windows XP und Java und BlueJ vertragen sich nicht. Lösung: Installation anderer Versionen.
Clear(Memo1);
* Probleme mit Firewalls
for i:=1 to 5
* Erst Java installieren, dann BlueJ
do begin
  zufallszahl:=random(100);
  WriteLnTo(Memo1,zufallszahl);
  end;
end;   
</source>}}


Startet man ein Programm, das auf Knopfdruck eine Zufallszahl ziehen soll mehrfach, so ist allerdings zunächst die Enttäuschung groß. Denn es ist immer die gleiche Zahl bzw. die gleichen Zahlen, die beim ersten Knopfdruck nach dem Programmstart gezogen werden. So großartig zufällig ist das nun wirklich nicht. Dem kann man jedoch abhelfen, wenn man gleich nach dem Programmstart den Befehl <tt>randomize;</tt> ausführen lässt. Der sorgt dafür, dass die Zufallszahlen tatsächlich bei jedem Programmlauf andere sind.
==Diskussion==
* [http://is11009.inf.tu-dresden.de/downloads/folien/42.pdf BlueJ im Anfangsunterricht - Himmelblau vs. Himmelgrau? - T. Heußer (Karlsruhe)]


{{kasten_blau|<source  line start=30 highlight="4" lang="pascal">
== Weblinks ==
procedure TForm1.Button1Click(Sender: TObject);
* [http://www.bluej.org Offizielle BlueJ-Seite]
begin
* [http://www.bluej.org/mrt/ BlueJ Blog]
Clear(Memo1);
randomize;
for i:=1 to 5
do begin
  zufallszahl:=random(100);
  WriteLnTo(Memo1,zufallszahl);
  end;
end;       
</source>}}


'''Anmerkung:''' Es schadet nichts, zu wissen, was dieses <tt>randomize</tt> eigentlich tut. Eigentlich kann ein klassischer Computer keine wirklich zufälligen Zahlen erzeugen sondern nur [https://de.wikipedia.org/wiki/Pseudozufall Pseudozufallszahlen]. Diese berechnet man aus einer anfänglich gegebenen Zahl durch Gleichungen, die scheinbar ungeordnete, aber eben nicht wirklich zufällige Zahlen erzeugen. Da die Anfangszahl ohne die Verwendung von <tt>randomize</tt> immer die gleiche ist, ist auch die daraus berechnete Folge von Pseudozufallszahlen immer die gleiche. <tt>randomize</tt> ermittelt jetzt bei jedem Programmlauf eine andere Anfangszahl. Dafür benutzt der Befehl die Zeit der Computeruhr, die "Systemzeit". Die ist bei jedem Programmstart eine andere und sie hängt -- irgendwie dann doch zufällig -- davon ab, wann genau der Benutzer das Programm startet.
== Siehe auch ==
* [[Java]]
* [[Java-Software]]
* [[Beispiel Onlinebank als Einstieg in Java (Informatik)]]
* [[Programmiersprachen]]
* [[IDE]]


== Aufgaben ==
[[Kategorie:Informatik]]
#Schreibe ein Lazarus-Programm zum Würfeln, bei dem nach dem Drücken eines Knopfes in einem Edit-Feld eine Zahl zwischen 1 und 6 erscheint.
[[Kategorie:Programmiersprache]]
#In manchen Würfelspielen wird mit zwei Würfeln gewürfelt. Schreibe ein Programm, das bei jedem Wurf mit zwei (gedachten) Würfeln würfelt und die Zahlen ausgibt; außerdem die Augensumme. Weiterhin soll das Programm ausgeben, wenn es bei einem Wurf ein „Pasch“ gegeben hat (Augenzahl bei beiden Würfeln gleich).
#Fred und George erfinden ein Würfelspiel. Jeder darf 10 mal würfeln (Zahlen zwischen 1 und 6). Es gewinnt, wessen größte Zahl am größen ist. Schreibe ein Programm, das auf Knopfdruck ein solches zehnmaliges Würfeln simuliert und die Werte in ein Memo-Feld schreibt. Außerdem soll es dann noch direkt sagen, welches die größte gewürfelte Zahl war: "Die größte Zahl war ..."
#Schreibe ein (sehr vereinfachtes) Roulette-Rad, das zufällig eine Zahl zwischen 0 und 36 erzeugt. Für die Zahlen zwischen 1 und 36 soll die Maschine ausgeben, ob die Zahl gerade ist (PAIR) oder ungerade (IMPAIR). Wenn sie Null ist, soll die Maschine ZERO ausgeben.
# Kartenlegerin Esmeralda steigt endlich auf moderne Technik um. Sie verwendet seit jeher Skat-Karten. Dort gibt es die “Farben” Kreuz, Pique, Herz und Karo. Außerdem gibt es die Zahlen bzw. Figuren 7, 8, 9, 10, Bube, Dame, König, Ass. <br />Insgesamt gibt es also 4 · 8 = 32 Karten. Schreiben Sie für Esmeralda ein Programm, das eine zuf¨allige Karte erzeugt (also zum Beispiel “Pique 10”). <br />Hinweis: Man kann es sehr umständlich machen und eine Zufallszahl zwischen 1 und 32 ziehen und entsprechend eine bestimmte Karte zuordnen. Es geht aber auch deutlich eleganter.
#Fülle die Bildoberfläche mit 5000 komplett zufällig verteilten und zufällig gefärbten Pixeln.
{{Lazarus-Buch}}

Version vom 27. August 2006, 09:19 Uhr

Vorlage:Babel-2

BlueJ ist eine interaktive Integrierte Entwicklungsumgebung für Java, mit der Anfängern die Zusammenhänge der objektorientierten Programmierung vermittelt werden sollen. Dem Benutzer stehen zur Programmierung ein Fenster mit einem UML-Klassendiagramm und ein Texteditor mit Syntaxhervorhebung zur Verfügung. Im Klassendiagramm kann der Benutzer Klassen erstellen und Assoziationen zwischen diesen schaffen. Änderungen am Diagramm wirken sich sofort auf den Quellcode aus und umgekehrt.

Wikipedia-logo.png BlueJ, Wikipedia – Die freie Enzyklopädie, 22.10.05 - Der Text ist unter der Lizenz „Creative Commons Attribution/Share Alike“ verfügbar; zusätzliche Bedingungen können anwendbar sein. Siehe die Nutzungsbedingungen für Einzelheiten. In der Wikipedia ist eine Liste der Autoren verfügbar.



Aktuell

Kurzvorstellung BlueJ

Unterrichtsmaterial

Problemquellen bei der Arbeit mit BlueJ

Folgende Probleme wurden festgestellt:

  • Verschiedene Versionen von Windows XP und Java und BlueJ vertragen sich nicht. Lösung: Installation anderer Versionen.
  • Probleme mit Firewalls
  • Erst Java installieren, dann BlueJ

Diskussion

Weblinks

Siehe auch