🟑 Жёлтая Π΄ΠΎΡ€ΠΎΠΆΠΊΠ°

🟑 Жёлтая Π΄ΠΎΡ€ΠΎΠΆΠΊΠ° #

Если Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ этот Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” Π·Π½Π°Ρ‡ΠΈΡ‚, Π²Π°ΠΌ прСдстоит Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° C# компилятор своСго языка программирования с Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΊΠΎΠ΄Π° MSIL для .NET

  • ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ создаёт исполняСмый Ρ„Π°ΠΉΠ»
  • Π’Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ компилятор Π½Π° C#
  • ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ DLL (.NET-сборку) для выполнСния Π² срСдС .NET

НиТС описаны ΠΎΠ±Ρ‰ΠΈΠ΅ трСбования ΠΊ этому Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρƒ.

ΠŸΠΎΠΌΠΎΡ‰ΡŒ ИИ-ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ #

  • Π’Ρ‹ Π΅Π΄Π²Π° Π»ΠΈ Π½Π°ΠΉΠ΄Ρ‘Ρ‚Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ источник, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ созданиС своСго компилятора с Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΊΠΎΠ΄Π° MSIL для соврСмСнного .NET
  • ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с Π»Π΅ΠΊΡ†ΠΈΠΉ, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΎΡ‚ прСподаватСля ΠΈ Π·Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ вопросы ИИ-модСлям

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, доступных Ρ‡Π΅Ρ€Π΅Π· Ρ‡Π°Ρ‚:

Π€Π°Π·Ρ‹ компиляции #

Начиная со 2-ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°Π·Ρ‹ компиляции:

ЀазаБпособ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ
ЛСксичСский анализРукописный Ρ€Π°Π·Π±ΠΎΡ€ Ρ‚ΠΎΠΊΠ΅Π½Π° Π·Π° Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠΌ ΠΏΠΎ запросу парсСра
БинтаксичСский анализРСкурсивный спуск с построСниСм AST ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
БСмантичСский Π°Π½Π°Π»ΠΈΠ·ΠžΠ±Ρ…ΠΎΠ΄Ρ‹ AST с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ шаблона Visitor для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ ΠΈ заполнСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² AST
ГСнСрация MSILΠžΠ±Ρ…ΠΎΠ΄ AST с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ шаблона Visitor для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ списка инструкций
Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ AssemblyΠ‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ DLL-Ρ„Π°ΠΉΠ»Π° с MSIL с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ PersistedAssemblyBuilder

ВрСбования ΠΊ языку программирования #

НиТС пСрСчислСн список эпиков ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ языка с трСмя ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ:

  1. ΠžΡ†Π΅Π½ΠΊΠ° 3 ΠΈ Π²Ρ‹ΡˆΠ΅ β€” функция ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π° Π½Π° ΠΎΡ†Π΅Π½ΠΊΡƒ 3 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅, Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ сдСлана Π²ΠΎ 2-ΠΉ Π»ΠΈΠ±ΠΎ Π² 3-ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ
  2. ΠžΡ†Π΅Π½ΠΊΠ° 4 ΠΈ Π²Ρ‹ΡˆΠ΅ β€” функция ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π° Π½Π° ΠΎΡ†Π΅Π½ΠΊΡƒ 4 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅, Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ сдСлана Π² 4-ΠΉ Π»ΠΈΠ±ΠΎ Π² 5-ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ
  3. ΠžΡ†Π΅Π½ΠΊΠ° 5 β€” функция ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π° Π½Π° ΠΎΡ†Π΅Π½ΠΊΡƒ 5 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅, Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ сдСлана Π² 6-ΠΉ ΠΈΠ»ΠΈ 7-ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ

Π­ΠΏΠΈΠΊ β„–1. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ (ΠΎΡ†Π΅Π½ΠΊΠ° 3 ΠΈ Π²Ρ‹ΡˆΠ΅) #

Π’Ρ‹ Π΄Π΅Π»ΠΈΡ‚Π΅ этот эпик Π½Π° Π΄Π²Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ (2-я ΠΈ 3-я ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ). Бпособ дСлСния Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ сами.

1. Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ трСбования #

Π―Π·Ρ‹ΠΊ программирования Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΈ статичСски Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π°

  • Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ главная функция, ΠΊΠ°ΠΊ Π² C/C++
  • Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ основной Π±Π»ΠΎΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠ°ΠΊ Π² Pascal

2. Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… #

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ для своСго языка Ρ‚Ρ€ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹:

  1. Π¦Π΅Π»Ρ‹Π΅ числа, числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΈ строки
  2. Π¦Π΅Π»Ρ‹Π΅ числа, символы ΠΈ строки
  3. Π¦Π΅Π»Ρ‹Π΅ числа, Π±ΡƒΠ»Π΅Π² Ρ‚ΠΈΠΏ ΠΈ строки
  4. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹, Π±ΡƒΠ»Π΅Π² Ρ‚ΠΈΠΏ ΠΈ строки
  5. Π¦Π΅Π»Ρ‹Π΅ числа со Π·Π½Π°ΠΊΠΎΠΌ, Ρ†Π΅Π»Ρ‹Π΅ числа Π±Π΅Π· Π·Π½Π°ΠΊΠ° ΠΈ строки

Если Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π±ΡƒΠ»Π΅Π²Π° Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ ΡƒΡ‡Ρ‚ΠΈΡ‚Π΅: Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ потрСбуСтся лишь Π²ΠΎ 2-ΠΌ эпикС.

3. Π’Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄ #

  • Π•ΡΡ‚ΡŒ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ всСх Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…
  • Π•ΡΡ‚ΡŒ срСдства для Π²Ρ‹Π²ΠΎΠ΄Π° Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² всСх Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…
  • МоТно Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ выполняСтся ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ

4. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ числами #

Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ числовыС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ….

  • Π•ΡΡ‚ΡŒ арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ числами
  • ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ скобки для измСнСния ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°
  • ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ поддСрТиваСтся Π°ΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

5. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ строками #

Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ строковый Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ….

  • Π•ΡΡ‚ΡŒ срСдства для ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ, Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈ измСрСния Π΄Π»ΠΈΠ½Ρ‹ строк
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π²Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄ строк

6. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ #

  • МоТно ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅
  • МоТно ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ
  • Описана сСмантика ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, присваиваний ΠΈ областСй видимости

ДопускаСтся Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π° Π΄Π²Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ:

  • измСняСмыС (mutable) β€” это ΠΈ Π΅ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅
  • нСизмСняСмыС (immutable) β€” ΠΈΡ… допускаСтся Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ константами

Π­ΠΏΠΈΠΊ β„–2. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠ° управлСния (ΠΎΡ†Π΅Π½ΠΊΠ° 4 ΠΈ Π²Ρ‹ΡˆΠ΅) #

1. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ #

  • Π•ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΈ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
  • Для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ доступна инструкция return
  • Π‘Π΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ описана β€” Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ значСния

2. ЛогичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ #

  • Π•ΡΡ‚ΡŒ логичСскиС Β«ΠΈΒ», Β«ΠΈΠ»ΠΈΒ», Β«Π½Π΅Β»
  • ЛогичСскиС Β«ΠΈΒ», Β«ΠΈΠ»ΠΈΒ» Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ ΠΏΠΎ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ схСмС (short-circuit evaluation)
  • Если Π΅ΡΡ‚ΡŒ Π±ΡƒΠ»Π΅Π² Ρ‚ΠΈΠΏ, Ρ‚ΠΎ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Π½ΠΈΠΌ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с цСлочислСнным Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ….
  • Если Π΅ΡΡ‚ΡŒ Π±ΡƒΠ»Π΅Π² Ρ‚ΠΈΠΏ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ для Π½Π΅Π³ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, true / false)

3. ВСтвлСния #

  • Π•ΡΡ‚ΡŒ вСтвлСния, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ if..then..else
  • Π‘Π΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠ° Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΉ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ описана

4. Π¦ΠΈΠΊΠ»Ρ‹ #

  • Π•ΡΡ‚ΡŒ Ρ†ΠΈΠΊΠ»Ρ‹, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ while
  • Π‘Π΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠ° Ρ†ΠΈΠΊΠ»ΠΎΠ² Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ описана

Π­ΠΏΠΈΠΊ β„–3. БоставныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… (ΠΎΡ†Π΅Π½ΠΊΠ° 5) #

1. ΠœΠ°ΡΡΠΈΠ²Ρ‹ #

  • МоТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив ΠΈΠ· любого Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…
  • Π•ΡΡ‚ΡŒ Π»ΠΈΡ‚Π΅Ρ€Π°Π» для создания массива ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° элСмСнтов, прСдставлСнных Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ вычислСния Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ
  • Π•ΡΡ‚ΡŒ опСрация доступа ΠΊ элСмСнту массива Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ Π½Π° запись Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки: myArray[index]

2. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ #

  • МоТно ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚ΠΈΠΏ структуры с Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ полями
  • Π•ΡΡ‚ΡŒ Π»ΠΈΡ‚Π΅Ρ€Π°Π» для создания структуры ΠΏΡƒΡ‚Ρ‘ΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ всСх Π΅Ρ‘ ΠΏΠΎΠ»Π΅ΠΉ значСниями
  • Π•ΡΡ‚ΡŒ опСрация доступа ΠΊ полю структуры Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ Π½Π° запись, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: myObject.field ΠΈΠ»ΠΈ myObject->field

ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ #

По ТСланию ΠΌΠΎΠΆΠ½ΠΎ внСсти свои ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

  • Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ for-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» для ΠΎΠ±Ρ…ΠΎΠ΄Π° массива
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы

Π­Ρ‚ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½Ρ‹ бонусными Π±Π°Π»Π»Π°ΠΌΠΈ, Ссли ΠΎΠ½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ качСствСнно ΠΈ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.