Übungen / Aufgaben zu Python
3 Lösungen
Turmspringen/Wasserspringen (Punktewertung)
Bei internationalen Wettkämpfen bewerten in Einzelwettbewerben sieben Wettkampfrichter die Sprünge.
Jeder vergibt pro Sprung 0 bis 10 Punkte, mit Schritten von halben Punkten.
Die zwei höchsten und niedrigsten Wertungen werden gestrichen.
Die verbleibenden drei Wertungen werden addiert und das Ergebnis mit dem Schwierigkeitsgrad multipliziert.
Das Endresultat entspricht der erzielten Punktzahl des Springers.
Beispiel 1:
Schwierigkeitsgrad: 2,1
Punkte: 7,5 | 7,5 | 7,0 | 8,0 | 8,0 | 7,5 | 8,5
Gestrichen: 7,5 | 7,5 | 7,0 | 8,0 | 8,0 | 7,5 | 8,5
Wertung: 7,5 + 7,5 + 8,0 = 23 * 2,1 = 48,3
Beispiel 2:
Schwierigkeitsgrad: 1,6
Punkte: 7,5 | 7,5 | 7,5 | 7,5 | 7,5 | 7,5 | 7,5
Gestrichen: 7,5 | 7,5 | 7,5 | 7,5 | 7,5 | 7,5 | 7,5
Wertung: 7,5 + 7,5 + 7,5 = 22,5 * 1,6 = 36
Erstelle eine Methode/Funktion, mit der die obige Aufgabenstellung gelöst werden kann.
Viel Spaß
Jeder vergibt pro Sprung 0 bis 10 Punkte, mit Schritten von halben Punkten.
Die zwei höchsten und niedrigsten Wertungen werden gestrichen.
Die verbleibenden drei Wertungen werden addiert und das Ergebnis mit dem Schwierigkeitsgrad multipliziert.
Das Endresultat entspricht der erzielten Punktzahl des Springers.
Beispiel 1:
Schwierigkeitsgrad: 2,1
Punkte: 7,5 | 7,5 | 7,0 | 8,0 | 8,0 | 7,5 | 8,5
Gestrichen: 7,5 | 7,5 | 7,0 | 8,0 | 8,0 | 7,5 | 8,5
Wertung: 7,5 + 7,5 + 8,0 = 23 * 2,1 = 48,3
Beispiel 2:
Schwierigkeitsgrad: 1,6
Punkte: 7,5 | 7,5 | 7,5 | 7,5 | 7,5 | 7,5 | 7,5
Gestrichen: 7,5 | 7,5 | 7,5 | 7,5 | 7,5 | 7,5 | 7,5
Wertung: 7,5 + 7,5 + 7,5 = 22,5 * 1,6 = 36
Erstelle eine Methode/Funktion, mit der die obige Aufgabenstellung gelöst werden kann.
Viel Spaß
3 Lösungen
Figur zurück zum Ausgangspunkt
Eine Figur bewegt sich auf einer 2D- Spielfläche (Koordinatensysteme). Dabei startet sie an der Position (0, 0).
Die Figur kann folgende Bewegungen im Einzelschritt durchführen: Right (R), Left (L), Up (U) und Down (D).
Anhand einer bestimmten Sequenz soll geprüft werden, ob sich die Figur am Ende wieder an der Ausgangsposition befindet.
Beispielsequenzen:
s = „UD“: Wahr
s = „LURD“: Wahr
s = „LLDD“: Falsch
s = „LLUUURDDRD“: Wahr
s = „LDRRLRUULR“: Falsch
Schreibe eine Methode/Funktion, die obige Aufgabenstellung realisieren kann.
Viel Spaß
Die Figur kann folgende Bewegungen im Einzelschritt durchführen: Right (R), Left (L), Up (U) und Down (D).
Anhand einer bestimmten Sequenz soll geprüft werden, ob sich die Figur am Ende wieder an der Ausgangsposition befindet.
Beispielsequenzen:
s = „UD“: Wahr
s = „LURD“: Wahr
s = „LLDD“: Falsch
s = „LLUUURDDRD“: Wahr
s = „LDRRLRUULR“: Falsch
Schreibe eine Methode/Funktion, die obige Aufgabenstellung realisieren kann.
Viel Spaß
4 Lösungen
Produkt der 2 größten Elemente eines Arrays
Erstelle eine Methode/Funktion, die das Produkt der beiden größten Elemente eines Arrays berechnet.
array = { 1, 7, 5, 9, 2, 3 }
Lösung:
(7 * 9) = 63
Je nach Vorliebe bzw. Programmiersprache können natürlich auch Listen oder Vektoren genutzt werden.
Viel Spaß
array = { 1, 7, 5, 9, 2, 3 }
Lösung:
(7 * 9) = 63
Je nach Vorliebe bzw. Programmiersprache können natürlich auch Listen oder Vektoren genutzt werden.
Viel Spaß
2 Lösungen
Palindromische Primzahlen
Man erzeuge eine Liste aller Primzahle <= 1 Milliarde (1E+9), die in dezimaler Präsentation umgekehrt gelesen ebenfalls eine Primzahl sind (Palindromische Primzahlen). Z. B. 13; 31 ist ebenfalls Primzahl.
Viel Spaß!
Viel Spaß!
1 Lösung
Alphametik – ein Logikrätsel
Gegeben sei folgende Addition:
I B X B J J + U B I J U J = J O T F M O
Die Aufgabe besteht darin, jedem Buchstaben genau die Ziffer zwischen 0 bis 9 zuzuordnen
I = 1, U= 2, F = 3, J = 4, X = 5, M = 6, T = 7, O = 8, B = 9
damit die Addition aufgeht. Hier ist das Ergebnis:
1 9 5 9 4 4 + 2 9 1 4 2 4 = 4 8 7 3 6 8
Gibt es eine oder mehrere Lösungen? Im Internet findet Ihr weitere Alphametiken.
Viel Erfolg – viel Spaß.
I B X B J J + U B I J U J = J O T F M O
Die Aufgabe besteht darin, jedem Buchstaben genau die Ziffer zwischen 0 bis 9 zuzuordnen
I = 1, U= 2, F = 3, J = 4, X = 5, M = 6, T = 7, O = 8, B = 9
damit die Addition aufgeht. Hier ist das Ergebnis:
1 9 5 9 4 4 + 2 9 1 4 2 4 = 4 8 7 3 6 8
Gibt es eine oder mehrere Lösungen? Im Internet findet Ihr weitere Alphametiken.
Viel Erfolg – viel Spaß.
2 Lösungen
Anagramme (Schüttelwörter) gruppieren
Von einem Anagramm oder auch deutsch Schüttelwort spricht man,
wenn man durch Umstellen der vorhandenen Zeichen eines Wortes ein neues sinnvolles Wort bilden kann.
Oft werden Anagramme mit Palindromen verwechselt, wobei ein Anagramm auch gleichzeitig
ein Palindrom sein kann, z.B.: LAGERREGAL – REGALLAGER.
ANNA – ANNA hingegen ist kein Anagramm, sondern ein Palindrom,
obwohl es wegen des Gleichklangs ANA oft irrtümlich so bezeichnet wird.
Gegeben ist eine Liste bestehend aus verschiedenen Wörtern.
list = { "eat", "tea", "tan", "ate", "nat", "bat" };
Schreibe eine Methode/Funktion, die die Liste list auf Anagramme hin überprüft
und die Ergebnisse in einer neuen Liste gruppiert zurückgibt.
result = { {"bat"}, {"nat", "tan"}, {"ate", "eat", "tea"} }
Die Reihenfolge der Rückgabe in der List ist nicht entscheidend.
Wörter, die keine Anagramme bilden, sollen ebenfalls als Einzelwort in die Ergebnisliste aufgenommen werden.
Je nach Programmiersprache oder Vorliebe können statt Listen auch Arrays oder Tupel verwendet werden.
Viel Spaß
wenn man durch Umstellen der vorhandenen Zeichen eines Wortes ein neues sinnvolles Wort bilden kann.
Oft werden Anagramme mit Palindromen verwechselt, wobei ein Anagramm auch gleichzeitig
ein Palindrom sein kann, z.B.: LAGERREGAL – REGALLAGER.
ANNA – ANNA hingegen ist kein Anagramm, sondern ein Palindrom,
obwohl es wegen des Gleichklangs ANA oft irrtümlich so bezeichnet wird.
Gegeben ist eine Liste bestehend aus verschiedenen Wörtern.
list = { "eat", "tea", "tan", "ate", "nat", "bat" };
Schreibe eine Methode/Funktion, die die Liste list auf Anagramme hin überprüft
und die Ergebnisse in einer neuen Liste gruppiert zurückgibt.
result = { {"bat"}, {"nat", "tan"}, {"ate", "eat", "tea"} }
Die Reihenfolge der Rückgabe in der List ist nicht entscheidend.
Wörter, die keine Anagramme bilden, sollen ebenfalls als Einzelwort in die Ergebnisliste aufgenommen werden.
Je nach Programmiersprache oder Vorliebe können statt Listen auch Arrays oder Tupel verwendet werden.
Viel Spaß
1 Lösung
Erstes einzelnes Zeichen in einem String
Erstelle eine Methode/Funktion, mit der man den Index des ersten einzeln
vorkommenden Zeichens in einem String (Text) ermitteln kann.
Groß- und Kleinschreibung soll nicht unterschieden werden.
Hinweise:
String ist nullbasiert.
Wenn es keine Lösung gibt, soll -1 ausgegeben werden.
Beispiele:
trainyourprogrammer => 0 (t)
lovegenericlists => 1 (o)
lovelollorosso => 2 (v)
otto => -1
Viel Spaß
vorkommenden Zeichens in einem String (Text) ermitteln kann.
Groß- und Kleinschreibung soll nicht unterschieden werden.
Hinweise:
String ist nullbasiert.
Wenn es keine Lösung gibt, soll -1 ausgegeben werden.
Beispiele:
trainyourprogrammer => 0 (t)
lovegenericlists => 1 (o)
lovelollorosso => 2 (v)
otto => -1
Viel Spaß
1 Lösung
Und noch mehr Quersummen
Von einer positiven Integer- Zahl soll solange die Quersumme gebildet werden
bis die Zahl einstellig geworden ist.
Die einstellige Zahl soll als Ergebnis ausgegeben werden.
Beispiel:
739 => 7 + 3 + 9 = 19
19 => 1 + 9 = 10
10 => 1 + 0 = 1
Viel Spaß
bis die Zahl einstellig geworden ist.
Die einstellige Zahl soll als Ergebnis ausgegeben werden.
Beispiel:
739 => 7 + 3 + 9 = 19
19 => 1 + 9 = 10
10 => 1 + 0 = 1
Viel Spaß
4 Lösungen
Isomorphe Strings (Mustergleichheit)
Als isomorph bezeichnet man zwei oder mehrere Strings (Texte),
die zwar inhaltlich unterschiedlich sind, aber dennoch das gleiche Muster aufweisen.
Achtung:
Gleiche Buchstaben bedeuten Musterwiederholung! ABAB ist nicht ABCD, aber CDCD.
Beispiele:
s1 = ABBA; s2 = OTTO => true
s1 = PAPER; s2 = TITLE => true
s1 = EGG; s2 = ADD => true
s1 = BADC; s2 = BABA => false
s1 = BBBAAABA; s2 = AAABBBBA => false
Erstelle eine Funktion/Methode, die zwei Strings (Texte) hinsichtlich Isomorphie vergleicht.
Viel Spaß
die zwar inhaltlich unterschiedlich sind, aber dennoch das gleiche Muster aufweisen.
Achtung:
Gleiche Buchstaben bedeuten Musterwiederholung! ABAB ist nicht ABCD, aber CDCD.
Beispiele:
s1 = ABBA; s2 = OTTO => true
s1 = PAPER; s2 = TITLE => true
s1 = EGG; s2 = ADD => true
s1 = BADC; s2 = BABA => false
s1 = BBBAAABA; s2 = AAABBBBA => false
Erstelle eine Funktion/Methode, die zwei Strings (Texte) hinsichtlich Isomorphie vergleicht.
Viel Spaß
3 Lösungen
Zweierpotenz (Power Of Two)
Erstelle eine Methode/Funktion, mit der man bestimmen kann,
ob die übergebene Zahl als Ganzzahl- Potenz (Integer) zur Basis 2 geschrieben werden kann.
Beispiele:
Zahl: 1 => true
Lösung: 0, denn 2 hoch 0 = 1
Zahl: 16 => true
Lösung: 4, denn 2 hoch 4 = 16
Zahl: 3 => false
Lösung: keine, da keine Ganzzahl zur Basis 2 die Zahl 3 ergibt
Für Fortgeschrittene:
Die Aufgabe ohne Zuhilfenahme der eingebauten Logarithmusfunktionen lösen.
Viel Spaß
ob die übergebene Zahl als Ganzzahl- Potenz (Integer) zur Basis 2 geschrieben werden kann.
Beispiele:
Zahl: 1 => true
Lösung: 0, denn 2 hoch 0 = 1
Zahl: 16 => true
Lösung: 4, denn 2 hoch 4 = 16
Zahl: 3 => false
Lösung: keine, da keine Ganzzahl zur Basis 2 die Zahl 3 ergibt
Für Fortgeschrittene:
Die Aufgabe ohne Zuhilfenahme der eingebauten Logarithmusfunktionen lösen.
Viel Spaß
3 Lösungen
Magisches Quadrat (magic square)
Von einem Magischen Quadrat spricht man, wenn
- alle Zahlen nur einmal vorkommen und die Summe der Zahlen
- aller Zeilen,
- aller Spalten sowie
- der Diagonalen immer gleich ist.
Beispiele für Magische Quadrate sind als Bilder angehängt.
Schreibe eine Methode/Funktion, mit der man überprüfen kann, ob es sich bei einer
beliebig großen quadratischen Matrix um ein solch magisches Quadrat handelt.
Zusätzlich kann, bei positiver Prüfung, auch die gesuchte Summe ausgegeben werden.
Zur Darstellung der Matrix können je nach Programmiersprache oder Vorliebe Arrays,
Vektoren oder auch generische Listen verwendet werden.
Viel Spaß
- alle Zahlen nur einmal vorkommen und die Summe der Zahlen
- aller Zeilen,
- aller Spalten sowie
- der Diagonalen immer gleich ist.
Beispiele für Magische Quadrate sind als Bilder angehängt.
Schreibe eine Methode/Funktion, mit der man überprüfen kann, ob es sich bei einer
beliebig großen quadratischen Matrix um ein solch magisches Quadrat handelt.
Zusätzlich kann, bei positiver Prüfung, auch die gesuchte Summe ausgegeben werden.
Zur Darstellung der Matrix können je nach Programmiersprache oder Vorliebe Arrays,
Vektoren oder auch generische Listen verwendet werden.
Viel Spaß
3 Lösungen
Fröhliche Zahlen (Happy Number)
Von einer fröhlichen Zahl spricht man, wenn eine natürliche Ausgangszahl (Integer)
nach einer bestimmten Iterationsvorschrift am Ende den Zielwert 1 hat.
Die Iterationsvorschrift hier:
Die Summe der Quadrate aller Ziffern einer Zahl.
Wiederholen des Prozesses mit der neu entstandenen Zahl, bis am Ende
das Ergebnis entweder 1 (true) ist oder die Schleife unendlich weiterläuft (false).
Beispiel Glückliche Zahl:
Zahl 19
1² + 9² = 82
8² + 2² = 68
6² + 8² = 100
1² + 0² + 0² = 1
Beispiel unendlich:
Zahl 2
2² = 4
4² = 16
1² + 6² = 37
3² + 7² = 58
5² + 8² = 89
8² + 9² = 145
...
Aufgabe 1 (mittel):
Erstelle eine Methode/Funktion, die als Ergebnis bei einer Glücklichen Zahl den Wert true
und ansonsten false zurückgibt. Dabei können mehrere Schleifen ineinander verschachtelt werden.
Aufgabe 2 (schwieriger):
Wie Aufgabe 1, aber mit nur einer Schleife.
Viel Spaß
nach einer bestimmten Iterationsvorschrift am Ende den Zielwert 1 hat.
Die Iterationsvorschrift hier:
Die Summe der Quadrate aller Ziffern einer Zahl.
Wiederholen des Prozesses mit der neu entstandenen Zahl, bis am Ende
das Ergebnis entweder 1 (true) ist oder die Schleife unendlich weiterläuft (false).
Beispiel Glückliche Zahl:
Zahl 19
1² + 9² = 82
8² + 2² = 68
6² + 8² = 100
1² + 0² + 0² = 1
Beispiel unendlich:
Zahl 2
2² = 4
4² = 16
1² + 6² = 37
3² + 7² = 58
5² + 8² = 89
8² + 9² = 145
...
Aufgabe 1 (mittel):
Erstelle eine Methode/Funktion, die als Ergebnis bei einer Glücklichen Zahl den Wert true
und ansonsten false zurückgibt. Dabei können mehrere Schleifen ineinander verschachtelt werden.
Aufgabe 2 (schwieriger):
Wie Aufgabe 1, aber mit nur einer Schleife.
Viel Spaß