քամին տարածել էր ադոբի ելատեքստը, ու ես ուզեցի մեկնաբանել, ինչպէս ա տարբերուում ադոբի ու բորլանդի պասկալի ֆորմատինգի ստանդարտը։

#պասկալ #էկրանահան #կոդ #ծրագրաւորում #մշակոյթ

ստեղ էլ փակցնեմ՝

ադոբի՝

PROCEDURE AddCode (node: PNode; code: INTEGER; VAR word: Str255);

VAR
branch: INTEGER;

BEGIN

IF LENGTH (word) = 0 THEN
BEGIN

IF node^.leaf OR (node^.branch [0] <> NIL) OR
(node^.branch [1] <> NIL) THEN
BEGIN
WRITELN ('? Conflict for code ', code:1);
EXIT (PROGRAM)
END;

node^.leaf := TRUE;
node^.code := code

END

ELSE
BEGIN

IF word [1] = '0' THEN
branch := 0
ELSE IF word [1] = '1' THEN
branch := 1
ELSE
BEGIN
WRITELN ('? Invalid word for code ', code:1);
EXIT (PROGRAM)
END;

DELETE (word, 1, 1);

IF node^.branch [branch] = NIL THEN
BEGIN

NEW (node^.branch [branch]);

node^.branch [branch]^.leaf := FALSE;
node^.branch [branch]^.branch [0] := NIL;
node^.branch [branch]^.branch [1] := NIL

END;

AddCode (node^.branch [branch], code, word)

END

END;

բորլանդի՝

procedure AddCode(node: PNode; code: INTEGER; var word: Str255);
var branch: integer;

begin
if length(word) = 0 then
begin
if node^.leaf or
(node^.branch[0] <> nil) or
(node^.branch[1] <> nil) then
begin
WriteLn('? Conflict for code ', code:1);
Halt //ստեղ նաեւ փոխել եմ Exit ֆունկցիան
end;
node^.leaf := true;
node^.code := code
end
else
begin
if word[1] = '0' then
branch := 0
else
if word[1] = '1' then
branch := 1
else
begin
WriteLn('? Invalid word for code ', code:1);
Halt
end;
delete(word, 1, 1);
if node^.branch[branch] = nil then
begin
new (node^.branch[branch]);
node^.branch[branch]^.leaf := false;
node^.branch[branch]^.branch[0] := nil;
node^.branch[branch]^.branch[1] := nil
end;
AddCode (node^.branch [branch], code, word)
end
end;

բնօրինակ սփիւռքում(եւ մեկնաբանութիւննե՞ր)