AGB  ·  Datenschutz  ·  Impressum  







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

Zahlen-Kombinationen

Ein Thema von bioser · begonnen am 18. Okt 2005 · letzter Beitrag vom 21. Okt 2005
Antwort Antwort
Seite 3 von 3     123   
bioser

Registriert seit: 30. Aug 2005
140 Beiträge
 
#21

Re: Zahlen-Kombinationen

  Alt 18. Okt 2005, 20:05
Zitat von freak4fun:
Wie kommst du auf ' 2 0 1 3'?

Mit BioserPermutation ('0123', 3); komme ich auf 3012.

MfG
freak
Ja, genau.
  Mit Zitat antworten Zitat
bioser

Registriert seit: 30. Aug 2005
140 Beiträge
 
#22

Re: Zahlen-Kombinationen

  Alt 18. Okt 2005, 20:14
Zitat von alzaimar:
Oh, ist doch aber nicht schwer:

Delphi-Quellcode:
Procedure BiosenPermutator (aList, aOutput : TList; aCount : Integer);
Begin
  aOutput[0] := aList [aCount];
  For i := 0 to High (aList) do
    if i<aCount then
      aOutput[i+1] := aList[i]
    else if i>aCount Then
      aOutput[i] := aList[i];
End;
Ungestet, aber sollte klappen.
Ja, das sieht doch sehr gut aus. Danke. Das high brauche ich nicht, dafür setze ich alist.count-1 ein. Vorher sollte man noch die Ausgabeliste mit Create erzeugen. Die Ausgabeliste benötigt aber noch Speicherplatz, oder ? So funktioniert es nämlich nicht.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#23

Re: Zahlen-Kombinationen

  Alt 19. Okt 2005, 15:33
Der Aufrufer von BioserPermutation ist für die Speicherverwaltung zuständig. Weiterhin kannst/solltest Du die Datentypen sowie die High-funktion ggf an deinen Datentyp anpassen.
Wenn Deine Liste z.B. Als Array [0..3] Of Integer deklariert ist, dann wäre es ja schön blod, die zuerst in eine TList zu kopieren, dann zu BioserPermutieren, um sie abschließend wieder von der TList in das Array of Integer zurück zukopieren. Insofern verwendest Du meinen Code natürlich nur als Anhaltspunt.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Eichhoernchen

Registriert seit: 22. Apr 2004
Ort: Hagen
322 Beiträge
 
Turbo Delphi für Win32
 
#24

Re: Zahlen-Kombinationen

  Alt 21. Okt 2005, 15:56
Wir haben damit jetzt gerade in der Schule begonnen,
vielleicht hilft dir das:

Delphi-Quellcode:
const n = 5;

var
  Form1: TForm1;
  zahl_gesetzt : array[1..n] of Boolean;
  zahlen : array[1..n] of Integer;
  count : integer;

implementation

{$R *.dfm}

procedure init;
var i : integer;
Begin
for i := 1 to n do
 zahl_gesetzt[i] := false;
 count := 0;
end;

procedure Ausgabe(zahl : integer);
Begin
 Form1.StringGrid1.Cells[0, count] := IntToStr(zahl);
 inc(count);
 Form1.Stringgrid1.RowCount := count;
 Form1.StringGrid1.Update;
 Form1.StringGrid1.Refresh;
end;

procedure permut(i : integer);
var j, k ,zahl : integer;
Begin
 for j := 1 to n do
  if not zahl_gesetzt[j]
    then Begin
          zahlen[i] := j;
          zahl_gesetzt[j] := true;
          if i < n
            then permut(i+1)
            else Begin
                  zahl := 0;
                  for k := n downto 1 do
                    zahl := zahl + (zahlen[k] * round(power(10, n-k)));
                  Ausgabe(zahl);
                 end;
          zahl_gesetzt[j] := false;
         end;
end;



procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Init;
permut(1);
end;

Hoffe es hilft!
Jan
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 02:59 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