::
x72_t1.ada
with Class_window;
use Class_window;
package Pack_globals is
p_result : P_Window;
end Pack_globals;
with Simple_io, Class_window, Class_dialog, Pack_globals;
use Simple_io, Class_window, Class_dialog, Pack_globals;
function user_input( cb_mes:in String ) return String is
miles : Float; -- Miles input by user
last : Positive; --
str_kms: String( 1 .. 10 ); -- As a string in Kms
str_mls: String( 1 .. 10 ); -- As a string in Miles
begin
begin
get( cb_mes & ".", miles, last );
put( str_kms, miles * 1.609_344, aft=>2, exp=>0 );
put( str_mls, miles, aft=>2, exp=>0 );
put( p_result.all, "Distance in Miles = " );
put( p_result.all, str_mls ); new_line( p_result.all );
put( p_result.all, "Distance in Kms = " );
put( p_result.all, str_kms ); new_line( p_result.all );
exception
when Data_Error =>
put( p_result.all, " Not a valid number" );
new_line( p_result.all );
when others =>
put( p_result.all, " [Calculation error]" );
new_line( p_result.all );
end;
return "";
end user_input;
with Class_input_manager, Class_window,
Class_dialog, Pack_globals, user_input;
use Class_input_manager, Class_window,
Class_dialog, Pack_globals;
procedure main is
begin
window_prologue; -- Setup window system
declare
result : aliased Window; -- Result window
input : Dialog; -- Input Window
title : Window; -- title Window
begin
framework( title, 20, 1, 36, 5 ); -- Title Window
framework( result, 30, 10, 36, 5 ); -- Result Window
position( title, 8, 2 );
put( title, "Miles to kilometres" );
framework( input, 5, 10, 22, -- Input Window
"Miles", user_input'Access );
p_result := result'Unchecked_Access;
window_start; -- Start the user interaction
end;
window_epilogue; -- Close window system
end main;
© M.A.Smith University of Brighton.
Created September 1995 last modified May 1997.
Comments, suggestions, etc.
M.A.Smith@brighton.ac.uk
*
[Home page]