Pascal Lecture notes – Adams

 

It’s useful to know how to comment in a language

(*                          *)    shows the delimiters for Pascal comments

{                              }         

 

Pascal is NOT case sensitive

Pascal  only guarantees identifiers are unique if they are different from all other identifiers in the first 8 characters

Pascal has both reserved words (35 or 36) and predefined terms

 

INPUT statement

READ (X);    (* is equivalent to saying *)  READ (input, X);

READLN (X)  (* is equivalent to saying *)  READLN (input, X);

READ (file, X)  (* means read from the file known as file *)

 

OUTPUT statement

WRITE  (X);  (* is equivalent to saying *)  WRITE (output, X);

WRITELN (X);  (* is equivalent to saying *) WRITELN (output, X);

NOTE:  you will need to distinguish between the internal and the external file names.  The one used in the READ, READLN, WRITE, and WRITELN statements is the internal name not the diskfile name.

 

ITERATION statement

FOR loop is a counted loop.  It executes a fixed number of times

   FOR loopControlVariable  :=  intialValue TO endingValue DO

         SingleStatement;

 

   FOR loopControlVariable  :=  intialValue TO endingValue DO

       BEGIN         MultipleStatements;

       END;

 

FOR loopControlVariable := initialValue DOWNTO endingValue DO

         SingleStatement;

WHILE loop is executes until a condition is met.  It will not be executed at all if the condition is not true on entry to the loop.  (Pre-test loop)

    WHILE (true)  DO

        Do this one thing;

 

    WHILE (true) DO

      BEGIN

 

      END;   

(* the begin end pair of reserved words makes a group of statements equivalent syntactically to a single statement *)

 

 

REPEAT  UNTIL loop  executes until a condition is met. It always executes at least once because it’s a post test loop.

 

 

ASSIGNMENT statement

x:=y;

 

NOTE:  in Pascal, the semi-colon is a statement separator not a statement terminator.

 

SELECTION statement

IF (condition) THEN 

     singleThingToDo;

 

IF (condition) THEN

   BEGIN

      multipleThingsToDo

  END;

 

IF statements can be nested.

  

IF (condition) THEN

   singleThingToDo  (* NEVER EVER A SEMICOLON BEFORE AN ELSE *)

ELSE

   singleThingToDo;

CASE is a multi-alternative selection statement

 

CASE identifier OF

Value :  action;   (* action can be single or multiple statements  *)

Value2 : action2;

Value3..Value5 : action3;

Value4, value7, value12 : action4;

END;  (* of case statement *)