Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Dopplete Zahlen in einem Array?


duplex - Di 22.02.05 12:29
Titel: Dopplete Zahlen in einem Array?
hi
ich benötige einen quellcode und zwar soll delphi dopplete zahlen in einem array finden und anhschliessen dsagen wie viele zahlen doppelt vorkommen!
ich bin eine totale 0 im programmieren, denke aber das das für eich total simpel und schnell geht!! brauche diesen quellcode echt dringend, würde mich freuen wenn ihr mir helfen würdet!! :wink:


Delete - Di 22.02.05 13:02

Sortier dein Array doch einfach: BubbleSort, Quicksort zum Beispiel oder alles in eine ListBox schreiben und ListBox.Sorted := True setzen, dann sollte es doch ganz einfach sein, doppelte zu finden


duplex - Di 22.02.05 14:59

ich kann den ganzen kram echt überhaupt nicht! ^^ könntest du/jemand mal eine lösung reinschreiben??
listbox hatten wir noch nicht (glaube ich)


Delete - Di 22.02.05 15:22

Was habt ihr denn gehabt?
Irgendwas müsst ihr ja gehabt haben, um das zu lösen oder nicht?

Glaubst du das ist ein Hausaufgabenforum? Hier werden nur Ansätze präsentiert, also stell bitte genauere Fragen..


duplex - Di 22.02.05 19:29

bubblesort und quicksort hatten wir, aber wie das mit den doppelten zahlen amcht weis ich nciht und wie man es macht das er sie zählt...


Delete - Di 22.02.05 19:38

Lösungsansatz:
Array durchlaufen: Stichwort for-next-Schleife
__Von Anfang des Arrays bis aktueller Position-1 durchlaufen(wieder `ne Schleife)
__Vergleiche aktuelle Pos in erster und zweiter Schleife: wenn gleich, dann Zahl doppelt
__-> zu irgendner Liste (Listbox, zusätzliches Array) hinzufügen

Damit kannst du arbeiten. Du musst jetzt im Prinzip nicht mehr denken, sondern nur noch die erlernten Mittel einsetzen.


duplex - Mi 23.02.05 12:09

die erlernten mittel einsetzen!! da haperts, ich kann einfahc nicht den quellcode dazu schreiben für diesen lösungsansatz

"Array durchlaufen: Stichwort for-next-Schleife
__Von Anfang des Arrays bis aktueller Position-1 durchlaufen(wieder `ne Schleife)
__Vergleiche aktuelle Pos in erster und zweiter Schleife: wenn gleich, dann Zahl doppelt
__-> zu irgendner Liste (Listbox, zusätzliches Array) hinzufügen"


Gausi - Mi 23.02.05 12:13

Ist zwar in Delphi-Tags, aber kein richtiger Delphi-Code:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
for i:=anfang to ende do
  for j:=i+1 to ende do 
    if Array[i]=Array[j] then
    begin
      'Jippie, eine doppelte zahl gefunden'
      doppeltezahlen:=einsmehr
    end
ausgabe(doppeltezahlen);


Delete - Mi 23.02.05 18:08

Ach na gut, da du ja schon per PN quängelst:
Pack ma ne Listbox auf dein Formular und versuch`s mit folgendem, aus dem Kopf geschriebenen, Code.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
var
 Arr: Array[1..100of integer; //Das Array, wo die Zahlen drinne sind
...
procedure Button1Click(Sender:TObject);
var
  a, b: integer;
begin
 for a := low(Arr) to high(Arr) do
  for b := low(arr) to a-1 do
   if Arr[a] = Arr[b] then
    Listbox1.Items.Add(inttostr(Arr[b]));
end;

Wenn eine Zahl natürlich nun dreimal im Array vorhanden ist, wird sie auch dreimal in der Listbox auftauchen.


duplex - Mi 23.02.05 18:14

was ist eine ListBox?? kenen das gar nicht!


Delete - Mi 23.02.05 18:23

Das ist jetzt wirklich das letzte Mal, dass du deinen Unmut, deine Lustlosigkeit und deine Bereitschaftslosigkeit, dich wirklich mit der Materie zu befassen, zeigst, ok?!
TListBox ist eine Komponente, die du in der Rubrik "Standard", gleich neben TLabel, TButton usw., findest.