Aufgabe 1 - Y2K Problem Schreibe ein Programm, in dem zwei Jahreszahlen eingelesen werden in der Form“62“ (für 1962) oder “09“ (für 2009). Die erste Zahl sei ein Geburtsjahr und die zweite das aktuelle Jahr. Das Programm soll nun das Alter der Person in Jahren ausgeben, z.B.: Geburtsjahr: 62 Aktuelles Jahr: 99 Das Alter ist: 37 oder: Geburtsjahr: 86 Aktuelles Jahr: 08 Das Alter ist: 22 Aufgabe 2 - Letzter Tankstop vor Death Valley Am Rande des Death Valley befindet sich eine Tankstelle. Die nächsten 186 km gibt es keine weitere Tankstelle. Schreibe ein Programm, das dem Fahrer hilft zu entscheiden, ob er tanken soll oder nicht. Dazu müssen die Tankgröße in Litern festgelegt werden, der Verbrauch des Fahrzeugs in km pro l und wieviel Prozent des Tanks noch voll ist (100 heißt voll, 75 heißt drei viertel voll, etc.). Das Programm soll nun für verschiedene Eingabewerte ausgeben, ob der Fahrer tanken soll, bzw. weiterfahren kann, d.h. ob er noch genug Benzin für 186 km hat, oder nicht. Aufgabe 6 - Fibonacci-Zahlen Die Fibonacci-Folge besteht aus Zahlen, in der jede Zahl die Summe der beiden vorangehenden ist und die ersten beiden Zahlen 1 sind: an = an−1+an−2, n > 2 Die ersten Zahlen lauten also: 1, 1, 2, 3, 5, 8, 13, ... Schreibe ein Programm, dass alle Fibonacci-Zahlen kleiner 100 ausgibt. Aufgabe 7 - Teiler Schreibe ein Programm, welches für jede Zahl von 17 bis 42 ausgibt, durch welchen Teiler sie ohne Rest teilbar ist. Verwende als Teiler nur die Zahlen 2, 3 und 5. Aufgabe 8 - Felder Belege ein Feld mit 10 beliebigen Zahlen (z.B. 1,2,3,4,5,6,7,8,9,0). a) Gebe diese Zahlen rückwärts aus. b) Verschiebe nun jede Zahl um 3 Stellen nach rechts, wobei die letzten drei Zahlen des Feldes wieder an den Anfang geschrieben werden: 8,9,0,1,2,3,4,5,6,7. c) Erweitere das Programm noch durch die Möglichkeit, dass der Benutzer wählen kann, um wieviele Felder die Zahlen verschoben werden sollen und ob die Zahlen nach rechts oder links (rechts=1, links=0) verschoben werden sollen. Aufgabe 9 - Fakultät Schreibe ein Programm, welches für ein positives n < 17 die Fakultät berechnet: n! = n · (n−1) · (n−2) · . . . · 1 Es gilt 0! = 1 und 1! = 1. Negative Fakultäten sind nicht definiert. Finde eine iterative und eine rekursive Lösung. Aufgabe 10 - Spielpaarungen Gegeben seien die Spieler A-J. Es soll jeder gegen jeden gespielt werden. Schreibe ein Programm, welches alle verschiedenen Spielpaarungen ausgibt und zählt, wieviele Spiele statt finden müssen. Aufgabe 11 - Matrix-Suche Schreibe ein Programm, welches in einer quadratischen Matrix nach einer Zahl sucht. Die Matrix wird im Programm vordefiniert: 1 2 4 6 7 1 0 9 5 2 5 0 7 8 8 8 0 7 4 715 2 9 8 9 2 M = 4 5 2 7 2 8 11 4 518 0 0 9 0 0 5 2 0 0 81 21 4 6 a) Es soll in der Matrix nach einer eingelesenen einstelligen Zahl gesucht werden können. Hierbei soll zunächst die erste, dann die zweite Zeile usw. durchsucht werden. Wurde die Zahl gefunden, so sind Zeilennummer und Spaltennummer auszugeben. Die Suche bricht dann ab, auch wenn die Zahl in der Matrix noch häufiger vorkommt. Suche nach: 8 8 steht in der 2. Zeile und 5. Spalte. Suche nach: 3 3 konnte nicht gefunden werden. b) Die einzulesende Zahl kann beliebig lang sein (maximal aber 9 Ziffern, da sie sonst nicht in der Matrix enthalten sein könnte). Es soll nun festgestellt werden, ob die Zahl waagerecht, vorwärts oder rückwärts in der Matrix enthalten ist und die Anfangskoordinaten so wie die Richtung ausgegeben werden, z.B. 2008 oder 0815 c) Wer noch nicht genug hat, kann auch senkrecht nach der Zahl in der Matrix suchen lassen: z.B. 909 d) Das kann man natürlich auch noch ausbauen, indem man diagonal sucht vielleicht sogar rekursiv! ;-) z.B. 200