Foklaring af kode

Tags:    delphi

Jeg forstår ikke følgende funktion - hvad gør den?

function temporary(tegn: char) : boolean;
var
x: string;
i: integer;
y: boolean;
begin
x := form2.svaretedit.text;
y:=False;
for i:=1 to Length(x) do
if
Tegn=x then
begin
y:=True;
Break;
end;
Result:=y;
end;




9 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Den tjekker om et bestemt bogstav er i en string. Tag følgende eksempler.

SvaretEdit er sat til Test
Temporary('e') vil give true, men Temporary('f') vil give false da der ikke er noget f i ordet test.

-----------------------------
Jonas (Decko)
http://decko.1go.dk/blog



delphi's strenge kan indekseres som arrays. så:
for i:=1 to Length(x) do
er en for løkke der kører fra 1 indtil længden af strengen x. og udfører den efterfølgende kodemblok i dette tilfælde
if
Tegn=x then
begin
y:=True;
Break;
end;


y sættes til false til at begynde med og ændresmku til true hvis tegn findes i x derfor er result altis true hvis og kun hvis tegn er i x.

result er det som funktionen returnere til der hvor den er blevetmkaldt fra.
-----------------------------------------------------------------------------

Min side ->www.the-hive.dk/~donp/

[Redigeret d. 23/02-06 17:11:21 af Nørden]




Den 23-02-06 15:14 skrev Benni følgende:
-----------------------------------------------------------------------------
Jeg forstår ikke følgende funktion - hvad gør den?

function temporary(tegn: char) : boolean;
var
x: string;
j: integer;
y: boolean;
begin
x := form2.svaretedit.text;
y:=False;
for j:=1 to Length(x) do
if
Tegn=x[j] then
begin
y:=True;
Break;
end;
Result:=y;
end;
-----------------------------------------------------------------------------

Det ser ud til at den finder ud af om tegnet "Tegn" findes i svaretedit.text. Det vil sige om et bestemt bogstav indgår i det der er blevet svaret. Det kunne eksempelvis være i et simpelt spil eller et spørgeskema.. el lign.

(¯`·._.·[Brian Hvarregaard]·._.·´¯)
Praesto et Persto



Det jeg ikke helt forstår er, hvordan det kan være y skal sættes til false til at starte med, og hvad "for i:=1 to Length(x) do" gør. Jeg forstår endvidere ikke helt, hvordan funktionen kan tjekke hvert bogstav seperat, idet x sættes til at være hele ordet?



Det jeg ikke helt forstår er, hvordan det kan være y skal sættes til false til at starte med, og hvad "for i:=1 to Length(x) do" gør. Jeg forstår endvidere ikke helt, hvordan funktionen kan tjekke hvert bogstav seperat, idet x sættes til at være hele ordet?


Y sættes først til default svaret False, hvis tegnet senere findes ændres det til True.

Du har ret X sættes til hele ordet i den oprindelige kode, i det tidligere svar har Brian også venligt rettet dette til x.

Iøvrigt har Delphi allerede en funktion Pos til at udføre denne opgave.




Det jeg ikke helt forstår er, hvordan det kan være y skal sættes til false til at starte med, og hvad "for i:=1 to Length(x) do" gør. Jeg forstår endvidere ikke helt, hvordan funktionen kan tjekke hvert bogstav seperat, idet x sættes til at være hele ordet?


Y sættes først til default svaret False, hvis tegnet senere findes ændres det til True.

Du har ret X sættes til hele ordet i den oprindelige kode, i det tidligere svar har Brian også venligt rettet dette til x.

Iøvrigt har Delphi allerede en funktion Pos til at udføre denne opgave.

-

Jeg tror efterhånden jeg er ved at forstå det, men hvad gør "for i:=1 to Length(x) do"? Samt, hvis result := false, hvad sker der efterfølgende?




--slettet--
-----------------------------------------------------------------------------

Min side ->www.the-hive.dk/~donp/

[Redigeret d. 23/02-06 17:11:09 af Nørden]



Mange tak skal I alle have indtil videre - jeg har blot endnu et spøgsmål. Hvad mener du med "result er det som funktionen returnere til der hvor den er blevetmkaldt fra." - Result sættes til at være true, vil det sige at funktionens resultat hele tiden er true?



funktionens resultat er altid den sidst tildelte værdi til result. i dette tilfælde er denne værdi y som kan være true eller false. i grunden kunne man fjerne y helt og bare sætte result til false i starten også til true inde i if sætningen,
-----------------------------------------------------------------------------

Min side ->www.the-hive.dk/~donp/



t