Ereignisorientierte Programmierung: Unterschied zwischen den Versionen

Aus KGS-Wiki
(Die Seite wurde neu angelegt: „Die ereignisorientierte Programmierung (engl. ''event-driven programming'') ist ein Programmierparadigma, das auf der Idee beruht, dass bestimmte Teile eines Programms nur dann und genau dann ausgeführt werden, wenn ein bestimmtes äußeres '''Ereignis''' (engl. ''event'') eintritt. Dieses Ereignis kann vom Benutzy oder von einer anderen Programmkomponente ausgelöst werden. == Visuelle Programmierung == Viele visuelle Programmiersprachen sind…“)
 
Keine Bearbeitungszusammenfassung
Zeile 2: Zeile 2:


== Visuelle Programmierung ==
== Visuelle Programmierung ==
[[Datei:Calliope Makecode Ereignisse.svg|thumb|rechts|Einige Ereignisblöcke in MakeCode]]
[[Datei:AppInventor_Ereignisblöcke.svg|thumb|rechts|Einige Ereignisblöcke im [[AppInventor]]]]
Viele visuelle Programmiersprachen sind ereignisorientiert konstruiert. Ein typisches Beispiel ist [[Scratch]] mit Ereignissen wie <sb>Wenn die grüne Flagge angeklickt</sb>, <sb>wenn Taste [Leertaste v] gedrückt wird</sb> oder <sb>wenn ich als Klon entstehe</sb>. Jeglicher Programmcode, der ausgeführt werden soll, muss an einen solchen Ereignisblock angehängt sein, ansonsten wird er beim Ablauf des Programms ignoriert. Diese Blöcke haben typischerweise eine halbrunde Form aufgesetzt.


Viele visuelle Programmiersprachen sind ereignisorientiert konstruiert. Ein typisches Beispiel ist [[Scratch]] mit Ereignissen wie <sb>Wenn die grüne Flagge angeklickt</sb>, <sb>wenn Taste [Leertaste v] gedrückt wird</sb> oder <sb>wenn ich als Klon entstehe</sb>. Jeglicher Programmcode, der ausgeführt werden soll, muss an einen solchen Ereignisblock angehängt sein, ansonsten wird er beim Ablauf des Programms ignoriert. Diese Blöcke haben typischerweise eine halbrunde Form aufgesetzt.


[[Datei:Calliope Makecode Ereignisse.svg|thumb|rechts|Einige Ereignisblöcke in MakeCode]]
Auch andere blockbasierte Programmierumgebungen basieren auf diesem Konzept: in [[MakeCode]], mit dem etwa der [[Calliope mini]] und der [[microBit]] programmiert werden können, sind diese Blöcke etwa C-förmig. Ähnliches gilt für den [[AppInventor]], in dem Ereignisblöcke in der Regel ockerfarben sind. Im AppInventor werden Ereignisse in der Regel von den sichtbaren und unsichtbaren Komponenten der App ausgelöst, also von den einzelnen Bildschirmen, sichtbaren [[GUI]]]-Komponenten wie Buttons oder Auswahlfeldern, aber auch von unsichtbaren Komponenten wie dem Lagesensor oder einer Datenbank.
Auch andere blockbasierte Programmierumgebungen basieren auf diesem Konzept: in [[MakeCode]], mit dem etwa der [[Calliope mini]] und der [[microBit]] programmiert werden können, sind diese Blöcke etwa C-förmig. Ähnliches gilt für den [[AppInventor]], in dem Ereignisblöcke in der Regel ockerfarben sind.


== Textuelle Programmierung ==
== Textuelle Programmierung ==
===JavaScript===
Die [[Web-Programmierung]] mit [[HTML]] und [[JavaScript]] ist grundlegend ereignisorientiert aufgebaut: Jede Aktion in JavaScript kann und sollte von einem Ereignis ausgelöst werden. Schon in HTML kann jedes Element mit Ereignis-[[Attribut (Informatik)|Attribut]]en versehen werden, mit denen festgelegt wird, welche JavaScript-Anweisungen ausgeführt werden sollen, wenn das entsprechende Ereignis eintritt.
{| class="wikitable"
|+ Einige HTML-Ereignis-Attribute
! Attribut
! Wird ausgelöst, wenn…
! Beispiel
|-
! <code>onclick</code>
| … das Element angeklickt wird.
| {{#tag:syntaxhighlight|{{Widget:Tada}}|lang=html|line=1}}⇒&nbsp;{{#widget:Tada}}
|-
! <code>oninput</code>
| … etwas in das Element (z.B. ein Textfeld) eingegeben wird
|
|}


{{Todo|Sn}}
{{Todo|Sn}}
Zeile 15: Zeile 34:


* {{Inf-Schule|9.1.2.4|Fachkonzept "Ereignisgesteuerter Programmablauf"}}
* {{Inf-Schule|9.1.2.4|Fachkonzept "Ereignisgesteuerter Programmablauf"}}
* {{W3Schools|tags/ref_eventattributes.asp|HTML Events}}

Version vom 14. Januar 2025, 14:34 Uhr

Die ereignisorientierte Programmierung (engl. event-driven programming) ist ein Programmierparadigma, das auf der Idee beruht, dass bestimmte Teile eines Programms nur dann und genau dann ausgeführt werden, wenn ein bestimmtes äußeres Ereignis (engl. event) eintritt. Dieses Ereignis kann vom Benutzy oder von einer anderen Programmkomponente ausgelöst werden.

Visuelle Programmierung

Einige Ereignisblöcke in MakeCode
Einige Ereignisblöcke im AppInventor

Viele visuelle Programmiersprachen sind ereignisorientiert konstruiert. Ein typisches Beispiel ist Scratch mit Ereignissen wie Wenn die grüne Flagge angeklickt, wenn Taste [Leertaste v] gedrückt wird oder wenn ich als Klon entstehe. Jeglicher Programmcode, der ausgeführt werden soll, muss an einen solchen Ereignisblock angehängt sein, ansonsten wird er beim Ablauf des Programms ignoriert. Diese Blöcke haben typischerweise eine halbrunde Form aufgesetzt.


Auch andere blockbasierte Programmierumgebungen basieren auf diesem Konzept: in MakeCode, mit dem etwa der Calliope mini und der microBit programmiert werden können, sind diese Blöcke etwa C-förmig. Ähnliches gilt für den AppInventor, in dem Ereignisblöcke in der Regel ockerfarben sind. Im AppInventor werden Ereignisse in der Regel von den sichtbaren und unsichtbaren Komponenten der App ausgelöst, also von den einzelnen Bildschirmen, sichtbaren GUI]-Komponenten wie Buttons oder Auswahlfeldern, aber auch von unsichtbaren Komponenten wie dem Lagesensor oder einer Datenbank.

Textuelle Programmierung

JavaScript

Die Web-Programmierung mit HTML und JavaScript ist grundlegend ereignisorientiert aufgebaut: Jede Aktion in JavaScript kann und sollte von einem Ereignis ausgelöst werden. Schon in HTML kann jedes Element mit Ereignis-Attributen versehen werden, mit denen festgelegt wird, welche JavaScript-Anweisungen ausgeführt werden sollen, wenn das entsprechende Ereignis eintritt.

Einige HTML-Ereignis-Attribute
Attribut Wird ausgelöst, wenn… Beispiel
onclick … das Element angeklickt wird.
<button onclick="alert('Tada!')"
        onmouseover="this.innerText='Klick mich!'"
        onmouseout="this.innerText='Tada!'">
    Tada!
</button>
⇒ 
oninput … etwas in das Element (z.B. ein Textfeld) eingegeben wird
🏗
Baustelle

Dieser Abschnitt wird gerade von Sn überarbeitet


Weblinks