Seite 1 von 1

Test ob Zahl durch 8 teilbar - Modulo?

Verfasst: 10.02.2006 18:55
von Delle
Dachte das geht einfach so, aber anscheinend doch nicht:

Code: Alles auswählen

test = a%8
If test=1
; ja
endif

Verfasst: 10.02.2006 18:56
von MVXA

Code: Alles auswählen

If (a%8) = 0
; ja
endif

Verfasst: 10.02.2006 19:04
von Delle
Ähm ist doch 1, nicht 0... mein obiger Code stimmt, mußte lediglich immer zu a + 1 machen weil mit 0 gestartet...

Verfasst: 10.02.2006 19:14
von MVXA
16 durch 8 rest 0. Bei Modulo bekommst du immer den Rest einer Divison :freak:.
Verstehe jetzt nicht genau was du erreichen möchtest.

Verfasst: 10.02.2006 19:29
von Delle
Halt nur wissen, ob eine Zahl durch 8 teilbar ist. Was dabei rauskommt, is mir egal :)

Verfasst: 10.02.2006 19:38
von MVXA

Code: Alles auswählen

isteilbar = (Not 16%8)
If isteilbar
    Debug "Teilbar!"
Else
    Debug "NICHT Teilbar!"
EndIf
Sieht eleganter aus als n a + 1.... also das (Not 16%8)

Verfasst: 10.02.2006 23:07
von helpy
NOT geht aber erst ab PB 4.0!

Und hier noch 'ne Möglichkeit ohne die Modulo-Funktion. Geht aber nur, weil der Teiler (8) eine Zweier-Potenz ist!

Hier noch eine Möglichkeit (für PB 3.94):

Code: Alles auswählen

	If (Zahl & $07) = 0
		; Durch 8 Teilbar
	EndIf
Ab PB4.0:

Code: Alles auswählen

	If Not (Zahl & $07)
		; Durch 8 Teilbar
	EndIf
Und eine zweite Möglichkeit mit PB4.0

Code: Alles auswählen

	If (i & $07) XOr $03
		; Durch 8 Teilbar
	EndIf
cu, helpy

Verfasst: 13.02.2006 13:49
von Froggerprogger
Noch einen:

Code: Alles auswählen

Procedure IsTeilbar(a.l, b.l) ; true wenn b teilt a gilt
    If a % b = 0
        ProcedureReturn #True
    Else
        ProcedureReturn #False
    EndIf
EndProcedure