home *** CD-ROM | disk | FTP | other *** search
-
- (***********************************************************
- *
- * Donated by Ray Penley, June 1980
- *
- ***********************************************************)
-
-
- PROGRAM REVERSE;
- {----------------------------------------------}
- { Modified for Pascal/Z by Raymond E. Penley }
- {----------------------------------------------}
-
- TYPE
- Links = ^Nodes;
-
- Nodes = record
- Character :CHAR;
- Next :Links
- end;
-
- VAR
- First, This :Links;
- ix :Integer;
- Ch :CHAR;
-
- Procedure READ_LIST;
- CONST prompt = '>>';
- begin
- First := NIL; { Make the list of characters empty }
- Writeln;
- Write(prompt);
- READ(Ch);
- While Ch <> '.' Do
- begin
- NEW(This); { Allocate a new space }
- This^.Character := Ch; { Insert Ch at the front of the list }
- This^.Next := First; { link into the list }
- First := This;
- READ(Ch);
- end{while}
- end{of Read_List};
-
- Procedure SHOW_LIST;
- (* Write all characters in the list *)
- VAR count : integer;
- begin
- Writeln;
- count := 0;
- This := First;
- While This <> NIL DO
- With This^ do begin
- Write(Character);
- count := count + 1;
- This := Next { Advance down the chain }
- end;
- Writeln;
- Writeln('You entered ',count:3,' characters.');
- end{of Show_list};
-
- begin
- for ix:=1 to 24 do writeln;
- Writeln('Enter a line of characters after the prompt.');
- Writeln('Enter a "." at the end.');
- While true do {infinite loop}
- begin
- READ_LIST;
- SHOW_LIST;
- end{while}
- end.
-