RosettaCodeData/Task/Loops-With-multiple-ranges/PureBasic/loops-with-multiple-ranges....

40 lines
747 B
Plaintext

#X = 5 : #Y = -5 : #Z = -2
#ONE = 1 : #THREE = 3 : #SEVEN = 7
Define j.i
Global prod.i = 1, sum.i = 0
Macro ipow(n, e)
Int(Pow(n, e))
EndMacro
Macro ifn(x)
FormatNumber(x,0,".",",")
EndMacro
Macro loop_for(start, stop, step_for=1)
For j = start To stop Step step_for
proc(j)
Next
EndMacro
Procedure proc(j.i)
sum + Abs(j)
If (Abs(prod) < ipow(2 , 27)) And (j<>0)
prod * j
EndIf
EndProcedure
loop_for(-#THREE, ipow(3, 3), #THREE)
loop_for(-#SEVEN, #SEVEN, #X)
loop_for(555, 550 - #Y)
loop_for(22, -28, -#THREE)
loop_for(1927, 1939)
loop_for(#X, #Y, #Z)
loop_for(ipow(11, #X), ipow(11, #X) + 1)
If OpenConsole("Loops/with multiple ranges")
PrintN("sum = " + ifn(sum))
PrintN("prod = " + ifn(prod))
Input()
EndIf