Gerade Zahlen

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

Jonas2909

Betreff: Gerade Zahlen

BeitragMi, März 24, 2010 14:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, ich habe leider mit der SUFU ncihts gefunden. Ich suche eine Möglichkeit herrauszufinden ob eine Zahl gerade oder ungerade ist!
Gibt es einen Weg?
Die folgende Sigantur ist für Zuschauer unter 18Jahren nicht geeinget

BtbN

BeitragMi, März 24, 2010 14:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Prüfe, ob der Modulo mit 2 gleich 0 ist.

BladeRunner

Moderator

BeitragMi, März 24, 2010 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
if (zahl+1)/2 = (zahl/2) then print "Grade Zahl!"


EDIT: alternativ: if zahl and $1 = 1 then print "ungrade"
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
  • Zuletzt bearbeitet von BladeRunner am Mi, März 24, 2010 14:45, insgesamt einmal bearbeitet
 

Jonas2909

BeitragMi, März 24, 2010 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Ehm, was ist ein modulo?
Die folgende Sigantur ist für Zuschauer unter 18Jahren nicht geeinget

BladeRunner

Moderator

BeitragMi, März 24, 2010 14:46
Antworten mit Zitat
Benutzer-Profile anzeigen
print zahl mod 2
Wink das ist modulo - der Divisionsrest.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Jonas2909

BeitragMi, März 24, 2010 14:46
Antworten mit Zitat
Benutzer-Profile anzeigen
BladeRunner hat Folgendes geschrieben:
if (zahl+1)/2 = (zahl/2) then print "Grade Zahl!"


EDIT: alternativ: if zahl and $1 = 1 then print "ungrade"


Vielen Dank, und Modula habe ich gegoogelt(mache ich nächstes Mal vorher:))

Danke
Die folgende Sigantur ist für Zuschauer unter 18Jahren nicht geeinget
 

Jonas2909

BeitragMi, März 24, 2010 14:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe jetzt folgenden Code:
Zitat:
If (Jahr$+1)/2 = (Jahr$/2) Then Print "Gerades Jahr!"


Jahr$ ist eine Input variable!

Leider zeigt er mir immer einen Fehler an, egal ob mit oder ohne endif
Die folgende Sigantur ist für Zuschauer unter 18Jahren nicht geeinget

BladeRunner

Moderator

BeitragMi, März 24, 2010 14:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst deinen String(Zeichenkette) erst zu einem Integer(Zahl) umwandeln (das nennt man auch casten):

zahl = int(deinezahl$)

Nebenbei:
Gib immer mit an welcher Fehler ausgegeben wird, wir wollen dein Problem ja nicht raten.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Jonas2909

BeitragMi, März 24, 2010 15:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, mache ich nächstes mal Wink


Wie kann ich feststellen ob die zahl durch 100 teilbar ist?
Die folgende Sigantur ist für Zuschauer unter 18Jahren nicht geeinget

BladeRunner

Moderator

BeitragMi, März 24, 2010 15:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Mod hilft Dir auch da weiter: Anstatt Modulo 2 brauchst du da modulo 100.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Jonas2909

BeitragMi, März 24, 2010 15:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Also: Zitat:
If (zahl+1)/100 = (zahl/100)
?

Danke schonmal für deine Hilfe
Die folgende Sigantur ist für Zuschauer unter 18Jahren nicht geeinget

BladeRunner

Moderator

BeitragMi, März 24, 2010 15:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, das geht da nicht mehr, das war wirklich nur für grade und ungrade zu gebrauchen.
Nimm mod
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Snade

BeitragMi, März 24, 2010 16:55
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
Function div100(zahl)
If 100 Mod zahl = 0 Then
Return 1
Else
Return 0
EndIf
End Function



lg. Snade Wink

Thunder

BeitragMi, März 24, 2010 17:00
Antworten mit Zitat
Benutzer-Profile anzeigen
@Snade:
Deine Funktion ist falsch herum: "zahl mod 100" muss es heißen.

BlitzBasic: [AUSKLAPPEN]
Function teilt(zahl1,zahl2)
Return (zahl1 Mod zahl2) = 0
End Function


Liefert 1, wenn zahl1 von zahl2 geteilt wird und 0, wenn das nicht der Fall ist.


mfg Thunder
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit

Snade

BeitragMi, März 24, 2010 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Vieleicht solltest du erstmal meine Funktion testen bervor du sagst das sie falsch ist, wenn ich es nähmlich tausche dann würde meine Funktion überprüfen ob 100 durch meine Zahl teilbar ist und nicht die Zahl durch 100 Wink

lg. Snade
 

Lion

BeitragMi, März 24, 2010 17:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Eh snade er hat recht, du hast das wirklich vertauscht.
Denn laut deiner function ist 200 nicht mit 100 teilbar.
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb
AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x

Snade

BeitragMi, März 24, 2010 17:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Und warum kommt bei mir dann das richtige Ergbenis raus ?

Thunder

BeitragMi, März 24, 2010 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Nach deiner Funktion ist sogar 20 durch 100 teilbar, weil (100 mod 20) = 0, aber (20 mod 100) = 20
Du bist der, der prüft ob 100 durch x teilbar ist.


mfg Thunder
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit
 

Jonas2909

BeitragMi, März 24, 2010 17:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen dank euch allen!

Habe es gelöst, und es klappt(soweit)!

Dank

MFG
Die folgende Sigantur ist für Zuschauer unter 18Jahren nicht geeinget

Snade

BeitragMi, März 24, 2010 17:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Mich würde jetz trozdem nochmal interessieren was du meinst Thunder
user posted image

Geht doch alles. 20 ist nicht durch 100 teilbar also False.

lg. Snade

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group