Autor Beitrag
Moritz Vogel
Hält's aus hier
Beiträge: 2

989
D5 Pers
BeitragVerfasst: Mo 17.11.03 09:29 
Hallo!

Wir haben Probleme mit Sortieralgorithmen, selbst unser Lehrer kann uns nicht helfen. Tut mir leid wenn dies hier das falsche Forum dafür ist, aber es ist dringend. Jede Hilfe wäre nett. Wir benutzen Delphi 5.

Wir haben ein Stringgrid, in das Zufallszahlen generiert werden, die dann nach Abfrage entweder durch Bubblesort oder durch Quicksort sortiert werden sollen. Ich habe erstmal nur Bubblesort eingebaut, aber auch so sind massive Probleme aufgetreten. Hier der Quelltext.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
//'Zufallsziffern', Programm von Moritz Vogel, 09/29/03, Klausuraufgabe

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Grids, Buttons, ExtCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    StringGrid1: TStringGrid;
    Label1: TLabel;
    BitBtn1: TBitBtn;
    Label3: TLabel;
    Label4: TLabel;
    RadioGroup1: TRadioGroup;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure ausgeben;
    procedure BitBtn1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure BubSort(Feld: Array of integer);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Feldlaenge: integer;
  Feld: array of integer;

implementation

{$R *.DFM}
procedure tform1.ausgeben; // Namenausgabe
var t: integer;
begin
for t:= 1 to Feldlaenge do //For-Schleife zum Zählen
Stringgrid1.cells[t-1,0]:=inttostr(Feld[t]);
end//Ende der Prozedur

procedure TForm1.Button1Click(Sender: TObject);
var i,Anzahl: integer;  //Variablendeklaratiom
begin

if edit1.text = ' ' then  //Beginn erster if-clause
 begin
  Feldlaenge:=100;  //Die Länge wird auf 100 gesetzt
  showmessage('Feldlänge auf 100 gesetzt!');
 end
else                  //else erster if-clause
 begin
  Anzahl:= strtoint(Edit1.text);
  if (Anzahl < 2or (Anzahl > 1000then
   begin                                   //Beginn zweiter if-clause
    Feldlaenge:=100;                       //Die Länge wird auf 100 gesetzt
    showmessage('Feldlänge auf 100 gesetzt!');
   end
  else    //else zweiter if-clause
   begin
    Feldlaenge:= Anzahl;
   end;     //Ende erste if-clause
 end;       //Ende zweite if-clause
randomize;
setlength(Feld,Feldlaenge); //Längendeklaration
for i:= 1 to Anzahl do      //Zählschleife
 Feld[i-1]:= random(1000);  //Zufallsziffer
 ausgeben;  //Start Prozedur "Ausgeben"
end;       //Ende des Buttons

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

procedure TForm1.Button2Click(Sender: TObject);
var  i, j, h, x: integer;
begin
if radiogroup1.itemindex=0 then
 begin
  BubSort;
 end
else
 begin
  showmessage('noch nicht dabei');
 end
end;

procedure BubSort(Feld: Array of Integer);
var
  Run: LongInt;
  Index: LongInt;
  x: Byte;
begin
  for Run := 1 to 100 do
    for Index := 100 downto Run do
      if Feld[Index] < Feld[Index - 1then
      begin
        x := Feld[Index];
        Feld[Index] := Feld[Index - 1];
        Feld[Index - 1] := x;
      end;
end;

end.


Moderiert von user profile iconKlabautermann: Delphi-Tags hinzugefügt und unnötige Leerzeilen entfernt.


Zuletzt bearbeitet von Moritz Vogel am Mo 17.11.03 17:55, insgesamt 1-mal bearbeitet
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 17.11.03 11:08 
Hallo und :welcome: im Delphi Forum!

Dein Titel enspricht nicht unseren Richtlinien. Diese sagen zu dem Thema:

Delphi-Forum richtlinien hat folgendes geschrieben:
1.1 Beiträge
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist. Eine Pseudocodezeile oder die Nennung des Objektes, um welches es sich in dem Beitrag handelt, helfen da schon mehr weiter.


Andere bitte das den Titel, indem du deinen ersten Beitrag dieses Threads noch einmal Editierst. Einfach bei dem Beitrag auf Edit clicken, den Titel ändern und wieder auf Absenden.

Desweiteren solltest du die Formatierungs-Tags, wie z.B. den Delphi-Tag verwenden um dein Posting übersichtlicher zu halten.

Gruß
Klabautermann
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 17.11.03 11:12 
Titel: Re: Informatik-Kurs Jhg. 12 braucht Hilfe
Moritz Vogel hat folgendes geschrieben:
Tut mir leid wenn dies hier das falsche Forum dafür ist, aber es ist dringend.


Sowohl das Forum als auch die Sparte sind richtig ;).

Moritz Vogel hat folgendes geschrieben:
Wir haben ein Stringgrid, in das Zufallszahlen generiert werden, die dann nach Abfrage entweder durch Bubblesort oder durch Quicksort sortiert werden sollen. Ich habe erstmal nur Bubblesort eingebaut, aber auch so sind massive Probleme aufgetreten. Hier der Quelltext.


Du solltes ein wenig konkreter auf die Probleme beschreiben, damit wir wissen wonach wir gucken müssen. Also was genau läuft schief?
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 17.11.03 17:37 
Einerseits:
ausblenden Delphi-Quelltext
1:
procedure BubSort(Feld: Array of Integer);					

Andererseits:
ausblenden Delphi-Quelltext
1:
2:
3:
begin 
  BubSort; 
 end

Siehst du, was falsch ist?

Probier mal
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.BubSort; 
var 
  Run: LongInt; 
  Index: LongInt; 
  x: Byte; 
begin [...]

Dann passt es auch, dass Bubsort ne Procedure von Tform1 ist...schliesslcih wird sie ja oben auch angeführt...

_________________
We are, we were and will not be.
Moritz Vogel Threadstarter
Hält's aus hier
Beiträge: 2

989
D5 Pers
BeitragVerfasst: Mo 17.11.03 17:54 
Hallo! Tut mir leid wegen der missverständlichen Überschrift.

Ich konnte das Problem nicht genauer schildern, da wir alle ziemlich ahnungslos waren. Selbst unser Lehrer hatte keine Ahnung, aber sagt ihm das nicht :-). Wir haben inzwischen das Problem gelöst und haben natürlich wieder tausend neue, die wir aber selber lösen können. Trotzdem danke!