www.wikidata.de-de.nina.az
Eine Funktion englisch function ist in der Informatik und in verschiedenen hoheren Programmiersprachen die Bezeichnung eines Programmkonstrukts mit dem der Programm Quellcode strukturiert werden kann so dass Teile der Funktionalitat des Programms wiederverwendbar sind Das besondere Merkmal einer Funktion im Vergleich zum ahnlichen Konstrukt der Prozedur ist dass die Funktion ein Resultat direkt zuruckgibt und deshalb in Ausdrucken verwendet werden kann Die genaue Bezeichnung und Details ihrer Auspragung sind in verschiedenen Programmiersprachen durchaus unterschiedlich Funktionen gelten als spezielle Varianten von Unterprogrammen Nicht zu verwechseln ist das Programmkonstrukt Funktion mit anderen Bedeutungen des Ausdrucks Funktion beispielsweise mit Funktionen im Sinn der Organisation oder der Systemtheorie oder mit Funktion im Sinne von Aufgabe Inhaltsverzeichnis 1 Funktionale Programmierung 1 1 Beispiele 2 Imperative Programmierung 2 1 Direktes Verwenden des Ergebnisses 2 2 Beispiele 2 2 1 Pascal 2 2 2 C 3 Automatisierungstechnik SPS Programmierung 4 LiteraturFunktionale Programmierung BearbeitenDas Konzept einer Funktion im Sinne der Mathematik ist in der funktionalen Programmierung am deutlichsten umgesetzt Hier stellen Funktionen Abbildungsvorschriften dar Eine Funktion besteht dann aus einer Reihe von Definitionen die diese Vorschrift beschreiben Beispiele Bearbeiten In Haskell wurde man zum Beispiel schreiben max Int gt Int gt Int max a b a gt b a otherwise b Diese Schreibweise erinnert an die mathematische Definition des Maximums zweier Zahlen Ein funktionales Programm besteht ausschliesslich aus Funktionsdefinitionen und besitzt keine Kontrollstrukturen wie Schleifen Wichtigstes Hilfsmittel fur die funktionale Programmierung ist daher die Rekursion Funktionen sind in funktionalen Programmiersprachen Objekte mit denen wie mit Variablen gearbeitet werden kann Insbesondere konnen Funktionen also als Argument oder Ruckgabewert einer anderen Funktion auftreten Man spricht dann von Funktionen hoherer Ordnung Ein Beispiel hierfur ist das map Funktional map a gt b gt a gt b map f map f x xs f x map f xs map nimmt als Argument eine Funktion von a nach b wobei a und b beliebige Typen sind Typvariablen und liefert als Ergebnis eine neue Funktion die Listen von a in Listen von b abbildet indem namlich f auf jedes Element der Liste angewendet wird Imperative Programmierung BearbeitenZwar dienen auch in der imperativen Programmierung Funktionen im Prinzip dazu aufgrund einer Reihe von Argumenten ein Resultat zu berechnen aber durch die Verwendung von globalen Variablen kann eine Funktion mehr Argumente empfangen als aus ihrer Argumentliste ersichtlich ist und kann auf diesem Weg auch mehr als ein Resultat abliefern Anderungen in den globalen Variablen einer Funktion werden haufig als Nebeneffekt bezeichnet Damit gerat das Konzept der Funktion in die Nahe der Prozedur bei der solche Nebenwirkungen in Wirklichkeit die beabsichtigten Hauptwirkungen sind siehe dazu Wirkung in der Informatik Das fuhrt dazu dass Programmiersprachen oft eine irrefuhrende Terminologie verwenden In C wird beispielsweise generell nur von Funktionen gesprochen Prozeduren sind dort Funktionen mit dem Ruckgabetyp void in Modula 2 dagegen werden auch Funktionen mit dem Schlusselwort procedure definiert Direktes Verwenden des Ergebnisses Bearbeiten Im Gegensatz zu Prozeduren geben Funktionen einen Wert zuruck der direkt verwendet werden kann Prozeduren die keinen Ruckgabewert haben konnen nur indirekt Ergebnisse liefern indem entweder Referenzparameter oder globale Variablen verandert werden Die Programmiersprache Pascal bietet eine explizite Unterscheidung fur Funktionen und Prozeduren Eine Funktion increment welche eine Zahl um eins erhoht kann folgendermassen definiert werden function increment variable Integer Integer begin increment variable 1 end Bei einer Prozedur kann das Berechnungsergebnis nur indirekt zuruckgegeben werden wie beispielsweise uber Referenzparameter procedure increment variable Integer var reference Integer begin reference variable 1 end Wahrend das Ergebnis bei einem Funktionsaufruf direkt genutzt werden kann muss das Ergebnis bei einer Prozedur zuerst in einer Variablen gespeichert werden da die Variable als Parameter ubergeben wird program main var variable Integer begin Aufruf einer Funktion writeln increment 3 Aufruf einer Prozedur increment 3 variable writeln variable end Beispiele Bearbeiten Pascal Bearbeiten Pascal unterscheidet zwischen Funktionen und Prozeduren Funktionen werden mit dem Schlusselwort function deklariert und liefern einen Ruckgabewert mit einem definierten Typ Funktionsaufrufe stehen innerhalb von Ausdrucken Die Festlegung des Ruckgabewerts erfolgt durch eine Pseudo Zuweisung an den Funktionsnamen Als Nebenwirkung konnen Funktionen aber den Zustand des Programms verandern indem namlich globale Variablen neue Werte erhalten Prozeduren werden mit dem Schlusselwort procedure deklariert und haben keinen definierten Ruckgabewert Ihre Wirkung kann sich deshalb nur in den Anderungen globaler Variablen zeigen Beispiel einer Funktionsvereinbarung in Pascal function summe a Integer b Integer Integer begin summe a b end Beispiel eines Funktionsaufrufs in Pascal ergebnis summe 1 2 Funktionen und Prozeduren sind in Pascal im Gegensatz zu C schachtelbar Dies bedeutet dass sie weitere Funktionen und Prozeduren enthalten konnen Argumente werden normalerweise als Wertparameter ubergeben call pass by value Der Wert einer Variablen die einer Funktion oder Prozedur als Argument ubergeben wird wird durch deren Ausfuhrung nicht verandert Es ist aber auch moglich mit dem Schlusselwort var die Ubergabe als Referenz call by reference festzulegen Dadurch wird nicht der Wert einer Variablen ubergeben sondern ihre Adresse C Bearbeiten Argumente werden prinzipiell immer als Wertparameter ubergeben call pass by value Soll eine ubergebene Variable verandert werden so ubergibt man deren Adresse also einen Pointer Die Bestimmung des Ruckgabewertes geschieht durch eine return Anweisung Funktionen in C sind nicht schachtelbar Allerdings liefern einige C Compiler nicht standardisierte Erweiterungen aus welche eine Schachtelung ermoglichen Beispiel einer Funktionsvereinbarung in C int summe int a int b return a b Beispiel eines Funktionsaufrufs in C ergebnis summe 1 2 Automatisierungstechnik SPS Programmierung BearbeitenIn der Automatisierungstechnik werden bei der SPS Programmierung Funktionen FCs sowie Funktionsbausteine FBs als bibliotheksfahige Bausteine verwandt Literatur BearbeitenSiegfried Grohmann Dirk Papendieck OStR Peter Westphal Nagel Automatisierungstechnik mit Simatic S7 Programmierprojekte fur die berufliche Aus und Weiterbildung 3 uberarbeitete und aktualisierte Auflage Elektronik Praktiker Verlag EPV Duderstadt 2009 ISBN 978 3 936318 75 3 160 Seiten Abgerufen von https de wikipedia org w index php title Funktion Programmierung amp oldid 226893584