Trädvy Permalänk
Medlem
Registrerad
Dec 2018

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
Trädvy Permalänk
Legendarisk
Hedersmedlem
Plats
::1
Registrerad
Dec 2002

@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;

Abstractions all the way down.

Trädvy Permalänk
Medlem
Registrerad
Dec 2018
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!

Trädvy Permalänk
Legendarisk
Hedersmedlem
Plats
::1
Registrerad
Dec 2002
Skrivet av Greyguy1948:

Tack det fungerar perfekt med AnsiString!

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

Abstractions all the way down.

Trädvy Permalänk
Medlem
Registrerad
Dec 2018
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.

Trädvy Permalänk
Legendarisk
Hedersmedlem
Plats
::1
Registrerad
Dec 2002

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

Abstractions all the way down.

Trädvy Permalänk
Medlem
Registrerad
Apr 2006

Nostalgi