Projektdefinition - Beschreibung: Matura-ähnliche Aufgaben in Python programmieren
In diesem Projekt hatte jeder die Aufgabe, drei Aufgaben mittels Python zu implementieren. Diese sollten Schülergerecht aufbereitet sein und von der Schwierigkeitsform passend sein. Nachfolgend sind meine Aufgaben angeführt.
Markus Wieser: Schreibe in Programm, das das Heron-Verfahren für Wurzelziehen implementiert: Als Eingabe benötigt das Programm eine Zahl und die Anzahl an Durchläufen (Genauigkeit), als Ausgabe liefet es die Wurzel der Zahl # Function def heron(side, accuracy): #Seitenlänge und Anzahl der Durchläufe if accuracy > 0: #Wenn Genauigkeit >0 prevres = heron(side, accuracy - 1) #rekursiver Aufruf der Funktion return 0.5 * (prevres + side / prevres) #Rückgabe else: return side # Main def main(): num = int(input("Number:")) acc = int(input("Accuracy:")) print("Squareroot of", num, "is", heron(num, acc)) main() Schwierigkeitsgrad: mittel -------------------------- Markus Wieser: Schreibe ein Programm, das das Joephus-Problem löst. Das Josephus Problem lautet folgendermaßen: Es werden n Objekte im Kreis aufgestellt. Jedes k-te Element wird entfernt. Welches Objekt bleibt als letztes übrig und in welcher Reihenfolge werden die Objekte gelöscht? def josephus(n, k): active = [] #Array aller Objekte die im Spiel sind deleted = [] #Array aller gelöschten Objekte for i in range(n): #Zählschleife von i bis n active.append(i + 1) #füge i+1 zur aktiven Liste hinzu act = k - 1 #setze act gleich k-1 while (len(active) > 1): #Solange die Liste der aktiven Objekte größer 1 ist deleted.append(active.pop(act)) #füge das k-1. Element der Lite gelöscht hinzu act += k - 1 #zähle k-1 zu act dazu act = act % len(active) #Modulo der aktiven Elemente return active + deleted #das erste Element des Arrays ist die etzte übrige Zahl, der Rest die Gelöschten in er Löschungsreihenfolge def print_josephus(a): b = [] print("Last: ", a[0]) for i in range(1, len(a)): b.append(a[i]) print("Sequence of deleted: ", b) # Main def main(): num = int(input("Total Number:")) delete = int(input("X-th to be deleted:")) print_josephus(josephus(num, delete)) main() Schwierigkeitsgrad: mittel -------------------------- Markus Wieser: Schreibe ein Progamm das alle Primzahlen bis zu einer bestimmten Zahl (maximum) angibt. def primes_sieve_eratosthenes(maximum): newmax = maximum + 1 #Größe des Arrays definieren noprime = [False] * newmax #Boolean Array mit n Elementen (n = eingegebenes Max) prime = [] #Array für die Primzahlen for i in range(2, newmax): #im Bereich von 2 bis zum Maximum if noprime[i]: #Wenn eine Zahl keine Primzahl ist (noprime is True) continue for f in range(i * 2, newmax, i): #wähle alle Vielfachen von i aus noprime[f] = True #Setze noprime auf True prime.append(i) #Füge i zu der Liste der Primzahlen hinzu return prime #gib die Liste der Primzahlen zurück # Main def main(): limit = int(input("Please insert the max integer for search: ")) #Obergrenze eingeben print(primes_sieve_eratosthenes(limit)) #ausgeben der Liste auf der CMD main() Schwierigkeitsgrad:mittel -------------------------