рддреНрд╡рд░рд┐рдд рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреБрд░рд╛рдирд╛ рд░рд╣рд╕реНрдп: рдПрдирд┐рдореЗрдЯреЗрдб рд╕реЛрд░реНрд╕ рдХреЛрдб

рд╢реБрдХреНрд░рд╡рд╛рд░ рдХреА рд╢рд╛рдо рдЕрдХреНрд╕рд░ рдпрд╛рджреЛрдВ рдХреА рд╢рд╛рдо рдмрди рдЬрд╛рддреА рд╣реИ, рдФрд░ рди рдХреЗрд╡рд▓ рдкрд┐рдЫрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдмрд▓реНрдХрд┐ рдкрд╣рд▓реЗ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреАред рдЗрд╕ рд╢реБрдХреНрд░рд╡рд╛рд░ рдХреЛ рдореБрдЭреЗ рдПрдордПрд╕ рдбреЙрд╕ (рд╕рд╛рде рд╣реА рдореИрдХ рдУрдПрд╕, рдпреВрдирд┐рдХреНрд╕ рдФрд░ рд╡реИрдХреНрд╕ / рд╡реАрдПрдордПрд╕) рдХреЗ рд▓рд┐рдП рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рд░реНрдпрдХреНрд░рдо рдпрд╛рдж рдЖрдпрд╛ - рдкрд╛рд╕реНрдХрд▓ рджреБрднрд╛рд╖рд┐рдпрд╛ рдФрд░ рдЖрдИрдбреАрдИ рдбреЙред рдкрд╛рд╕реНрдХрд▓ред рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдФрд░ рд╕рдореАрдХреНрд╖рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд┐рд░реНрдорд╛рддрд╛ рд╡рд┐рдЬрд╝рд┐рдмрд▓ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ (рдпреВрдПрд╕рдП) рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдФрд░ рдореИрдВ рдЦреБрдж рдХреЛ рдХреЗрд╡рд▓ рдЙрди рд╡рд┐рдЪрд╛рд░реЛрдВ рддрдХ рд╣реА рд╕реАрдорд┐рдд рдХрд░реВрдВрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдпрд╛рдж рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдпреЗ рд╡рд┐рдЪрд╛рд░, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЖрдЬ рднреА рдЙрдирдХреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдирд╣реАрдВ рдЦреЛрдП рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рддрд╕реНрд╡реАрд░ рдпрд╛рдж рдХрд░рддрд╛ рд╣реВрдВ:

рдЫрд╡рд┐

рдмрд╛рдж рдореЗрдВ рд╣рдо рдЗрд╕ рддрд╕реНрд╡реАрд░ рдкрд░ рд▓реМрдЯ рдЖрдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП рд╣рдо рд╢реБрд░реБрдЖрдд рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ, рдЕрд░реНрдерд╛рддреНред рдореБрдЦреНрдп рдореЗрдиреВ рд╕реЗ:

рдЫрд╡рд┐

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдореЗрдиреВ рдПрдХ рдбреЙрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рд╣реИред рдкреНрд░рд╕рд┐рджреНрдз рдкрд╣реЗрд▓реА рдХреА рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

"8 рдХреНрд╡реАрдВрд╕":
program EightQueens(output); { Place 8 hostile queens on a chessboard, such that none can be captured. } { From Wirth: Algorithms + Data Structures = Programs, page 146. } var i: integer; RowFree: array [1..8] of boolean; UpDiag: array [2..16] of boolean; { diagonal to upper right } DownDiag: array [-7..7] of boolean; { diagonal to lower right } QueenIn: array [1..8] of integer; procedure print; { Write out one solution } var k: integer; begin { print } for k := 1 to 8 do write(QueenIn[k]: 4); writeln; end { print }; procedure try(col: integer); { Try to place a queen in this column } var row: integer; begin { try } for row := 1 to 8 do if RowFree[row] and UpDiag[col+row] and DownDiag[col-row] then begin QueenIn[col] := row; RowFree[row] := false; UpDiag[col+row] := false; DownDiag[col-row] := false; if col < 8 then try(col+1) else print; RowFree[row] := true; UpDiag[col+row] := true; DownDiag[col-row] := true; end; end { try }; begin { EightQueens } for i := 1 to 8 do RowFree[i] := true; for i := 2 to 16 do UpDiag[i] := true; for i := -7 to 7 do DownDiag[i] := true; try(1) end { EightQueens }. 


рдФрд░ F9 рджрдмрд╛рдПрдВ (рднрд╛рдЧреЛ)ред рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ:

рдЫрд╡рд┐

рдиреАрдЪреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо (рдЖрдЙрдЯрдкреБрдЯ) рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рдгрд╛рдо рдЖрдЙрдЯрдкреБрдЯ рд╣реИрдВ, рдмрд╛рдИрдВ рдУрд░ рдЗрд╕ рдЪрд░рдг рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рдпрд╛ рдлрд╝рдВрдХреНрд╢рди) рдХрд╛ рдХреЛрдб рдЯреБрдХрдбрд╝рд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдСрдкрд░реЗрдЯрд░ рдХреЛ рдПрдХ рддреАрд░ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рджрд╛рдИрдВ рдУрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЪрд░ рдХреЗ рдорд╛рди рд╣реИрдВ, рдФрд░ рдКрдкрд░ рдХреЙрд▓рд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рднреА рдпрд╣реА рд╣реИред рдЙрд╕реА рд╕рдордп, рдСрдкрд░реЗрдЯрд░ рд╕реЗ рдСрдкрд░реЗрдЯрд░ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рджреЗрд░реА рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ - рдЗрд╕ рддрд░рд╣ рдХреА "рдлрд┐рд▓реНрдо" рдЖрдИрдбреАрдИ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, "8 рдХреНрд╡реАрдВрд╕") рдореЗрдВ рд▓реЛрдб рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд░реЛрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдлреНрд░реАрдЬ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреБрдВрдЬреА рджрдмрд╛рдХрд░ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рддреЛ рдЖрдк рдХрджрдо рд╕реЗ рдХрджрдо рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдиреНрдп рдбрд┐рдмрдЧрд░реНрд╕ рдХреА рддрд░рд╣, рдиреАрдЪреЗ рддреАрд░ рджрдмрд╛рдХрд░, рдпрд╛ F8 (рдЬрд╛рд░реА) рджрдмрд╛рдХрд░ "рдореВрд╡реА" рдкрд░ рд▓реМрдЯ рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрдХреНрд░реАрди рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЙрд▓ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреА рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдбреЙрдХреНрдЯрд░ рд╕реНрд╡рдпрдВ "рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЪрд░" рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреЗрд╡рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рд░рди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рдореАрдХреНрд╖рд╛рдУрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЕрддреНрдпрдВрдд рд╕рд░рд▓ рдкреНрд░рдмрдВрдзрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдкрд░ рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ рдЫрд╛рддреНрд░ рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд┐рдХрд▓рд╛, рдбреЙ рдХреЗ рд▓рд┐рдПред рдкрд╛рд╕реНрдХрд▓, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд░рд╛рджрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореИрдиреБрдЕрд▓ рдиреЛрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЙрдиреНрдирдд рдкреЗрд╢реЗрд╡рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП, рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рдПрдХ рддреНрд╡рд░рд┐рдд рдЕрд╡рд╕рд░ рдХрд┐ рдПрдХ рдЖрдВрджреЛрд▓рди рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╡рд╛рд▓ рдЙрдард╛рддрд╛ рд╣реИ: рдХрд┐рддрдирд╛ рдЫреЛрдЯрд╛?

рдореИрдВрдиреЗ рдкрд╛рд╕реНрдХрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реБрдЖ Wirth PascalS рджреБрднрд╛рд╖рд┐рдпрд╛ рд▓рд┐рдпрд╛ред рдХреНрд╡реАрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд▓рдЧрднрдЧ 2,000 рд▓рд╛рдЗрдиреЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рд╡рд╛рд▓рд╛ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рдбреЙрдХреНрдЯрд░ рдХреЗ рдкрд╛рд╕, рдЕрдкрдиреЗ рдореВрд▓ рд░реВрдк рдореЗрдВ, рдпрд╣ рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рдХрд╛рдЯ рджрд┐рдпрд╛ред

рдкрд╣рд▓рд╛ рднрд╛рдЧ рдбреЗрдЯрд╛ рдлрд╛рдЗрд▓ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИ:
 {%F- no reformatting } {%O+} program Pas1 (input,output,paskey,pasksy,spsfile,enterf,symsetf{,textf}); const nkw = 27; (*no. of key words*) alng = 10; (*no. of significant chars in identifiers*) type symbol = (intcon,realcon,charcon,string, notsy,plus,minus,times,idiv,rdiv,imod,andsy,orsy, eql,neq,gtr,geq,lss,leq, lparent,rparent,lbrack,rbrack,comma,semicolon,period, colon,becomes,constsy,typesy,varsy,functionsy, proceduresy,arraysy,recordsy,programsy,ident, beginsy,ifsy,casesy,repeatsy,whilesy,forsy, endsy,elsesy,untilsy,ofsy,dosy,tosy,downtosy,thensy); alfa = packed array [1..alng] of char; object = (konstant,variable,type1,prozedure,funktion); types = (notyp,ints,reals,bools,chars,arrays,records); keytype = array [1..nkw] of alfa; ksytype = array [1..nkw] of symbol; spstype = array [char] of symbol; symset = set of symbol; entertype = record fx0: alfa; fx1: object; fx2: types; fx3: integer; end; var key: keytype; ksy: ksytype; sps: spstype; (*special symbols*) syset : symset; pasksy : file of ksytype; paskey : file of keytype; spsfile : file of spstype; enterf : file of entertype; symsetf : file of symset; { textf : text;} procedure enter(x0: alfa; x1: object; x2: types; x3: integer); var EnterRec : EnterType; begin with EnterRec do begin fx0 := x0; fx1 := x1; fx2 := x2; fx3 := x3 end; write ( enterf, EnterRec ); end (*enter*) ; begin {main program} key[ 1] := 'and '; key[ 2] := 'array '; key[ 3] := 'begin '; key[ 4] := 'case '; key[ 5] := 'const '; key[ 6] := 'div '; key[ 7] := 'do '; key[ 8] := 'downto '; key[ 9] := 'else '; key[10] := 'end '; key[11] := 'for '; key[12] := 'function '; key[13] := 'if '; key[14] := 'mod '; key[15] := 'not '; key[16] := 'of '; key[17] := 'or '; key[18] := 'procedure '; key[19] := 'program '; key[20] := 'record '; key[21] := 'repeat '; key[22] := 'then '; key[23] := 'to '; key[24] := 'type '; key[25] := 'until '; key[26] := 'var '; key[27] := 'while '; ksy[ 1] := andsy; ksy[ 2] := arraysy; ksy[ 3] := beginsy; ksy[ 4] := casesy; ksy[ 5] := constsy; ksy[ 6] := idiv; ksy[ 7] := dosy; ksy[ 8] := downtosy; ksy[ 9] := elsesy; ksy[10] := endsy; ksy[11] := forsy; ksy[12] := functionsy; ksy[13] := ifsy; ksy[14] := imod; ksy[15] := notsy; ksy[16] := ofsy; ksy[17] := orsy; ksy[18] := proceduresy; ksy[19] := programsy; ksy[20] := recordsy; ksy[21] := repeatsy; ksy[22] := thensy; ksy[23] := tosy; ksy[24] := typesy; ksy[25] := untilsy; ksy[26] := varsy; ksy[27] := whilesy; rewrite (paskey); write (paskey, key); ksy[ 1] := andsy; ksy[ 2] := arraysy; ksy[ 3] := beginsy; ksy[ 4] := casesy; ksy[ 5] := constsy; ksy[ 6] := idiv; ksy[ 7] := dosy; ksy[ 8] := downtosy; ksy[ 9] := elsesy; ksy[10] := endsy; ksy[11] := forsy; ksy[12] := functionsy; ksy[13] := ifsy; ksy[14] := imod; ksy[15] := notsy; ksy[16] := ofsy; ksy[17] := orsy; ksy[18] := proceduresy; ksy[19] := programsy; ksy[20] := recordsy; ksy[21] := repeatsy; ksy[22] := thensy; ksy[23] := tosy; ksy[24] := typesy; ksy[25] := untilsy; ksy[26] := varsy; ksy[27] := whilesy; rewrite (pasksy); write (pasksy, ksy); sps['+'] := plus; sps['-'] := minus; sps['*'] := times; sps['/'] := rdiv; sps['('] := lparent; sps[')'] := rparent; sps['='] := eql; sps[','] := comma; sps['['] := lbrack; sps[']'] := rbrack; sps['#'] := neq; sps['&'] := andsy; sps[';'] := semicolon; rewrite (spsfile); write (spsfile, sps); rewrite (enterf); enter(' ', variable, notyp, 0); (*sentinel*) enter('false ', konstant, bools, 0); enter('true ', konstant, bools, 1); enter('real ', type1, reals, 1); enter('char ', type1, chars, 1); enter('boolean ', type1, bools, 1); enter('integer ', type1, ints , 1); enter('abs ', funktion, reals,0); enter('sqr ', funktion, reals,2); enter('odd ', funktion, bools,4); enter('chr ', funktion, chars,5); enter('ord ', funktion, ints, 6); enter('succ ', funktion, chars,7); enter('pred ', funktion, chars,8); enter('round ', funktion, ints, 9); enter('trunc ', funktion, ints, 10); enter('sin ', funktion, reals, 11); enter('cos ', funktion, reals, 12); enter('exp ', funktion, reals, 13); enter('ln ', funktion, reals, 14); enter('sqrt ', funktion, reals, 15); enter('arctan ', funktion, reals, 16); enter('eof ', funktion, bools, 17); enter('eoln ', funktion, bools, 18); enter('read ', prozedure, notyp, 1); enter('readln ', prozedure, notyp, 2); enter('write ', prozedure, notyp, 3); enter('writeln ', prozedure, notyp, 4); enter(' ', prozedure, notyp, 0); rewrite (symsetf); syset := [plus,minus,intcon,realcon,charcon,ident]; write ( symsetf, syset ); syset := [ident,arraysy,recordsy]; write ( symsetf, syset ); syset := [constsy,typesy,varsy,proceduresy,functionsy,beginsy]; write ( symsetf, syset ); syset := [intcon,realcon,charcon,ident,lparent,notsy]; write ( symsetf, syset ); syset := [beginsy,ifsy,whilesy,repeatsy,forsy,casesy]; write ( symsetf, syset ); end. 


рдпрд╣рд╛рдВ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдбреЙред рдкрд╛рд╕реНрдХрд▓ рдЯрд┐рдкреНрдкрдгреА рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реИрдВ рдФрд░ "%" рд╡рд░реНрдг рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВред рдирд┐рд░реНрджреЗрд╢ {% O +} рдореЗрдВ рдПрдХ рд╕рд░рд▓реАрдХреГрдд рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рдЬрд┐рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

 pasksy : file of ksytype; 

рдЗрд╕реЗ рдкреНрдпрд╛рд╕реА рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рдХрд┐рд╕реА рднреА рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рдХреА рддрд░рд╣, рдЗрд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реЗрдбрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

 program Pas1 (input,output,paskey, 

PascalS рдХреЗ рд╢реЗрд╖ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ:

 {%D+} {%F- no reformatting } {%O+} program Pascals(input,output,paskey,pasksy,spsfile,enterf,symsetf);{1.6.75} 

% D + рдирд┐рд░реНрджреЗрд╢ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдлреНрд░реАрдЬ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╣рдХрд░ рдХрд┐рд╕реА рдПрдиреАрдореЗрд╢рди рдХреЛ рд░реЛрдХрдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред

рдкрд╛рд╕реНрдХрд▓ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

 begin {main program} assign (input,'QUEENS.PAS'); reset (input); init; block(blockbegsys+statbegsys, false, 1); finish; 99: end. 

рдЗрдирд┐рдЯ рдФрд░ рдлрд┐рдирд┐рд╢ рд░реВрдЯреАрди рдХрд╣рд╛рдВ рд╣реИрдВ:
 procedure init; {%s-} var i : integer; EnterRec : EnterType; begin writeln; reset (paskey); read (paskey, key); reset (pasksy); read (pasksy, ksy); reset (spsfile); read (spsfile, sps); reset (symsetf); read (symsetf,constbegsys,typebegsys,blockbegsys,facbegsys,statbegsys); stantyps := [notyp,ints,reals,bools,chars]; lc := 0; ll := 0; cc := 0; ch := ' '; errpos := 0; errs := []; insymbol; t := -1; a := 0; b := 1; sx := 0; c2 := 0; display[0] := 1; iflag := false; oflag := false; if sy <> programsy then freeze{3} else begin insymbol; if sy <> ident then freeze{2} else begin progname := id; insymbol; if sy <> lparent then freeze{9} else repeat insymbol; if sy <> ident then freeze{2} else begin if id = 'input ' then iflag := true else if id = 'output ' then oflag := true else freeze{0}; insymbol; end until sy <> comma; if sy = rparent then insymbol else freeze{4}; if not oflag then freeze{20}; end end ; reset (enterf); while not eof (enterf) do begin read (enterf,EnterRec ); with EnterRec do enter (fx0,fx1,fx2,fx3); end; with btab[1] do begin last := t; lastpar := 1; psize := 0; vsize := 0 end ; end {init}; procedure finish; {%s-} begin if sy <> period then freeze{22}; {emit(31)}; {halt} if btab[2].vsize > stacksize then freeze{49}; end {finish}; 


% S рдирд┐рд░реНрджреЗрд╢ рдЙрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдВрджрд░ рдПрдиреАрдореЗрд╢рди рдФрд░ рдЪрд░ рдорд╛рдиреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИред

рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ (рдкрд╛рд╕ 1) рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рджреВрд╕рд░рд╛ред рдкрд╛рд╕реНрдХрд▓реНрд╕ рдиреЗ рд░рд╛рдирд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ (рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЪрд┐рддреНрд░ рджреЗрдЦреЗрдВ)ред рдХреЛрдб рдХреЗ рдирд┐рд░рдВрддрд░ рдПрдиреАрдореЗрд╢рди рдХреЛ рдкрд╛рд╕реНрдХрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдбрд╝реЗ рд░реВрдк рд╕реЗ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдкреНрд░рдореБрдЦ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдлреНрд░реАрдЬ рдмреБрд▓рд╛рдпрд╛ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЧрд┐рдиреЗ рдХреЙрд▓ рдХрд┐рдПред рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЬрд╛рд░реА рдЯреАрдо рдХреЗ рд╕рд╛рде рдПрдиреАрдореЗрд╢рди рдЬрд╛рд░реА рд░рдЦрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдзреБрдирд┐рдХ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдЖрдзреБрдирд┐рдХ рдЖрдИрдбреАрдИ рдореЗрдВ рдРрд╕реЗ рдПрдирд┐рдореЗрдЯрд░ рдЙрдкрдпреЛрдЧреА рд╣реЛрдВрдЧреЗред

рдореИрдВрдиреЗ рдПрдордПрд╕ рдбреЙрд╕ 3.2 рдХреЗ рддрд╣рдд 286 рд╕реАрдкреАрдпреВ рдкрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд "рдЧреЗрдо" рдмрдирд╛рдпрд╛, рдЕрдм рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдЪрд┐рддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд░рд╛рдиреА рдлрд╛рдЗрд▓реЗрдВ рд▓реЙрдиреНрдЪ рдХреАрдВред рдЕрдВрдд рдореЗрдВ, рдореБрдЭреЗ рдбреЙ рдХреЗ рд╡рд┐рддрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рддрдереНрдп рдпрд╛рдж рдЖрдпрд╛ред рдкрд╛рд╕реНрдХрд▓ред рдмреБрдирд┐рдпрд╛рджреА рд╡рд┐рддрд░рдг рдореЗрдВ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧрд╛рдЗрдб рд╢рд╛рдорд┐рд▓ рд╣реИ - рдЕрдЪреНрдЫреЗ рднрд╛рд░реА рдХрд╛рдЧрдЬ рдФрд░ рдлреНрд▓реЙрдкреА рдбрд┐рд╕реНрдХ рдкрд░ рд▓рдЧрднрдЧ 200 рдкреГрд╖реНрдареЛрдВ рдХреА рдПрдХ рдкреБрд╕реНрддрдХред рдЗрд╕рдХреА рдХреАрдордд $ 99.95US рдереА рдФрд░ рдЗрд╕реЗ рдХрдо рд▓рд╛рдЧрдд рд╡рд╛рд▓реЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдпреЛрдВ рдореЗрдВ рджрд░реНрдЬрдиреЛрдВ рдиреМрдХрд░рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреА рд▓рд╛рдЧрдд 1 рдкреНрд░рддрд┐ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╣реИред рд▓реЗрдХрд┐рди рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдФрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдСрд╕реНрдЯреНрд░реЗрд▓рд┐рдпрд╛, рдбреЙред рдкрд╛рд╕реНрдХрд▓ рднрд╛рд░рдд рдореЗрдВ рднреА рд▓реЛрдХрдкреНрд░рд┐рдп рдерд╛ред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдПрдХ рд╕реНрдерд╛рдиреАрдп рдХрдВрдкрдиреА рдХреЛ рднрд╛рд░рдд рдореЗрдВ рдПрдХ рд╡рд┐рддрд░рдг рд▓рд╛рдЗрд╕реЗрдВрд╕ рдмреЗрдЪрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЗрд╕ рдХрдВрдкрдиреА рдиреЗ рд╕реНрд╡рдпрдВ (рдореВрд▓ 1 рдХреЗ рд╕рд╛рде рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ 1: 1) рднреА рдХрд┐рддрд╛рдмреЗрдВ рдЫрдкреАрдВ рдФрд░ рдлреНрд▓реЙрдкреА рдбрд┐рд╕реНрдХ рд▓рд┐рдЦреАрдВред рдХрд┐рддрд╛рдмреЗрдВ рдЕрдВрдзреЗ рдкрд╛рда рдХреЗ рд╕рд╛рде рдЕрдЦрдмрд╛рд░реА рдХрд╛рдЧрдЬ рдкрд░ рдереАрдВ, рд▓реЗрдХрд┐рди рдХреАрдордд рд░реБрдкрдпреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ $ 4US рдереАред рдЙрд╕реА рдХрдВрдкрдиреА рдиреЗ рдЙрд╕ рд╕рдордп рдЕрдиреНрдп рд▓реЛрдХрдкреНрд░рд┐рдп рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛ рдерд╛, рдЬреИрд╕реЗ рдХрд┐ LOTUS 1-2-3 , dBase-4 , ChiWriter , рдЖрджрд┐ред рдЙрд╕реА рдХреАрдордд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред

Source: https://habr.com/ru/post/hi432414/


All Articles