Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
// ПУЗЫРЬКОВАЯ СОРТИРОВКА
FREEST
VAR N
SET N 10
VAR[] A N
CALL STARTRAND // RANDOMIZE LIKE
VAR VAL
VAR I
SET I 0
LABEL IAGAIN
ABOVEEQU I N
IFGOTO IEND
PAR 20
CALL RAND
RETVAL VAL
SUB VAL 10 // VAL = RANDOM[-10..10]
SET[] A I VAL // A[I] = VAL
WRITE "A[" WRITE I WRITE "] = " WRITELN VAL
ADD I 1
GOTO IAGAIN
LABEL IEND
VAR J
VAR N-1
SET N-1 N
SUB N-1 1
VAR A[J]
VAR A[J+1]
VAR J+1
VAR K
SET K 0
LABEL KAGAIN
ABOVEEQU K N
IFGOTO KEND
SET J 0
LABEL JAGAIN
ABOVEEQU J N-1
IFGOTO JEND
GET[] A J
RETVAL A[J]
SET J+1 J
ADD J+1 1
GET[] A J+1
RETVAL A[J+1]
LESSEQU A[J] A[J+1]
IFGOTO JINC
SET[] A J A[J+1] // SWAP(A[J], A[J+1])
SET[] A J+1 A[J]
LABEL JINC
ADD J 1
GOTO JAGAIN
LABEL JEND
ADD K 1
GOTO KAGAIN
LABEL KEND
NEXTLN
VAR M
SET M 0
LABEL MAGAIN
ABOVEEQU M N
IFGOTO MEND
GET[] A M
RETVAL VAL
WRITE "A[" WRITE M WRITE "] = " WRITELN VAL
ADD M 1
GOTO MAGAIN
LABEL MEND

Program Triangle;
{ C8PASCAL example - Realtime rendering Serpinski triangle }
const
pixel : Byte = #10000000; {8x1 sprite: one pixel}
var
x, y : byte;
xminusone : byte; {x-1 constant}
oddeven : array[0..63];
gasket : array[0..63];
begin
SetHigh; {Set SCHIP mode 128x64}
gasket[0]:=1; {set initial value}
DrawSprite(63,0,1,^pixel); {draw fist pixel}
for y:=1 to 63 do begin {from Y := 1 to 63 do}
for x:=1 to y+1 do begin {form X := 1 to Y+1 do}
xminusone := x-1; {calculate X-1 constant}
oddeven[x]:= gasket[xminusone] xor gasket[x+1];
gasket[xminusone] := oddeven[xminusone];
if oddeven[x]=1 then {if 1 then draw pixel}
begin
DrawSprite(x+63,y,1,^pixel); {draw in right side}
DrawSprite(63-x,y,1,^pixel); {mirror to the ledt side}
end;
end;
end;
end.
Приходилось ли вам писать парсеры?