Arbeitsblatt 1.12.2011

Werbung
Arbeitsblatt 1.12.2011
Aufgabe 1: Wachstum
Auf einem Schiff befinden sich 1000 Passagiere. Einer von ihnen wird von einer
ansteckenden, langwierigen Krankheit befallen. Durch Ansteckung werden immer mehr
Passagiere krank.
Nennen wir K die Anzahl der Kranken und G die Anzahl der Gesunden, so gilt K + G = 1000.
Der Zuwachs an Kranken hängt von der Anzahl der Begegnungen zwischen Kranken und
Gesunden ab. Jeder Gesunde kann K Kranken begegnen, beim Frühstück, beim Mittagessen,
in den Gängen des Schiffs usw.. Da es G Gesunde gibt, sind insgesamt K * G Begegnungen
möglich.
Wir machen daher den Ansatz, dass der Zuwachs an Kranken von dem Produkt K * G
abhängt. Nicht jede Begegnung führt zu einer Ansteckung. Daher schreiben wir:
ZUWACHS := W * K * G, dabei ist W der Ansteckungsfaktor. Was bedeutet W= 1 (0.5,
0.001, 0)?
Im Laufe einer Woche finden durchschnittlich alle G * K Begegnungen statt, und der
Ansteckungsfaktor W ist erfahrungsgemäß W = 0.0009. Stellen Sie ein Programm auf und
bestimmen Sie, wie viele Passagiere nach 1,2, .. 15 Wochen krank sein werden.
Aufgabe 2: Zahlenbewertung
Es ist für einen positiven ganzzzahligen Zahlenwert zu bestimmen,
• ob die Zahl eine gerade oder ungerade Zahl ist,
• ob die ganze Zahl eine Primzahl ist und
• ob die Zahl eine Fibonacci-Zahl ist.
( Eine Primzahl ist eine positive ganze Zahl, die ohne Rest nur durch sich selbst oder 1 teilbar
ist. Eine Zahl ist dann Primzahl, wenn die Restwerte von n/2, n/3, n/4, ... , n/n-1 von 0
verschieden sind.)
(Fibonacci-Zahlen sind Bestandteile einer Zahlenfolge, bei der jede Zahl gleich der Summe
der vorhergehenden zwei Zahlen ist. Fi = Fi-1 + Fi-2 )
Ergänzen Sie die Methoden public boolean istGerade(), public boolean istPrimzahl(),
public boolean istFibonacci() an den angegebenen Stellen.
public class ZahlenTest {
private int n;
public ZahlenTest(int value){
n = value;
}
public boolean istFibonacci() {
// hier Quelltext einfügen
}
public boolean istPrimzahl() {
// hier Quelltext einfügen
}
public boolean istGerade() {
// hier Quelltext einfügen
}
}
Aufgabe 3: Wachstum
Bei einer Population von Drosophila-Fliegen, die in einem Glasbehälter untergebracht und
mit hinreichend Nahrung versorgt wurden, stellt man eine Entwicklung der Individuenzahl
fest, die sich nach der Rekursionsformel
mit n = 0, 1, 2, ..., r = 0.8; und s = 0.008
näherungsweise berechnen.
Entwickeln Sie ein Simulationsprogramm, mit dem die Veränderungen der Individuenanzahl
in Abhängigkeit von den Parametern r und s verfolgt werden können. Geben Sie die
Entwicklung der Population nach jeder Generation aus. Beenden Sie die Simulation, wenn
keine Veränderung der Anzahl der Fliegen mehr zu erkennen ist, jedoch maximal nach 10000
Generationen.
Aufgabe 4: Reihenentwicklung
Berechnen Sie die Zahl e durch eine Reihenentwicklung. Die iterative Berechnung erfolgt
nach folgender Formel:
Die geforderte Genauigkeit für die Berechnung ist zu übergeben.
Die Entwicklung und die Anzahl der Iterationsschritte sind auszugeben. Das Ergebnis ist
zurückzugeben.
Aufgabe 5: Teilbarkeit
Analysieren Sie eine eingegebene Zahl auf die Teilbarkeit durch ihre Ziffern. Es ist eine
ganze Zahl einzulesen. Für alle Ziffern dieser Zahl ist festzustellen, ob die Zahl durch diese
Ziffern teilbar ist. Für jede Ziffer ist das Ergebnis auf der Konsole auszugeben. Die Anzahl
der Teiler ist als Rückgabewert zu übergeben.
Aufgabe 6: Fehler finden
Ändern Sie die unten stehende Auftragsvorlage so ab, dass das Programm fehlerfrei läuft und
vom System akzeptiert wird. Beachten Sie dabei neben den Syntaxfehlern auch logische
Fehler (also Fehler, die zwar ein Ergebnis liefern, welches aber falsch ist). Zum Testen
müssen Sie nach Eingabe der Änderungen in das Fenster auf den "Einreichen"-Button
klicken.
Aufgabenstellung
Zwei verschiedene natürliche Zahlen a und b heißen befreundet, wenn die Summe der von a
verschiedenen Teiler von a gleich b ist und die Summe der von b verschiedenen Teiler von
b gleich a ist.
Ein Beispiel für ein solches befreundetes Zahlenpaar ist (a,b) = (220,284), denn a = 220 hat
die Teiler 1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110 und es gilt
1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284 = b
Weiterhin hat b=284 die Teiler 1, 2, 4, 71, 142 und es gilt
1 + 2 + 4 + 71 + 142 = 220 = a
Es soll ein Java-Programm geschrieben werden, das jeweils zwei Zahlen einliest, entscheidet,
ob diese miteinander befreundet sind und entsprechend true oder false zurückgibt.
/**
* Klasse Zahlenfreunde zur Ermittlung befreundeter Zahlen
*
* @author Rita
* @version 22.11.11
*/
public class Zahlenfreunde
{
/**
* Diese Methode findet heraus, ob zwei Zahlen befreundet
sind
*
* @param a, b
Zahlen, die ueberprueft werden sollen
* @return
wahr oder falsch
*/
public String befreundeteZahlenF(int a, int b)
{
boolean ergebnis;
int teilera = 0, teilerb = 0;
for (int i = 1; i <= a/2; i++) //Durchsuchen auf
moegliche Teiler
{
if (a % i == 0)
teilera = teilera + i;
}
if (teilera == b)
{
for (int i = 1; i <= b; i++) //Durchsuchen auf
moegliche Teiler
{
if (b % i == 0)
teilerb = teilerb + i;
}
if (teilerb == a)
ergebnis = true;
return ergebnis;
}
}
}
Herunterladen