Avatar billede bramsing Nybegynder
31. oktober 2003 - 23:21 Der er 10 kommentarer og
2 løsninger

Tedit - Ulige tal

Hejsa...

Hvordan er det lige at man se om et tal er ulige i en edit??

ala noget i retning af
if edit1.text[8] = '1','3','5' etc. then else end; eller ???

//'bramsing'
Avatar billede arne_v Ekspert
31. oktober 2003 - 23:25 #1
if (strtoint(edit1.text[8]) mod 2) = 1 then

må være en (af mange) muligheder.
Avatar billede athlon-pascal Juniormester
31. oktober 2003 - 23:26 #2
if StrToInt(Edit1.Text) mod 2 = 1 then
  ShowMessage('Tallet er ulige')
else
  ShowMessage('Tallet er lige');


Eller er det det her du mener:
if Ord(edit1.text[8]) mod 2 = 1 then
...
Avatar billede athlon-pascal Juniormester
31. oktober 2003 - 23:28 #3
Jeg tror også man kan:

if (StrToInt(Edit1.Text[8]) - Trunc(Ord(Edit1.Text[8]) / 2) * 2) = 1 then
  ShowMessage('Tallet er ulige')
else
  ShowMessage('Tallet er lige');
Avatar billede athlon-pascal Juniormester
31. oktober 2003 - 23:29 #4
Og det var selvfølgelig

if (StrToInt(Edit1.Text[8]) - Trunc(StrToInt(Edit1.Text[8]) / 2) * 2) = 1 then
  ShowMessage('Tallet er ulige')
else
  ShowMessage('Tallet er lige');

jeg mente :-)
Avatar billede athlon-pascal Juniormester
31. oktober 2003 - 23:32 #5
Du kan også bruge denne funktion:

function LigeTal(Tal: Integer): Boolean;
begin
  Result := Tal mod 2 = 0;
end;

Men den gør det samme som de andre løsninger :-)
Avatar billede arne_v Ekspert
31. oktober 2003 - 23:32 #6
if odd(strtoint(edit1.text[8])) then

er en (kort) mulighed.
Avatar billede bramsing Nybegynder
31. oktober 2003 - 23:34 #7
Nemt og hurtigt.... Jeg takker for svarne... Da Athlon kom med lidt flere muligheder end Arne v får han lidt flere point... Jeg håber det ok fordelt ;o)
Avatar billede athlon-pascal Juniormester
31. oktober 2003 - 23:34 #8
Eller:

function LigeCharTal(C: Char): Boolean;
begin
  Result := StrToInt(C) mod 2 = 0;
end;

Så kan du sige:
if LigeCharTal(edit1.text[8]) then
...
else
...;
Avatar billede athlon-pascal Juniormester
31. oktober 2003 - 23:35 #9
Hvilken løsning brugte du?
Avatar billede bramsing Nybegynder
31. oktober 2003 - 23:36 #10
Jeg brugte godt nok >> if (strtoint(edit1.text[8]) mod 2) = 1 then << og den virker som den skal, Men de andre ser også gode ud til andre programmer
Avatar billede athlon-pascal Juniormester
31. oktober 2003 - 23:43 #11
arne_v -> Hvis du vil have dobbelt så mange points som du har fået nu i dette spm, så sig til :-)
Avatar billede arne_v Ekspert
31. oktober 2003 - 23:46 #12
Det gider vi ikke bruge mere tid på.

NB: Jeg tror faktisk at den rigtige løsning er den indbyggede odd funktion.
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