Lehrzeit

Schule & Informatik

Kategorie: Tabellenkalkulation (Seite 2 von 2)

Programmieraufgabe 58

Im Moment steht wieder Excel, also Funktionales Programmieren in der 9. Klasse an. Hierzu müssen meine Schüler gerade das Spiel Mastermind nachprogrammieren. Das hat zwas nur bedingt was mit Funktionalem Programmierne zu tun, macht aber allen Spaß.

Aufgabe

Erstelle mit Excel zwei Rechnblätter so, dass du mit einem Nachbarn Mastermind spielen kannst. Als Anregung dienen dir folgende Screenshots:

Bildschirmfoto 2013-12-06 um 05.32.42

 Bildschirmfoto 2013-12-06 um 05.37.13Die Auswertung kann ausschließlich mit „Wenn“-Funktionen gestaltet werden.

Das der Computer keine bleibende Kombination zufällig wählen kann, ist Teil des „Problems“ Funktionales Programmieren – man hat keine Variablen zur Verfügung.

Hie jetzt noch eine mögliche Lösung: Mastermind . Dabei wird jedem Auswertungsfeld fest ein Ratefeld zugeordnet. Aber so ist es aufgrund der geschachtelten Wenn- und Oder-Funktionen und bedingten Formatierungen auch schon schwer.

Programmieraufgabe 54

Es ist tatsächlich schwieriger als gedacht sich wöchentliche Programmieraufgaben auszudenken, wenn es nicht immer nur eine Abwandlung von „Schreibe eine Zählwiederholung, die …“ sein soll. Aber im Unterricht hat sich wieder etwas entwickelt, die ich jetzt hiermit wieder präsentiere. Zielgruppe ist diesmal die 9. Jahrgangstufe.

Aufgabe

a) Erstelle in einem Tabellenkalkulationsprogramm eine Rechenblatt mit dem der BMI ausgerechnet werden kann.

b) Erzeuge folgende Grafik mit einem Tabellenkalkulationsprogramm:bmi

Ich halte es dabei für absolut notwendig, dass mit den Schülern vorher über die Bedeutung des BMI gesprochen wird. Vielleicht auch zusammen mit dem Biologielehrer, denn gerade die Mädchen könnten einen falschen Eindruck von sich oder anderen  bekommen – aber natürlich auch die Jungs.

Informatikaufgabe 49 – Turnierplanung

Die heutige Aufgabe stammt von einem Schüler meiner aktuellen elften Klasse. Da mir bei der Diskussion mit dem Schüler mehrere Lösungen eingefallen sind, möchte ich hier ein paar Lösungen präsentieren.

Aufgabe

In einem Turnier sollen n Spieler gegeneinander antreten. Dabei soll jeder gegen jeden spielen, wer am Schluss am meisten Punkte hat, gewinnt.

a) Wie viele Spiele gibt es?

b1) Implementiere eine Lösung nur mit Hilfe von eindimensionalen Feldern.

b2) Implementiere eine Lösung auf Basis von Graphen.

b3) Wie ließe sich das Problem mit Excel oä. lösen

Die Frage b3) kommt urspünglich von meinem Schüler, daher habe ich sie mit aufgelistet. Allerdings fällt mir nur eine Lösung mit Hilfe von VBA ein, daher kann man auch gleich einen allgemeinen Ansatz versuchen. Jetzt aber zu ein paar Erklärungen:

zu a): Ein rein kombinatorisches Problem aus der Mathematik. Jeder der n Spieler spielt gegen einen der n-1 anderen Spieler. Dabei gibt es keine Unterscheidung, ab Spieler A gegen B oder B gegen A spielt: n*(n-1)/2

zu b1) Die Spielernamen A, B, C, … seien in einem Feld (Array) gegeben:

spieler = [A,B,C,D,E]

Mit Hilfe des Feldes spieler wird ein zweites Array mit Paarungen gebildet:

paarungen = [(A,B), (A,C), (A,D), (A,E), 
             (B,C), (B,D), (B,E), 
             (C,D), (C,E), 
             (D,E)]

Das Feld paarungen wird durch einen beliebigen Algorithmus gemischt.

paarungen = [(B,E), (A,C), (A,E), (A,D), 
             (B,C), (B,D), (A,B), 
             (C,D), (D,E), 
             (C,E)]

Dann kann von vorne (oder auch hinten) beginnend eine Paarung aus dem Array entfernt werden. D.h. die erste Partie wäre: (B,E), dann (A,C) . E kann erstmal nicht spielen. Im nächsten Durchgang kommt dann (A,E) dran und dann kommt das Problem bei dieser Lösung: Die Partie (A,D) muss übergangen werden, da a ja schon belegt ist. Als nächstes wäre damit (B,C) dran. Das geht dann immer so weiter.

zu b2) Fasst man das ganze als Graph (unser aktuelles Thema, daher bin ich wohl auch erst mal auf diese Lösungen gekommen) auf, so gehen von Spieler A vier Kanten zu den Spielern B, C, D, E. Von B gehen Kanten zu C, D, E. Eine Kante zu A braucht man nicht mehr, da diese Kante ja von A aus gezogen wurde.

Um nun das Spiel zu organisieren, wählt man bei A eine belibiege Kante, zum Beispiel die zu B. Dann müssen alle anderen Kanten, die von A oder B ausgehen als blockiert gemerkt werden, da dies andere mögliche Partien sind, die sich aber im Moment nicht realisieren lassen (s. Problem bei b1) ). Man könnte aber auch die Knoten A und B als schon benutzt markieren. Der nächste freie Knoten wäre dann C, der seinen Partner in D findet. Beide werden wieder markiert. E muss dann am Schluss noch warten.

Sind alle Spiele beendet, werde die Kanten, die die gemachten Spiele symbolisieren gelöscht.

Neuere Beiträge

© 2018 Lehrzeit

Theme von Anders NorénHoch ↑