AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Min-Sort Verfahren

Ein Thema von delphi_master · begonnen am 22. Nov 2007 · letzter Beitrag vom 5. Mär 2013
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#21

AW: Min-Sort Verfahren

  Alt 4. Mär 2013, 16:46
Nach einem zweiten Blick auf Deinen Sourcecode
würde ich sagen, der compiliert noch nicht einmal:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
....,x,...:integer;
begin
  ...
    x:=IntToStr(Random(100)+1);
   ...
end;
Des weiteren könnte es Dir helfen wenn Du ein wenig Ordnung in Deinen Code bringst.
Dann sollte Dir aufffallen, daß Du den wert von x niemals in das Array bzw. das Memo bringst.

Also investiere einmal 10 Minuten, und dann sehen wir weiter.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#22

AW: Min-Sort Verfahren

  Alt 4. Mär 2013, 16:48
Meine Rede
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#23

AW: Min-Sort Verfahren

  Alt 4. Mär 2013, 22:35
[OT] hab ich jetzt auch gemerkt, da fehlte wohl der rote Kasten [/OT]

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#24

AW: Min-Sort Verfahren

  Alt 5. Mär 2013, 07:34
Ich weise nur mal darauf hin, dass das Problem scheinbar 2x bearbeitet wird:

http://www.delphipraxis.net/newreply...ime=1362468766
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#25

AW: Min-Sort Verfahren

  Alt 5. Mär 2013, 10:11
Also beim Programmieren kommt es auch darauf an, dass man die Arbeit strukturiert und sich diese damit wesentlich vereinfacht.
  • Ein Array mit Integer-Zahlen soll mit Zufallszahlen gefüllt werden
  • Ein Array mit Integer-Zahlen soll sortiert werden
  • Ein Array mit Integer-Zahlen soll in einem Memo ausgegeben werden
Das führt uns doch schon mal zu folgenden Rümpfen:
Delphi-Quellcode:
// Ein Integer-Array mit zufälligen Zahlen füllen

procedure FillArray( var AIntArray : array of Integer; Min, Max : Integer );
begin

end;

// Ein Integer-Array sortieren

procedure SortArray( var AIntArray : array of Integer );
begin
  
end;

// Ein Integer-Array in ein Memo ausgeben

procedure WriteArrayToMemo( const AIntArray : array of Integer; AMemo : TMemo );
begin

end;
Unsere Hauptaufgabe sieht damit schon sehr reduziert aus
Delphi-Quellcode:
// Mit Zahlen im Bereich 1 bis 100 füllen
FillArray( MeinArray, 1, 100 );
// Ausgabe im Memo1
WriteArrayToMemo( MeinArray, Memo1 );
// Array Sortieren
SortArray( MeinArray );
// Ausgabe in Memo2
WriteArrayToMemo( MeinArray, Memo2 );
Im ganzen Satz und mit den programmierten Rümpfen (ausgenommen der Sortierung) sieht das dann so aus
(EDIT: ich habe das jetzt auch mal an den Aufgabentext angepasst )
Delphi-Quellcode:
unit Main_ViewU;

interface

uses
  SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type
  TForm1 = class( TForm )
    Unsortiert_Memo : TMemo;
    Sortiert_Memo : TMemo;
    Erzeuge_Button : TButton;
    MaxSort_Button : TButton;
    procedure Erzeuge_ButtonClick( Sender : TObject );
    procedure MaxSort_ButtonClick( Sender : TObject );
  private

  public

  end;

var
  Form1 : TForm1;
  // Array mit den Zahlen
  MeinArray : array [1 .. 20] of integer;

implementation

{$R *.dfm}
// Ein Integer-Array mit zufälligen Zahlen füllen

procedure FillArray( var AIntArray : array of integer; Min, Max : integer );
var
  LIdx : integer;
begin
  for LIdx := Low( AIntArray ) to High( AIntArray ) do
    begin
      AIntArray[LIdx] := Random( Max - Min + 1 ) + Min;
    end;
end;

// Ein Integer-Array sortieren

procedure SortArray( var AIntArray : array of integer );
begin

end;

// Ein Integer-Array in ein Memo ausgeben

procedure WriteArrayToMemo( const AIntArray : array of integer; AMemo : TMemo );
var
  LIdx : integer;
begin
  AMemo.Lines.BeginUpdate;
  try

    AMemo.Clear;

    for LIdx := Low( AIntArray ) to High( AIntArray ) do
      begin
        AMemo.Lines.Add( IntToStr( AIntArray[LIdx] ) );
      end;

  finally
    AMemo.Lines.EndUpdate;
  end;
end;

procedure TForm1.Erzeuge_ButtonClick( Sender : TObject );
begin
  // Mit Zahlen im Bereich 1 bis 100 füllen
  FillArray( MeinArray, 1, 100 );

  // Ausgabe im Memo1
  WriteArrayToMemo( MeinArray, Unsortiert_Memo );
end;

procedure TForm1.MaxSort_ButtonClick( Sender : TObject );
begin
  // Array Sortieren
  SortArray( MeinArray );

  // Ausgabe in Memo2
  WriteArrayToMemo( MeinArray, Sortiert_Memo );
end;

end.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 5. Mär 2013 um 10:17 Uhr)
  Mit Zitat antworten Zitat
cobi23

Registriert seit: 25. Feb 2013
12 Beiträge
 
#26

AW: Min-Sort Verfahren

  Alt 5. Mär 2013, 17:03
Vielen Dank für dein Hilfe,

Jetzt hab ich dieses Problem, es zeigt
uselect.pas(20,15) Error: Forward declaration not solved "TForm1.SelectionsortClick(TObject);"
uselect.pas(21,15) Error: Forward declaration not solved "TForm1.ZufallszahlClick(TObject);"
uselect.pas(63,1) Fatal: There were 2 errors compiling module, stopping

Code:
unit Uselect;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Zufallszahl: TButton;
    Selectionsort: TButton;
    MemoZufallszahl: TMemo;
    MemoSelect: TMemo;
    procedure SelectionsortClick(Sender: TObject);
    procedure ZufallszahlClick(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

  A: array [1..20] of integer;
implementation

{$R *.lfm}

procedure AFuellen(var insArray: array of integer;Min, Max: integer);
var i:integer;
  begin
    for i:= Low(insArray) to High (insArray) do
    begin
      insArray[i]:= Random(Max-Min+1)+Min;
    end;
  end;

procedure ArraySortieren( var k:array of integer);
Var
    i, j    : LongInt;
    Temp, Min: LongInt;
Begin
    For i := Low(k) To High(k) Do
    Begin
        Min := i;
        For j := i+1 To High(k) Do
            If k[j] < k[Min] Then
                Min := j;
        Temp := k[Min];
        k[Min] := k[i];
        k[i] := Temp;
    End;
End;
end.

procedure InsMemo(const insArray: array of integer; AMemo:TMemo);
var
  x:integer;
  begin
    AMemo.Lines.BeginUpdate;
    try
      AMemo.Clear;
      for x:= Low(insArray) to High (insArray) do
      begin
        AMemo.Lines.Add(IntToStr(insArray[x]));

      end;
    finally
      AMemo.Lines.EndUpdate;
    end;
  end;

{ TForm1 }

procedure TForm1.ZufallszahlButtonClick(Sender: TObject);
begin
  AFuellen(A,1,100);
  InsMemo(A,MemoZufallszahl);
end;

procedure TForm1.SelectionsortClick(Sender: TObject);
begin
  SortArray(A);
  InsMemo(A,MemoSelect);
end;

end.
Ich verstehe nicht was von mir verlangt wird. Könnt ihr mal einen Blick drauf werfen und mir helfen.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#27

AW: Min-Sort Verfahren

  Alt 5. Mär 2013, 17:27
Das sieht nach C&P aus, da zumindest im Fall von ZufallszahlClick keine Übereinstimmung im implementation-Abschnitt existiert. Wieso packst Du nicht einfach 2 Buttons auf das Formular, benennst sie entsprechend und schreibst dann den Code in deren OnClick-Handler?

[edit] P.S.: Benutze doch bitte Delphi-Tags, das ist die "Helm"-Schaltfläche im Beitragseditor, dann ist der Code gleich besser zu lesen samt Syntax-Highlighting. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH ( 5. Mär 2013 um 17:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#28

AW: Min-Sort Verfahren

  Alt 5. Mär 2013, 17:30
Lösche die beiden procedures mit TForm1.* aus dem implemention Teil und die beiden procedures aus der Klassendefinition.

Dann im Formulardesigner jeweils ein Doppelklick auf die beiden Buttons. Dann solltest du die korrekten Rümpfe haben
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
cobi23

Registriert seit: 25. Feb 2013
12 Beiträge
 
#29

AW: Min-Sort Verfahren

  Alt 5. Mär 2013, 17:47
Delphi-Quellcode:
unit Uselect;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Zufallszahl: TButton;
    Selectionsort: TButton;
    MemoZufallszahl: TMemo;
    MemoSelect: TMemo;
    procedure SelectionsortClick(Sender: TObject);
    procedure ZufallszahlClick(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

  A: array [1..20] of integer;
implementation

{$R *.lfm}



  { TForm1 }



  procedure TForm1.ZufallszahlClick(Sender: TObject);
  begin
 AFuellen(A,1,100);
 InsMemo(A,MemoSelect);
  end;

procedure TForm1.SelectionsortClick(Sender: TObject);
begin
  ArraySortieren(A);
  InsMemo(A,MemoSelect);
end;

procedure AFuellen(var InsArray:array of integer;Min, Max: integer);
var i:integer;
 begin
   for i:= Low(InsArray) to High (InsArray) do
   begin
     InsArray[i]:= Random(Max-Min+1)+Min;
   end;
 end;


procedure ArraySortieren( var k:array of integer);
Var
    i, j : LongInt;
    Temp, Min: LongInt;
Begin
    For i := Low(k) To High(k) Do
    Begin
        Min := i;
        For j := i+1 To High(k) Do
            If k[j] < k[Min] Then
                Min := j;
        Temp := k[Min];
        k[Min] := k[i];
        k[i] := Temp;
    End;
End;
end.

procedure InsMemo(const insArray: array of integer; AMemo:TMemo);
var
  x:integer;
  begin
    AMemo.Lines.BeginUpdate;
    try
      AMemo.Clear;
      for x:= Low(insArray) to High (insArray) do
      begin
        AMemo.Lines.Add(IntToStr(insArray[x]));

      end;
    finally
      AMemo.Lines.EndUpdate;
    end;
  end;
end.
Jetzt zeigt er : uselect.pas(44,10) Error: Identifier not found "AFuellen"
uselect.pas(45,9) Error: Identifier not found "InsMemo"
uselect.pas(50,17) Error: Identifier not found "ArraySortieren"
uselect.pas(51,10) Error: Identifier not found "InsMemo"
uselect.pas(82,1) Fatal: There were 4 errors compiling module, stopping

Und was soll ich jetzt machen?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#30

AW: Min-Sort Verfahren

  Alt 5. Mär 2013, 17:54
Die anderen procedures (die mit ohne TForm1.*) musst du wieder nach oben kopieren
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 18:18 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