Christoph Ott Institut für Angewandte Informationsverarbeitung 26. August 2008
Blatt 2
WiMa-Praktikum/ Programmier-Praktikum (SS 2008)
Submit-Übungsaufgaben
Submit-Frist bis: Mittwoch 27. August 2008 9:15 Uhr
Nehmt an, Ihr seid auf einer Party und wollt noch mit dem Auto heimfahren.
Schreibt ein Programm alkohol.cpp, das
über den Argumentvektor das Geschlecht ('m' für männlich oder 'w' für weiblich)
und das Körpergewicht
entgegennimmt und eine tabellarische Übersicht über die mögliche Anzahl an Bieren (0,5 Liter) und den
ungefähren resultierenden Promillespiegel (auf zwei signifikante Stellen gerundet) erstellt.
Eine Ausgabe auf dem Bilschirm kann
also folgendermaßen aussehen:
thales$ a.out m 80
1 0
2 0.13
3 0.44
4 0.76
5 1.1
6 1.4
7 1.7
8 2
9 2.3
10 2.6
thales$
Die Berechnung des Alkoholspiegels soll auf folgenden (relativ realistischen) Grundlagen beruhen:
Euer Programm soll darüber hinaus mit dem Exit-Status 1 terminieren, wenn die Anzahl der Argumente
nicht mit der Vorgabe übereinstimmt, bzw. das Geschlecht von m oder w abweicht.
Schreibt ein Programm sieb.cpp, das eine ganze Zahl einliest und die Anzahl der
Primzahlen bis (einschließlich) dieser Zahl berechnet. Eine ganze Zahl >=2
ist eine Primzahl, wenn sie nur durch 1 und sich selbst teilbar ist. Mit dem
Sieb des Eratosthenes kann man das folgendermaßen realisieren:
Man erhält die Primzahlen, indem man alle Vielfachen der bereits gefundenen
Primzahlen ''streicht'', d.h.
- zuerst werden alle Vielfachen von 2 gestrichen,
- anschließend alle Vielfachen von 3,
- dann alle Vielfachen von 5,
- usw.
Tipp: Es empfiehlt sich alle zu untersuchenden Zahlen
in einem bool-Array zu verwalten. Zu Beginn setzt man alle
Elemente auf true und setzt anschließend sukzessive alle zu streichenden Elemente
auf false. Abschließend kann man die verbliebenen
true-Elemente zählen.
Viel Erfolg!
Christoph Ott
2008-08-26