Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Brauche dringend Hilfe !!!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
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
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
01.12.2002, 20:20 Uhr
virtual
Sexiest Bit alive
(Operator)


Was ich nicht verstanden habe: Dein Ansatz lautet wie?
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.12.2002, 00:18 Uhr
Luke1410



Mh.. wo hängst du denn... Bin zwar auch nicht der Freak, aber die 1 könnte man z.B. in einer vierfach geschachtelten Schleife lösen.

Der Aufbau des Arrays könnte z.B. so aussehen:
temp[10][12][31][24]
Dann wäre temp[1][0][5][6] die Temperatur um 6:00 Uhr am 6. Januar des 2. Jahres.

Bei der 2 dann beispielsweise:
Startpunkt (s:tt.mm.jj)
Endpunkt (s:tt.mm.jj)
Sollen alle Werte angezeigt werden?
Soll der Mittelwert berechnet werden?
....

Bei 3:
1. Funktion: Initialisierung der Werte
2. Funktion: Berechnung des Mittelwerts
3. Funktion: Berechnung des Maximums
4. Funktion: Berechnung des Minimums
5. Funktion: tabelarische Ausgabe

Dieser Post wurde am 02.12.2002 um 00:18 Uhr von Luke1410 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.12.2002, 13:57 Uhr
~Luke1410
Gast


Noch eine Möglichkeit für die Initialisierung wäre es über einen Pointer zu realisieren und ihn von temp[0][0][0][0] (10*12*31*24 - 1)-mal durchlaufen zu lassen. Dann sparst du dir 3 Zählervariablen und 3 Schleifen. :-)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: