| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- (*****************************************************************************
- * A simple bubble sort program. Reads integers, one per line, and prints *
- * them out in sorted order. Blows up if there are more than 49. *
- *****************************************************************************)
- PROGRAM Sort(input, output);
- CONST
- (* Max array size. *)
- MaxElts = 50;
- TYPE
- (* Type of the element array. *)
- IntArrType = ARRAY [1..MaxElts] OF Integer;
- VAR
- (* Indexes, exchange temp, array size. *)
- i, j, tmp, size: integer;
- (* Array of ints *)
- arr: IntArrType;
- (* Read in the integers. *)
- PROCEDURE ReadArr(VAR size: Integer; VAR a: IntArrType);
- BEGIN
- size := 1;
- WHILE NOT eof DO BEGIN
- readln(a[size]);
- IF NOT eof THEN
- size := size + 1
- END
- END;
- BEGIN
- (* Read *)
- ReadArr(size, arr);
- (* Sort using bubble sort. *)
- FOR i := size - 1 DOWNTO 1 DO
- FOR j := 1 TO i DO
- IF arr[j] > arr[j + 1] THEN BEGIN
- tmp := arr[j];
- arr[j] := arr[j + 1];
- arr[j + 1] := tmp;
- END;
- (* Print. *)
- FOR i := 1 TO size DO
- writeln(arr[i])
- END.
-
|