Avatar billede speedy Nybegynder
22. december 2000 - 08:31 Der er 23 kommentarer og
1 løsning

True eller False

Hej.

Dette er sådan set ikke et rigtigt spørgsmål. Jeg kom bare til at tænke på om man måtte kalde en variabel for true & false. Det måtte jeg selvfølgelig prøve. Jeg fandt ud af at det kunne man faktisk. Prøv så at se følgende eksempel.

procedure Test;
var
  True: boolean;
begin
  True := False;
  True := True;
end;

Hvad er variablen True efter proceduren er kørt ?? :)))

Gæt, men lad nu være med at teste først :)))


God JUL !!!

/SpEeDy
Avatar billede borrisholt Novice
22. december 2000 - 08:37 #1
Hej Speedy

True og False er IKKE reserverede ord og derfor kan du gøre med dem hvad du vil. Dog bør det nævnes at det selv sagt ikke er tilrådeligt.

du han også gøre noget alla det her :

type
  Boolean = integer;

Hvad variablen True er efter afvikling af proceduren ? Det giver ikke meneng at spørge efter idet True er en variabel der kun er gyldig i dit \"Test\" scope.

hvis du i dit spørgsmål ligger op til om man der ved har pillet i boolean variablen, vil jeg gerne afsløre det har du ikke !

og God (heste) Jut til dig.
Jens B
Avatar billede pstric Nybegynder
22. december 2000 - 08:41 #2
True er jo ikke noget reserveret ord, så det er måske ikke så underligt.

program Project;
{$APPTYPE CONSOLE}
uses SysUtils;

var
  True: Boolean;
  Boolean: Integer;
begin
  True := False;
  True := True;
  Boolean := 3;
  Writeln(True, Boolean);
  Readln;
end.

Hvad sker der mon nu???


Please, giv mig alle pointene;-)
Avatar billede speedy Nybegynder
22. december 2000 - 08:42 #3
borrisholt>> \"True er en variabel der kun er gyldig i dit \"Test\" scope.\"

Okay, det var måske også en dårlig formulering, men jeg mente så hvad variablen true var inden i test-proceduren, men til allersidst.

/SpEeDy
Avatar billede pellelil Nybegynder
22. december 2000 - 08:42 #4
Mit første umiddelbare gæt var at det ikke virkede, men nu siger du at det virker - så det må betyde at true/false ikke er reserverede ord.

Jeg vil gætte på at \"True\" hele tiden behandles som en lokal variable, og du har netop tildelt den værdien False, så mon ikke den også ender med at være False (når du siger: \"True := True;\").

???
Avatar billede pstric Nybegynder
22. december 2000 - 08:43 #5
Og også god jul til alle herfra
Avatar billede borrisholt Novice
22. december 2000 - 08:51 #6
pstric  > Dit lille program testede jeg lige resultatet bliver : FALSE3

Det viser sig at linje nummer 2 True = True ikke bliver ekekveret faktisk for svinder den når man kompilerer.

Måske nogen af jeg kloge ved hvorfor.

Jens B
Avatar billede pellelil Nybegynder
22. december 2000 - 08:56 #7
Hvis linien forsvinder kan det måske skyldes at kompileren vurder at \"a:=a;\" alligevel ikke \"føre til noget\" (optimeret væk) !?
Avatar billede pstric Nybegynder
22. december 2000 - 08:57 #8
borrisholt>> måske det samme trylleri som Delphi laver med A := A ?
Avatar billede borrisholt Novice
22. december 2000 - 08:58 #9
Ja selvfølgelig ... Og der for bliber resultatet FALSE fordi man sætter den lig med sig selv og ikke Boolean værdien True ...

jens B
Avatar billede pstric Nybegynder
22. december 2000 - 08:58 #10
Øv, skal det da aldrig lykkes mig at komme først?
Avatar billede pellelil Nybegynder
22. december 2000 - 08:59 #11
Hva\' så har jeg vundet en HEST eller hva\' ??  :-)
Avatar billede speedy Nybegynder
22. december 2000 - 09:02 #12
Hvordan sætter man så variablen \"True\" til true uden at oprette en ande variabel, som man sætter til true, og så sætte \"True\" til den ?

Sikke en sætning :)

/SpEeDy
Avatar billede speedy Nybegynder
22. december 2000 - 09:03 #13
pstric>>Du skal nok få points\'ne n :)) Senere :)

/SpEeDy
Avatar billede pellelil Nybegynder
22. december 2000 - 09:04 #14
Hmmm Hvad med: \"True := (1=1);\"
Avatar billede pstric Nybegynder
22. december 2000 - 09:04 #15
/SpEeDy>> vil du ikke nok ligge dem under juletræet?
Avatar billede borrisholt Novice
22. december 2000 - 09:05 #16
pellelil ... Den der hest skal den pakkes ind ?

Jens B
Avatar billede speedy Nybegynder
22. december 2000 - 09:05 #17
pellelil>> Øv, der var du kvik :))

Den havde jeg ikke tænkt på

/SpEeDy
Avatar billede pstric Nybegynder
22. december 2000 - 09:05 #18
pellelil>> så sætter du jo ikke True lig med den lokale variabel\'s værdi, så det må nødvendigvis give True
Avatar billede speedy Nybegynder
22. december 2000 - 09:06 #19
pstric>>Jo, juletræet på rådhuspladsen ?? :))

/SpEeDy
Avatar billede pstric Nybegynder
22. december 2000 - 09:08 #20
speedy>> ja, i hvert fald ikke på torvet i Borris ;-)
Avatar billede pellelil Nybegynder
22. december 2000 - 09:22 #21
borrisholt> Nej jeg tager den uden papir, så kan den nemmere komme til at æde træet hvis den er sulten.

pstric> Hvor/hvornår sætter jeg \"ikke True lige med den local variabel\'s værdi\" ??

Speedy> Jeg har set eksempler på C programmer der netop bruger samme \"methode\" til at lavet et undeligt loop: \"while(1)....\". I C-sproget er 0=False og alt andet true, så \"while(1)\" forbliver \"true\".
Avatar billede speedy Nybegynder
23. december 2000 - 23:56 #22
Jamen jeg siger tak for de meget opfindsomme svar :))

pstric>>Så fik du alle pointene alligevel hva ;)

God jul igen. Klokken nærmer sig nu 24, så mon det er juleaften nu ?? :))


/SpEeDy
Avatar billede speedy Nybegynder
23. december 2000 - 23:57 #23
Nå, mit PC-ur var lidt foran. Øv, så er det ikke juleaften endnu. :(

/SpEeDy
Avatar billede pstric Nybegynder
25. december 2000 - 19:57 #24
speedy>> jubii, så fik jeg alligevel alt hvad jeg havde ønsket mig.
Tusind tak!!
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