RosettaCodeData/Task/Loops-With-multiple-ranges/AWK/loops-with-multiple-ranges.awk

29 lines
710 B
Awk

# syntax: GAWK -f LOOPS_WITH_MULTIPLE_RANGES.AWK
BEGIN {
prod = 1
sum = 0
x = 5
y = -5
z = -2
one = 1
three = 3
seven = 7
for (j=-three; j<=(3^3); j+=three) { main(j) }
for (j=-seven; j<=seven; j+=x) { main(j) }
for (j=555; j<=550-y; j++) { main(j) }
for (j=22; j>=-28; j+=-three) { main(j) }
for (j=1927; j<=1939; j++) { main(j) }
for (j=x; j>=y; j+=z) { main(j) }
for (j=(11^x); j<=(11^x)+1; j++) { main(j) }
printf("sum = %d\n",sum)
printf("prod = %d\n",prod)
exit(0)
}
function main(x) {
sum += abs(x)
if (abs(prod) < (2^27) && x != 0) {
prod *= x
}
}
function abs(x) { if (x >= 0) { return x } else { return -x } }