Fu-logo-text-2x
Drucken

Informatik für das Lehramt (B.Sc.)

Diese Seiten können nicht richtig dargestellt werden, da Sie Ihren Internet Explorer mit aktivierter Kompatibiltätsansicht verwenden. Wir empfehlen 'fu-berlin.de' aus der Liste der Websites mit aktivierter Kompatibilitätsansicht zu entfernen:

  1. Blenden Sie bitte in Ihrem Internet Explorer die Menüleiste ein, indem Sie entweder 'Alt' drücken oder in der Adressleiste mit der rechten Maustaste klicken und dann 'Menüleiste' auswählen.
  2. Klicken Sie auf 'Extras' und wählen das Menü 'Einstellungen der Kompatibilitätsansicht' aus.
  3. Wählen Sie unter 'Zur Kompatibilitätsansicht hinzugefügte Websites' 'fu-berlin.de' aus.
  4. Klicken Sie auf 'Entfernen'.

Imperatives oder funktionales Programmierparadigma? (2. Semester)

Die folgende Aufgabe beschäftigt sich mit zwei großartigen Programmierparadigmen. In der Lehre des Faches Informatik ist es wichtig eine, der Thematik zuträgliche, Programmiersprache zu wählen. Dafür muss man sich selbstverständlich selbst damit auskennen, für welche Probleme sich vor allem imperative oder funktionale Programmiersprachen eignen.

Schätzen Sie nach dem sorgfältigen Lesen des Informationstextes zu imperativen und funktionalen Programmiersprachen ein, welche der unten aufgeführten Probleme effizienter imperativ oder funktional gelöst werden kann! Drücken Sie danach auf den Ergebnis-Button am unteren Ende der Seite, um zu prüfen, ob Sie mit Ihren Antworten richtig oder falsch gelegen haben. Sie erhalten dann auch ein inhaltliches Feedback zu jeder Ihrer Antwort.

Fakultätsfunktion: Die Fakultätsfunktion ist eine Funktion in der Mathematik, die einer natürlichen Zahl das Produkt aus allen natürlichen Zahlen kleiner und gleich dieser Zahl zuordnet. Bsp.: fakultät(6)= 6*5*4*3*2*1 = 720.

Vererbung von Klassen: Vererbung ist ein grundlegendes Konzept in der Informatik und dient dazu, aufbauend auf existierenden Klassen neue zu schaffen, wobei die Beziehungen zwischen diesen beiden Klassen dauerhaft sein sollten. Die erbende Klasse kann dabei eine Erweiterung oder Einschränkung der Ursprungsklasse sein.

Integraloperator: Der Integraloperator ist ein mathematisches Objekt aus der Funktionalanalysis. Er gehört zu den linearen Operatoren und ist durch eine besondere Integralschreibweise mit Integralkern gekennzeichnet sind. Integralsymbol: ∫

Differentialoperator: Der Differentialoperator ist eine Funktion in der Mathematik, die einer Funktion eine weitere Funktion zuordnet und die Ableitung nach einer oder mehreren Variablen enthält. Notation: d/dx:ƒ→d/dx(ƒ) = dƒ/dx = ƒ'

Variablenmodifizierung: Variablenmodifikation bezeichnet die Umkodierung, Transformierung oder Neuberechnung von Variablen.

Größter gemeinsamer Teiler: Der größter gemeinsame Teiler ist ein Begriff aus der Mathematik. Zu zwei gegebenen ganzen Zahlen a und b ist ihr ggT als die eine Zahl m, welche sowohl Teiler von a als auch von b ist und maximal. Beispiel: sei a=12 und b=16, so sind ihre Teiler: Teiler(a) = {12,6,4,3,2,1} ; Teiler(b) = {16,8,4,2,1}. Gemeinsame Teiler sind demnach 4, 2 und 1. Der größte dieser Teiler ist die 4. Somit folgt: ggT(12, 16) = 4. 

Imperativ
Funktional

Umsetzung der Fakultätsfunktion

Die Fakultätsfunktion lässt sich tatsächlich wesentlich speicher- und recheneffizienter mit einer funktionalen Programmiersprache umsetzen, da hier beim rekursiven Aufruf nur die Funktionen übergeben werden und diese durch die Ergebnisse ersetzt, ohne das bspw. eine Speicherung in temporären Variablen nötig wäre.

Vererbung von Klassen

Bei Vererbungsbedarf von Objekten wird eine imperative Programmiersprache genutzt um zu beschreiben WIE Objekte in Beziehung zueinander stehen. Eine funktionale Programmiersprache würde hier zu zusätzlichen Problemen führen, da Variablen nicht modifiziert werden können.

Vernetzung von Differential- und Integraloperatoren

Die Funktionskomposition ist durch funktionale Programmierung in Effizienz nicht zu übertreffen, da auch die Funktionen höherer Ordnung hier einen entscheidenden Speichervorteil gegenüber imperativen Programmiersprache bieten.

Modifizierung von Variablen

Ein klares imperatives Problem, da die funktionale Programmierung gar keine Veränderung von Variablen zulässt, sondern maximal Seiteneffekte, welche für eine „scheinbare“ Veränderung von Variablen sorgen. Funktionale Programme sind aber zustandslos, was bedeutet, dass es keine änderbaren Variablen bieten kann. Möchte man Variablen modifizieren können, so muss sollte hier eine imperative Programmiersprache gewählt werden.

Suche nach dem größten gemeinsamen Teiler

Wiederum die funktionalen Programmiersprachen vereinfachen durch die klare mathematische Struktur und Verknüpfung zum Funktionsbegriff das Problem und sind bezüglich des Ressourcenverbrauchs klar im Vorteil gegenüber den imperativen Programmiersprachen bei solch Problemstellungen.

Sie erhalten ein Feedback zu den einzelnen Antworten, indem Sie auf das klicken.