Aufgabe 1 - Y2K Problem Schreibe ein Programm, in dem zwei

Werbung
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
Herunterladen