Π ΡΠ°Π½Π½ΠΈΠ΅ Π΄Π½ΠΈ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π» Tiny Basic. ΠΠ½ ΠΈΠΌΠ΅Π» Π² ΠΎΠ±ΡΠ΅ΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ 26 Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ : ΠΎΠ΄Π½Π° Π½Π° ΠΊΠ°ΠΆΠ΄ΡΡ Π±ΡΠΊΠ²Ρ Π°Π»ΡΠ°Π²ΠΈΡΠ°. ΠΡΠΎ Ρ ΠΎΡΠΎΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π½Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΎΠ΄Π½ΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ², ΡΠ°ΠΊ ΡΡΠΎ ΠΌΡ ΠΈΡΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΡΠΎΡ ΠΆΠ΅ ΠΏΡΠΈΠ΅ΠΌ. Π Π½Π°ΡΠ°Π»Π΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°, ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Look, Π²ΡΡΠ°Π²ΡΡΠ΅ ΡΡΡΠΎΠΊΡ:
Table: Array['A'..'Z'] of integer;
ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ², ΠΏΠΎΡΡΠΎΠΌΡ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ:
{β}
{ Initialize the Variable Area }
procedure InitTable;
var i: char;
begin
for i := 'A' to 'Z' do
Table[i] := 0;
end;
{β}
ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΡΠ°Π²ΠΈΡΡ Π²ΡΠ·ΠΎΠ² InitTable Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Init. ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, ΠΈΠ½Π°ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄ΠΈΠ²ΠΈΡΡ Π²Π°Ρ!
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Factor ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π». Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ Π½Π΅ ΠΈΠΌΠ΅Π΅ΠΌ (ΠΏΠΎΠΊΠ°) ΡΠΏΠΎΡΠΎΠ±Π° Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Factor Π±ΡΠ΄Π΅Ρ Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π΄Π»Ρ Π½ΠΈΡ Π½ΡΠ»Π΅Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π½ΠΎ Π΄Π°Π²Π°ΠΉΡΠ΅ Π΄Π²ΠΈΠ½Π΅ΠΌΡΡ Π΄Π°Π»ΡΡΠ΅ ΠΈ ΡΠ°ΡΡΠΈΡΠΈΠΌ Π΅Π³ΠΎ. ΠΠΎΡ Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ:
{β}
{ Parse and Translate a Math Factor }
function Expression: integer; Forward;
function Factor: integer;
begin
if Look = '(' then begin
Match('(');
Factor := Expression;
Match(')');
end
else if IsAlpha(Look) then
Factor := Table[GetName]
else
Factor := GetNum;
end;
{β}
ΠΠ°ΠΊ Π²ΡΠ΅Π³Π΄Π° ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΉΡΠ΅ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΡΠΉΡΠ΅ ΡΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΠ°ΠΆΠ΅ ΠΏΡΠΈΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΠΉΡΠ°Ρ ΡΠ°Π²Π½Ρ Π½ΡΠ»Ρ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ ΠΎΡΠ»Π°Π²Π»ΠΈΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π½ΡΠ΅.
Π― ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ Π²Ρ ΡΠΆΠ΅ Π·Π½Π°Π΅ΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³: ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. Π‘Π΅ΠΉΡΠ°Ρ Π΄Π°Π²Π°ΠΉΡΠ΅ Π±ΡΠ΄Π΅ΠΌ Β«ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌΠΈΒ», Ρ ΠΎΡΡ ΡΠΊΠΎΡΠΎ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ².
ΠΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ΡΠΎ, ΡΡΠΎ ΠΌΡ Π΄Π΅Π»Π°Π»ΠΈ ΡΠ°Π½ΡΡΠ΅:
{β}
{ Parse and Translate an Assignment Statement }
procedure Assignment;
var Name: char;
begin
Name := GetName;
Match('=');
Table[Name] := Expression;
end;
{β}
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π΅, Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ write Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ A. ΠΠ°ΡΠ΅ΠΌ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π» Π΅Π΅ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡΠΌΠΈ.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ·ΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ΅Π½Π½ΠΎΡΡΠΈ. ΠΠΎΡΡΠΎΠΌΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠΉ. ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΡΠΈΠΊΠ» Π²ΠΎΠΊΡΡΠ³ Π²ΡΠ·ΠΎΠ²Π° Assignment. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ. ΠΠΎ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅ΠΌ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠΈΠΊΠ»Π°? Π Π°Π΄, ΡΡΠΎ Π²Ρ ΡΠΏΡΠΎΡΠΈΠ»ΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π±ΡΠ»ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ.
ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ Π²Π΅ΡΠ΅ΠΉ Π² Π»ΡΠ±ΠΎΠΌ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΉΡΠΈ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. ΠΠΎΠΊΠ° ΡΡΠΎ Π½Π΅ Π±ΡΠ»ΠΎ Π΄Π»Ρ Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΡ Π΄ΠΎΠΏΡΡΠΊΠ°Π»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡβ¦ ΠΈΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ. ΠΠΎΠ³Π΄Π° ΠΌΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠΈΠΊΠ»Ρ ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π²ΠΈΠ΄Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ², Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅, ΡΡΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π·Π°Π²Π΅ΡΡΠ°Π»ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. ΠΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ Π½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π² ΡΠΈΠΊΠ», ΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠΏΠΎΡΠΎΠ± Π΄Π»Ρ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· Π½Π΅Π³ΠΎ. Π ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΈ ΠΏΠΎ ΠΊΠΎΠ½ΡΡ ΡΡΡΠΎΠΊΠΈ Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅. ΠΡ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ Π½Π΅ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π΅ΠΌΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ ΠΏΡΠ΅ΡΡΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π½ΠΎ ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ Π±Ρ ΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, ΡΡΠΎ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π΅ΡΠ΅ΡΡΠ΅Π·Π½ΠΎ.
ΠΠ°ΠΌ Π½ΡΠΆΠ΅Π½ Π·Π°Π²Π΅ΡΡΠ°ΡΡΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ». Π― Π²ΡΡΡΡΠΏΠ°Ρ Π·Π° Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ ΡΠΎΡΠΊΡ Π² Pascal ("."). ΠΠ΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΎΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Turbo Pascal Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ ΡΡΡΠΎΠΊΡ Π΄Π²ΡΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ: Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΊΠ°ΡΠ΅ΡΠΊΠΈ (CR) ΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΡΠΎΠΊΠΈ (LF). Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Β«ΡΡΠ΅Π΄Π°ΡΡΒ» ΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π±ΡΠ»ΠΎ Π±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ Match Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Match Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΡΡΠΎ Π΄Π»Ρ CR ΠΈ LF Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ Ρ ΠΎΡΠΎΡΠΎ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ, Π±Π΅Π· ΡΠΎΠΌΠ½Π΅Π½ΠΈΡ, Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·. ΠΠΎΡ ΠΎΠ½Π°:
{β}
{ Recognize and Skip Over a Newline }
procedure NewLine;
begin
if Look = CR then begin
GetChar;
if Look = LF then
GetChar;
end;
end;
{β}
ΠΡΡΠ°Π²ΡΡΠ΅ ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ΄ΠΎΠ±Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅β¦ Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ» Π΅Π΅ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Match. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° Π²ΡΠ³Π»ΡΠ΄Π΅Π»Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
{β}
{ Main Program }
begin
Init;
repeat
Assignment;
NewLine;
until Look = '.';
end.
{β}
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° CR ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΡΡΠ΅Π·Π»Π° ΠΈ ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΠΎΡΠΈΠ±ΠΊΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π²Π½ΡΡΡΠΈ NewLine. ΠΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎβ¦ Π²ΡΠ΅ ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ ΡΠΈΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π±ΡΠ΄ΡΡ ΠΎΡΠ»ΠΎΠ²Π»Π΅Π½Ρ Π² Π½Π°ΡΠ°Π»Π΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ.
Π₯ΠΎΡΠΎΡΠΎ, ΡΠ΅ΠΉΡΠ°Ρ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎ Π½Π΅ Π΄Π°Π΅Ρ Π½Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ Π½Π°Ρ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° ΠΈΠ»ΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ . Π£Π²Π΅ΡΠ΅Π½ ΡΡΠΎ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°!
Π’ΠΎΠ³Π΄Π° Π΄Π°Π²Π°ΠΉΡΠ΅ Π·Π°Π²Π΅ΡΡΠΈΠΌ ΡΡΠΎΡ ΡΡΠΎΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΠΎΠ΄Π½ΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ², Ρ Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π½Π°ΠΊ "?" Π΄Π»Ρ Π·Π°ΠΌΠ΅Π½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ΅Π½ΠΈΡ, Π·Π½Π°ΠΊ "!" Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ», Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΠΎΡΠ»Π΅ Π½ΠΈΡ , ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΉ Β«ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²Β». ΠΠΎΡ ΡΡΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
{β}
{ Input Routine }
procedure Input;
begin
Match('?');
Read(Table[GetName]);
end;
{β}
{ Output Routine }
procedure Output;
begin
Match('!');
WriteLn(Table[GetName]);
end;
{β}
Π― ΠΏΠΎΠ»Π°Π³Π°Ρ ΠΎΠ½ΠΈ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΈΡΡΠ΄Π»ΠΈΠ²Ρβ¦ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈ Π²Π²ΠΎΠ΄Π΅β¦ Π½ΠΎ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ.
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π½ΠΈΠΆΠ΅. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΏΡΠΈΠ΅ΠΌ β ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΠ±ΠΎΡΠ° ΠΏΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅ΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ.
{β}
{ Main Program }
begin
Init;
repeat
case Look of
'?': Input;
'!': Output;
else Assignment;
end;
NewLine;
until Look = '.';
end.
{β}
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π°ΡΡΠΎΡΡΠ΅Π³ΠΎ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΠ½ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΊΡΠ΄Π½ΡΠΉ, Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Β«Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΌΠ°Π»ΡΡΠΈΠΊΒ». ΠΠ½ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΠΈ Π²ΠΈΠ΄Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² (ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·Π»ΠΈΡΠΈΡΡ ΠΈΡ !), 26 ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, Π² ΡΠ΅ΠΌ ΠΎΠ½ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΡΡΡΠ²Π°Π΅Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ β ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΈΠ΄Ρ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π€ΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ. Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΠΌΡ Π·Π΄Π΅ΡΡ Π½Π΅ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ, Π° ΡΡΠΎΠ±Ρ ΡΡΠΈΡΡΡΡ. Π£ΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΌΡ ΡΠ°ΡΠΊΡΠΎΠ΅ΠΌ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π³Π»Π°Π²Π΅, Π° ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΡΠΊΠΎΡΠ΅ ΠΏΠΎΡΠ»Π΅ Π½Π΅Π΅. Π― ΡΡΡΠ΅ΠΌΠ»ΡΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ Π΄Π°Π»ΡΡΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΎΡΡΠ°Π²ΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π² Π΅Π³ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ.
Π― Π½Π°Π΄Π΅ΡΡΡ, ΠΊ Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²Ρ ΡΠ±Π΅Π΄ΠΈΠ»ΠΈΡΡ, ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ² ΡΡΠΎ Π²Π΅ΡΠΈ ΠΎ ΠΊΠΎΡΠΎΡΡΡ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡΡ, ΠΊΠ°ΠΊ ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΡΠΎ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΡΠΎΠΊΠ΅. ΠΠ° ΡΡΠΎΡ ΡΠ°Π·, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π·Π°Ρ ΠΎΡΠ΅Π»ΠΎΡΡ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡ Ρ ΡΡΠΈΠΌΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ, Π±ΡΠ΄ΡΡΠ΅ ΠΌΠΎΠΈΠΌ Π³ΠΎΡΡΠ΅ΠΌβ¦ ΠΎΠ½ΠΈ Β«ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ ΠΊΠ°ΠΊ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΡΡΠ΄Π΅Π½ΡΠ°Β». Π£Π²ΠΈΠ΄ΠΈΠΌΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π·.
Π£ΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π ΡΠ΅ΡΡΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΡΡ Π³Π»Π°Π²Π°Ρ ΡΡΠΎΠΉ ΡΠ΅ΡΠΈΠΈ ΠΌΡ ΡΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠ²ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ. Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ Π½Π° Π½ΠΎΠ²ΠΎΠΉ ΠΈ Π·Π°Ρ Π²Π°ΡΡΠ²Π°ΡΡΠ΅ΠΉ ΡΠ΅ΠΌΠ΅: ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΈ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ IF.
ΠΡΠ° ΡΠ΅ΠΌΠ° Π΄ΠΎΡΠΎΠ³Π° Π΄Π»Ρ ΠΌΠΎΠ΅Π³ΠΎ ΡΠ΅ΡΠ΄ΡΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΎΠΉ. Π― ΠΈΠ³ΡΠ°Π» Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΌΡ Π΄Π΅Π»Π°Π»ΠΈ ΡΡΠΎ Π² ΡΡΠΎΠΉ ΡΠ΅ΡΠΈΠΈ, Π½ΠΎ Ρ Π²ΡΠ΅ ΠΆΠ΅ ΡΡΠ²ΡΡΠ²ΠΎΠ²Π°Π», ΡΡΠΎ Π½Π°Ρ ΠΎΠΆΡΡΡ Π΅ΡΠ΅ ΠΎΡΠ΅Π½Ρ Π΄Π°Π»Π΅ΠΊΠΎ ΠΎΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°. Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΈΠΌΠ΅ΡΡ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ, ΡΠΈΠΊΠ»Ρ, ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π²ΡΠ΅ ΡΠ°ΠΊΠΎΠ΅. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ ΡΠ°Π·Π΄Π΅Π»ΡΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΡΠΈΡ ΠΌΡΡΠ»Π΅ΠΉ. ΠΠ΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π°Π·Π°Π΄, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ» ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΏΠΈΡΠ°Π». ΠΠΎΠΎΠ±ΡΠ°Π·ΠΈΡΠ΅ ΠΌΠΎΠ΅ ΡΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ ΡΡΠΎ Π±ΡΠ»ΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠΆΠ΅ ΠΏΡΠΎΡΠ΅Π». Π― ΠΏΠΎΠΌΠ½Ρ ΠΏΠΎΠ΄ΡΠΌΠ°Π» Β«ΠΠΉ, ΡΡΠΎ ΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ!Β». ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΠΌ ΡΡΠΎΡ ΡΡΠΎΠΊ, Ρ Π³ΠΎΡΠΎΠ² ΠΏΠΎΡΠΏΠΎΡΠΈΡΡ, ΡΡΠΎ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π΄ΡΠΌΠ°ΡΡ ΡΠ°ΠΊ ΠΆΠ΅.
ΠΠ»Π°Π½
ΠΠ°Π»Π΅Π΅ ΠΌΡ ΡΠ½ΠΎΠ²Π° Π½Π°ΡΠ½Π΅ΠΌ Ρ ΠΏΡΡΡΠΎΠ³ΠΎ Cradle ΠΈ, ΠΊΠ°ΠΊ ΠΌΡ Π΄Π΅Π»Π°Π»ΠΈ ΡΠΆΠ΅ Π΄Π²Π°ΠΆΠ΄Ρ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ, Π±ΡΠ΄Π΅ΠΌ ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΎΠ΄Π½ΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΠΊ Ρ ΠΎΡΠΎΡΠΎ ΡΠ»ΡΠΆΠΈΠ»Π° Π½Π°ΠΌ Π΄ΠΎ Π½Π°ΡΡΠΎΡΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Β«ΠΊΠΎΠ΄Β» Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°Π±Π°Π²Π½ΡΠΌ Ρ "i" Π²ΠΌΠ΅ΡΡΠΎ IF, "w" Π²ΠΌΠ΅ΡΡΠΎ WHILE ΠΈ Ρ.Π΄. ΠΠΎ ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΌ ΡΠ·Π½Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΡΡΡ ΠΎ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π΅. ΠΠ΅ Π±ΠΎΠΉΡΠ΅ΡΡ... Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΡΡΠ΅ΡΠ΅ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅Π΅ Π½Π° Β«Π½Π°ΡΡΠΎΡΡΠΈΠΉΒ» ΠΊΠΎΠ΄.
Π― ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ Ρ ΠΎΡΡ, ΡΡΠΎΠ±Ρ ΠΌΡ ΡΠ²ΡΠ·Π»ΠΈ Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΠ°ΠΊΠΈΠΌΠΈ Π»ΠΈΠ±ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ ΠΊΡΠΎΠΌΠ΅ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠΉ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΡ ΡΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ. ΠΡ ΡΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΡ , ΡΠ°ΠΊ ΡΡΠΎ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π° ΡΠ°ΡΠΊΠ°ΡΡ ΡΡΠΎΡ Π»ΠΈΡΠ½ΠΈΠΉ Π±Π°Π³Π°ΠΆ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠΎΡΡΠΈΡ Π·Π°Π½ΡΡΠΈΠΉ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Ρ Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Β«otherΒ» Π΄Π»Ρ Π·Π°ΠΌΠ΅Π½Ρ Π½Π΅ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ². ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΠΊΠΎΠ΄ (ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π° Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ), ΡΠ°ΠΊ ΡΡΠΎ Π·Π° Π½Π΅ΠΈΠΌΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Ρ Π±ΡΠ΄Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ».