home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / elan / demo / reverse.eln < prev    next >
Text File  |  1987-08-18  |  991b  |  60 lines

  1.  
  2. TEXT PROC reverse (TEXT CONST a):
  3.   IF a = ""
  4.   THEN ""
  5.   ELSE head + tail
  6.   FI.
  7.   
  8.   head:
  9.     reverse (subtext (a, 2)).
  10.   
  11.   tail:
  12.     a SUB 1.
  13. ENDPROC reverse;
  14.  
  15. program:
  16.   give heading;
  17.   REP
  18.     ask a string;
  19.     IF tired
  20.     THEN
  21.       LEAVE program
  22.     ELSE tell if it is a palindrome
  23.     FI
  24.   ENDREP.
  25.  
  26.   give heading:
  27.     put ("Test for P A L I N D R O M E S");
  28.     line (2);
  29.     put ("type 'stop' to stop.");
  30.     line (2).
  31.   
  32.   ask a string:
  33.     TEXT VAR string;
  34.     line;
  35.     put ("? ");
  36.     get (string, 80);
  37.     filter spaces.
  38.   
  39.     filter spaces:
  40.       TEXT VAR copy :: string;
  41.       string := "";
  42.       WHILE copy <> ""
  43.       REP
  44.         TEXT CONST h :: HEAD copy;
  45.         copy := TAIL copy;
  46.         IF h <> " "
  47.         THEN string CAT h
  48.         FI
  49.       ENDREP.
  50.     
  51.   tired:
  52.     string = "stop".
  53.   
  54.   tell if it is a palindrome:
  55.     IF string = reverse (string)
  56.     THEN put ("yes")
  57.     ELSE put ("no")
  58.     FI.
  59.   
  60.