Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zwischen Geraden und ungeraden Zahlen unterscheiden (https://www.delphipraxis.net/91823-zwischen-geraden-und-ungeraden-zahlen-unterscheiden.html)

Andreas L. 10. Mai 2007 13:51


Zwischen Geraden und ungeraden Zahlen unterscheiden
 
Hi,
ich glaube ich hab das schonmal gefragt, finde aber den Beitrag nicht mehr. Wie kann ich gerade von ungeraden Zahlen unterscheiden.

Beispiel:
Delphi-Quellcode:
1 = ungerade
2 = gerade
3 = ungerade
...

IstGerade(2) = true
IstGerade(1) = false
Wie heißt die Funktion?

*alzheimer hab* :coder2:

Neutral General 10. Mai 2007 13:52

Re: Zwischen Geraden und ungeraden Zahlen unterscheiden
 
Hi,

Ein Tipp: Gerade Zahlen lassen sich ohne Rest durch 2 teilen ;)

Gruß
Neutral General

Andreas L. 10. Mai 2007 13:54

Re: Zwischen Geraden und ungeraden Zahlen unterscheiden
 
Zitat:

Zitat von Neutral General
Hi,

Ein Tipp: Gerade Zahlen lassen sich ohne Rest durch 2 teilen ;)

Gruß
Neutral General

Klar, ich Idiot.... :wall: :wall: Aber gabs da nicht trotzdem eine Funktion die das auto. macht? :mrgreen: :gruebel:

Neutral General 10. Mai 2007 13:56

Re: Zwischen Geraden und ungeraden Zahlen unterscheiden
 
Ja die gibts:

Delphi-Quellcode:
function BauDirDochSelbstEine(Zahl: Integer): Boolean;
begin
  Result := Zahl mod 2 = 0;
end;
;)

WS1976 10. Mai 2007 14:04

Re: Zwischen Geraden und ungeraden Zahlen unterscheiden
 
Hallo,

mit etwas nachdenken....

If (a div 2)=(a /2) then 'gerade Zahl' else 'ungerade Zahl'
die Null musst du noch separat abfangen.

Für alle die es wie immer besser wissen:
das ist kein Code sondern nur eine Anleitung (Prinzip) wie mans macht.


Grüsse

Robert Marquardt 10. Mai 2007 14:04

Re: Zwischen Geraden und ungeraden Zahlen unterscheiden
 
Odd() ist originales Wirth-Pascal.

TeronG 10. Mai 2007 14:05

Re: Zwischen Geraden und ungeraden Zahlen unterscheiden
 
OH sagt bei suche nach 'Ungerade': Odd (Funktion)

EDIT:
1. Zu langsam
2. Gefällt mir MOD nicht (wenn oft ausgeführt) wenn schon was basteln, dann isses imho besser wenn man mit shl (shr) arbeitet. (Performanter!?)
EDIT2:
Schade, daß in der System.pas nicht drinnen steht wie odd arbeitet :(

himitsu 10. Mai 2007 14:08

Re: Zwischen Geraden und ungeraden Zahlen unterscheiden
 
Delphi-Referenz durchsuchenOdd

Zitat:

Zitat von OH: Odd
Die Funktion gibt true zurück, wenn das Argument eine ungerade Zahl ist.


Delphi-Quellcode:
Function Odd(i: Integer): Boolean;
  Begin
    Result := i and 1 <> 0;
  End;
i and 1 : niederwertiges Bit auswählen
... <> 0 : testen ob dieses Bit gesetzt ist

Warum man über dieses Bit auf (un)gerade prüfen kann wird klar, wenn man sich den Datentyp mal ansieht.

Ach ja: ein binärer Vergleich ist in der Regel schneller/optimaler als eine mathematische Berechnung.

Andreas L. 10. Mai 2007 14:09

Re: Zwischen Geraden und ungeraden Zahlen unterscheiden
 
Zitat:

Zitat von TeronG
OH sagt bei suche nach 'Ungerade': Odd (Funktion)

EDIT:
1. Zu langsam
2. Gefällt mir MOD nicht (wenn oft ausgeführt) wenn schon was basteln, dann isses imho besser wenn man mit shl (shr) arbeitet. (Performanter!?)

Ahh, das wars. Danke :zwinker:

TeronG 10. Mai 2007 14:15

Re: Zwischen Geraden und ungeraden Zahlen unterscheiden
 
Ahh .. nicht verzagen himitsu fragen :)

Die Methode ist natürlich schöner als "mein" shl ... währe ich wohl nie drauf gekommen.
btw: ist deine Lösung auch die Art, wie es Delphi macht!?


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:11 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz