Lazarus/Verzweigungen und Java: Unterschied zwischen den Seiten

Aus ZUM-Unterrichten
< Lazarus(Unterschied zwischen Seiten)
main>Peterdauscher
 
main>Ugh
 
Zeile 1: Zeile 1:
{{Lazarus-Buch}}
{{Siehe Begriffsklärung|die Programmiersprache}}
== Wenn-Dann-Sonst (If-then-else) ==


Bisher wurden die Computerprogramme strikt von oben nach unten abgearbeitet. Das ist aber nicht immer wünschenswert. Zum Beispiel kann es sein, dass bestimmte Programmteile nur dann ausgeführt werden, wenn bestimmte Bedingungen auch erfüllt sind. Wir alle kennen z.B. Passwort-Abfragen, bei denen Funktionen eines Programms oder einer Website nur dann funktionieren, wenn man das richtige Passwort angibt.
{{Zitat wpde|"'''Java''' ist eine [[Objektorientierte Programmiersprache|objektorientierte]], plattformunabhängige [[Programmiersprachen|Programmiersprache]]. Üblicherweise benötigen Java-Programme zur Ausführung eine spezielle Umgebung (Java Virtual Machine). Der Vorteil ist, dass nur diese Umgebung an verschiedene Computer und [[Betriebssystem]]e angepasst werden muss. Sobald dies geschehen ist, laufen auf der Plattform alle Java-Programme ohne Anpassungsarbeiten."|Java (Programmiersprache)|22.10.05}}


=== Beispiel ===
==Zu dieser Seite gehören...==
* [[Java Glossar]]


Wir betrachten das einfache Beispiel eines Lazarus-Programms mit zwei Edit-Feldern, <tt>Edit1</tt> und <tt>Edit2</tt> und einem Button <tt>Button1</tt>. Wenn der Button1 gedrückt wird, soll der Computer die Eingabe in <tt>Edit1</tt> überprüfen. Steht darin das richtige Passwort ("geheim"), so soll in <tt>Edit2</tt> angezeigt werden: "Sie sind angemeldet!"
==Aktuell==
* [http://www.heise.de/newsticker/meldung/65991 Sun verschenkt Entwicklungsumgebungen für Java], 10.11.2005
* [http://is11009.inf.tu-dresden.de/downloads/folien/43.pdf Viele Wege zu Java] - U. Hess (Heidelberg)
* [http://www.cnn.com/2004/TECH/space/01/16/space.mars.java.reut/index.html Internet language runs remote-controlled Mars rover], Java auf dem Mars, Meldung aus dem Januar 2004


{{kasten_blau|<source  line highlight="35-39" lang="pascal">
==Schulischer Einsatz ==
unit passwort;
{{Kasten gelb|'''Java''' wird immer häufiger als [[Programmiersprachen|Programmiersprache]] im Unterricht verwendet.
* Entsprechend gibt es '''zahlreiche Literatur, Fortbildungen und Software''' zum Thema Java im Unterricht.
* Java ist '''kostenlos und plattformunabhängig'''. Java ist stabil, aufgrund der Vielzahl der Versionen und Rechnerkonstellationen kann es aber zu unvorhergesehenen Problemen kommen.
* Java ist auf den ersten Blick '''bedienerunfreundlich'''. Bereis die Abfrage Tastatur in Programmen gestaltet sich schwierig. Andererseits gibt es '''Software, die diesen Mangel ausgleichen''' (z.B. [[BlueJ]]).
* Da Java '''objektorientiert''' ist, in der '''Industrie häufig benutzt''' wird und aktuell weite '''Verbreitung auf Handys''' bekommt, lässt sich sagen, dass Java im Trend ist und für Schüler daher '''motivierend'''.
* '''Applets''' lassen sich einfach im Internet veröffentlichen, was die Motivation weiter steigert.
* Vom Anspruch an die Rechner ist Java zwar '''speicherhungrig''' (mögl. mind. 128MB RAM), stellt aber '''keine hohen Erwartungen an den Prozessor''' (Pentium II möglich).
* '''Fazit:''' Die Hürde zum ersten Pieps ist hoch, wird aber dadurch ausgeglichen, dass man eine moderne und vielseitige Sprache im Unterricht hat, mit der man sämtliche Anwendungen schreiben kann.
}}


{$mode objfpc}{$H+}
== Voraussetzungen ==
Um Java nutzen zu können, müssen Sie bestimmte Programme installieren.
* siehe dazu [[Java-Software]]


interface
== Java mit BlueJ ==
* siehe [[Java mit BlueJ]]
{{Kasten gelb|[[Java mit BlueJ - Beispielseite Onlinebank]]}}


uses
== Kurse und Bücher zum Erlernen ==
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  ExtCtrls;


type
* [[Bild:Wikibooks20.gif]] [[wikipedia:b:Java|Java]] - Ein Wikibook-Kurs im Aufbau


  { TForm1 }
* [http://www.programmierkurs-java.de/ Programmierkurs der Uni Oldenburg]
:Den Kurs gibt es in verschiedenen Varianten (Powerpoint- und PDF-Folien, Filme) zusammen mit Übungen und Beispielprogrammen.


  TForm1 = class(TForm)
* [http://www.javabuch.de/download.html Handbuch der Java-Programmierung]
    Button1: TButton;
:Auch das neuste Buch des Standardwerkes (Nachfolger von "Go To Java 2") von Guido Kröger kann als gepackte Datei in Form von HTML-Seiten heruntergeladen werden. Dazu gibt es auch Beispieldateien.
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;


var
'''Java ist auch eine Insel'''
  Form1: TForm1;
:Als [http://www.galileopro.de/openbook/javainsel5/galileocomputing_javainsel5.zip HTML-Version]  bei [http://www.galileocomputing.de/katalog/openbook/ Galileo-Open-Books] herunterladbar.


implementation
'''Java 2'''
:Buch, das als [http://www.galileocomputing.de/openbook/java2/ HTML-Version] bei [http://www.galileocomputing.de/katalog/openbook/ Galileo-Open-Books] heruntergeladen werden können.


{$R *.lfm}
'''Kurztutorial''' (erlaubte Vervielfältigung nichtkommerziell - passen auf eine Diskette)
* http://www.boku.ac.at/javaeinf/
* http://www.highscore.de/


{ TForm1 }
'''Thinking in Java, 3rd Edition'''
:[http://www.linuxguruz.org/ebooks/eckel/TIJ-3rd-edition2.0.zip Download]


procedure TForm1.Button1Click(Sender: TObject);
== externe Unterrichtsreihen und -materialien ==
begin
* [http://www.gymmelk.ac.at/~nus/informatik/wpf/JAVA/index.php?kat=grund&teil=grund Nussbaumer - JAVA (eine kleine Einführung)] dazu: http://www.gymmelk.ac.at/~nus/informatik/wpf/JAVA/javahtml/index.html
  if Edit1.Text='geheim'
  then Edit2.Text:='Sie sind angemeldet';
end;


end.
*[http://www.zitadelle.juel.nw.schule.de/if/java/java.html Materialien] des Gym. Zitadelle, Jülich
</source>}}


Das Programm ist allerdings noch nicht besonders benutzerfreundlich. Gibt der Benutzer z.B. ein falsches Passwort ein, so erhält er gar keine Nachricht. Es passiert einfach nichts.  
*[http://www.gailer-net.de/tutorials/java/java-toc.html Java lernen interaktiv]


Das kann man ändern. Im Falle, dass die Eingabe nicht 'geheim' lautet, soll in Edit2 die Bemerkung: 'Falsches Passwort' ausgegeben werden.
*[http://www.gymmelk.ac.at/nus/informatik/wpf/JAVA/index.php Unterrichtsbeispiele zu JAVA]
{{kasten_blau|<source  line start=35 highlight="1-6" lang="pascal">
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Edit1.Text='geheim'
  then Edit2.Text:='Sie sind angemeldet'
  else Edit2.Text:='Falsches Passwort';
end;             
</source>}}


=== Wichtige Anmerkungen ===
*[http://mathsrv.ku-eichstaett.de/MGF/homes/grothmann/java/ Java Vorlesung mit vielen Übungen]
* Achtung: vor "else" steht nie ein Semiklon. Das Semikolon beendet einen Befehl; die ganze If-then-else-Konstruktion ist jedoch im Grunde ein einzelner Befehl; das Semikolon steht erst danach.
* Man beachte das Gleichheitszeichen in <tt><nowiki>if Edit1.Text='geheim'</nowiki></tt>. Es ist ein einzelnes Gleichheitszeichen '''ohne Doppelpunkt'''. Es beschreibt auch etwas ganz anderes als eine Wertzuweisung: Es beschreibt einen Bedingung. Es gibt nur zwei Möglichkeiten: Die Bedingung ist erfüllt (wahr, engl. true) oder eben nicht (falsch, engl. false).
* Wenn Du Dich an das Kapitel [[../Variablen_und_Komponenten]] erinnerst, kamen da Variablen vom Typ <tt>boolean</tt> vor, die genau diese beiden möglichen Werte hatten. Tatsächlich könnte man einer Variable <tt>b</tt> vom Typ <tt>boolean</tt> mit <tt>b:=(Edit1.Text='geheim');</tt> einen Wert zuweisen, je nachdem, ob der Text der richtige war oder nicht.


== Mehrere Anweisungen zu einem Block gruppieren==
* [http://www2.dgb.ch/users/soe/Informatik/java/index.htm Eine Einführung in die Sprache, das Konzept der OOP und das Umfeld im Internet] "Der Kurs wird noch immer weiterentwickelt. Sie müssen also neue Versionen mit "Neu laden" holen und auf tote Links gefasst sein. Diese Webseiten sind Begleitmaterial zu Fakultativkursen am Deutschen Gymnasium Biel und damit nicht selbserklärend!"
Bisher wird in jedem der beiden Fälle genau eine einzelne Anweisung ausgeführt. Es kann aber leicht sein, dass nur im Fall einer erfüllten (oder auch nicht erfüllten) Bedingung gleich mehrere Anweisungen ausgeführt werden sollen. Im nächsten Beispiel soll z.B. bei einer falschen Eingabe auf dem Button die Beschriftung zu 'Nochmal versuchen' geändert weden:
{{kasten_blau|<source line start=36 highlight="1-9" lang="pascal">
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Edit1.Text='geheim'
  then Edit2.Text:='Sie sind angemeldet'
  else begin
      Edit2.Text:='Falsches Passwort';
      Button1.Caption:='Nochmal versuchen';
      end;
end;               
</source>}}
Die beiden Anweisungen zum Verändern von <tt>Edit2.Text</tt> und <tt>Button1.Caption</tt> sind durch ein <tt>begin</tt> und ein <tt>end</tt> umrahmt. Manche Leute sprechen von einem '''Programm-Block'''. Natürlich kann auch hinter <tt>then</tt> ein Programm-Block stehen: Aber Vorsicht: Hinter dem <tt>end</tt> steht dann wieder kein Semikolon.


== Vergleiche von Zahlen ==
== Weblinks ==
* [http://www.robsite.de/tutorials.php?tut=java Übersicht über Tutorials]
* [http://de.wikipedia.org/wiki/Kategorie:Programmiersprache_Java Wikipedia: Artikel mit Thema Java]


Natürlich kann man nicht nur Zeichenketten miteinander vergleichen, sondern auch Zahlen. Neben der reinen Gleichheit gibt es auch andere Vergleichsoperatoren:


{| class ="wikitable toptextcells"
== Siehe auch ==
! Vergleichsoperator
* [[Programmiersprachen]]
! Bedeutung
* [[Java (Software)]]
|-
[[Kategorie:Informatik]]
| <nowiki>=</nowiki> || gleich
[[Kategorie:Programmiersprache]]
|-
| <nowiki><=</nowiki> || kleiner oder gleich
|-
| <nowiki>>=</nowiki> || größer oder gleich
|-
| <nowiki><></nowiki> || ungleich
|}
 
 
== Verknüpfung von Bedingungen ==
 
In einer if-Abfrage können auch Bedingungen abgefragt werden, die aus mehreren Teilbedingungen bestehen, die durch logische Verknüpfungen verbunden sind. Diese Verknüpfungen sind
 
{| class ="wikitable toptextcells"
! Vergleichsoperator
! Bedeutung
|-
| Bedingung1 <tt>and</tt> Bedingung2 || Gilt dann und nur dann, wenn beide Bedingungen erfüllt sind.
|-
| Bedingung1 <tt>or</tt> Bedingung2 || Gilt bereits dann, wenn eine der beiden Bedingungen erfüllt sind, aber auch dann, wenn beide erfüllt sind.
|-
| Bedingung1 <tt>xor</tt> Bedingung2 || Gilt dann und nur dann, wenn genau eine der beiden Bedingungen erfüllt sind, aber nicht dann, wenn keine oder beide erfüllt sind.
|-
| <tt>not</tt> Bedingung|| Gilt dann, wenn die Bedingung selbst genau '''nicht''' gilt.
|}
 
 
 
 
==Aufgaben==
#'''Abgestufte Höflichkeit'''<br>In dem Edit-Feld <tt>Edit</tt> soll ein Vorname eingegeben werden. Wenn es Dein eigener ist, dann soll der Computer gehorsam mit "Willkommen mein Herr und Meister" begrüßen; ansonsten (etwas unfreundicher) mit "Was willst Du?".
#'''Volljährigkeit'''<br>Ist der Bürger 18 Jahre und älter, dann ist er volljährig. Ein Computerprogramm soll auf Knopfdruck das Alter eines Bürgers aus dem Feld <tt>Edit1</tt> einlesen und in das Feld <tt>Edit2</tt> ausgeben, ob er volljährig ist.
#'''Intervall-Prüfung'''<br>Eine Zahl wird in einer Edit-Komponente eingegeben. Das Programm soll entscheiden, ob diese Zahl zwischen 10 und 20 liegt.
#'''pq-Formel allgemein'''<br>Eine quadratische Funktion sei definiert als <math>f(x)=x^2+px+q</math>. Die so genannte pq-Formel gibt an, welche Nullstellen eine solche Funktion hat: <br/> <math>x_{1/2}=-\frac{p}{2}\pm\sqrt{\frac{p^2}{4}-q}</math> <br/> Ein Programm soll geschrieben werden, das die Werte p und q aus zwei Edit-Komponenten ausliest und in zwei weitere Edit-Komponenten die Werte der beiden Nullstellen schreibt. Vorausgesetzt natürlich, dass die Funktion überhaupt (reelle) Nullstellen hat (was nicht immer der Fall ist).
 
 
{{Lazarus-Buch}}

Version vom 13. Februar 2006, 10:52 Uhr

Vorlage:Siehe Begriffsklärung

"Java ist eine objektorientierte, plattformunabhängige Programmiersprache. Üblicherweise benötigen Java-Programme zur Ausführung eine spezielle Umgebung (Java Virtual Machine). Der Vorteil ist, dass nur diese Umgebung an verschiedene Computer und Betriebssysteme angepasst werden muss. Sobald dies geschehen ist, laufen auf der Plattform alle Java-Programme ohne Anpassungsarbeiten."

Wikipedia-logo.png (Programmiersprache) Java (Programmiersprache), 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.



Zu dieser Seite gehören...

Aktuell

Schulischer Einsatz

Java wird immer häufiger als Programmiersprache im Unterricht verwendet.

  • Entsprechend gibt es zahlreiche Literatur, Fortbildungen und Software zum Thema Java im Unterricht.
  • Java ist kostenlos und plattformunabhängig. Java ist stabil, aufgrund der Vielzahl der Versionen und Rechnerkonstellationen kann es aber zu unvorhergesehenen Problemen kommen.
  • Java ist auf den ersten Blick bedienerunfreundlich. Bereis die Abfrage Tastatur in Programmen gestaltet sich schwierig. Andererseits gibt es Software, die diesen Mangel ausgleichen (z.B. BlueJ).
  • Da Java objektorientiert ist, in der Industrie häufig benutzt wird und aktuell weite Verbreitung auf Handys bekommt, lässt sich sagen, dass Java im Trend ist und für Schüler daher motivierend.
  • Applets lassen sich einfach im Internet veröffentlichen, was die Motivation weiter steigert.
  • Vom Anspruch an die Rechner ist Java zwar speicherhungrig (mögl. mind. 128MB RAM), stellt aber keine hohen Erwartungen an den Prozessor (Pentium II möglich).
  • Fazit: Die Hürde zum ersten Pieps ist hoch, wird aber dadurch ausgeglichen, dass man eine moderne und vielseitige Sprache im Unterricht hat, mit der man sämtliche Anwendungen schreiben kann.

Voraussetzungen

Um Java nutzen zu können, müssen Sie bestimmte Programme installieren.

Java mit BlueJ

Kurse und Bücher zum Erlernen

  • Wikibooks20.gif Java - Ein Wikibook-Kurs im Aufbau
Den Kurs gibt es in verschiedenen Varianten (Powerpoint- und PDF-Folien, Filme) zusammen mit Übungen und Beispielprogrammen.
Auch das neuste Buch des Standardwerkes (Nachfolger von "Go To Java 2") von Guido Kröger kann als gepackte Datei in Form von HTML-Seiten heruntergeladen werden. Dazu gibt es auch Beispieldateien.

Java ist auch eine Insel

Als HTML-Version bei Galileo-Open-Books herunterladbar.

Java 2

Buch, das als HTML-Version bei Galileo-Open-Books heruntergeladen werden können.

Kurztutorial (erlaubte Vervielfältigung nichtkommerziell - passen auf eine Diskette)

Thinking in Java, 3rd Edition

Download

externe Unterrichtsreihen und -materialien

Weblinks


Siehe auch