Autor Beitrag
Leaf
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mo 22.05.06 11:31 
HI^^
ich habe ein paar Probleme bei einem Programm was ich erstellen soll. Ich habe Zufallszahlen erstellt (insgesamt 1000) im Zahlenbereich 1 bis 1000. Diese gebe ich in einem Memofeld aus. Jetzt soll ich noch die Zufallszahlen in einem Array speichern und sie dann sortiert in einem anderem Memofeld ausgeben lassen. Leider hab ich keine Ahnung wie ich das machen soll. Es wäre nett, wenn ihr mir helfen könntet.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mo 22.05.06 11:50 
- Weißt du, was ein Array ist?
- Weißt du, wie du die Zahlen ins Array bekommst?
- Kennst du ein passendes Sortier-Verfahren?
- Weißt du, wie du die Daten aus einem Array wieder in ein Memo bekommst?

Oder hakt es ganz woanders?


Zuletzt bearbeitet von jasocul am Mo 22.05.06 12:02, insgesamt 1-mal bearbeitet
Chughallen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 21



BeitragVerfasst: Mo 22.05.06 11:57 
Hallo.

Ich nehme mal an, daß dir jemand diese Aufgabe gestellt hat und damit was bezwecken wollte, deswegen wirst du von mir keinen kompletten Quelltext bekommen, sondern nur ein paar Tips.

Mit
ausblenden Delphi-Quelltext
1:
meinarray : array[0..999of integer;					

Hast du schon mal dein Speicher.
Zuweisen kannst du einen Wert mit
ausblenden Delphi-Quelltext
1:
meinarray[index] := Wert;					

Da bietet sich eine Schleife an, die du 1000 Mal durchläufst und jeweils deine Zufallszahl in meinarray einträgst.

Dann mußt du dieses Array sortieren.
Auch hier bietet sich logischerweise wieder eine Schleife an.
Für das Sortieren, gibt es etliche bekannte Verfahren (Algorithmen), die sind kein Geheimnis aber für den Lerneffekt, würde ich dir auch hier raten, es erstmal selber zu probieren.
Eine Möglichkeit wäre Exchange-Sort. Dabei vergleichst du jedes Element des Arrays mit den übrigen und vertauscht diese
ggf.
Beispiel:
Vergleiche Element 0 des Arrays mit Element 1. Ist Element 1 kleiner als Element 0, dann vertausche die Plätze.

Tip dazu:
1.Dafür wirst du eine Temp Variable brauchen, zum Tauschen.
2.Logischerweise brauchst du 2 verschachtelte Schleifen

Wenn du einfach nur eine copy & paste Lösung willst, davon gibt es im Netz sicher etliche und hier wirst du mit der Suche wohl ebenfalls einige finden. Ich würde dir aber raten, es erstmal selber zu probieren.

mfg
Leaf Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mo 12.06.06 10:51 
DANKE


@jasoul

Danke, dass du mir helfen möchtest^^
Naja, ich weiß mehr oder weniger was ein array ist. Man kann damit mehrere Variablen zusammenfassen soweit weiß ich es. Ansonsten hab ich ehrlichgesagt keine Ahnung. Ich weiß auch nicht wie ich Zahlen in Array bekomme, kenne keine Sortierverfahren (außer mithilfe von Schleifen, was aber sehr mühselig wäre) und ich weiß auch nicht wie ich sie in ein Memo bekomme, d. h. eigentlich bin ich ziemlich aufgeschmissen.

@ Chughallen

Danke, dass du versucht hast mir zu helfen, nur leider bin ich nicht richtig mit deinem Lösungsvorschlag zurecht gekommen. ich habe probiert was du mir gesagt hast, aber ehrlich gesgat bin ich gar nicht damit zurecht gekommen. Es kam mir recht kompliziert vor und ist mir auch nicht wirklich eingeleuchtet. Das liegt wahrscheinlich daran, dass ich was delhi angeht ein noob bin.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mo 12.06.06 13:38 
Üblicherweise wirst du von niemandem eine Komplett-Lösung bekommen, da dann der Lerneffekt für dich gleich Null wäre. Du wirst also nur Hinweise und Tipps bekommen. Umsetzen musst du das selbst. Hier die ersten Hinweise von mir:
Du musst dir ein Aray definieren:
ausblenden Delphi-Quelltext
1:
2:
var
  MeinArray : Array [0..999of Integer; // Hat Chughallen ja auch schon geschrieben

Um die Daten aus dem Memo ins Array zu bekommen, musst die eine Schleife haben:
ausblenden Delphi-Quelltext
1:
for I := 0 to 999 do // zum Beispiel					

Das setzt natürlich voraus, dass du weißt, was eine Schleife ist und wie sie benutzt wird.
In der Schleife machst du eine Zuweisung:
ausblenden Delphi-Quelltext
1:
MeinArray[I] := StrToInt(Memo1.Lines[I])					

Stelle dir dabei das Array wie eine durchnummerierte Liste vor. Mit [I] sagst du, welche Listenstelle du meinst. Die Zeilen eines Memos funktionieren ähnlich. Da im Memo aber nur "Texte" stehen muss der Text erst mit StrToInt in eine Integer-Zahl umgewandelt werden.
Jetzt hast du eine Array aus Integer-Zahlen. Darin kannst du sortieren. Für den ersten Versuch würde ich dir BubbleSort empfehlen. Das ist nicht der beste Algorithmus, aber IMHO der einfachste und daher für einen Anfänger gut geeignet. Wenn du im Forum suchst, wirst du sicher Beiträge finden, wo du nachlesen kannst, wie es funktioniert.
Nach der Sortierung musst du wieder über eine Schleife dein sortiertes Array in dein zweites Memo übertragen. Da du ja schon Daten in dein erstes Array eingetragen hast, dürfte das kein Problem sein.