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 |