AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!
Thema durchsuchen
Ansicht
Themen-Optionen

brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!

Ein Thema von Jacqybaby · begonnen am 21. Nov 2005 · letzter Beitrag vom 22. Nov 2005
Antwort Antwort
Seite 1 von 2  1 2      
Jacqybaby

Registriert seit: 21. Nov 2005
25 Beiträge
 
#1

brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!

  Alt 21. Nov 2005, 20:58
Hallo,

ích bin neu hier also bitte nicht gleich meckern wenn ich was falsch mache oder was nicht verstehe.
Ich bin noch dazu ein totaler Anfänger in sachen programmieren. Wir haben in der Schule die Aufgabe bekommen ein Projekt in Delphi zu programmieren in dem der Nutzer zw. den verschiedenen Sortierverfahren wählen kann. Ich bin gerade dabei die Minimum- bzw. Maximumsuche zu schaffen d.h., dass das kleinste Element gleich an den Anfang gesetzt wird, den Algorithmus dazu hab schon nur mit dem Anzeigen klappt es nicht. Dazu muss man wissen das der Nutzer eine beliebige Zahl für Anzahl der Elemente eintippen kann und dannach werden der Anzahl enstprechende Zufallszahlen gezogen die dann sortiert werden sollen. Das mit den Zahlen ziehen funktioniert, wenn ich aber auf den Button "sortieren" klicke bekommen ich nur Nullen angezeigt und ich weiß nicht woran es liegt.

Ihc wäre euch sehr verbunden wenn das auch mit einfachen befehlen geht, wir hatten nämlich noch nicht sehr viel Befehle und ich möchte nicht das es dann heißt ich habe das irgendwo geklaut.

MFG Jacqybaby

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Home: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    PageControl1: TPageControl;
    TabSheet4: TTabSheet;
    TabSheet5: TTabSheet;
    PageControl2: TPageControl;
    TabSheet6: TTabSheet;
    TabSheet7: TTabSheet;
    Label1: TLabel;
    Button1: TButton;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Label4: TLabel;
    Edit2: TEdit;
    Label5: TLabel;
    Edit3: TEdit;
    Label6: TLabel;
    Edit4: TEdit;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    Button12: TButton;
    Button13: TButton;
    Label19: TLabel;
    Label20: TLabel;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    zufall: TListBox;
    zufall1: TListBox;
    zufall3: TListBox;
    zufall2: TListBox;
    Button14: TButton;
    Button15: TButton;
    Button16: TButton;
    Button17: TButton;
    sortiert: TListBox;
    Label24: TLabel;
    Label25: TLabel;
    Label26: TLabel;
    Label27: TLabel;
    Label28: TLabel;
    ListBox2: TListBox;
    Label29: TLabel;
    Label30: TLabel;
    ListBox3: TListBox;
    Label31: TLabel;
    Label32: TLabel;
    ListBox4: TListBox;
    Label33: TLabel;
    Edit5: TEdit;
    Label34: TLabel;
    Label35: TLabel;
    Label36: TLabel;
    Label37: TLabel;
    Edit6: TEdit;
    Label38: TLabel;
    Label39: TLabel;
    Label40: TLabel;
    Edit7: TEdit;
    Label41: TLabel;
    Label42: TLabel;
    Label43: TLabel;
    Edit8: TEdit;
    Label44: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button17Click(Sender: TObject);
    procedure Button16Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Button6Click(Sender: TObject);
var z,a,i:integer;
begin
randomize;
a:=strtoint(edit1.Text);
    for i:=1 to a do
    begin
    z:=random(100);
    zufall.Items.Add(inttostr(z));
    end;
end;

procedure TForm1.Button9Click(Sender: TObject);
var z,a,i:integer;
begin
randomize;
a:=strtoint(edit2.Text);
    for i:=1 to a do
    begin
    z:=random(100);
    zufall1.Items.Add(inttostr(z));
    end;
end;


procedure TForm1.Button11Click(Sender: TObject);
var z,a,i:integer;
begin
randomize;
a:=strtoint(edit3.Text);
    for i:=1 to a do
    begin
    z:=random(100);
    zufall2.Items.Add(inttostr(z));
    end;
end;

procedure zufall(n:integer; var z:integer);
var i:integer;
begin
randomize;

z:=random(100);

end;

procedure TForm1.Button13Click(Sender: TObject);
var z,n,i:integer;
begin
n:=strtoint(edit1.Text);
for i:=1 to n do
begin
zufall.Items.Add(inttostr(z));
end;
end;
procedure TForm1.Button17Click(Sender: TObject);
begin
zufall.Items.Clear;
edit1.Text:='';
sortiert.Items.Clear;
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
zufall1.Items.Clear;
edit2.Text:='';

end;

procedure minimumsuche(n:integer; var h:array of integer);
var i,j,min,hilfsvar:integer;
begin
for i:=1 to n-1 do
begin
min:=1;
       for j:=i+1 to n do
             if h[j]<min then min:=j;
             hilfsvar:=h[min];
             h[min]:=h[i];
             h[i]:=hilfsvar;
       end;


end;

procedure TForm1.Button7Click(Sender: TObject); {"sortieren"-Button}
var n,i:integer;
    h:array[0..10000] of integer;
begin
n:=strtoint(edit1.Text);
minimumsuche(n,h);
for i:=1 to n do
    begin
    sortiert.Items.Add(inttostr(h[i]));
    end;
end;

end.
Falls ihr noch irgendwelche Dateien aus dem Projekt braucht bescheid sagen ich hänge die dann an !!!
Angehängte Dateien
Dateityp: pas unit1_112.pas (4,5 KB, 5x aufgerufen)
Dateityp: dfm unit1_957.dfm (27,7 KB, 4x aufgerufen)
Dateityp: dpr sortieren_174.dpr (189 Bytes, 5x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von neuronet
neuronet

Registriert seit: 16. Aug 2005
Ort: Berlin
104 Beiträge
 
Delphi 2010 Architect
 
#2

Re: brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!

  Alt 21. Nov 2005, 21:55
Zuerst mal herzlich Willkommen in der DelphiPraxis, Jacqybaby!!!!


So, hab mal dran rumgeschraubt und nun funktioniert das Ganze.

Schau es Dir mal an, und wenn Du noch fragen hast, dann melde Dich...
Angehängte Dateien
Dateityp: zip sortieren_210.zip (216,4 KB, 7x aufgerufen)
Andreas
--- Der Wert der Leistung liegt im Geleisteten --- Albert Einstein

Mein erstes Baby: Apple I - Der Rechner ist genauso alt wie ich... Und steht noch immer im Keller...
  Mit Zitat antworten Zitat
Jacqybaby

Registriert seit: 21. Nov 2005
25 Beiträge
 
#3

Re: brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!

  Alt 21. Nov 2005, 22:06
ja super funktioniert, nur leider versteh ich jetzt garnichts mehr, wie gesagt ich bin nen totaler Anfänger und die meisten behfehle kenne ich nicht, wenn das meine Lehrerin sieht merkt die gleich das ich das nicht gemacht habe. Mir würde es mehr helfen wenn du mir sagst was ich falsch gemacht hab. Ihc hab in der Zwischenzeit auch ein bisschen weiter gemacht und das einzige problem ist das ich nicht weiß wie ich das array h inklusive der zugeordneten Zufallszahlen von einer Prozedur in eine andere übertragen kann.

MFG Jacqybaby
  Mit Zitat antworten Zitat
Benutzerbild von neuronet
neuronet

Registriert seit: 16. Aug 2005
Ort: Berlin
104 Beiträge
 
Delphi 2010 Architect
 
#4

Re: brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!

  Alt 21. Nov 2005, 22:12
Definiere das Array nicht in der Prozedur, sondern im "Interface" Teil oder direkt nach "implementation", dann kannst Du es von jeder Prozedur aus abrufen und bearbeiten.
Andreas
--- Der Wert der Leistung liegt im Geleisteten --- Albert Einstein

Mein erstes Baby: Apple I - Der Rechner ist genauso alt wie ich... Und steht noch immer im Keller...
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#5

Re: brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!

  Alt 21. Nov 2005, 22:15
Zitat von Jacqybaby:
Ihc hab in der Zwischenzeit auch ein bisschen weiter gemacht und das einzige problem ist das ich nicht weiß wie ich das array h inklusive der zugeordneten Zufallszahlen von einer Prozedur in eine andere übertragen kann.
Mit Parametern, denke ich mal. So:
Delphi-Quellcode:
procedure bekomme(h: array of integer);
begin
  h[5] := 123456;
end;

procedure uebertrage(h: array of integer);
begin
  bekomme(h);
end;
Oder was meinst du?


Oder so wie neuronet...
  Mit Zitat antworten Zitat
Benutzerbild von neuronet
neuronet

Registriert seit: 16. Aug 2005
Ort: Berlin
104 Beiträge
 
Delphi 2010 Architect
 
#6

Re: brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!

  Alt 21. Nov 2005, 22:24
Bevor ich es vergesse:

Du solltest vor dem Generieren der Zufallszahlen auf jeden Fall prüfen, ob edit1 überhaupt einen gültigen Wert enhält, sonst verabschiedet sich das Programm...
Andreas
--- Der Wert der Leistung liegt im Geleisteten --- Albert Einstein

Mein erstes Baby: Apple I - Der Rechner ist genauso alt wie ich... Und steht noch immer im Keller...
  Mit Zitat antworten Zitat
Jacqybaby

Registriert seit: 21. Nov 2005
25 Beiträge
 
#7

Re: brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!

  Alt 21. Nov 2005, 22:25
in einer Prozedur ziehe ich Zufallszahlen und weise diese den Feldern zu
Delphi-Quellcode:
procedure TForm1.prozufall(n:integer; var h:array of integer);
var i,z:integer;
begin
randomize;
for i:=1 to n do
begin
z:=random(100);
h[i]:=z;
end;


end;

procedure TForm1.Button13Click(Sender: TObject);
var n,i:integer;
    h:array[0..10000] of integer;
begin
n:=strtoint(edit1.Text);
for i:=1 to n do
begin
prozufall(n,h);
zufall.Items.Add(inttostr(h[i]));
end;
end;
so und nun muss ja mit den elementen des Arrays gearbeitet werden

Delphi-Quellcode:
procedure TForm1.minimumsuche(n:integer; var h:array of integer);
var i,j,min,hilfsvar:integer;
begin
for i:=1 to n-1 do
begin
min:=1;
       for j:=i+1 to n do
             if (h[j]<min) then min:=j;
             hilfsvar:=h[min];
             h[min]:=h[i];
             h[i]:=hilfsvar;
       end;


end;
ich glaube hier liegt der fehler, weil ich nacher wenn ich das sortierte array in einer Listbox ausgeben will dann werden statt den geordneten Zahlen nur Nullen angezeigt.

Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
var n,i:integer;
    h:array[0..10000] of integer;
begin
n:=strtoint(edit1.Text);
minimumsuche(n,h);
for i:=1 to n do
begin
    sortiert.Items.Add(inttostr(h[i]));
    end;
end;
^
^
So versuche ich das sortierte array anzeigen zu lassen aber wie gesagt kommen nur Nullen.

MFG Jacqybaby
  Mit Zitat antworten Zitat
Benutzerbild von neuronet
neuronet

Registriert seit: 16. Aug 2005
Ort: Berlin
104 Beiträge
 
Delphi 2010 Architect
 
#8

Re: brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!

  Alt 21. Nov 2005, 22:34
Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
var n,i:integer;
    h:array[0..10000] of integer;
begin
  n:=strtoint(edit1.Text);
  minimumsuche(n,h);
  for i:=1 to n do
  begin
    sortiert.Items.Add(inttostr(h[i]));
  end;
end;
So definierst Du das Array ja neu, anstatt es zu übernehmen, demnach ist es ja leer.

Wenn dann müsste es eher so aussehen:

Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
var n,i:integer;
    h:array[0..10000] of integer;
begin
  n:=strtoint(edit1.Text);
  // hier die Zahlen aus zufall in h einlesen
  for i:=1 to zufall.count do
    h[i]:=strtoint(zufall.items[i]);
  // nun hast Du Deine Zufallszahlen in h und kannst damit weiterarbeiten
  minimumsuche(n,h);
  for i:=1 to n do
  begin
    sortiert.Items.Add(inttostr(h[i]));
  end;
end;
Andreas
--- Der Wert der Leistung liegt im Geleisteten --- Albert Einstein

Mein erstes Baby: Apple I - Der Rechner ist genauso alt wie ich... Und steht noch immer im Keller...
  Mit Zitat antworten Zitat
Jacqybaby

Registriert seit: 21. Nov 2005
25 Beiträge
 
#9

Re: brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!

  Alt 21. Nov 2005, 22:39
hat sich erledigt, ich hab falsch geguckt

MFG Jacqybaby
  Mit Zitat antworten Zitat
Jacqybaby

Registriert seit: 21. Nov 2005
25 Beiträge
 
#10

Re: brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!

  Alt 21. Nov 2005, 22:57
wenn ich deinen Quellcode einfüge bekomme ich folgenden Fehler angezeigt.


Was tun ?

MFG Jacqybaby
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz