Unterprogramm

Aus PlusPedia
Wechseln zu: Navigation, Suche

Ein Unterprogramm löst im idealen Fall selbstständig eine Teillösung eines größeren Problems.

Coin Übrigens: Die PlusPedia ist NICHT die Wikipedia.
Wir sind ein gemeinnütziger Verein, PlusPedia ist werbefrei. Wir freuen uns daher über eine kleine Spende!

1 Vorzüge von Unterprogrammen

  • Eine bessere Strukturierung von Programmen (Richtwert: eine Seite pro Modul)
  • Abstraktion (wie etwas zu machen ist, ist in diesem Moment nicht wichtig, sondern nur was man als Eingabeparameter hat und was man als Ausgabe erwartet)
  • Modularisierung
  • Bei mehrfacher Verwendung von Code
    • zum Einsparen von (Programm-)Speicherplatz.
    • Code kann damit kompakt gehalten.
    • Wiederverwendung.


2 Umsetzung

  • Eine Folge von Anweisungen wird unter einem Namen zusammengefasst und wird zur Routine, Prozedur, Unterprogramm, Funktionen.
  • Es können Parameter an diese Routinen übergeben werden.
  • Bei Funktionen wird ein Rückgabewert generiert.


2.1 Parameterübergabe

  • Argumente einer Funktion nennt man Parameter.
  • Es gibt formale Parameter - diese werden durch den aktuellen Parameter ersetzt.
    • X = Sum(3) hier wäre die 3 der aktuelle Parameter;
      • In der Unterroutine Sum(x) wird dem x die 3 zugeordnet.
      • x ist der formale Parameter.
      • Der aktuelle Parameter kann eine Variable sein.
    • Die Wertrückgabe ist der berechnete Wert.
    • Der Compiler stellt beim Compilieren (bei der Übersetzung) eine Typverletzung fest.
    • Interpreter stellen die Verletzung zur Laufzeit fest.

2.2 Parameterübergabe-Mechanismus

  • Call by Value
    • Bei einer Wertübergabe wird der konkrete Inhalt einer Variable oder eines Literals in den formalen Parameter kopiert. Der Wert kann geändert werden, hat aber keine Auswirkung auf den aktuellen Parameter.
  • Call by Reference
    • Bei einer Referenz wird nicht der Wert selbst übergeben sondern die Speicheradresse. Literale und Konstanten können so nicht übergeben werden. Mit diesem Mechanismus können die übergebenen Parameter modifiziert werden.
  • (Call by Name)
    • Veraltet.

2.3 Parameterbenamung

Parameter können innerhlab einer Funktion beliebig genannt werden. Die Funktionen sind in einem eigenen Referenzraum.

3 Unterschied zwischen Funktion und Prozedur

  • Eine Prozedur führt eine Aktion aus
    • Hier sind Call-By-Reference-Parameter eventuell sinnvoll, um Werte aus der Prozedur nach draußen zu geben.
  • Eine Funktion berechnet einen Wert
    • Eine Funktion funktionert gut mit Call-By-Value-Parametern.


4 Praktische Umsetzung

4.1 In Python

In Python stehen die Definitionen der Unterroutinen am Anfang (bzw. vor dem Aufruf)


def add(iX,iY):
....return iX+iY
#enddef

(Punkte sind Leerzeichen)


add(3,4) liefert als Ergebnis 7

4.1.1 Default-Paramter

def foo(x, y, z = 42):

4.1.2 Return-Anweisung

  • Gibt den Wert aus der Funktion zurück.
  • Wird kein Wert angegeben oder wird die Return-Anweisung weggelassen, so wird das Objekt None zurückgegeben.
  • Mehrere Anweisungen können mit einem Tupel zurückgegeben werden.

4.1.3 Namensräume

  • In Python hat jedes Unterprogramm seinen eigenen Namensraum (lokaler Namensraum)
  • Der Interpreter schaut erst in den lokalen Namensbereich nach und sucht dann im globalen Namensraum.
4.1.3.1 Globale Variablen

a=42
def foo():
....a = 13; #lokal definert
#enddf

foo();
a;
42

a=42
def foo():
....global a;
....a = 13;
#enddf

foo();
a;
13;

5 Links und Quellen

5.1 Siehe auch

5.2 Weblinks

5.3 Quellen

5.4 Literatur

5.5 Einzelnachweise


6 Andere Lexika




Diesen Artikel melden!
Verletzt dieser Artikel deine Urheber- oder Persönlichkeitsrechte?
Hast du einen Löschwunsch oder ein anderes Anliegen? Dann nutze bitte unser Kontaktformular

PlusPedia Impressum
Diese Seite mit Freunden teilen:
Mr Wong Digg Delicious Yiggit wikio Twitter
Facebook




Bitte Beachte:
Sämtliche Aussagen auf dieser Seite sind ohne Gewähr.
Für die Richtigkeit der Aussagen übernimmt die Betreiberin keine Verantwortung.
Nach Kenntnissnahme von Fehlern und Rechtsverstößens ist die Betreiberin selbstverständlich bereit,
diese zu beheben.

Verantwortlich für jede einzelne Aussage ist der jeweilige Erstautor dieser Aussage.
Mit dem Ergänzen und Weiterschreiben eines Artikels durch einen anderen Autor
werden die vorhergehenden Aussagen und Inhalte nicht zu eigenen.
Die Weiternutzung und Glaubhaftigkeit der Inhalte ist selbst gegenzurecherchieren.


Typo3 Besucherzähler - Seitwert blog counter
java hosting vpn norway