- 1 Abschnitt
- 7 Lektionen
- 2 Hours
- Programmiersprachen unterscheiden8
Aufgaben
Aufgabe 1: Theoretische Fragen
- Erkläre den Unterschied zwischen prozeduraler und objektorientierter Programmierung in Bezug auf die Code-Organisation.
- Was versteht man unter Kapselung und wie wird sie in der objektorientierten Programmierung realisiert?
- Nenne und erläutere drei Vorteile der objektorientierten Programmierung gegenüber der prozeduralen Programmierung.
Aufgabe 2: Prozedurale Programmierung
-
Erstelle ein einfaches prozedurales Programm in C, das die ersten zehn Fibonacci-Zahlen berechnet und ausgibt.
#include
void printFibonacci(int n) {
int t1 = 0, t2 = 1, nextTerm;
for (int i = 1; i <= n; ++i) {
printf("%d ", t1);
nextTerm = t1 + t2;
t1 = t2;
t2 = nextTerm;
}
Erkläre die Funktionsweise des obigen Programms und beschreibe die Rolle der
printFibonacci-Funktion.
Aufgabe 3: Objektorientierte Programmierung
Erstelle ein einfaches objektorientiertes Programm in Java, das eine Klasse
Fibonaccienthält. Diese Klasse soll eine MethodeprintFibonacci(int n)haben, die die ersten zehn Fibonacci-Zahlen berechnet und ausgibt.
public class Fibonacci {
public void printFibonacci(int n) {
int t1 = 0, t2 = 1, nextTerm;
for (int i = 1; i <= n; ++i) {
System.out.print(t1 + " ");
nextTerm = t1 + t2;
t1 = t2;
t2 = nextTerm;
}
}
public static void main(String[] args) {
Fibonacci fibonacci = new Fibonacci();
fibonacci.printFibonacci(10);
}
}
Erkläre die Funktionsweise des obigen Programms und beschreibe die Rolle der
printFibonacci-Methode sowie derFibonacci-Klasse.
Aufgabe 4: Vergleichende Analyse
Vergleiche das prozedurale C-Programm und das objektorientierte Java-Programm zur Berechnung der Fibonacci-Zahlen in Bezug auf:
- Code-Organisation
- Datenkapselung
- Wiederverwendbarkeit
- Erweiterbarkeit
Schreibe eine kurze Analyse (ca. 200 Wörter), in der du beschreibst, welches Paradigma du für welche Art von Projekten bevorzugen würdest und warum.
Aufgabe 5: Praktische Anwendung
Modularisiere das prozedurale C-Programm aus Aufgabe 2 weiter, indem du zusätzliche Funktionen für das Berechnen und Ausgeben der Fibonacci-Zahlen erstellst.
Erweitere das objektorientierte Java-Programm aus Aufgabe 3, indem du eine zusätzliche Methode
getFibonacci(int n)hinzufügst, die die erstennFibonacci-Zahlen als Liste zurückgibt.
import java.util.ArrayList;
import java.util.List;
public class Fibonacci {
public void printFibonacci(int n) {
int t1 = 0, t2 = 1, nextTerm;
for (int i = 1; i <= n; ++i) {
System.out.print(t1 + " ");
nextTerm = t1 + t2;
t1 = t2;
t2 = nextTerm;
}
}
public List getFibonacci(int n) {
List fibonacciList = new ArrayList<>();
int t1 = 0, t2 = 1, nextTerm;
for (int i = 1; i <= n; ++i) {
fibonacciList.add(t1);
nextTerm = t1 + t2;
t1 = t2;
t2 = nextTerm;
}
return fibonacciList;
}
public static void main(String[] args) {
Fibonacci fibonacci = new Fibonacci();
fibonacci.printFibonacci(10);
List fibList = fibonacci.getFibonacci(10);
System.out.println("\nFibonacci-Liste: " + fibList);
}
}
Erkläre, wie die hinzugefügte Methode
getFibonaccidie Wiederverwendbarkeit und Flexibilität des Java-Programms verbessert.
