Last active
December 12, 2015 12:18
-
-
Save sakjur/4770753 to your computer and use it in GitHub Desktop.
Schoolproject.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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