Skip to content

Instantly share code, notes, and snippets.

@sakjur
Last active December 12, 2015 12:18
Show Gist options
  • Select an option

  • Save sakjur/4770753 to your computer and use it in GitHub Desktop.

Select an option

Save sakjur/4770753 to your computer and use it in GitHub Desktop.
Schoolproject.
with Ada.Text_IO, Ada.Integer_Text_IO;
procedure Randomfile is
int : Integer := 0;
function Power(B, P: Integer) return Integer is
-- Function: Returns the power (P) of a number (B)
-- Usage: Power(Integer B, Integer P) returns Output
-- Input: Integer B, Integer P
-- Output: Integer (B^P)
rv : Integer := 1;
begin
for i in 1..P loop
-- Loops between one and P
rv := rv * B;
end loop;
return rv;
end Power;
procedure NullToM is
-- Function: Prints all the numbers between 0 and 1000
-- Usage: Just call it. Pretty worthless function
begin
for i in 0..1000 loop
Ada.Text_IO.Put(Integer'Image(i));
end loop;
end NullToM;
function ConvertSumToCoin(S: Integer) return Integer is
-- Function: Takes digits and returns the most appropiate sum of
-- money in Swedish coins and bills (ie. 1, 5, 10, 20, 50,
-- 100, 500, 1000)
-- Usage: ConvertSum(Integer S)
-- Example Input: ConvertSum(197)
-- Example Output: "1*100SEK 1*50SEK 2*20SEK 1*5SEK 2*1SEK"
Rest : Integer := 0;
function CalculateNumberOf(num, modifier: Integer) return Integer is
-- Function: This function calculates the number of modifier bills
-- in the input number num and prints the result. It then
-- returns the modulus of mod Mod modifier.
-- Usage: CalculateNumberOf(Integer num, Integer modifier)
-- Output: Rest of num Mod modifier or num if num is smaller than
-- modifier
begin
if num >= modifier then
Ada.Text_IO.Put(Integer'Image(num/modifier) & "*" &
Integer'Image(modifier) & "SEK");
return num Mod modifier;
else
return num;
end if;
end CalculateNumberOf;
begin
Rest := S;
Rest := CalculateNumberOf(Rest, 1000); -- There
Rest := CalculateNumberOf(Rest, 500); -- Must
Rest := CalculateNumberOf(Rest, 100); -- Be
Rest := CalculateNumberOf(Rest, 50); -- A
Rest := CalculateNumberOf(Rest, 20); -- Better
Rest := CalculateNumberOf(Rest, 10); -- Way
Rest := CalculateNumberOf(Rest, 5); -- To
Rest := CalculateNumberOf(Rest, 2); -- Do
Rest := CalculateNumberOf(Rest, 1); -- This
return 0;
end ConvertSumToCoin;
begin
NullToM;
Ada.Text_IO.New_Line;
Ada.Text_IO.Put_Line(Integer'Image(Power(2,10)));
Ada.Text_IO.Put("What number do you want to convert? ");
Ada.Integer_Text_IO.Get (int);
Ada.Text_IO.Put(ConvertSumToCoin(int));
end Randomfile;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment