mikrocontroller.net

Forum: PC-Programmierung Ringspeicher u. Median


Autor: Thomas M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich muss was programmieren und weiss nicht wie.

ich habe ein Array der Grösse 100. In das Array werden kontiuierlich
Werte abgelegt, sortiert (qsort) und der Median wird berechnet.
D.h. ich muss darauf achten, dass nach der Sortierung die Werte nicht
mehr den eigentlich Index haben, z.B. ist der letzte Wert im
Ringspeicher nicht mehr an der Stelle 100. Das ist auch mein Problem,
ich weiss nicht wie ich mir den wahren Index der Werte merken kann,
denn ich muss ja praktisch die letzten 99 Werte berücksichtigen und den
ältersten Wert rausschmeissen und durch einen neuen ersätzen.

Der Median wird nach jedem neu ankommenden Werte bestimmt, dazu muss
ich das Arry sortieren und der Index ist verfälscht.

Hat jemand eine Idee?

Autor: beta-frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Thomas,

Speicher und ein Quentchen Zeit wird bei PC-Programmierung und 100
Werten nicht das Thema sein?! Dann leg doch ein zweites array2[100] an.
In das erste array1[100] schreibst Du schön der Reihe nach Deine Werte
und Du weißt immer, wo Dein Index hingehört. Dann kopierst Du:

for(i=0;i<=100;i++) array2[i]=array[i];//Ringspeicher retten

Nun array2 sortieren und den Median berechnen.

Gruß Frank

Autor: beta-frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Thomas,

Speicher und ein Quentchen Zeit wird bei PC-Programmierung und 100
Werten nicht das Thema sein?! Dann leg doch ein zweites array2[100] an.
In das erste array1[100] schreibst Du schön der Reihe nach Deine Werte
und Du weißt immer, wo Dein Index hingehört. Dann kopierst Du:

for(i=0;i<100;i++) array2[i]=array[i];//Ringspeicher retten

Nun array2 sortieren und den Median berechnen.

Gruß Frank

Autor: Thomas M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Idee ist super und wirklich logisch.

Vieln Dank!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.