Ich komme bei einer Aufgabe nicht weiter. Was nun?

Strategien

Hier sind einige ausgewählte Strategien (basierend auf Problemlösen im Informatikunterricht.

  • Verständnis schaffen: Stellen Sie Fragen, um den vollen Umfang des Problems zu verstehen. Ein häufiger Fehler bei der Lösung eines Problems besteht darin, dass Maßnahmen ergriffen werden, bevor das Problem und das erwünschte Ergebnis vollständig verstanden wurde.

  • Problem auf Problemklasse reduzieren, Abstrahieren von Repräsentation des Problems: Ein spezifisches Problem kann Teil einer größeren Problemklasse sein, die ähnliche Eigenschaften aufweisen. Selbst wenn es für das spezifische Problem noch keine Lösung gibt, können möglichweise Methoden angewendet werden, die bereits zur Lösung eines anderen Problems innerhalb derselben Problemklasse verwendet wurden.

    Beispiel: Wir haben eine Liste von Zahlen wie [1, 2, 9, 2, -4] und möchten das kleinste Element in dieser Liste finden. Angenommen, wir haben bereits einen Methode “most”, um das größte Element in einer Liste zu finden. Indem wir alle Zahlen in unserer Liste negieren und dann den “most”-Algorithmus auf diese umgekehrten Zahlen anwenden, können wir das Problem, das kleinste Element zu finden, auf das Problem, das größte Element zu finden, reduzieren.

  • Teilprobleme identifizieren und angehen (top-down): Es ist häufig notwendig, größere und komplexe Probleme in kleinere, leichter handhabbare Teilprobleme zu zerlegen. Dies ermöglicht es, schrittweise vorzugehen und konkrete Lösungsansätze für jedes der Teilproblem zu entwickeln. Die Lösungen werden dann integriert, um das Gesamtproblem zu lösen.

    Beispiel: Angenommen, du musst ein Programm schreiben, das die Anzahl der Wörter in einem Text zählt. Dieses Problem kann in folgende Teilprobleme zerlegt werden:

    1. Text einlesen und verarbeiten: Den gegebenen Text einlesen oder als Eingabe erhalten.
    2. Wörter im Text identifizieren: Alle Wörter im Text identifizieren, unter Berücksichtigung von Leerzeichen und Satzzeichen.
    3. Anzahl der Wörter zählen: Die Anzahl der identifizierten Wörter bestimmen.
    4. Ergebnis ausgeben: Die Anzahl der Wörter ausgeben.
  • Verwenden von Pseudocode oder Algorithmen: Bevor man mit der Implementierung des Algorithmus in einer konkreten Programmiersprache beginnt, ist es sinnvoll, sich Gedanken über den zugrundeliegenden Algorithmus zu machen. Das “Was” (Algorithmus | Semantik) steht immer vor dem “Wie” (Programmiersprache | Syntax). Um die Grundidee und die einzelnen Schritte des Algorithmus zu überlegen, kann es hilfreich sein, diesen zunächst informell mit Pseudocode zu beschreiben. Nachdem die Funktionsweise des Algorithmus verstanden wurde, kann man ihn in die gewünschte Programmiersprache übersetzen und implementieren. Dies hilft, um die Logik der Lösung zu klären und potenzielle Fehler frühzeitig zu erkennen.

Funktion berechneFakultät(n):
    falls n gleich 0:
        gib 1 zurück
    sonst:
        ergebnis = 1
        für jede zahl von i = 1 bis n:
            ergebnis = ergebnis * i
        gib ergebnis zurück
int berechneFakultät(unsigned int n) {
    if (n == 0) {
        return 1;
    } else {
        int ergebnis = 1;
        for (int i = 1; i <= n; ++i) {
            ergebnis *= i;
        }
        return ergebnis;
    }
}

Fragen stellen

Siehe FAQ: Soll ich eine Frage stellen? Wo stelle ich meine Frage?.