[Back to MISC SWAG index]  [Back to Main SWAG index]  [Original]

{
>I need to do two programs and I am unsure of what to do with them.  If
>anyone could help me with the code or the steps necessary to write the
>programs it would be greatly appreciated.  Thank you.  Here's what I
>need to do:

>First program: A program that reads a char. from "A" to "Z" as input
>to produce output in the shape of a pyramid composed of the letters up
>to and including the letter that is input.  Example:
>                                            A
>                                         ABA
>                                      ABCBA
>                                    ABCDCBA

Here is one way to do the pyramid of characters. }

Program Char_Pyramid;
{ <clifpenn@airmail.net   4/16/96   12:30 AM   Borland Turbo v 6.0
  From a single character input in ['A'..'Z'] a pyramid of chars is
  formed as follows:
                       A                             A
  ch1 := 'C' gives    ABA      ch1 := 'D' gives     ABA      etc.
                     ABCBA                         ABCBA
                                                  ABCDCBA   }
USES CRT;
Label Finis;

CONST
Esc = Chr(27);

VAR
ch1, ch2:Char;
s, s1, s2:String;
fld:Integer;

BEGIN
     Repeat
           ClrScr;
           Write('Input a letter, (Esc to quit): ');
           fld := 40;
           s1 := '';
           s2 := '';

           Repeat
                 ch1 := UpCase(ReadKey);
           Until ch1 in [Esc, 'A'..'Z'];

           If ch1 = Esc then Goto Finis;

           Begin
                Writeln(ch1);
                For ch2 := 'A' to  ch1 Do
                Begin
                     s1 := s1 + ch2 ;  (* forward string segment *)
                     s := s1 + s2 ;    (* forward + reversed chars *)
                     Writeln(s:fld);   (* centered on screen *)
                     Inc(fld);
                     s2 := ch2 + s2;   (* next reversed str segment *)
                End;
           End;
           Write('Press enter to continue');
           Readln;
Finis:
     Until ch1 = Esc;
END.




[Back to MISC SWAG index]  [Back to Main SWAG index]  [Original]