I/BInformatik in der Bildung
I/El'Informatique dans l'Éducation
Sie befinden sich hier: SV!A - SS!E - SS!I » Informatik in der Bildung » Kompetenzenkatalog für gymnasiale Informatik » P3 Closures: Methoden, Prozeduren und Funktionen

P3 Closures: Methoden, Prozeduren und Funktionen

Autor: Urs Battaglia

Motivation

Das Prozedurkonzept ist ein mächtiges Konzept imperativer Programmiersprachen. Damit werden folgende Ideen verfolgt:

  • Durch die Zusammenfassung einzelner Anweisungen kann ein Programm weiter strukturiert und zerlegt werden. Die Anwendung von Prozeduren und Funktion ist somit eine Weiterführung der in P0 Basics: EVA-Prinzip, Codierung von Ein- und Ausgabewerten und P1 Control: Kontrollstrukturen besprochenen Konzepte.
  • Durch die Unterteilung werden einzelne Probleme ausgelagert und unabhängig von der Vorgeschichte gelöst. Dadurch können solche Prozeduren und Funktionen für ähnliche Probleme wiederverwendet werden. Dies ist ein typisches Konzept, welches auch von allen Küchengeräten verfolgt wird. Mit einem Kaffeelöffel kann man auch Glace essen, mit einem Büchsenöffner kriegt man jegliche Arten von Büchsen auf und einem Kühlschrank ist es egal ob der Milch oder Fisch kühl hält.
  • Verlangt eine Aktion in sich selbst immer wieder den selben Ablauf, so kann eine Prozedur oder Funktion sich selbst aufrufen und mittel Rekursion (vgl. A2 Rekursion) das Problem elegant gelöst werden. Dies kennen wir auch von der Suche in einem Telefonbuch. Man nimmt zuerst den ersten Buchstaben, dann genau gleich den zweiten, dritten, usw. bis der Name gefunden wurde.
  • Zusätzlich bringen Prozeduren und Funktionen Ordnung in das Chaos der Variablen. Nicht alles muss global definiert werden. So reicht es ja auch, wenn wir das Portmonee dabei haben. Im Allgemeinen brauchen wir uns dann um Kleingeld, Noten, Kreditkarten und Führerausweis keine weiteren Sorgen mehr zu machen.

Haltung

  1. Prozeduren oder Funktionen werden als etwas natürliches betrachtet, womit wir bei alltäglichen Gegenständen laufend in Kontakt kommen.
  2. Prozeduren und Funktionen werden als Lösung von Teilproblemen verstanden. So lösst das Telefonieren das Problem der Kommunikation und die Eisenbahnfahren dasjenige des Transports.
  3. Prozeduren und Funktionen können Aufgaben in verschiedenen Situationen bearbeiten. Wie der Kaffeelöffel beim Glace essen, oder der Kühlschrank beim Kühlen von Milch und Fisch.
  4. Mathematische Funktionen (f(x)=2x, g(x)=sin(x), …) werden als Funktionen im Sinne der Programmierung verstanden, währendem geometrische Abbildungen (Spiegelung, Drehung, Projektion, …) eher Prozeduren entsprechen.

Fertigkeiten / Kenntnisse

  1. Ich kenne den grundlegenden Aufbau eines Programms (lokale und globale Variablen, Prozeduren und Funktionen) und kann diesen Aufbau an einem Programm beispielhaft erläutern.
  2. Ich kenne dem Unterschied zwischen Prozeduren und Funktionen und kann dies anhand deren Einsatz in einem Programm erklären.
  3. Ich kennen den Unterschied zwischen globalen und lokalen Variablen und kann deren Geltungsbereich anhand eines Programms erklären.
  4. Ich kann eine Aufgabenstellung in Prozeduren und Funktionen zerlegen (Top Down) und dies in einer Programmiersprache umsetzen.
  5. Ich kann bestehende (fremde) Prozeduren und Funktionen in eigene Programme einbauen.

Anwendungsbeispiele

Verwandte Kompetenzen

Referenzen

  • FIXME

Diskussion

  • NOTE Was ist das Spezielle daran? Geht es um die Prozeduren/Funktionen/Methoden? — Paul Miotti 2008/06/24
    • NOTE „Als Closure oder Funktionsabschluss bezeichnet man eine Programmfunktion, die beim Aufruf ihren Definitionskontext reproduziert, selbst wenn dieser Kontext außerhalb der Funktion schon nicht mehr existiert. Closures „konservieren“ also ihren Kontext (Closure)“. — Vincent Tscherter 2008/06/24 11:23
    • NOTE Mittels Closure sind sehr spezielle Gültigkeitsbereiche von Variablen möglich, welche nicht zum Anforderungsprofil unserer Klientel passen. Ich werde mich daher auf Prozeduren/Funktionen/Methoden beschränken. — Urs Battaglia 2008/10/08 11:11
  • NOTE Gehören die Anwendungsbeispiele allenfalls in den Bereich „Algorithmen“? — Vincent Tscherter 2008/10/22 10:59
  • NOTE Nach der „Motivation“ schlage ich folgende Nomenklatur vor, denn die folgenden Begriffe werden in keinen anderen Modulen sauber eingeführt: Überbegriff = Soubroutines (Unterprogramme, die mit RTS {evtl. implizitem RETURN} beendet werden). Darunter:
    1. Functions (Funktionen… mit Rückgabewert),
    2. allgemeine Procedures (Prozeduren mit Call by value/reference … Problematik),
    3. Methods (Methoden mit implizitem „self“- oder „this“-Pointer),
    4. Closures (? [deutsch ??] mit speziellem Gültigkeitsbereich; z. B. für Handler-Implementation),
    5. Coroutines,
    6. etc …

nicht ganz Wissenschaftlich, jedoch für Mittelschüler durchaus tauglich. Somit schlage ich auch einfach den Titel „Subroutinen“ vor. Diese bilden auch die Grundlage zur Implementation der Rekursion. Bitte um Kommentare — Philipp Gressly Freimann 2009/03/16 13:32

 
informatik/kompetenzen/p3_closures.txt · Zuletzt geändert: 2011/05/30 23:02 (Externe Bearbeitung)