![]() |
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:
Wie heißt die Funktion?
1 = ungerade
2 = gerade 3 = ungerade ... IstGerade(2) = true IstGerade(1) = false *alzheimer hab* :coder2: |
Re: Zwischen Geraden und ungeraden Zahlen unterscheiden
Hi,
Ein Tipp: Gerade Zahlen lassen sich ohne Rest durch 2 teilen ;) Gruß Neutral General |
Re: Zwischen Geraden und ungeraden Zahlen unterscheiden
Zitat:
|
Re: Zwischen Geraden und ungeraden Zahlen unterscheiden
Ja die gibts:
Delphi-Quellcode:
;)
function BauDirDochSelbstEine(Zahl: Integer): Boolean;
begin Result := Zahl mod 2 = 0; end; |
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 |
Re: Zwischen Geraden und ungeraden Zahlen unterscheiden
Odd() ist originales Wirth-Pascal.
|
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 :( |
Re: Zwischen Geraden und ungeraden Zahlen unterscheiden
![]() Zitat:
Delphi-Quellcode:
i and 1 : niederwertiges Bit auswählen
Function Odd(i: Integer): Boolean;
Begin Result := i and 1 <> 0; End; ... <> 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. |
Re: Zwischen Geraden und ungeraden Zahlen unterscheiden
Zitat:
|
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. |
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