AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[Erledigt]Zahl Gerade?

Ein Thema von Maximus · begonnen am 10. Feb 2005 · letzter Beitrag vom 10. Feb 2005
Antwort Antwort
Maximus

Registriert seit: 26. Okt 2003
169 Beiträge
 
#1

[Erledigt]Zahl Gerade?

  Alt 10. Feb 2005, 10:19
Hallo,

Ich brauch in meinem Programm eine Funktion die mir sagt ob die zu überprüfende Zahl (zwischen 1 und 16) gerade oder nicht ist. Also hab ich das so gelöst:

Delphi-Quellcode:
function Gerade(Zahl: Integer) : Boolean;
begin
 Result := true;
 if Zahl mod 2 = 5 then Result := false;
end;
Doch leider gab er mir hier immer True zurück. Jedoch funktionier folgender Code:
Delphi-Quellcode:
function Gerade(Zahl: Integer) : Boolean;
begin
 Result := true;
 if Zahl mod 2 <> 0 then Result := false;
end;
Woran liegt das?

Ich dachte immer eine Ganze ungerade Zahl durch zwei ergibt x,5 und da mod ja das hinter dem Komma nur gibt müsst doch die obere Funktion auch funktionier, oder hab ich in der Schule nicht aufgepasst?

//Edit: Stanlay Hanks und der Asche Vogel haben mir es gerade freundlicherweise im Chat erklärt Danke!

MFG
Maximus
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Zahl Gerade?

  Alt 10. Feb 2005, 10:23
Eine Zahl modulo 2 ergibt immer eine Zahl kleiner 2, also nie 5
Benjamin
  Mit Zitat antworten Zitat
Benutzerbild von Manne
Manne

Registriert seit: 8. Okt 2003
Ort: Hirrlingen
82 Beiträge
 
Delphi 7 Personal
 
#3

Re: Zahl Gerade?

  Alt 10. Feb 2005, 10:24
Mit
odd bekommst du heraus, ob die Zahl ungerade ist.
So 6 wie wir 5 gibt es keine 4 andere, denn wir 3 sind die 2 1sten
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Zahl Gerade?

  Alt 10. Feb 2005, 10:25
if Zahl mod 2 = 1 then Result := false; So müsste es funktionieren... (Nich getestet -g-)

Edit: 0.5 is quatsch... Mod rechnet ja den Rest-Wert aus
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
Torpedo

Registriert seit: 21. Dez 2003
410 Beiträge
 
#5

Re: Zahl Gerade?

  Alt 10. Feb 2005, 10:26
Mod gibt nicht die Ziffern hinter dem Komma zurück, sondern den Rest.
Beispiel:
13 div 2 = 6
6*2 = 12 also ist der Rest 1 (13-12)
  Mit Zitat antworten Zitat
czapie

Registriert seit: 17. Nov 2002
Ort: Berlin
384 Beiträge
 
Delphi 5 Standard
 
#6

Re: Zahl Gerade?

  Alt 10. Feb 2005, 10:27
na überprüf eben erst ob die Zahl im Rahmen liegt also größergleich 1 und kleinergleich 16
und dann
Delphi-Quellcode:
...
if Zahl mod 2 = 0 then return true; //Zahl ist gerade
...
Oder hab ich dich falsch verstanden?
Was man zu verstehen gelernt hat, fürchtet man nicht mehr.
(Marie Curie)
http://www.cafes-in-berlin.com
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#7

Re: Zahl Gerade?

  Alt 10. Feb 2005, 10:27
mod gibt dir nur den Rest bei der Division zurück, also nix mit Kommazahlen.

Ungerade := Zahl mod 2 = 1; Oder auch Ungerade := Frac(Zahl div 2) = 0.5; Der schnellste (und einfachste Weg) geht aber über Odd...

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Maximus

Registriert seit: 26. Okt 2003
169 Beiträge
 
#8

Re: Zahl Gerade?

  Alt 10. Feb 2005, 10:29
Zitat von Torpedo:
Mod gibt nicht die Ziffern hinter dem Komma zurück, sondern den Rest.
Genau das wars ... ich habe bisher gedacht er gibt mir die Ziffern hinterm Komma zurück ...

Danke an alle

MFG
Maximus
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Zahl Gerade?

  Alt 10. Feb 2005, 10:29
Vergleich mal das in Ruhe mit deiner Funktion..

Delphi-Quellcode:
function Gerade(Zahl: Integer) : Boolean;
begin
 result := Zahl mod 2 = 0;
end;
Edit: ..war zu langsam
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz