home *** CD-ROM | disk | FTP | other *** search
-
- STATEMENTS
-
- left-hand-value = expr ; simple assignment, map update,
- if ( expr ) stat1 conditional statement - form1
- if ( expr ) stat1 ; conditional statement - form2
- else stat2
- while ( expr ) stat while statement
- for iden <- expr ; stat for statament
- return ; return statement - form1
- return expr; return statement - form2
- iden ( expr-list ); function call
- { stat1 ; ... statn ; } block
- open(iden,"r") ; open read statement
- open(iden,"w") ; open write statement
- close(iden) ; close statement
- readln(v1,...,vn) ; readln statement
- readln(iden,v1,...vn) ; readln file statement
- writeln(v1,...,vn) ; writeln statement
- writeln(iden,v1,...,vn) ; writeln file statement
-
- A statement is either a simple statement or a block (see below),
- which is a sequence of statements delimited by curly brackets.
-
- Assignment Statement
-
- identifier = expression ; expression is evaluated and the
- resulting value is stored in
- identifier. Examples are:
-
- x = {2, 3, 5, 7} ; simple assignment
- m["Joe"] = 30; map update
- p.r = {1->2, 3->4}; struct update
-
- Conditional Statement
-
- The conditional or if-statement may take one of the following
- forms:
-
- if ( expr ) stat1 in both cases, expr is evaluated;
- if it evaluates to true then stat1
- if ( expr ) stat1 ; else stat2 is executed. If it evaluates to
- false, in the first case nothing
- happens; in the second case stat2
- is executed. Examples are:
-
- if (x < 2) y = 0;
- if (n == 0 ) f = 1; else f = n * f;
-
- While statement
-
- while ( expr ) stat expr is evaluated; as long as its
- value is true, stat is executed,
- and expr is reevaluated; when its
- value is false, the following
- statement is executed. Example:
-
- while (n <= 10) n=n+1;
-
- For statement
-
- for identifier <- expr ; stat expr is evaluated and identifier
- is assigned the values of the
- resulting set or sequence; stat
- is executed for each of these
- assignments. Example:
-
- for i <- {1..10}; writeln(i);
-
-
- Return statement
-
- The return statement may take one of the following forms:
-
- return ; the enclosing function is terminated.
-
- return expr ; expr is evaluated and the enclosing
- function is terminated with the value
- of expr as its returned value. Example
-
- return n+1;
-
- I/O statements:
-
- open(string,"r"); Opens a file for reading given by
- string, and returns a file handle.
-
- h = open("data.txt","r");
-
- open(string,"w") ; Opens a file for writing given by
- string, and returns a file handle.
-
- close(identifier) ; Closes the file whose handle is
- given by identifier.
-
- close(h);
-
- writeln(v1,...,vn) ; The scalar values or scalar valued
- variables vi (integer, real, string,
- boolean) are printed on one line
- separated by spaces.
-
- writeln(123,r,"order");
-
- writeln(identifier,v1,...,vn) ; The values v1,...vn are output to
- the file whose handle is given by
- identifier.
-
- writeln(h,123,r,"order");
-
- readln(v1,...,vn) ; The variables v1,...vn (which must be
- global) are assigned the corresponding
- values input at the keyboard.
-
- readln(a,b,c);
-
- readln(identifier,v1,...vn) ; The variables v1,...vn are assigned
- the corresponding values in the file
- whose handle is given by identifier.
- If there are no more values in the file
- to read, the global variable eof has
- the value true, otherwise it has the
- value false.
-
- fun() {readln(h,a,b,c);
- while(!eof) {writeln(a,b,c);
- readln(h,a,b,c);}
- };
-
- Function call
-
- identifier ( expr-list ) ; Each expr in expr-list is evaluated
- and the function represented by
- identifier is called with the
- resulting arguments. If the function
- call is not contained in an expression
- i.e. it appears in a statement
- context, the resulting value is
- discarded.
-
- Block
-
- A sequence of statements may be grouped together to form a block
- by enclosing them within curly brackets:
-
- { stat1 ;
- stat2 ;
- ...
- statn ;
- } Notice that there is no semi-colon
- after the closing bracket. Example:
-
- while (bal>0) {int=bal*r;am=pay-int;bal=bal-am;n=n+1;}
-