update
Former-commit-id: bdede6ed1b6f578f2ef046c338caf02d0b29d453 [formerly 7187de361b53e9c8ec121df379b762f2db736ea2] Former-commit-id: 447d58460fbbfd05ffe08428a1288e392637561d
This commit is contained in:
48
_embed/public/ace/demo/kitchen-sink/docs/pascal.pas
Normal file
48
_embed/public/ace/demo/kitchen-sink/docs/pascal.pas
Normal file
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user