With Ada.Text_IO, Ada.Float_Text_IO, Ada.Integer_Text_IO;
Use Ada.Text_IO, Ada.Float_Text_IO, Ada.Integer_Text_IO;
procedure Momstabell is
Fpris, Spris, Steg, Moms : Float;
PrisuMoms, PrismMoms : Float;
N : Integer := 0;
M : Float := 0.0;
MomsUt : Float;
begin
loop
Put("Första Pris: ");
Get(Fpris);
exit when Fpris > 0.0;
end loop;
loop
Put("Sista Pris: ");
Get(Spris);
exit when Spris >= Fpris;
end loop;
loop
Put("Steg: ");
Get(Steg);
exit when Steg > 0.0;
end loop;
loop
Put("Momsprocent: ");
Get(Moms);
exit when Moms > 0.0;
end loop;
Moms := Moms/100.0;
New_Line;
New_Line;
Put_Line("==== Momstabell =====");
Put("Pris utan moms Moms Pris med moms");
New_Line;
M := Spris - Fpris;
M := M / Steg;
N := Integer(Float 'Rounding(M));
for I in 1..N loop
PrisuMoms := Fpris;
Prisumoms := PrisuMoms + N * Steg;
exit when PrisuMoms > Spris;
MomsUt := PrisuMoms * Moms;
PrismMoms := PrisuMoms + Moms;
N := N + 1.0;
Put(PrisuMoms, Fore => 7, Aft => 2, Exp => 0);
Put(MomsUt, Fore => 9, Aft => 2, Exp => 0);
Put(PrismMoms, Fore => 12, Aft => 2, Exp => 0);
New_Line;
end loop;
end Momstabell;