000
01.12.2002, 11:13 Uhr
~Wayne Gretzky
Gast
|
Ich bin Programmier-Anfänger und bräuchte nun ganz dringend eine Lösung für folgende Aufgabe:
In einem 4-dimensionalen Feld werden die über 10 Jahre hinweg stündlich gemessenen Temperaturen gehalten. Für diese Temperaturwerte sollen die Jahres-, Monats-, und Tages- -Maximum -Minimum (alle float) -Mittelwert errechnet werden. Dabei soll der Benutzer wiederholt eine Abfrage an das Programm stellen können, diese Werte zu berechnen.
1) lassen Sie das Programm das 4-dimensionale Feld mit Zufallszahlen wie folgt initialisieren: Benutzen Sie aus der Bibliothek <stdlib.h> die Funktion int rand() (ohne Parameter) Diese Funktion liefert bei Aufruf eine zufällige nichtnegative ganze Zahl (sogenannte Pseudo-Zufallszahl): bei wiederholtem Aufruf liefert sie immer wieder verschiedene Zahlen, die sozusagen vom Zufall abhängen: ein Folge von Zufallszahlen. Diese Folge beginnt bei einem Startwert, den man "seed" nennt: startet man immer bei gleichem seed-Wert, wird immer die gleiche Folge erzeugt. Diesen Startwert kann man mit der Funktion srand( seed ) setzen, und dadurch durch unterschiedliche seeds auch unterschiedliche Folgen erzeugen:
unsigned int seed; printf(“gib einen Anfangswert für die Zufallsfolge ein: \n”); scanf( "%d" , &seed ); srand( seed );
Unser Programm soll am Anfang einen solchen seed einlesen können. Nehmen Sie an, unsere Temperaturen sollen Wassertemperaturen in einem Heizkessel sein, zwischen 60 und 90 Grad, zu ganzen Zahlen gerundet. Zufällige Temperaturwerte in diesem Berech bekommen Sie dann wie folgt (zugewiesen in der Initialisierung des Feldes): 60 + rand() % (31);
2) überlegen Sie sich, wie die Anfrage ans Programm vom Benutzer formuliert werden können soll, damit in einem kleinen Dialog mit dem Programm aus allen Kombinationsmöglichkeiten der Zeitperioden und der Werte (Min. Max., Mittelwert) der Benutzer eine präzise Anfrage stellen kann, sodass nur diese Anfrage vom Programm berechnet wird (also keine große Tabelle mit allen Werten über alle Zeitperioden, es sei denn der Benutzer hat das so gewünscht)
3) Ändern Sie das Programm so um, dass es einen modularen Aufbau bekommt: - überlegen Sie sich, welche Funktionen sinnvoll einzusetzen sind, und geben Sie ihnen aussagekräftige Namen. Sie sollten, neben der main-Funktion, auf mindestens 3 Funktionen kommen, leicht aber auch auf die doppelte Anzahl - schreiben Sie ein Struktogramm oder Flussdiagramm des ganzen Programms mit den Funktionsaufrufen - definieren Sie die Schnittestellen der Funktionen, und schreiben Sie die Prototypen in eine header-Datei. Überlegen Sie sich genau, welche Daten als Parameter benötigt werden. Den vierdimensionalen Array definieren Sie als globale Variable - programmieren Sie die Funktionen, und schreiben Sie sie in eine Programmdatei. - programmieren Sie das Hauptprogramm in einer eigenen Programmdatei
Schöne Grüsse Wayne Gretzky |