AGB  ·  Datenschutz  ·  Impressum  







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

Sortieren nach Liste

Ein Thema von JayAy · begonnen am 3. Okt 2010 · letzter Beitrag vom 3. Okt 2010
 
JayAy
(Gast)

n/a Beiträge
 
#1

Sortieren nach Liste

  Alt 3. Okt 2010, 04:05
Hallo zusammen,

ich wollte mir ein Programm basteln, das beim Stimmenauszählen hilft. Leider funktioniert das ganze nicht...
Neben dem Fehler will ich aber auch wissen, wie ich die Namen in der oberen Zeile gleich den sortierten Zahlen entsprechend einordne.

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure StringGrid1Click(Sender: TObject);
    procedure StringGrid2Click(Sender: TObject);
    procedure StringGrid1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure StringGrid2MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Liste: array[1..100000] of integer;
  ListeMisch: array[1..100000] of integer;
  ListeQuick: array[1..100000] of integer;
  l: integer;
  vertausche,vergleiche,Mischtausch,Mischvergleich: integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var i,k: integer;
begin

  For k:= 1 to 64 do
  begin
    For i:= 1 to 35 do
    begin
      stringgrid1.Cells[i,k]:=inttostr(0);
    end;
  end;

  For k:= 1 to 64 do
  begin
    For i:= 1 to 35 do
    begin
      stringgrid2.Cells[i,k]:=inttostr(0);
    end;
  end;

  stringgrid1.cells[0,1]:='Abschreiber/in';
  stringgrid1.cells[0,2]:='Angeber/in';
  stringgrid1.cells[0,3]:='Antisportler/in';
  stringgrid1.cells[0,4]:='Arroganteste/r';
  stringgrid1.cells[0,5]:='Besserwisser/in';
  stringgrid1.cells[0,6]:='beste Frisur';
  stringgrid1.cells[0,7]:='beste/r Schauspieler/in';
  stringgrid1.cells[0,8]:='dümmste Fragen';
  stringgrid1.cells[0,9]:='Bestgelaunteste/r';
  stringgrid1.cells[0,10]:='Clown';
  stringgrid1.cells[0,11]:='Rätsel';
  stringgrid1.cells[0,12]:='Eitelste/r';
  stringgrid1.cells[0,13]:='Millionär/in';
  stringgrid1.cells[0,14]:='Vater/Mutter';
  stringgrid1.cells[0,15]:='Extrovertierteste/r';
  stringgrid1.cells[0,16]:='Faulste/r';
  stringgrid1.cells[0,17]:='Freak';
  stringgrid1.cells[0,18]:='Geizigste/r';
  stringgrid1.cells[0,19]:='Höflichste/r';
  stringgrid1.cells[0,20]:='Infantilste/r';
  stringgrid1.cells[0,21]:='Intelligenzbestie';
  stringgrid1.cells[0,22]:='Interessanteste/r';
  stringgrid1.cells[0,23]:='Lache';
  stringgrid1.cells[0,24]:='Kreativste/r';
  stringgrid1.cells[0,25]:='Lehrerliebling';
  stringgrid1.cells[0,26]:='Lustigste/r';
  stringgrid1.cells[0,27]:='Macho/Tussi';
  stringgrid1.cells[0,28]:='Mr/Ms Fashion';
  stringgrid1.cells[0,29]:='Mr/Ms Max Planck';
  stringgrid1.cells[0,30]:='Mitläufer/in';
  stringgrid1.cells[0,31]:='möchtegern-witzig';
  stringgrid1.cells[0,32]:='Morgenmuffel';
  stringgrid1.cells[0,33]:='nervigste Stimme';
  stringgrid1.cells[0,34]:='Netteste/r';
  stringgrid1.cells[0,35]:='Nikotinopfer';
  stringgrid1.cells[0,36]:='Öko';
  stringgrid1.cells[0,37]:='One-Night';
  stringgrid1.cells[0,38]:='Partyking';
  stringgrid1.cells[0,39]:='Partykotzer/in';
  stringgrid1.cells[0,40]:='politische Ansicht';
  stringgrid1.cells[0,41]:='Schleimer/in';
  stringgrid1.cells[0,42]:='Schnacker/in';
  stringgrid1.cells[0,43]:='Schnapsdrossel';
  stringgrid1.cells[0,44]:='Schnorrer/in';
  stringgrid1.cells[0,45]:='Schönheit';
  stringgrid1.cells[0,46]:='schönstes Lächeln';
  stringgrid1.cells[0,47]:='Schwänzer/in';
  stringgrid1.cells[0,48]:='Sozialste/r';
  stringgrid1.cells[0,49]:='Sportlichste/r';
  stringgrid1.cells[0,50]:='Stimmungskanone';
  stringgrid1.cells[0,51]:='Tollpatsch';
  stringgrid1.cells[0,52]:='Body';
  stringgrid1.cells[0,53]:='Schwiegertraum';
  stringgrid1.cells[0,54]:='Unauffälligste/r';
  stringgrid1.cells[0,55]:='Unselbsständigste/r';
  stringgrid1.cells[0,56]:='Verkehrsrowdy';
  stringgrid1.cells[0,57]:='Verplanteste/r';
  stringgrid1.cells[0,58]:='Verwöhnteste/r';
  stringgrid1.cells[0,59]:='Weichei';
  stringgrid1.cells[0,60]:='Wichtigtuer';
  stringgrid1.cells[0,61]:='Wichtigtuer/in';
  stringgrid1.cells[0,62]:='Zicke';
  stringgrid1.cells[0,63]:='Zuspätkommer/in';
  stringgrid1.cells[0,64]:='Zuverlässigste/r';
  stringgrid1.cells[1,0]:='Anneke';
  stringgrid1.cells[2,0]:='Anh';
  stringgrid1.cells[3,0]:='Annika';
  stringgrid1.cells[4,0]:='Ann-Cathrin';
  stringgrid1.cells[5,0]:='Felicitas';
  stringgrid1.cells[6,0]:='Finja';
  stringgrid1.cells[7,0]:='Hanna';
  stringgrid1.cells[8,0]:='Joana';
  stringgrid1.cells[9,0]:='Johanna';
  stringgrid1.cells[10,0]:='Josephine';
  stringgrid1.cells[11,0]:='Julia E.';
  stringgrid1.cells[12,0]:='Julia M.';
  stringgrid1.cells[13,0]:='Kerrin';
  stringgrid1.cells[14,0]:='Kim';
  stringgrid1.cells[15,0]:='Kira B.';
  stringgrid1.cells[16,0]:='Kira K.';
  stringgrid1.cells[17,0]:='Kristina';
  stringgrid1.cells[18,0]:='Liv';
  stringgrid1.cells[19,0]:='Luise';
  stringgrid1.cells[20,0]:='Marie';
  stringgrid1.cells[21,0]:='Miriam';
  stringgrid1.cells[22,0]:='Mona';
  stringgrid1.cells[23,0]:='Natascha';
  stringgrid1.cells[24,0]:='Pia';
  stringgrid1.cells[25,0]:='Sarah E.';
  stringgrid1.cells[26,0]:='Sarah H.';
  stringgrid1.cells[27,0]:='Sarah T.';
  stringgrid1.cells[28,0]:='Sina G.';
  stringgrid1.cells[29,0]:='Sina N.';
  stringgrid1.cells[30,0]:='Stefanie';
  stringgrid1.cells[31,0]:='Svea';
  stringgrid1.cells[32,0]:='Svenja';
  stringgrid1.cells[33,0]:='Tjorven';
  stringgrid1.cells[34,0]:='Vanessa';
  stringgrid1.cells[35,0]:='Yasmin';
  stringgrid2.cells[0,1]:='Abschreiber/in';
  stringgrid2.cells[0,2]:='Angeber/in';
  stringgrid2.cells[0,3]:='Antisportler/in';
  stringgrid2.cells[0,4]:='Arroganteste/r';
  stringgrid2.cells[0,5]:='Besserwisser/in';
  stringgrid2.cells[0,6]:='beste Frisur';
  stringgrid2.cells[0,7]:='beste/r Schauspieler/in';
  stringgrid2.cells[0,8]:='dümmste Fragen';
  stringgrid2.cells[0,9]:='Bestgelaunteste/r';
  stringgrid2.cells[0,10]:='Clown';
  stringgrid2.cells[0,11]:='Rätsel';
  stringgrid2.cells[0,12]:='Eitelste/r';
  stringgrid2.cells[0,13]:='Millionär/in';
  stringgrid2.cells[0,14]:='Vater/Mutter';
  stringgrid2.cells[0,15]:='Extrovertierteste/r';
  stringgrid2.cells[0,16]:='Faulste/r';
  stringgrid2.cells[0,17]:='Freak';
  stringgrid2.cells[0,18]:='Geizigste/r';
  stringgrid2.cells[0,19]:='Höflichste/r';
  stringgrid2.cells[0,20]:='Infantilste/r';
  stringgrid2.cells[0,21]:='Intelligenzbestie';
  stringgrid2.cells[0,22]:='Interessanteste/r';
  stringgrid2.cells[0,23]:='Lache';
  stringgrid2.cells[0,24]:='Kreativste/r';
  stringgrid2.cells[0,25]:='Lehrerliebling';
  stringgrid2.cells[0,26]:='Lustigste/r';
  stringgrid2.cells[0,27]:='Macho/Tussi';
  stringgrid2.cells[0,28]:='Mr/Ms Fashion';
  stringgrid2.cells[0,29]:='Mr/Ms Max Planck';
  stringgrid2.cells[0,30]:='Mitläufer/in';
  stringgrid2.cells[0,31]:='möchtegern-witzig';
  stringgrid2.cells[0,32]:='Morgenmuffel';
  stringgrid2.cells[0,33]:='nervigste Stimme';
  stringgrid2.cells[0,34]:='Netteste/r';
  stringgrid2.cells[0,35]:='Nikotinopfer';
  stringgrid2.cells[0,36]:='Öko';
  stringgrid2.cells[0,37]:='One-Night';
  stringgrid2.cells[0,38]:='Partyking';
  stringgrid2.cells[0,39]:='Partykotzer/in';
  stringgrid2.cells[0,40]:='politische Ansicht';
  stringgrid2.cells[0,41]:='Schleimer/in';
  stringgrid2.cells[0,42]:='Schnacker/in';
  stringgrid2.cells[0,43]:='Schnapsdrossel';
  stringgrid2.cells[0,44]:='Schnorrer/in';
  stringgrid2.cells[0,45]:='Schönheit';
  stringgrid2.cells[0,46]:='schönstes Lächeln';
  stringgrid2.cells[0,47]:='Schwänzer/in';
  stringgrid2.cells[0,48]:='Sozialste/r';
  stringgrid2.cells[0,49]:='Sportlichste/r';
  stringgrid2.cells[0,50]:='Stimmungskanone';
  stringgrid2.cells[0,51]:='Tollpatsch';
  stringgrid2.cells[0,52]:='Body';
  stringgrid2.cells[0,53]:='Schwiegertraum';
  stringgrid2.cells[0,54]:='Unauffälligste/r';
  stringgrid2.cells[0,55]:='Unselbsständigste/r';
  stringgrid2.cells[0,56]:='Verkehrsrowdy';
  stringgrid2.cells[0,57]:='Verplanteste/r';
  stringgrid2.cells[0,58]:='Verwöhnteste/r';
  stringgrid2.cells[0,59]:='Weichei';
  stringgrid2.cells[0,60]:='Wichtigtuer';
  stringgrid2.cells[0,61]:='Wichtigtuer/in';
  stringgrid2.cells[0,62]:='Zicke';
  stringgrid2.cells[0,63]:='Zuspätkommer/in';
  stringgrid2.cells[0,64]:='Zuverlässigste/r';
  stringgrid2.cells[1,0]:='Alexander';
  stringgrid2.cells[2,0]:='Anil';
  stringgrid2.cells[3,0]:='Arved';
  stringgrid2.cells[4,0]:='Bennet';
  stringgrid2.cells[5,0]:='Daniel W.';
  stringgrid2.cells[6,0]:='Eike';
  stringgrid2.cells[7,0]:='Felix J.';
  stringgrid2.cells[8,0]:='Felix S.';
  stringgrid2.cells[9,0]:='Ferdinand';
  stringgrid2.cells[10,0]:='Florian';
  stringgrid2.cells[11,0]:='Ha';
  stringgrid2.cells[12,0]:='Jan';
  stringgrid2.cells[13,0]:='Jannik F.';
  stringgrid2.cells[14,0]:='Jaseper';
  stringgrid2.cells[15,0]:='Jendrik';
  stringgrid2.cells[16,0]:='Jonas';
  stringgrid2.cells[17,0]:='Konrad';
  stringgrid2.cells[18,0]:='Leewe';
  stringgrid2.cells[19,0]:='Leif';
  stringgrid2.cells[20,0]:='Lorenz';
  stringgrid2.cells[21,0]:='Max K.';
  stringgrid2.cells[22,0]:='Max S.';
  stringgrid2.cells[23,0]:='Michel';
  stringgrid2.cells[24,0]:='Nico';
  stringgrid2.cells[25,0]:='Niklas F.';
  stringgrid2.cells[26,0]:='Niklas H.';
  stringgrid2.cells[27,0]:='Phil';
  stringgrid2.cells[28,0]:='Philip R.';
  stringgrid2.cells[29,0]:='Philip S.';
  stringgrid2.cells[30,0]:='Sergej';
  stringgrid2.cells[31,0]:='Simon';
  stringgrid2.cells[32,0]:='Sören';
  stringgrid2.cells[33,0]:='Steffen';
  stringgrid2.cells[34,0]:='Stephan';
  stringgrid2.cells[35,0]:='Till';
  stringgrid2.cells[36,0]:='Tilmann';
  stringgrid2.cells[37,0]:='Torben';
  stringgrid2.cells[38,0]:='Yannik M.';
  stringgrid2.cells[39,0]:='Yannick Z.';
end;

procedure TForm1.StringGrid1Click(Sender: TObject);
var
  xzelle, yzelle :integer;
begin
  xzelle:=StringGrid1.Col;
  yzelle:=StringGrid1.Row;
  stringgrid1.cells[xzelle,yzelle]:=inttostr(strtoint(stringgrid1.cells[xzelle,yzelle])+1);
end;

procedure TForm1.StringGrid2Click(Sender: TObject);
var
  xzelle, yzelle :integer;
begin
  xzelle:=StringGrid2.Col;
  yzelle:=StringGrid2.Row;
  stringgrid2.cells[xzelle,yzelle]:=inttostr(strtoint(stringgrid2.cells[xzelle,yzelle])+1);
end;

procedure TForm1.StringGrid1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  xzelle, yzelle :integer;
begin
  if Shift = [ssRight] then // nur rechte maustaste
  begin
    xzelle:=StringGrid1.Col;
    yzelle:=StringGrid1.Row;
    stringgrid1.cells[xzelle,yzelle]:=inttostr(strtoint(stringgrid1.cells[xzelle,yzelle])-1);
  end; // if Shift in [ssRight]
end;

procedure TForm1.StringGrid2MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  xzelle, yzelle :integer;
begin
  if Shift = [ssRight] then // nur rechte maustaste
  begin
    xzelle:=StringGrid2.Col;
    yzelle:=StringGrid2.Row;
    stringgrid2.cells[xzelle,yzelle]:=inttostr(strtoint(stringgrid2.cells[xzelle,yzelle])-1);
  end; // if Shift in [ssRight]
end;

Procedure Mischsortieren1 (links,rechts: Integer);
var Endelinks, Anfangrechts:Integer;


  Procedure Mischen1(I, J: integer);
  var
    Z, K: integer;
  begin
    if I < J then
    begin
      Mischvergleich:=Mischvergleich+1;
      if Liste[I] <= Liste[J] then
      begin
        Mischvergleich:=Mischvergleich+1;
        Mischen1(I + 1, J)
      end
      else
      begin
        Z := Liste[J];
        For K := J - 1 downto I do
        begin
          Liste[K + 1] := Liste[K];
          mischtausch:=mischtausch+1;

        end;
        Liste[I] := Z;
        mischtausch:=mischtausch+1;
        if J < rechts then
          begin
          Mischvergleich:=Mischvergleich+1;
          Mischen1(I + 1, J + 1);
          end;
      end;
    end;
  end;

begin
  Endelinks:=trunc((links+rechts)/2);
  Anfangrechts:=Endelinks+1;
  if links<Endelinks then
  begin
    Mischvergleich:=Mischvergleich+1;
    Mischsortieren1(links,Endelinks);
  end;
  if Anfangrechts<rechts then
  begin
    Mischvergleich:=Mischvergleich+1;
    Mischsortieren1(Anfangrechts,rechts);
  end;
  Mischen1(links,Anfangrechts);
end;

  procedure quicksort(erstes, letztes: integer);
    {Sortieren mittels Quicksort}
    var linker_merker, rechter_merker : integer;
    procedure zerlege (var links, rechts: integer);
      var pivot: integer;
      procedure tausche (var x, y: integer);
        var hilf: integer;
        begin
          hilf := x; x := y; y := hilf;
          vertausche := vertausche + 1;
        end; {of vertausche}
      begin {zerlege}
        pivot := ListeQuick[(links + rechts) DIV 2];
        repeat
          while ListeQuick[links] < pivot do begin
            links := links + 1;
            vergleiche := vergleiche + 1;
          end;
          while ListeQuick[rechts] > pivot do begin
            rechts := rechts - 1;
            vergleiche := vergleiche + 1;
          end;
          if links <= rechts then begin
            tausche (ListeQuick[links], ListeQuick[rechts]);
            links := links + 1; rechts := rechts - 1;
            vergleiche := vergleiche + 1;
          end;
        until links > rechts;
      end;{of zerlege}
    begin {quicksort}
      linker_merker := erstes; rechter_merker := letztes;
      zerlege (linker_merker, rechter_merker);
      if erstes < rechter_merker then
        quicksort (erstes, rechter_merker); {Rekursiver Selbstaufruf!}
      if linker_merker < letztes then
        quicksort (linker_merker, letztes); {Rekursiver Selbstaufruf!}
    end; {of quicksort}

procedure TForm1.Button1Click(Sender: TObject);
var q: integer;

begin
  For q:= 1 to 35 do
  begin
    For l:= 1 to 64 do
      begin
        Liste[l]:=strtoint(stringgrid1.cells[q+1,l]);
      end;
    Mischsortieren1(1,64);
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var q: integer;

begin
  For q:= 1 to 35 do
  begin
    For l:= 1 to 64 do
      begin
        Liste[l]:=strtoint(stringgrid2.cells[q+1,l]);
      end;
    Mischsortieren1(1,64);
  end;
end;

end.
Danke für die Antworten!
  Mit Zitat antworten Zitat
 


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 21:38 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