Figure 24.
FORTRAN_Mentality_Solution.
----------------------------------------------------
-- This is the wrong way to solve the problem.
with SCROLL_TERMINAL;
with FORM_TERMINAL; use FORM_TERMINAL;
procedure FORTRAN_Mentality_Solution is
NAME : string(1..30);
ADDRESS : string(1..40);
CITY_STATE_ZIP : string(1..40);
DOESNT_MATTER : boolean;
HELP_REQUEST : integer;
CURSOR_POSITION : Field_names;
begin
Read("ADDRESS.DAT");
CURSOR_POSITION := "Name field ";
<< ASK_NAME_AND_ADDRESS >>
Update(CURSOR_AT => CURSOR_POSITION,
NEXT => DOESNT_MATTER,
STATUS => HELP_REQUEST);
if HELP_REQUEST = 0 then
null; -- no help needed
elsif HELP_REQUEST = 1 then
SCROLL_TERMINAL.new_line(10);
SCROLL_TERMINAL.put_line
("Don't you even know your own name?");
SCROLL_TERMINAL.Wait_For_User;
CURSOR_POSITION := "Name field ";
goto ASK_NAME_AND_ADDRESS;
elsif HELP_REQUEST = 2 then
SCROLL_TERMINAL.new_line(10);
SCROLL_TERMINAL.put_line
("What is you street or P.O. Box?");
SCROLL_TERMINAL.Wait_For_User;
CURSOR_POSITION := "Address field ";
goto ASK_NAME_AND_ADDRESS;
elsif HELP_REQUEST = 3 then
SCROLL_TERMINAL.new_line(10);
SCROLL_TERMINAL.put_line
("Where do you live?");
SCROLL_TERMINAL.Wait_For_User;
CURSOR_POSITION := "City field ";
goto ASK_NAME_AND_ADDRESS;
end if;
get("Name field ", NAME);
get("Address field ", ADDRESS);
get("City field ", CITY_STATE_ZIP);
SCROLL_TERMINAL.new_line(10);
SCROLL_TERMINAL.put_line("NAME = " & NAME);
SCROLL_TERMINAL.put_line("ADDRESS = " & ADDRESS);
SCROLL_TERMINAL.put_line("CITY = " & CITY_STATE_ZIP);
end FORTRAN_Mentality_Solution;