corrade-nucleus-nucleons
/script-kiddie/002_script_kiddie/script-kiddie/node_modules/ace-builds/demo/kitchen-sink/docs/pascal.pas |
@@ -0,0 +1,48 @@ |
(***************************************************************************** |
* 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. |
|