Zum Navigations-Menü
Kein Layout? Lesen Sie hier, warum...

Turbo Pascal

Forum



1 Arry Rechnen ,

Autor: KEv (G) (IP bekannt)
Datum: 19. Mai. 2010 22:57

Hallo ,
also ich habe ein en Datensatz nur aus zahlen ,total willkürliche Zahlen und soll diesen datensatz nun mit einer
prozedur einlesen und auch einem arry ablegen , das habe ich auch gemacht , nun soll ich aus diesen zahlen das maximum bestimmen und das arithmetische Mittel und die standdardabweichung ...aber wie rechne ich denn damit ? ich habe schon alles mögliche versucht über schleifen und so weiter ,aber ich krieg es einafch nicht gebacken , vllt kann mir hier ja jemand helfen ...

Mfg

Antworten | Zitieren

2 Re: Arry Rechnen ,

Bewertungen: 0 negativ/0 positiv

Autor: BP92 (R) (IP bekannt)
Datum: 20. Mai. 2010 00:12

Hallo,

wenn du einen Datensatz in ein Array ablegen willst, dann ist es hilfreich zu wissen, wie viele Zahlen das insgesamt sind. Je nach dem muss dann die Groesse des Arrays definiert werden. Ein Array wird ja folgendermassen definiert:

CONST
  MAX=100;

VAR
  arZahlen: ARRAY[1..MAX] OF REAL;
  rZahl: REAL;
  iIndex: INTEGER;


Wenn du die Zahlen alle z.B. nacheinander eintippst, dann kann das so aussehen:

BEGIN
  ...
  iIndex:=0;
  WHILE (iIndex<MAX) DO BEGIN
    iIndex:=iIndex+1;
    READLN(rZahl);   // Zahl einlesen
    arZahlen[iIndex]:=rZahl;   // Array belegen
  END;  (* WHILE *)
  ...
END.


Um jetzt den Mittelwert aus den Werten des Arrays zu bestimmen, kannst du folgende Funktion definieren:

FUNCTION Mittelwert(arListe: ARRAY OF REAL): REAL;
VAR
  i, anzahl: INTEGER;
  summe: REAL;
BEGIN
  anzahl:=HIGH(arListe);
  summe:=0;
  FOR i:=1 TO anzahl DO summe:=summe+arListe[i];
  summe:=summe/anzahl;
  Mittelwert:=summe;
END;  (* Func Mittelwert() *)

Das ist also der Mittelwert (auch Erwartungswert genannt). Mit HIGH() kannst du den maximalen Index des ARRAYs ermitteln, wenn du davon ausgehst, dass das Array komplett mit Werten gefuellt ist.

Die Standardabweichung kannst du folgendermassen errechnen:

FUNCTION StdDev(arListe: ARRAY OF REAL): REAL;
VAR
  n, i: INTEGER;
  mittelw, qdiff: REAL;
BEGIN
  n:=HIGH(arListe);
  mittelw:=Mittelwert(arListe);
  qdiff:=0;

  // Summe der Differenz von Einzelwert-Mittelwert zum Quadrat
  FOR i:=1 TO n DO qdiff:=qdiff+SQR(arListe[i]-mittelw);

  // Standardabweichung ist Wurzel aus Summe qdiff mal (1/(n-1))
  StdDev:=SQRT(qdiff/(n-1));
END;  (* Func StdDev() *)


Das Bestimmen des Maximums ist dagegen schon beinahe einfach ;)

FUNCTION Max(arListe: ARRAY OF REAL): REAL;
VAR
  i: INTEGER;
  maximum: REAL;
BEGIN
  maximum:=0;
  FOR i:=1 TO HIGH(arListe) DO
    IF (arListe[i]>maximum) THEN maximum:=arListe[i];
  Max:=maximum;
END;  (* Func Max() *)


Das sollte funktionieren... :)

Sonst koennte das hier noch hilfreich sein:
[de.wikipedia.org]

-- 
PASCAL Programmierer aus Leidenschaft

Turbo Pascal Beispiele fuer Anfaenger: [www.webplain.de]

Momentane Projekte:
-----------------------
Konsolen-Adventure Game mit FreePascal (im Denkpause-Forum) [www.webplain.de]
Funktionsplotter und -rechner; Vorabversion gibt's hier: [www.webplain.de]
Objektorientierte Textmodus-GUI; Release-Termin: groesstenteils fertig

Antworten | Zitieren

Hinweise

  1. Das hier ist kein Hausaufgabenservice. Konkrete Fragen werden natürlich gerne beantwortet.
  2. Probieren Sie doch zuerst die Suchfunktion aus und werfen Sie einen Blick in die FAQ.
  3. Ein aussagekräftiger Betreff ist wichtig, unter »HILFE!!!« kann man sich nichts vorstellen. Bitte nicht nur Großbuchstaben.
  4. Anhänge zu Ihrem Projekt (max. 250 KB) können helfen, das Problem schnell zu lösen.
  5. HTML-Tags sind aus Sicherheitsgründen nicht möglich.
  6. Quelltext können Sie mit [code]Quelltext[/code] formatieren.
  7. Alle weiteren möglichen Forum-Tags können Sie hier nachlesen.
Neuen Beitrag erstellen










Datei anhängen
  • Folgende Dateitypen können angehängt werden:
    asm, bgi, bmp, c, cc, cpp, gif, inc, jpg, obj, pas, pdf, png, rar, rtf, tpu, txt, zip, frm, vbp
  • Die Dateien dürfen jeweils nicht größer sein als 250KB.
  • 3 zusätzliche Dateien können an den Beitrag angehängt werden.



Nach oben
© 2000-2010 Clemens Weiß | Webplain.de
Link zu dieser Seite | Letzte Änderung: 26. Okt. 2008