Avatar billede game_tracker Nybegynder
24. december 2002 - 15:19 Der er 10 kommentarer og
1 løsning

matematik

Jeg skal bruge en kode til at jeg kan skrive i en edit hvor jeg vil starte (så den vil udregne mulighederne) og så kommer resultaterne i en listbox fx hvis jeg skriver 00 så skal den skrive i listbox

00
01
02
03
04
05
06
07
08
09
10
11 osv op til 99 og hvis det fx var 000 skulle det være op til 999 osv osv
Avatar billede hermandsen Juniormester
24. december 2002 - 15:45 #1
uses
  Math;

function Int2Str(I, Len: Integer): String;
begin
  Str(I, Result);
  for I := Length(Result) to Len -1 do
    Result := '0' + Result;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Len, I: Integer;
begin
  Len := Length(Edit1.Text);
  for I := StrToInt(Edit1.Text) to Round(IntPower(10, Len))-1 do
    ListBox1.Items.Add(Int2Str(I));
end;

(ikke testet)
Avatar billede hermandsen Juniormester
24. december 2002 - 15:47 #2
Første fejl:

ListBox1.Items.Add(Int2Str(I));
  Skal være:
ListBox1.Items.Add(Int2Str(I, Len));
Avatar billede dj Nybegynder
24. december 2002 - 15:59 #3
Jeg har lige bikset lidt sammen der skulle være brugbart.
Det er bare bikset sammen som jeg nu har udtænkt det, så det kan med garanti godt optimeres lidt/gøres lidt pænere :)

----------------------------------

function AddCiffers(inputnr: integer; totallength: integer):string;
var
  tempstr: string;
  I: integer;
begin
  tempstr := inttostr(inputnr);
  for I:=length(tempstr) to totallength-1 do begin
    tempstr := '0'+tempstr;
  end;
  result := tempstr;
end;

procedure GenNumbers(startnr: string; listbox: TListBox);
var
  len: integer;
  start: integer;
  tempstr : string;
begin
  len := length(startnr);
  start := strtoint(startnr);
  tempstr := AddCiffers(start,len);
  while (length(tempstr) = len) do begin
    inc(start);
    tempstr := AddCiffers(start,len);
    if (not (length(tempstr)>len)) then listbox.Items.add(tempstr);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListBox1.clear;
  GenNumbers(edit1.text,ListBox1);
end;

------------------------------------

Og glædelig jul til dig :)

//_DJ_
Avatar billede dj Nybegynder
24. december 2002 - 16:01 #4
hovsa hermandsen, der var du ligegodt hurtigere ;)

og din løsning er faktisk oss lidt mere elegant og der foregår knap så mange konverteringer (sagde jo den ku gøres pænere =)

Men god jul til dig også :)
Avatar billede hermandsen Juniormester
24. december 2002 - 16:15 #5
Hehe...
Bare i orden dj! ;)

Glædelig jul til dig også! Nu vil jeg sgu installere XP, wish me luck! ;)
Avatar billede hermandsen Juniormester
27. december 2002 - 10:50 #6
>>game_tracker
Virker det?
Avatar billede game_tracker Nybegynder
02. januar 2003 - 18:54 #7
det vil ikke virke
Avatar billede hermandsen Juniormester
02. januar 2003 - 22:18 #8
Hvilke fejl meddelser får du?
Avatar billede abpdk Nybegynder
21. januar 2003 - 20:35 #9
Det kan gøres lidt kortere:

procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  for i:=StrToInt(Edit1.Text) to Round(Power(10, Length(Edit1.text))-1) do
    ListBox1.Items.Add(StringOfChar('0',Length(Edit1.Text)-Length(IntToStr(i)))+IntToStr(i));
end;
Avatar billede hermandsen Juniormester
21. januar 2003 - 22:23 #10
>>abpdk
Det kan sikkert også gøres mere uoverskueligt! ;)
Avatar billede abpdk Nybegynder
21. januar 2003 - 22:37 #11
Meget muligt, men hvis man sparer en for-løkke så...;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester