65 lines
1.3 KiB
Ada
65 lines
1.3 KiB
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;
|