Permalänk

100 doors in Pascal

Vad händer här?

program OneHundredDoors; {$APPTYPE CONSOLE} uses math, sysutils; var AOpendoors : String; ACloseDoors : String; i : Integer; begin for i := 1 to 100 do begin if (sqrt(i) = floor(sqrt(i))) then AOpenDoors := AOpenDoors + IntToStr(i) + ';' else ACloseDoors := ACloseDoors + IntToStr(i) +';'; end; WriteLn('Open doors: ' + AOpenDoors); WriteLn('Close doors: ' + ACloseDoors); end.

100 doors från Rosettacode.org fungerar i regel väl men i detta fall får jag ett skumt resultat.
OPEN DOOR stämmer men CLOSED DOOR slutar på 93.
Även 94-99 borde var med men icke! Varför?

Lagt till code-taggar /Mod
Permalänk
Legendarisk

@Greyguy1948: Strängar kan bara hålla 255 tecken så ditt resultat har blivit avklippt, först inuti loopen och sedan en gång till när det prefixas med "Close doors: " innan det skrivs ut. Prova att byta till AnsiString istället för String om din kompilator stödjer det, eller ta bort skiljetecknet så bör de saknade siffrorna dyka upp.

AOpendoors : AnsiString; ACloseDoors : AnsiString;

Visa signatur

Abstractions all the way down.

Permalänk
Skrivet av Biberu:

@Greyguy1948: Strängar kan bara hålla 255 tecken så ditt resultat har blivit avklippt, först inuti loopen och sedan en gång till när det prefixas med "Close doors: " innan det skrivs ut. Prova att byta till AnsiString istället för String om din kompilator stödjer det, eller ta bort skiljetecknet så bör de saknade siffrorna dyka upp.

AOpendoors : AnsiString; ACloseDoors : AnsiString;

Tack det fungerar perfekt med AnsiString!

Permalänk
Legendarisk
Skrivet av Greyguy1948:

Tack det fungerar perfekt med AnsiString!

Så bra! Hur kommer det sig att du sitter med Pascal?

Visa signatur

Abstractions all the way down.

Permalänk
Skrivet av Biberu:

Så bra! Hur kommer det sig att du sitter med Pascal?

Det har nog mest med min ålder att göra. Jag började med BASIC och ALGOL 1973 och då kändes PASCAL rätt något senare när PCn slog igenom.
ALGOL 60 som då kallades ALGOL används knappast idag och ALGOL 68 är rätt annorlunda.

Permalänk
Legendarisk

@Greyguy1948: Aha. Jag hann med lite Pascal, men ALGOL var före min tid.

Visa signatur

Abstractions all the way down.

Permalänk
Medlem

Nostalgi