Wiki: Mathe und Info

Unterrichtsmaterialien für Mathematik und Informatik

Benutzer-Werkzeuge

Webseiten-Werkzeuge


info:sek-ii:q1:algorithmen-rekursion:l1-einfache-alg

Einfache Algorithmen & Laden von Dateien

Einfache Algorithmen & Laden von Dateien
Im letzten Schulhabjahr haben wir viele Spiele mit Processing programmiert. Was diesen oft noch fehlte, ist z.B. eine HighScore-Verwaltung, bzw. genereller gesagt, das Laden und Speichern von benutzerdefinierten Dateien. Dieser Problematik wollen wir uns nun annehmen.
Aufgabe 1

a) Startet Processing und importiert den Sketch unten.

b) Spielt ein paar Runden. Steuerung: Linker Spieler w + s, Rechter Spieler +

c) Versucht den Code so gut wie möglich nachzuvollziehen. Beantwortet dazu die folgenden Fragen (Nutzt die Processing-Referenz!):

  • Wo werden die einzelnen Elemente (Spieler 1, Spieler 2, Ball) gezeichnet?
  • Wo / wie werden die Bewegungen der Elemente berechnet?
  • Wofür stehen die einzelnen Variablen?
  • Wo werden die Tastatureingaben verarbeitet?
  • Wozu dienen die folgenden Methoden?
    • int[] loadInts(String fileName)
    • void saveInts(String fileName, int[] ints)
    • void loadLastAndHighScore()
    • void saveScore()
  • Informiert euch noch einmal über den Aufbau von Arrays.
Aufgabe 2

a) In der Methode loadInts(…) hat sich ein Bug eingeschlichen. Welcher? Wie könnte man ihn korrigieren?

b) Lest das Fachkonzept: Algorithmus und versucht den Bug aus a) mit Hilfe eines Algorithmus zu korrigieren.

c) Erweitert das Programm so, dass es auch den Durchschnittswert aller Scores anzeigt.

Aufgabe 3

Es soll ein Programm entwickelt werden das für Klausuren verschiedene Kennzahlen automatisch berechnen soll. Die Ausgabe dieses Programmes soll so aussehen:

24 Schüler/innen haben an der Klausur teilgenommen.
 
Die durchschnittliche Punktzahl ist 8 Punkte.
Von 24 Klausuren sind 5 negativ. Das sind 21%. Es muss nicht nachgeschrieben werden.
Die höchste Punktzahl ist 15 Punkte.
Die niedrigste Punktzahl ist 0 Punkte.
 
Notenspiegel:
|  0 |  1 |  2 |  3 |  4 |  5 |  6 |  7 |  8 |  9 | 10 | 11 | 12 | 13 | 14 | 15 |
|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|
|  1 |  1 |  1 |  0 |  2 |  4 |  2 |  1 |  0 |  3 |  2 |  0 |  2 |  3 |  0 |  2 |

a) Entwickelt verschiedene Algorithmen, mit denen man die folgende Vorlage mit sinnvollen Ausgaben erweitern kann.

Klausurergebnisse.pde
int[] ergebnisse = new int[] { 5, 10, 4, 15, 6, 9, 12, 13, 4, 0, 1, 13, 13, 2, 15, 9, 5, 7, 6, 5, 12, 10, 9, 5 };
int teilnehmerZahl = ergebnisse.length;
int[] notenspiegel = new int[16];
int durchschnitt = 0;
int minimum = 15;
int maximum = 0;
int negativ = 0;
int prozentNegativ = 0;
 
// Hier kommen die Algorithmen hin
 
println(teilnehmerZahl + " Schüler/innen haben an der Klausur teilgenommen.");
println();
println("Die durchschnittliche Punktzahl ist " + durchschnitt + " Punkte.");
println("Von " + teilnehmerZahl + " Klausuren sind " + negativ + " negativ. Das sind " + prozentNegativ + "%. Es muss " + (prozentNegativ < 50 ? "nicht " : "") + "nachgeschrieben werden.");
println("Die höchste Punktzahl ist " + maximum + " Punkte.");
println("Die niedrigste Punktzahl ist " + minimum + " Punkte.");
println();
println("Notenspiegel:");
 
for (int i = 0; i < notenspiegel.length; i++) {
  print("| " + String.format("%2s", i) + " ");
}
println("|");
println("|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|");
for (int i = 0; i < notenspiegel.length; i++) {
  print("| " + String.format("%2s", notenspiegel[i]) + " ");
}
println("|");

b) Erweitert das Programm so, dass es wie in Aufgabe 1 und 2 die Klausurergebnisse aus einer Datei lädt.

info/sek-ii/q1/algorithmen-rekursion/l1-einfache-alg.txt · Zuletzt geändert: 2023-09-17 19:48 von christian.weber