Loops/With multiple ranges: Difference between revisions

no edit summary
(Added XPL0 example.)
No edit summary
Line 339:
</pre>
 
=={{header|Ada}}==
Ada does not support multiple ranges in a single loop.
{{trans|C++}}
<lang Ada>
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Containers.Vectors;
 
procedure Main is
package int_vector is new Ada.Containers.Vectors
(Index_Type => Natural, Element_Type => Integer);
use int_vector;
 
summing_values : Vector := Empty_Vector;
 
prod : Integer := 1;
sum : Integer := 0;
x : Integer := 5;
y : Integer := -5;
z : Integer := -2;
N : Integer;
begin
N := -3;
while N <= 3**3 loop
summing_values.Append (N);
N := N + 3;
end loop;
 
N := -7;
while N <= 7 loop
summing_values.Append (N);
N := N + x;
end loop;
 
for I in 555 .. 550 - y loop
summing_values.Append (I);
end loop;
 
N := 22;
while N >= -28 loop
summing_values.Append (N);
N := N - 3;
end loop;
 
for I in 1_927 .. 1_939 loop
summing_values.Append (I);
end loop;
 
N := x;
while N >= y loop
summing_values.Append (N);
N := N + z;
end loop;
 
for I in 11**x .. 11**x + 1 loop
summing_values.Append (I);
end loop;
 
for value of summing_values loop
sum := sum + abs (value);
if abs (prod) < 2**27 and then value /= 0 then
prod := prod * value;
end if;
end loop;
 
Put_Line ("sum = " & sum'Image);
Put_Line ("prod = " & prod'Image);
 
end Main;
</lang>
{{out}}
<pre>
sum = 348173
prod = -793618560
</pre>
=={{header|ALGOL 60}}==
{{works with|MARST}}
82

edits