Π’ΡΠ΅ΡΠΈΠΉ ΡΡΠ°ΠΏ β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΈΡΠ°ΡΡ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΠΉ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΠΈ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π½Π° ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΡ. ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡΡ Π΄Π»ΠΈΠ½ΠΎΠΉ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΠΆΠΈΡΡ
NUMBER
; ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°, ΡΠ°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ
+
ΠΈ
*
, ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π΅Π΄ΠΈΠ½ΠΈΡΠ°ΠΌΠΈ. ΠΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΈ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΡ Π½Π°Π·ΡΠ²Π°ΡΡ Π»Π΅ΠΊΡΠ΅ΠΌΠ°ΠΌΠΈ.
ΠΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΡΠ°ΠΏΠ΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ
yacc
.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°
yacc
ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΡ ΠΈ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°Π·Π±ΠΎΡΠ° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ
yyparse
ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π΅Π΅ Π² Π²ΠΈΠ΄Π΅ ΡΠ°ΠΉΠ»Π° Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ Π½Π° Π‘ΠΈ. ΠΡΠ»ΠΈ
yacc
Π½Π΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠΎ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ, Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ²ΡΠ·Π°ΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ Π½Π° Π‘ΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ.
ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅
yacc
ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΠΌΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΡ Π·Π° Π»Π΅ΠΊΡΠ΅ΠΌΠ°ΠΌΠΈ, ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
(ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ
) ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π²ΠΎ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΏΡΠ°Π²ΠΈΠ». ΠΡΠ·ΡΠ²Π°ΡΡ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ
yylex
, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅Ρ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ
yyparse
Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π΅ΠΌΡ Π½ΡΠΆΠ½Π° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ Π»Π΅ΠΊΡΠ΅ΠΌΠ°. (ΠΡΠ΅ ΠΈΠΌΠ΅Π½Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅
yacc
, Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ
y
.)
Π§ΡΠΎΠ±Ρ Π±ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΡΠΌΠΈ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΡΡΠΎ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π΄Π»Ρ
yacc
Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΡΠ°ΠΊΠΎΠΉ Π²ΠΈΠ΄:
%{
Β ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π‘ΠΈ ΡΠΈΠΏΠ° #include, ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ Ρ.Β Π΄.
Β ΠΡΠ° ΡΠ°ΡΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°.
%}
yacc-ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ: Π»Π΅ΠΊΡΠ΅ΠΌΡ, Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅,
ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°Ρ
ΠΈ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΎΡΡΠΈ
%%
Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ
%%
Π΅ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π‘ΠΈ (Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ):
main() {
Β ...; yyparse(); ...
}
yylex() {
Β ...
}
...
ΠΡΠΎΡ ΠΏΠΎΡΠΎΠΊ ΠΏΠΎΡΡΡΠΏΠ°Π΅Ρ Π½Π° Π²Ρ
ΠΎΠ΄
yacc
, Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ°ΠΉΠ»
y.tab.c
, ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ:
ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π½Π° Π‘ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ %{ ΠΈ %}, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ
ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π½Π° Π‘ΠΈ ΠΈΠ· ΡΠ°ΡΡΠΈ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΎΡΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ %%, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ:
main() {
Β ...; yyparse(); ...
}
yylex() {
Β ...
}
...
yyparse() {
Β Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ yylex()
}
Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΡΠΈΠΏΠΈΡΠ΅Π½ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΡ UNIX:
yacc
Π²ΡΠ΄Π°Π΅Ρ ΡΠ΅ΠΊΡΡ Π½Π° Π‘ΠΈ, Π° Π½Π΅ ΠΎΡΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» (
.o
), ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ, ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌ ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄Π΄Π°Π΅ΡΡΡ Π»ΡΠ±ΠΎΠΌΡ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ (Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠ²ΠΈΡΡΡ Ρ
ΠΎΡΠΎΡΠ°Ρ ΠΈΠ΄Π΅Ρ).
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ
yacc
ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΌΠΎΡΠ½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ. ΠΠ³ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡ Π²Π°Ρ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΡΠΈΠ»ΠΈΠΉ, Π½ΠΎ Π²ΡΠ΅ Π²Π°ΡΠΈ "Π·Π°ΡΡΠ°ΡΡ" ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΎΠΊΡΠΏΡΡΡΡ. ΠΠ½Π°Π»ΠΈΠ·Π°ΡΠΎΡΡ, ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠ΅
yacc
, β Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅, ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅ (Ρ
ΠΎΡΡ Π·Π° ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΠ°Π΅ΡΠ΅ Π²Ρ). ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½Π΅ΠΏΡΠΈΡΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΡΠ°Π·Π±ΠΎΡΠ°, ΡΠ΅ΡΠ°ΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ·ΡΠΊΠΎΠ²ΡΡ
ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»Π΅ΠΉ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ, ΡΡΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ°.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° ΡΡΠ°ΠΏΠ΅ 1
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ
hoc1
ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΏΡΠ°Π²ΠΈΠ» Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ
yylex
ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
main
, Ρ
ΡΠ°Π½ΠΈΠΌΡΡ
Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
hoc.y
. (ΠΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ
ΡΠ΅ΠΊΡΡ Π΄Π»Ρ
yacc
, ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎ ΠΎΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡ Π½Π°
.y
, Π½ΠΎ ΡΡΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΎ
ΡΡ
ΠΈ .c Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°ΠΌ
yacc
.) ΠΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΡΡ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ ΡΠ°ΠΉΠ»Π°
hoc.y
:
$ cat hoc.y
%{
#define YYSTYPE double /* data type of yacc stack */
%}
%token NUMBER
%left '+' /* left associative, same precedence */
%left '*' '/' /* left assoc., higher precedence */
%%
list: /* nothing */
Β | list '\n'
Β | list expr '\n' { printf("\t%.8g\n", $2); }
Β ;
expr: NUMBER { $$ = $1; }
Β | expr '+' expr { $$ = $1 + $3; }
Β | expr '-' expr { $$ = $1 - $3; }
Β | expr '*' expr { $$ = $1 * $3; }
Β | expr '/' expr { $$ = $1 / $3; }
Β | '(' expr ')' { $$ = $2; }
Β ;
%%
/* end of grammar */
...
ΠΡ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π² ΡΡΠΈΡ
Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΡΡΠΎΠΊΠ°Ρ
. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π°ΠΌ Π·Π΄Π΅ΡΡ Π²ΡΠ΅ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠΌΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Ρ ΠΏΠΎ
yacc
.
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ
'|'
. Π‘ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ²ΡΠ·Π°Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π΅ΡΡΡ Π²ΠΎ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅. ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π‘ΠΈ, Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ Π² ΡΠΈΠ³ΡΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ. ΠΠ½ΡΡΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ
$n
(Ρ.Π΅.
$1
,
$2
ΠΈ Ρ.Π΄.) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ΅
n
-ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°, Π°
$$
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ΅ Π²ΡΠ΅ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π² ΡΠ΅Π»ΠΎΠΌ. Π’Π°ΠΊ, Π² ΠΏΡΠ°Π²ΠΈΠ»Π΅