AGB  ·  Datenschutz  ·  Impressum  







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

Zahlenkombinationen generieren

Ein Thema von Georg25 · begonnen am 9. Mai 2011 · letzter Beitrag vom 12. Mai 2011
Antwort Antwort
Seite 2 von 2     12   
Georg25

Registriert seit: 9. Mai 2011
11 Beiträge
 
#11

AW: Zahlenkombinationen generieren

  Alt 12. Mai 2011, 13:57
Code:
procedure TForm_Main.Generator;
var
  stellen, max, i, j, k : Integer;
  pos : Array of Integer;
  s : String;
begin
  stellen := 3;
  max:= 15;
  SetLength(pos, stellen);

   k := StrToInt(FloatToStr(power(stellen,max)));

  for i:= 0 To stellen-1 do
    pos[i]:=1;

  for i:= 1 to k do begin
      s:='';
      Inc(pos[0]);

      for j:=0 To stellen -1 do
        if pos[j]=max+1 then begin
            pos[j]:=1;
            Inc(pos[j+1]);
          end;


      for j:=0 To stellen-1  do
        s:=s+IntToStr(pos[j]);
      Memo_Output.Lines.Add(s);
    end;
end;
Ich hab nun diesen Code benutzt, allerdings spuckt er am Ende immer eine Fehlermeldung aus:
Exception der Klasse "EInvalidPointer", "ungültige Zeigeroperation"

http://www.abload.de/img/errorzumv.png

Ich hab einiges versucht, aber irgendwie komme ich nicht weiter, hat wer noch eine Idee?

mfg

Geändert von Georg25 (12. Mai 2011 um 14:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Zahlenkombinationen generieren

  Alt 12. Mai 2011, 14:01
Hast Du einmal die Bereichsprüfung aktiviert? Mir kommt diese Stelle nicht ganz koscher vor:
Zitat:
Delphi-Quellcode:
for j:=0 To stellen -1 do
        if pos[j]=max+1 then begin
            pos[j]:=1;
            Inc(pos[j+1]); //was ist, wenn das letzte Array-Element erreicht ist?
          end;
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 Coffeecoder
Coffeecoder

Registriert seit: 27. Apr 2011
242 Beiträge
 
Delphi 6 Enterprise
 
#13

AW: Zahlenkombinationen generieren

  Alt 12. Mai 2011, 14:08
Hey,

Ich habe das Programm mal laufen gelassen.

Hast Du einmal die Bereichsprüfung aktiviert? Mir kommt diese Stelle nicht ganz koscher vor:
Zitat:
Delphi-Quellcode:
for j:=0 To stellen -1 do
        if pos[j]=max+1 then begin
            pos[j]:=1;
            Inc(pos[j+1]); //was ist, wenn das letzte Array-Element erreicht ist?
          end;
Da liegt das Problem! Er läuft noch weiter und weiter und weiter.Auch wenn er schon lange das letzte Element erreicht hat, dann kommt es zur Exception der Klasse "EInvalidPointer", "ungültige Zeigeroperation".

Mfg Coffeecoder
Coffeecoder
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Zahlenkombinationen generieren

  Alt 12. Mai 2011, 14:12
Genau das meinte ich, man kann schlecht auf einen Nachfolger zugreifen, der gar nicht existiert. Zumindest eine Abfrage, ob j kleiner als High(Pos) ist gehört da noch vorgeschaltet.
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
Jumpy

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

AW: Zahlenkombinationen generieren

  Alt 12. Mai 2011, 14:20
Man muss nicht unbedingt prüfen, man muss nur Fehlerfrei programmieren

Da ich das glaub ich ursprünglich verbrochen habe:

for j:=0 To stellen -1 do

muss einfach nur

for j:=0 To stellen -2 do

heißen, da pos[stellen-1] natürlich das letzte Element des Array ist und pos[j+1] daher für j=stellen-1 nie funktionieren kann.


Das nachher alles bei 151515 endet, muss man über die äußere Schleife steuern, kann also sein das bei

k := StrToInt(FloatToStr(power(stellen,max)));

nochwas abgezogen werden muss, oder mit max-1 gerechnet werden muss.

Hab das damals ja ohne Delphi ins Forum getippt.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Zahlenkombinationen generieren

  Alt 12. Mai 2011, 14:23
Zitat:
Wer ohne Fehler ist, werfe das erste Schwein.
(oder so ähnlich)
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
Georg25

Registriert seit: 9. Mai 2011
11 Beiträge
 
#17

AW: Zahlenkombinationen generieren

  Alt 12. Mai 2011, 14:32
Code:
procedure TForm_Main.Generator;
var
  stellen, max, i, j, k : Integer;
  pos : Array of Integer;
  s : String;
begin
  stellen := 2;
  max:= 3;
  SetLength(pos, stellen);

  k := StrToInt(FloatToStr(power(max, stellen)));

  for i:= 0 To stellen-1 do
    pos[i]:=1;

  for i:= 1 to k do begin
      s:='';
      Inc(pos[0]);

      for j:=0 To stellen -1 do
        if pos[j]=max+1 then begin
            pos[j]:=1;
            if high(pos) < pos[j+1] then Inc(pos[j+1]);
          end;


      for j:=0 To stellen-1  do
        s:=s+IntToStr(pos[j]);
      Memo_Output.Lines.Add(s);
    end;
end;
Ich hab nun eine Abfrage hinzugefügt, allerdings sind nun alle "doppelzahlen" (22,33) immer 11 :/
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Zahlenkombinationen generieren

  Alt 12. Mai 2011, 14:40
Delphi-Quellcode:
if j < high(pos) then
  Inc(pos[j+1]);
Für das funktionale Problem fehlt mir im Moment die Zeit, den Code logisch nachzuvollziehen.
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
Georg25

Registriert seit: 9. Mai 2011
11 Beiträge
 
#19

AW: Zahlenkombinationen generieren

  Alt 12. Mai 2011, 14:47
Super, Danke das war schon, nun funktioniert es
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 00:26 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