Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ-ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² ΠΊΠΎΠ΄ 4 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ числа, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ. НапримСр:

var
a, b, c: real; //числа, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ
d: integer; //дСйствиС ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ внСсти ΠΊΠ°ΠΊ ΠΈ Π² protected, Ρ‚Π°ΠΊ ΠΈ Π² private. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ событиС OnClick. Для всСх Ρ†ΠΈΡ„Ρ€ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½:

procedure TForm1.Button1Click(Sender: TObject);
begin
Panel1.Caption:=Panel1.Caption+’число’
end;

Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ «число» Π½Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ (Ссли это Ρ†ΠΈΡ„Ρ€Π° 0, Ρ‚ΠΎ Panel1.Caption+’0′).

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ d ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ integer ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ дСйствия. Если Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1, Ссли Π΄Π΅Π»Π΅Π½ΠΈΠ΅ β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2, Ссли слоТСниС β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 3, ΠΈ Ρ‚. Π΄. Для дСйствия умноТСния ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄:

procedure TForm1.ButtonMultiplyClick(Sender: TObject); //дСйствиС умноТСния
begin
a:=StrToFloat(Panel1.Caption); //послС наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ сохраняСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a
d:=1; //ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ дСйствия задаСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
Panel1.Caption:=»;
end;

Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ значСния »=» Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ условиС case ΠΈ ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ дСйствиС:

procedure TForm1.ButtonClick(Sender: TObject);
begin
case d of
1: begin //Ссли d = 1, Ρ‚. Π΅. наТимаСтся ΠΊΠ½ΠΎΠΏΠΊΠ° умноТСния, Ρ‚ΠΎ происходит ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ дСйствиС
b:=StrToFloat(Panel1.Caption);
c:=a*b;
Panel1.Caption:=FloatToStr(c);
end;
2: begin
a:=StrToFloat(Panel1.Caption);
c:=a/b;
Panel1.Caption:=FloatToStr(c);
…

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π½Π° JavaScript

БСгодня сдСлаСм ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π½Π° JavaScript, Π½ΠΎ Π½Π΅ просто Ρ‚Π°ΠΊ, Π° с умыслом. ПозднСС ΠΌΡ‹ прСдставим, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ тСстировщики, ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π’Π΅Ρ€Π½Π΅Π΅, Π½Π΅ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π° Π΄ΠΈΠΊΠΎ ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ

На стартС Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚ самый простой ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ смоТСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ, ΡƒΠΌΠ½ΠΎΠΆΠ°Ρ‚ΡŒ ΠΈ Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π²Π° числа. Π­Ρ‚ΠΎΠ³ΠΎ ΡƒΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Π² ΠΊΠΎΠ΄Π΅, ΠΈ Π² дальнСйшСм тСстировании.

Π›ΠΎΠ³ΠΈΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π’Π°ΠΊ ΠΊΠ°ΠΊ это простой ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€, Ρ‚ΠΎ поступим Ρ‚Π°ΠΊ:

Π Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ поля Π²Π²ΠΎΠ΄Π° Π½Π° страницС

РазмСстим ΠΊΠ½ΠΎΠΏΠΊΠΈ с полями Π½Π° страницС, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт.

ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ наТатия Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ матСматичСских дСйствий

БСйчас Ρƒ нас Π΅ΡΡ‚ΡŒ 4 ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π½ΠΎ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ ΠΈΡ… бСсполСзно β€” всё Ρ€Π°Π²Π½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ. Но Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅?

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ свою Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π° ΠΏΠΎΡ‚ΠΎΠΌ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ свои дСйствия Π²Π½ΡƒΡ‚Ρ€ΠΈ этого ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Но Ρ€Π°Π· Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠ° Β«ΠŸΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΒ», Ρ‚ΠΎ Π½Π°ΠΌ придётся ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° Π½Π΅Ρ‘ ΠΈΠ· этих Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Ρ‹Ρ‚Π°ΡΠΊΠΈΠ²Π°Ρ‚ΡŒ дСйствиС ΠΈ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ΅ ΠΈ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² вычислСниях. Π‘Π»ΠΎΠΆΠ½ΠΎ ΠΈ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΎ.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” просто Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, какая ΠΊΠ½ΠΎΠΏΠΊΠ° Π±Ρ‹Π»Π° Π½Π°ΠΆΠ°Ρ‚Π°. А ΠΏΠΎΡ‚ΠΎΠΌ, ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Β«ΠŸΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΒ», просто ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² эту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ дСйствиС. Π’Π°ΠΊ ΠΈ поступим.

👉 Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Ρ…ΠΈΡ‚Ρ€ΠΎΡΡ‚ΡŒΡŽ, ΠΏΡ€ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‚: Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ onclick Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ β€” Ρ‚ΡƒΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ JS-ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. Π“Π»Π°Π²Π½ΠΎΠ΅, Π½Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΌ Π² скриптС ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ эту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ.

ПишСм скрипт

Π‘Π°ΠΌ скрипт Ρ‚ΠΎΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ простой:

Π‘Ρ€Π°Π·Ρƒ привяТСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ func() ΠΊ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«ΠŸΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΒ»:

Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

БСйчас Π² скриптС Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: ΠΎΠ½ всё считаСт, Π½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚. А всё ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ прСдусмотрСли Π½Π° страницС мСсто для Π²Ρ‹Π²ΠΎΠ΄Π°. Π˜ΡΠΏΡ€Π°Π²ΠΈΠΌ это ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ строчку Π² скрипт.

Π­Ρ‚ΠΎ β€” Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π° страницу послС ΠΊΠ½ΠΎΠΏΠΊΠΈ с расчётом:

А это β€” Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ func(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° сразу отправляла Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° страницу:

Π‘ΠΎΠ±ΠΈΡ€Π°Π΅ΠΌ всё вмСстС ΠΈ смотрим Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ складываСт всё ΠΊΠ°ΠΊ Π½ΡƒΠΆΠ½ΠΎ! ΠœΡ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ свою Π·Π°Π΄Π°Ρ‡Ρƒ β€” быстро Π·Π°ΠΏΠΈΠ»ΠΈΠ»ΠΈ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π½Π° JavaScript, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ Π² таск-Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Π΅ ΠΈ Π±Ρ€Π°Ρ‚ΡŒΡΡ Π·Π° Π½ΠΎΠ²ΡƒΡŽ.

Π§Ρ‚ΠΎ дальшС

Π”Π°Π»ΡŒΡˆΠ΅ ΠΌΡ‹ этот ΠΊΠΎΠ΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠΌ тСстировщикам β€” вряд Π»ΠΈ ΠΎΠ½ΠΈ Π² Π½Ρ‘ΠΌ Π½Π°ΠΉΠ΄ΡƒΡ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎΠ΅ ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ошибки, Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π΅ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π°. А Ссли тСстировщики Ρ‚ΡƒΡ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π°ΠΉΠ΄ΡƒΡ‚, ΠΌΡ‹ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ расскаТСм ΠΎΠ± этом Π² Π½ΠΎΠ²ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ сами ΠΏΠΎΠ±Ρ‹Ρ‚ΡŒ тСстировщиком ΠΈ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ тСстирования ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ Π² коммСнтариях.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ПишСм свой парсСр матСматичСских Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠΏΠΎΠ»Π½Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь.

Π’Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ задавались вопросом, ΠΊΠ°ΠΊ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ тСкстовоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ вычисляСт Π΅Π³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚? НС говоря ΡƒΠΆΠ΅ ΠΎΠ± ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ матСматичСских ошибок, сСмантичСских ошибок ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ‚Π°ΠΊΠΈΠΌ Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠ°ΠΊ числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой. Π›ΠΈΡ‡Π½ΠΎ я задавался!

Π― Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»ΡΠ» Π½Π°Π΄ этой Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, проводя ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для ΠΌΠΎΠ΅ΠΉ магистСрской Ρ€Π°Π±ΠΎΡ‚Ρ‹. Оказалось, Ρ‡Ρ‚ΠΎ я Ρ‚Ρ€Π°Ρ‡Ρƒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° поиск ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ физичСских Π΅Π΄ΠΈΠ½ΠΈΡ† измСрСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ прСобразования ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ своих вычислСний.

Π Π°Π·Π΄Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ ΠΌΠΎΠ½ΠΎΡ‚ΠΎΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ ΠΌΠ½Π΅ вскорС ΠΎΡΠΎΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΈ ΠΈΡ… прСобразования Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΠ½Π΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΈΡ…, достаточно ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π° Π·Π°Ρ‚Π΅ΠΌ ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ простой инструмСнт, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ коррСктности!

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ я написал собствСнный нСбольшой ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ парсинг сСмантичСского матСматичСского выраТСния ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ошибок. УслоТнило созданиС ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ выраТСния с Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ БИ. Π­Ρ‚ΠΎΡ‚ нСбольшой Β«ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΉ квСст» Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ускорил ΠΌΠΎΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс ΠΈ, чСстно говоря, я ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Π΅Π³ΠΎ Π² процСссС программирования, хотя Π½Π° Π΅Π³ΠΎ созданиС ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ всСго Π΄Π²Π° дня.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: спроСктированный ΠΌΠ½ΠΎΠΉ парсСр Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ являСтся парсСром с рСкурсивным спуском, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠΎΠ΄ΡŠΡ‘ΠΌ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡ. Π― Π½Π΅ лингвист, поэтому Π½Π΅Π·Π½Π°ΠΊΠΎΠΌ с Ρ‚Π°ΠΊΠΈΠΌΠΈ концСпциями, ΠΊΠ°ΠΊ бСсконтСкстная Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я расскаТу ΠΎ своСй ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ создания настраиваСмого ΠΌΠΈΠΊΡ€ΠΎΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° Π±Π΅Π· зависимостСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ матСматичСскиС выраТСния с физичСскими Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ измСрСния ΠΈ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ ваш процСсс вычислСний Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС.

Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ это Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½ΠΎΠ΅, Π½ΠΎ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ занятиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΠΎΠΏΠΎΡ€Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ для создания любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ сСмантичСской систСмы ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ матСматичСских Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ! Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΠΌΠ½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π·Π°Π³Π°Π΄ΠΊΠΈ ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ сСмантичСских матСматичСских ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Если Π²Ρ‹ Π»ΡŽΠ±ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ΠΈΠ½Π³ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΠ΅Ρ‚Π΅ΡΡŒ лингвистикой ΠΈ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ, Ρ‚ΠΎ эта ΡΡ‚Π°Ρ‚ΡŒΡ для вас.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: разумССтся, я понимаю, Ρ‡Ρ‚ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Π½ΠΎ это показалось ΠΌΠ½Π΅ Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρƒ мСня ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ концСпция Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π― всё Ρ€Π°Π²Π½ΠΎ Ρ€Π΅ΡˆΠΈΠ» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ²ΠΎΠ»Π΅Π½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΡΠ²Π»ΡΡŽΡ‚ΡΡ insect, qalculate!, wcalc. Π’Π°ΠΆΠ½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠΎΠ΅Π³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ «запуска», Π° просто Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠ· консоли.

Мой ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

Основная Π·Π°Π΄Π°Ρ‡Π° ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки β€” парсинг Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ³ΠΎ матСматичСского выраТСния с Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ измСрСния, Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π΅Π³ΠΎ значСния (Ссли Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ) ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π° мСсто, Π³Π΄Π΅ Π΅ΡΡ‚ΡŒ ошибка (Ссли Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ).

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ я объясню, ΠΊΠ°ΠΊ Π½Π° стандартном C++ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 350 строках ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ изящный ΡΠ°ΠΌΠΎΠ΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Π§Ρ‚ΠΎΠ±Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈ процСсс Π±Ρ‹Π»ΠΈ нагляднСС, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π·Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ матСматичСского выраТСния:

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π΅Π½ 1,35 ΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ bash Π½Π΅ Π»ΡŽΠ±ΠΈΡ‚ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅. Π’ΠΈΠ»ΡŒΠ΄Ρ‹ эквивалСнтны Π·Π½Π°ΠΊΠ°ΠΌ «минус», ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΎΡ‚ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ вычитания.

Бинтаксис матСматичСских Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ измСрСния

ВычисляСмоС матСматичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ прСдставлСно ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ интСрпрСтируСмая строка символов. Для вычислСния выраТСния Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° ряд Π²Π°ΠΆΠ½Ρ‹Ρ… вопросов:

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ чисСл ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ† измСрСния

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΠ°Ρ€Π°ΠΌΠΈ «число-Π΅Π΄ΠΈΠ½ΠΈΡ†Π° измСрСния», Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΈΡ… структуру ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ я Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ расскаТу, ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΠ°Ρ€Ρ‹ «число-Π΅Π΄ΠΈΠ½ΠΈΡ†Π° измСрСния».

Π•Π΄ΠΈΠ½ΠΈΡ†Ρ‹ измСрСния БИ β€” простая рСализация Π½Π° C++

Π’ ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠΉ систСмС Π΅Π΄ΠΈΠ½ΠΈΡ† физичСскиС Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ 7 основных Π΅Π΄ΠΈΠ½ΠΈΡ†: Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π΄Π»ΠΈΠ½Ρ‹, массы, элСктричСского Ρ‚ΠΎΠΊΠ°, тСрмодинамичСской Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, количСства вСщСства ΠΈ силы свСта.

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

ΠšΠ°ΠΆΠ΄ΡƒΡŽ Ρ„ΠΈΠ·ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ· произвСдСния стСпСнСй этих Π΅Π΄ΠΈΠ½ΠΈΡ†. ΠœΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΠΎΠ»Π½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡƒΡŽ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Β«Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽΒ». Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ структуру, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΡƒΡŽ этот Ρ„Π°ΠΊΡ‚, сохранив Π² Π½Π΅ΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ стСпСнСй, связанный с ΠΊΠ°ΠΆΠ΄ΠΎΠΉ основной Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ΠΉ:

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ ΠΊΠ°ΠΊ константу Ρ‚ΠΈΠΏΠ° unit:

Π—Π°Π΄Π°Π΄ΠΈΠΌ Π½Π°Π±ΠΎΡ€ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² для структуры Π΅Π΄ΠΈΠ½ΠΈΡ†. Π Π°Π·Π½Ρ‹Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΌΠ½ΠΎΠΆΠ°Ρ‚ΡŒ/Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π½ΠΎ нСльзя ΠΏΡ€ΠΈΠ±Π°Π²Π»ΡΡ‚ΡŒ/Π²Ρ‹Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ. ΠŸΡ€ΠΈ слоТСнии/Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Π΅Π΄ΠΈΠ½ΠΈΡ† получаСтся Ρ‚Π° ΠΆΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°. Π•Π΄ΠΈΠ½ΠΈΡ†Ρƒ Π±Π΅Π· размСрности нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ, Π½ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ ΠΌΠΎΠΆΠ½ΠΎ возвСсти Π² ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ:

ΠŸΠ°Ρ€Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ «число-Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Β»

Числа, связанныС с Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ «значСниями» ΠΈ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Аналогично Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌ ΠΌΡ‹ Π·Π°Π΄Π°Π΄ΠΈΠΌ Π½Π°Π±ΠΎΡ€ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ значСниями ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΡ… Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΊΠ°ΠΊ скомбинированныС основныС Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹

ИмСя строку, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΠΈΠ·ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΏΠ°Ρ€Ρƒ «число-Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Β» ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ поиска. ЗначСния ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ основных Π΅Π΄ΠΈΠ½ΠΈΡ† ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² map с ссылкой ΠΏΠΎ символу:

Если Π·Π°Π΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±Π΅Π·Ρ€Π°Π·ΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ поиска ΠΈ матСматичСскиС константы.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: скомбинированныС Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΈΠΌ Β«ΠΊΠ»ΡŽΡ‡ΠΎΠΌΒ» ΠΈΠ»ΠΈ строкой, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ люди ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½ΠΈΡ…, Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ поиска Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ!

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ^ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ поиска Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² скобки ΠΈΠ·-Π·Π° Π΅Π³ΠΎ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ порядка ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡ.

ΠŸΠ°Ρ€ΡΠΈΠ½Π³ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

Для своСго ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° я Π·Π°Π΄Π°Π» ΠΏΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² выраТСния: числа, Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, скобки ΠΈ особыС символы.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ символ Π² допустимом Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ отнСсти ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· этих ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ шагом Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ классу ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ символ, ΠΈ сохранСниС Π΅Π³ΠΎ Π² Π²ΠΈΠ΄Π΅, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅ΠΌ Π² сСбя эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: «особыС» символы ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΡƒΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° написаны Π½Π° C++ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ шаблонов.

ΠœΡ‹ Π·Π°Π΄Π°Π΄ΠΈΠΌ «класс парсинга» ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ простого Π½ΡƒΠΌΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈ Π·Π°Π΄Π°Π΄ΠΈΠΌ Β«ΠΊΠΎΡ€Ρ‚Π΅ΠΆ парсинга» ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ символом ΠΈ Π΅Π³ΠΎ классом парсинга. Π‘Ρ‚Ρ€ΠΎΠΊΠ° парсится Π² Β«Π²Π΅ΠΊΡ‚ΠΎΡ€ парсинга», содСрТащий упорядочСнныС ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ парсинга.

ΠœΡ‹ создаём Π²Π΅ΠΊΡ‚ΠΎΡ€ парсинга, просто сравнивая ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ символ со мноТСством символов, содСрТащихся Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ классС.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° нашСй основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² сТатии выраТСния, построСнии Π²Π΅ΠΊΡ‚ΠΎΡ€Π° парсинга ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π΅Π³ΠΎ Π² Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ вычислСнноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:

Для нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° выраТСния это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

РаспарсСнный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ выраТСния. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ символ Π² строкС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ отнСсён ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ. Числа ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Ρ‹ красным, Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΎΡ€Π°Π½ΠΆΠ΅Π²Ρ‹ΠΌ, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ синим, скобки Ρ„ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²Ρ‹ΠΌ, Π° особыС символы β€” Π·Π΅Π»Ρ‘Π½Ρ‹ΠΌ.

Π‘ самым Π»Ρ‘Π³ΠΊΠΈΠΌ ΠΌΡ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈ. Π‘ΠΎΠ·Π΄Π°Π½ Π²Π΅ΠΊΡ‚ΠΎΡ€ парсинга ΠΈΠ· входящих Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с числами, связанными со значСниями.

Как Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€ парсинга, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅?

ВычислСниС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

Нам ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€ парсинга, для Ρ‡Π΅Π³ΠΎ трСбуСтся информация ΠΎ структурС сСмантичСских матСматичСских Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π°ΠΆΠ½Ρ‹Π΅ наблюдСния:

ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ рСкурсивным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ скобки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ свСсти ΠΈΡ… ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€ парсинга ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ рСкурсивной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅ΠΉ ΠΏΠ°Ρ€Ρƒ «число-Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Β».

РСкурсивная функция вычислСния Π²Π΅ΠΊΡ‚ΠΎΡ€Π° парсинга

РСкурсивная функция eval описываСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ процСссом:

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ упорядочСнной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²

Начнём с опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ eval, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π΅ΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ n, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: пустой Π²Π΅ΠΊΡ‚ΠΎΡ€ парсинга Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π±Π΅Π·Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€ парсинга Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

ΠœΡ‹ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ строкС, отслСТивая Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ наблюдаСмой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Когда ΠΌΡ‹ встрСчаСм скобку, Ρ‚ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ скобки ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ вычислСния для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ выраТСния:

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ рСкурсии, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° парсинга, Π½Π΅ содСрТащСС скобок, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, состоящСС ΠΈΠ· сбалансированной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

ΠŸΡ€ΠΈ вычислСнии Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ выраТСния скобки возвращаСтся Π½Π΅ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ПослС уничтоТСния всСх скобок останСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сбалансированная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π° значСния Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ чисСл, Π΅Π΄ΠΈΠ½ΠΈΡ† ΠΈ ΡƒΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, найдя ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ΄ΡƒΡ‰ΠΈΡ… Π΄Ρ€ΡƒΠ³ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ парсинга, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Π΅Ρ‘, ΠΈ построив Π΅Π³ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠœΡ‹ конструируСм значСния ΠΈΠ· ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ парсинга, выявляя числовыС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΈ ΡƒΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ€ «число-Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Β» ΠΈ ΡƒΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

Π’Π°ΠΊ ΠΊΠ°ΠΊ этот ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ прСдставлСниС Π² числах с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈ ΠΈΠ· прСдэкспонСнты, ΠΈ ΠΈΠ· стСпСни. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ±Π΅ эти Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°ΠΊ.

Π—Π½Π°ΠΊ извлСкаСтся ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ символ, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ чисСл. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ извлСкаСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ stof:

), ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊ ΠΏΡ€ΠΎΡ‰Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΎΡ‚ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° вычитания.

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ провСряСм Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ записи с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΈ повторяСм это, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°ΠΊ ΠΈ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ стСпСни:

НаконСц, ΠΌΡ‹ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ ΠΎΡΡ‚Π°Π²ΡˆΡƒΡŽΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ ΠΊΠ°ΠΊ строку ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ Π² ΠΊΠΎΠ½Ρ†Π΅ ΡƒΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄ значСния:

Π­Ρ‚ΠΎΡ‚ процСсс сводит всС ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΡƒΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², чисСл ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ† ΠΊ структурам Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²:

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

Π—Π΄Π΅ΡΡŒ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ сводится ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: позиция пСрСдаётся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ создания, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»Π° извСстна Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Π°Ρ позиция Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок.

Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ упорядочСнной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²

НаконСц, Ρƒ нас ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π°ΡΡŒ сбалансированная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΆΠ°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ порядок ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π”Π²Π° значСния, связанныС стоящим ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ простой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΆΠ°Ρ‚ΡŒ всю ΡΠ±Π°Π»Π°Π½ΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΌΡ‹ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π²Π΅ΠΊΡ‚ΠΎΡ€ парсинга ΠΏΠΎ Ρ€Π°Π·Ρƒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ порядкС ΠΈ выполняСм Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ вычислСния. Π‘Ρ‚ΠΎΠΈΡ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈ слоТСниС с Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ΠΌ.

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠΎ Π½ΡƒΠ»Π΅Π²ΠΎΠΌΡƒ индСксу ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ Π΅Π³ΠΎ.

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

Π‘ΠΊΠΎΠ±ΠΊΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ рСкурсивно, ΠΊΠ°ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ сбалансированная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². ПослС устранСния всСх скобок ΠΈΠ· основного выраТСния возвращаСтся ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: эта рСкурсивная структура ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡƒΡŽ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρƒ сСмантики матСматичСского выраТСния.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΈ Π²Ρ‹Π²ΠΎΠ΄Ρ‹

Описанная Π²Ρ‹ΡˆΠ΅ структура Π±Ρ‹Π»Π° ΠΎΠ±Ρ‘Ρ€Π½ΡƒΡ‚Π° Π² простой инструмСнт ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я Π½Π°Π·Π²Π°Π» Β«dimaΒ» (сокращённо ΠΎΡ‚ Β«dimensional analysisΒ»). ΠŸΠΎΠ»Π½Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь.

Π­Ρ‚ΠΎΡ‚ простой ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ выраТСния с Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ измСрСния.

Π•Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈ Ρ€Π°ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ:

ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ позволяя быстро ΡƒΠ·Π½Π°Π²Π°Ρ‚ΡŒ значСния констант:

ΠŸΡ€ΠΈ нСобходимости Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ поиска Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

МоТно Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ эту систСму, Π΄ΠΎΠ±Π°Π²ΠΈΠ² способ задания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ/ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ.

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅: ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΈΠΉ Π±ΡƒΡ„Π΅Ρ€ вычислСний, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° присваивания ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Π½ΠΎΠ²ΠΎΠΌ словарС, доступ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… вычислСниях. Однако для Ρ‚Π°ΠΊΠΎΠ³ΠΎ сохранСния состояния потрСбуСтся запись Π² Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ запуск процСсса.

Π­Ρ‚ΠΎΡ‚ сСмантичСский матСматичСский парсСр ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ матСматичСскиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ алгСбраичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ выраТСния с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ изящноС прСдставлСниС Π½Π° основании ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ способа ΠΎΡ†Π΅Π½ΠΊΠΈ (Π΄Π»ΠΈΠ½Ρ‹, симмСтрии, ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Ρ‚.Π΄.)

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Ρ†ΠΈΠ΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ функция диффСрСнцирования, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρƒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ….

На ΠΏΡ€Π°Π²Π°Ρ… Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹

Наша компания ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ сСрвСры Π² Π°Ρ€Π΅Π½Π΄Ρƒ для Π»ΡŽΠ±Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Π΅ выслСчСния ΠΈΠ»ΠΈ просто Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠ³Π° Π½Π° WordPress. Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ собствСнный Ρ‚Π°Ρ€ΠΈΡ„Π½Ρ‹ΠΉ ΠΏΠ»Π°Π½ Π² ΠΏΠ°Ρ€Ρƒ ΠΊΠ»ΠΈΠΊΠΎΠ² ΠΈ Π·Π° ΠΌΠΈΠ½ΡƒΡ‚Ρƒ ΠΏΠΎΠ»ΡƒΡ‡Π°ΠΉΡ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ сСрвСр, максимальная конфигурация Π±ΡŒΡ‘Ρ‚ Ρ€Π΅ΠΊΠΎΡ€Π΄Ρ‹ β€” 128 ядСр CPU, 512 Π“Π‘ RAM, 4000 Π“Π‘ NVMe!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ВСстируСм ΠΈ исправляСм ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π½Π° JavaScript

Π’ Π½Ρ‘ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ошибок, Π½ΠΎ ΠΌΡ‹ ΠΈΡ… пофиксим

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ β€” ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ истории ΠΏΡ€ΠΎ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π½Π° JavaScript. Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… частях ΠΌΡ‹:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ наш ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ ΠΏΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ β€” ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡ‚ΡΡ Π½Π°ΠΉΡ‚ΠΈ Π² Π½Ρ‘ΠΌ ошибки Π»ΠΎΠ³ΠΈΠΊΠΈ, повСдСния, вычислСний ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ нСявныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹.

👉 Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ автотСстов, ΡŽΠ½ΠΈΡ‚-тСстов, API-тСстов ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… тСстов. Π­Ρ‚ΠΎ всё Π½ΡƒΠΆΠ½Ρ‹Π΅ инструмСнты, Π½ΠΎ Π·Π°Π΄Π°Ρ‡Π° тСстировщика, Π² частности, β€” Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ инструмСнт тСстирования.

Если Ρƒ Π½Π΅Π³ΠΎ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΎΡ‡Π΅Π½ΡŒ простая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° (ΠΊΠ°ΠΊ наш ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€), Ρ‚ΠΎ Π½Π΅Ρ‚ смысла Π³ΠΎΡ€ΠΎΠ΄ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ тСсты Ρ€Π°Π΄ΠΈ тСстов. Иногда ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ всё ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Π‘Π°Π·ΠΎΠ²ΠΎΠ΅ тСстированиС

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ, β€” провСряСм, Π° ΠΊΠ°ΠΊ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π²Π΅Π΄ΡƒΡ‚ сСбя ΠΊΠ½ΠΎΠΏΠΊΠΈ матСматичСских дСйствий ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ Π»ΠΈ ΠΎΠ½ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ. Π’ΠΎΠ·ΡŒΠΌΡ‘ΠΌ Π΄Π²Π° числа β€” 12 ΠΈ 5 β€” ΠΈ сравним Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ всСх дСйствий с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€:

ΠžΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа Ρ‚ΠΎΠΆΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΈ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.

ВСстируСм большиС числа

Π£ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² Π΅ΡΡ‚ΡŒ нюанс: Π»ΡŽΠ±Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ограничСния ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ числа. НапримСр, Ссли Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ 16 Π±ΠΈΡ‚, Ρ‚ΠΎ максимальноС число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π² Π½Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ, β€” 65 536. Число Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ большС ΡƒΠΆΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ 17 Π±ΠΈΡ‚, Π° ΠΌΡ‹ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ выдСляли.

ΠœΡ‹ Ρ…ΠΎΡ‚ΡŒ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ этого ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°, Π½ΠΎ ΠΌΡ‹ Π½Π΅ ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΠΊΠ°ΠΊΠΎΠ΅ число ΠΈΠΌΠ΅Π»ΠΈ Π² Π²ΠΈΠ΄Ρƒ, ΠΊΠΎΠ³Π΄Π° Π·Π°Π²ΠΎΠ΄ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, это Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° нас принял JavaScript. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π½Π΅ сломаСтся Π»ΠΈ наш ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΎΡ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… чисСл.

ΠŸΡ€ΠΎΠ±ΡƒΠ΅ΠΌ: 123 456 789 Γ— 2 = 246 913 578 β€” Π²Π΅Ρ€Π½ΠΎ

А Π²ΠΎΡ‚ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ экспСримСнт:

12 345 678 901 234 567 Γ— 1 = 12 345 678 901 234 568

Π£Ρ… Ρ‚Ρ‹! ΠœΡ‹ ΡƒΠΌΠ½ΠΎΠΆΠΈΠ»ΠΈ большоС число Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, Π° Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅ появилась ошибка. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ числа Π·Π° Ρ€Π°Π· наш ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΡƒΠΆΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π² состоянии.

❌ ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ 17-Π·Π½Π°Ρ‡Π½Ρ‹Π΅ числа ΠΈ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС Π½ΠΈΡ….

А Ссли ΠΌΡ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ 17-Π·Π½Π°Ρ‡Π½ΠΎΠ΅ число Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅, интСрСсно, ΠΎΠ½ΠΎ Ρ‚ΠΎΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ с ошибкой?

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

Π”Π°, Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅ Ρ‚ΠΎΠΆΠ΅ Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ΅ число β€” 8 Γ— 4 = 32, поэтому Π² ΠΊΠΎΠ½Ρ†Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡ‚ΠΎΡΡ‚ΡŒ 2, Π° Π½Π΅ 0. ПишСм Π±Π°Π³:

❌ Если Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅ получаСтся 17-Π·Π½Π°Ρ‡Π½ΠΎΠ΅ число ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ β€” ΠΎΡ‚Π²Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ.

ΠŸΡ€ΠΈ этом Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° 16-Π·Π½Π°Ρ‡Π½ΠΎΠ΅ число Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²Π΅Ρ€Π½ΠΎ:

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

ВСстированиС матСматичСских Ρ‚Ρ€ΡŽΠΊΠΎΠ²

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° ноль:

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

Π‘ΠΊΡ€ΠΈΠΏΡ‚ Ρ…ΠΈΡ‚Ρ€ΠΎ выкрутился ΠΈ записал Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ дСлСния Π±Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ. Но Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ сообщСниС, Ρ‡Ρ‚ΠΎ Π½Π° ноль Π΄Π΅Π»ΠΈΡ‚ΡŒ нСльзя.

❌ НСт сообщСния ΠΏΡ€ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π½Π° ноль.

ΠžΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ

А Ρ‡Ρ‚ΠΎ Ссли ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° пустым ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ? Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим:

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

Π‘ΠΊΡ€ΠΈΠΏΡ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π» ΠΏΡƒΡΡ‚ΡƒΡŽ строку Π² ноль ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΎΡ‚Π²Π΅Ρ‚, Π½ΠΎ это Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ β€” ΠΏΡ€ΠΈ отсутствии ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· чисСл ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΎΠ± этом, Π° Π½Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ.

❌ НСт сообщСния, Ссли ΠΎΠ΄Π½ΠΎ ΠΈΠ· чисСл Π½Π΅ Π²Π²Π΅Π΄Π΅Π½ΠΎ.

ΠŸΠΎΠΉΠ΄Ρ‘ΠΌ дальшС ΠΈ Π²Π²Π΅Π΄Ρ‘ΠΌ слово вмСсто числа:

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

Π‘ΠΊΡ€ΠΈΠΏΡ‚ чСстно пытаСтся пСрСвСсти строку Π² число, Ρƒ Π½Π΅Π³ΠΎ это Π½Π΅ получаСтся, поэтому ΠΎΠ½ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

❌ НСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° Ρ‚ΠΎ, Π²Π²Π΅Π»ΠΈ число ΠΈΠ»ΠΈ строку.

И напослСдок ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли ΠΌΡ‹ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Π²Π΅Π΄Ρ‘ΠΌ, Π½ΠΎ Π½Π΅ Π²Ρ‹Π±Π΅Ρ€Π΅ΠΌ Π½ΠΈ ΠΎΠ΄Π½ΠΎ дСйствиС:

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

Π’ΠΎΠΆΠ΅ ΠΏΠ»ΠΎΡ…ΠΎ. Надо Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ.

❌ НСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΈΠ· матСматичСских дСйствий.

Π’Π°ΠΊ провСряСм Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° со всСми дСйствиями, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π’ ΠΈΡ‚ΠΎΠ³Π΅ Ρƒ нас получится список ошибок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ

ПослС тСстирования Ρƒ нас получился Ρ‚Π°ΠΊΠΎΠΉ список ошибок:

❌ ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ 17-Π·Π½Π°Ρ‡Π½Ρ‹Π΅ числа ΠΈ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС Π½ΠΈΡ….

❌ Если Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅ получаСтся 17-Π·Π½Π°Ρ‡Π½ΠΎΠ΅ число ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ β€” ΠΎΡ‚Π²Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ.

❌ НСт сообщСния ΠΏΡ€ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π½Π° ноль.

❌ НСт сообщСния, Ссли ΠΎΠ΄Π½ΠΎ ΠΈΠ· чисСл Π½Π΅ Π²Π²Π΅Π΄Π΅Π½ΠΎ.

❌ НСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° Ρ‚ΠΎ, Π²Π²Π΅Π»ΠΈ число ΠΈΠ»ΠΈ строку.

❌ НСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΈΠ· матСматичСских дСйствий.

Π˜ΡΠΏΡ€Π°Π²ΠΈΠΌ эти ошибки. Π’Π°ΠΊ ΠΊΠ°ΠΊ всС вычислСния Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ func(), Ρ‚ΠΎ ΠΈ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ всё Π±ΡƒΠ΄Π΅ΠΌ Ρ‚ΠΎΠΆΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Ρ‘.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²Π²Π΅Π»ΠΈ число, Π° Π½Π΅ слова ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ символы

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ пустых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

JavaScript ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ строку Π² число, Ρ‚ΠΎ ΠΏΡƒΡΡ‚ΡƒΡŽ строку ΠΎΠ½ считаСт ΠΊΠ°ΠΊ 0. Нам Ρ‚Π°ΠΊΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, поэтому сравним Π΅Ρ‘ с пустой сторокой. Если ΠΎΠ½Π° пустая β€” Π²Ρ‹Π΄Π°Ρ‘ΠΌ сообщСниС ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ считаСм.

Π•Ρ‰Ρ‘ Π½Π°Π΄ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π½Π° ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ β€” JavaScript строку ΠΈΠ· ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Ρ‚ΠΎΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠ°ΠΊ ноль, Π° Π½Π°ΠΌ это Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ:

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ноль

ΠŸΡ€ΠΎΡΡ‚Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° β€” добавляСм сравнСниС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ числа с Π½ΡƒΠ»Ρ‘ΠΌ:

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ числа

Π”Π°ΠΆΠ΅ Ссли ΠΌΡ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° числами ΠΏΠΎ 16 Π·Π½Π°ΠΊΠΎΠ² вмСсто 17, Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ½ΠΈ Π΄Π°Π΄ΡƒΡ‚ Π½Π°ΠΌ Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅ 32 Π·Π½Π°ΠΊΠ° β€” Π° это Ρ‚ΠΎΠΆΠ΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ наш ΠΏΡ€Π΅Π΄Π΅Π» точности. Π§Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅ число Π½Π΅ большС 16 разрядов ΠΏΠ΅Ρ€Π΅Π΄ запятой, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π° числа Π±Ρ‹Π»ΠΈ Π½Π΅ большС 99 999 999 β€” Π² Π½Ρ‘ΠΌ 8 разрядов, Π° ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ максимум 16, ΠΊΠ°ΠΊ Ρ€Π°Π· Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ.

Π§Ρ‚ΠΎΠ±Ρ‹ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ числа:

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

Если Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½ΠΎ матСматичСскоС дСйствиС

Π‘ этим всё просто β€” добавляСм Π² case дСйствиС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ выполнится, Ссли Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡƒΡ‚:

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

Π’ ΠΈΡ‚ΠΎΠ³Π΅

✅ ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с числами большС 16 Π·Π½Π°ΠΊΠΎΠ² Π΄ΠΎ запятой ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π΅Ρ‚ ΠΎΠ± этом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

✅ Π’ ΠΎΡ‚Π²Π΅Ρ‚Π΅ всСгда число, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π΅ большС 16 Π·Π½Π°ΠΊΠΎΠ² Π΄ΠΎ запятой

✅ Π•ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° дСлСния Π½Π° ноль

✅ Π•ΡΡ‚ΡŒ сообщСниС, Ссли ΠΎΠ΄Π½ΠΎ ΠΈΠ· чисСл Π½Π΅ Π²Π²Π΅Π΄Π΅Π½ΠΎ.

✅ Π•ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΎ, Π²Π²Π΅Π»ΠΈ число ΠΈΠ»ΠΈ строку.

✅ Π•ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, ΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΈΠ· матСматичСских дСйствий.

Π­Ρ‚ΠΎ всё?

О Π½Π΅Ρ‚, этот ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΌΠΎΠΆΠ½ΠΎ Π³ΠΎΠ½ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΈ Π² хвост ΠΈ Π² Π³Ρ€ΠΈΠ²Ρƒ:

Π­Ρ‚ΠΎ (ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅) β€” ΠΈ Π΅ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π° тСстировщика. ΠšΡ€ΡƒΡ‚ΠΎ, Π΄Π°?

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *