| PROBLEM : | READ IN THREE NUMBERS AND PRINT THEM OUT IN ASCENDING ORDER. |
| INPUT : | THREE INTEGER NUMBERS |
| OUTPUT : | THREE INTEGER NUMBERS IN ASCENDING ORDER |
| GET NUMBERS ORDER NUMBERS PRINT NUMBERS |
| GET NUMBERS | |||
| READ( FIRST, SECOND, THIRD ) | |||
| PRINT NUMBERS | |||
| WRITELN( FIRST, SECOND, THIRD ) | |||
| ORDER NUMBERS | |||
| IF FIRST > SECOND | |||
| THEN EXCHANGE FIRST & SECOND | |||
| IF FIRST > THIRD | |||
| THEN EXCHANGE FIRST & THIRD | |||
| IF SECOND > THIRD | |||
| THEN EXCHANGE SECOND & THIRD | |||
| EXCHANGE FIRST & SECOND | ||
| PUT FIRST IN A TEMPORARY PLACE PUT SECOND INTO FIRST PUT TEMPORARY PLACE INTO SECOND |
||
| EXCHANGE FIRST & THIRD | ||
| PUT FIRST IN A TEMPORARY PLACE PUT THIRD INTO FIRST PUT TEMPORARY PLACE INTO THIRD |
||
| EXCHANGE SECOND & THIRD | ||
| PUT SECOND IN A TEMPORARY PLACE PUT THIRD INTO FIRST PUT TEMPORARY PLACE INTO THIRD |
||
PROGRAM ORDER(INPUT,OUTPUT);
VAR
FIRST, SECOND, THIRD : INTEGER;
PROCEDURE EXCHANGE(VAR ONE, TWO : INTEGERE);
VAR
TEMP : INTEGER;
BEGIN
TEMP := 0NE;
ONE := TWO;
TWO := TEMP;
END;
BEGIN
READ(FIRST, SECOND, THIRD);
IF FIRST > SECOND THEN EXCHANGE(FIRST,SECOND);
IF FIRST > THIRD THEN EXCHANGE(FIRST,THIRD);
IF SECOND > THIRD THEN EXCHANGE(SECOND,THIRD);
WRITELN(FIRST,SECOND,THIRD)
END.
|
| IF THE VAR IS LEFT OFF, THE ARGUMENTS ARE PASSED BY VALUE. | ||||
| WOULD THIS CHANGE THE PREVIOUS PROGRAM? |
| INPUT | PARAMETERS : | VALUE | PARAMETERS | |
| OUTPUT | PARAMETERS : | VAR | PARAMETERS | |
| INPUT/ OUTPUT | PARAMETERS : | VAR | PARAMETERS |