-------------------------------------------------------- -- How long to be a millionaire? -- adapted from Skansholm, section 2.4.8, page 59 -------------------------------------------------------- with TEXT_IO; use TEXT_IO; -- specify packages procedure rich is -- declare integer and float I/O libraries package int_io is new TEXT_IO.INTEGER_IO( INTEGER ); package float_io is new TEXT_IO.FLOAT_IO( FLOAT ); use int_io, float_io; -- constants and variables required number_of_days : integer := 1; days_wage : float := 0.01; total_earnings : float := 0.01; desired_earnings : constant float := 1000000.0; begin -- rich -- How many days needed, doubling income each day? while total_earnings < desired_earnings loop number_of_days := number_of_days + 1; days_wage := days_wage * 2.0; total_earnings := total_earnings + days_wage; end loop; -- tell us the good news! put ("You will be a millionaire in "); put (number_of_days, width=>1); put_line ("days."); end rich;