Programmieren

Werbung
Programmieren
Fachbereich Elektrotechnik
Übung 4
Aufgabe4_1: Zufallszahlen
Die Standardlibrary bietet Funktionen zur Generierung von Zufallszahlen. Dazu muß der
Aufruf #include <stdlib.h> in ihr Programm eingebunden sein.
Der Zufallsgenerator wird realisiert durch die Funktion int rand(). Sie erzeugt bei
wiederholtem Aufruf eine Folge von Pseudozufallszahlen (Integerzahlen) zwischen 0 und
RAND_MAX, einer Konstanten, die in stdlib.h definiert ist. Der Zufallsgenerator wird
initialisiert mit der Funktion srand(int), d.h. durch Aufruf dieser Funktion mit der Angabe
irgendeiner Integerzahl wird die Basis für eine neue Folge von Pseudozufallszahlen
vorgegeben.
Schreiben Sie nun ein Programm, das einen Würfel nachgebildet. Es sollen 10
Zufallszahlen zwischen 1 und 6 ausgegeben werden.
Erweitern Sie Ihr Programm so, daß nun 10 Zufallszahlen zwischen 0 und 1 ausgegeben
werden (Datentyp float).
Aufgabe4_2: Monte-Carlo Methode
Mit Hilfe des Zufallsgenerators soll nun die Zahl Pi ermittelt werden. Stellen Sie sich dazu
folgendes Experiment vor:
In ein Quadrat mit der Seitenlänge 1 wird ein Viertelkreis
gezeichnet. Auf dieses Quadrat fallen nun (zufällig
verteilte) Regentropfen. Wenn man nun die Regentropfen
zählt und zusätzlich den Anteil ermittelt, der innerhalb des
Viertelkreises gefallen ist, so wird bei genügend großer
Anzahl von Regentropfen das Verhältnis von gesamter
Tropfenzahl zu Tropfenzahl im Viertelkreis das Verhältnis
der Flächen ergeben.
Radius = 1
Die Fläche des Viertelkreises ist ¼ r2 Pi, die Fläche des
Quadrats ist r2 , daraus läßt sich Pi berechnen.
Schreiben Sie ein Programm, das dieses Experiment
nachbildet und geben Sie den ermittelten Wert von Pi
aus.
Hinweis: Ein zufälliger Regentropfen wird durch seine x- und y-Koordinate angegeben.
Sowohl x- wie y-Koordinate werden als Zufallszahl zwischen 0 und 1 generiert.
2
2
2
Ein Tropfen liegt innerhalb des Viertelkreises, wenn gilt : x + y < r (Pythagoras!!)
Übung 4
1/2
Programmieren
Fachbereich Elektrotechnik
Aufgabe 4_1: Nochmal Fahrenheit
In einer früheren Aufgabe wurde die Umrechnung von Celsius nach Fahrenheit
programmiert. Schreiben Sie nun diese Umrechnung als Funktion. Eingangsparameter sind
Temperatur und Benennung, Rückgabewert ist der umgewandelte Temperaturwert.
Geben Sie eine Tabelle aus ,die in 10er Schritten von –20 Grad Celsius bis 120 Grad
Celsius die zugehörigen Fahrenheitwerte angibt bzw. die von 0 Grad Fahrenheit bis 140
Grad Fahrenheit die Celsiuswerte angibt.
Aufgabe 4_2: Serien/Parallel-Schaltung
Schreiben Sie eine Funktion R_Par, die den Gesamtwiderstand zweier parallel geschalteter
Widerstände berechnet sowie eine Funktion R_Ser für die Berechnung des
Gesamtwiderstands zweier in Reihe geschalteter Widerstände. Ermitteln Sie mit diesen
Funktionen den Widerstand Rges folgender Schaltung:
R4
R2
R3
R1
Hinweis: Die Funktionen können
Funktionsaufrufs verwenden!
als
Parameter
das
Ergebnis
eines
anderen
Aufgabe4_3: Vektor
Der Zufallsgenerator soll nun getestet werden. Erzeugen Sie Integer-Zufallszahlen im
Bereich von 0 bis zu einer Konstanten ZUFALL_MAX. Es soll nun ermittelt werden, wie oft
die einzelnen Zufallszahlen auftreten. Verwenden Sie dazu einen Vektor mit der Länge
ZUFALL_MAX. Benützen Sie nun die Zufallszahl als Index und erhöhen Sie bei jedem
Auftreten der Zufallszahl den Inhalt des entsprechenden Vektor-Elements.
Der Vektor wird (ausnahmsweise) global definiert.
Erstellen Sie nun folgende Funktionen:
void vektor_fuellen (int anzahl)
Die Zufallsfunktion wird anzahl-mal aufgerufen und der Vektor wird gefüllt.
int vektor_max ()
Die Funktion liefert den maximalen Wert des Vektors zurück
int vektor_min (int anzahl)
Die Funktion liefert den minimalen Wert des Vektors zurück
float vektor_mittel (int anzahl)
Die Funktion berechnet den Mittelwert aller Zufallszahlen
void vektor_print ()
Die Inhalte des Vektors werden auf dem Bildschirm ausgegeben
Schreiben Sie das Programm so, daß im Hauptprogramm nur mehr Eingaben, Ausgaben
und die oben definierten Funktionen stehen.
Übung 4
2/2
Herunterladen