C динамичСскиС массивы: ДинамичСскоС Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти, динамичСскиС массивы

Dashboard с динамичСскими массивами | finalytics.pro

Π•Ρ‰Π΅ Π² Π½Π°Ρ‡Π°Π»Π΅ этого Π³ΠΎΠ΄Π° Π½Π° Π³Π»Π°Π·Π° попался интСрСсный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Dashboard-Π°, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² Tableau. Π Π°Π΄ΠΈ интСрСса Ρ€Π΅ΡˆΠΈΠ» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΡ‘ΠΌΡ‹ ΠΈ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ воспроизвСсти Π² Excel ΠΈ сдСлал Ρ„Π°ΠΉΠ» Π±Π΅Π· «стСроидов» – надстроСк Power Query & Pivot, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… послСднСС врСмя Π½Π΅ обходится практичСски Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΎΡ‚Ρ‡Π΅Ρ‚. Ну ΠΈ Π·Π°ΠΎΠ΄Π½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, получится Π»ΠΈ воспроизвСсти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΈΠ· ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ вСрсии.

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π» Π² Tableau, ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ:

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

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ‡Ρƒ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ динамичСских массивов. Π­Ρ‚ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² Excel 365 ΠΈ 2021 (Ρƒ Π½ΠΎΠ²ΠΈΠ·Π½Ρ‹ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΉ эффСкт: Ссли Ρ„Π°ΠΉΠ» Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ИМЯ, Π²Π°ΠΌ придСтся ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ Excel). Но, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΏΡ‹Ρ‚, Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΎΠ² вСрсия Excel всСгда самая свСТая.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ скачивайтС, смотритС ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ πŸ™‚

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Excel

ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² Excel Π½ΠΎΠ²Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» – Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ ΠΈ ссылки для динамичСских массивов. И Π·Π°ΠΎΠ΄Π½ΠΎ создали Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ, которая, ΠΊΠ°ΠΊ Π½Π°ΠΌ каТСтся, повлияСт Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½ΠΈΠΌΠΈ.Β Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ динамичСскиС массивы, Π½Π°Ρ‡Π½Ρ‘ΠΌ с Ρ„ΠΎΡ€ΠΌΡƒΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡ… ΡΠΎΠ·Π΄Π°ΡŽΡ‚. НапримСр, с Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ УНИК.

Π€ΠΎΡ€ΠΌΡƒΠ»Π° УНИК ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ значСния ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.

Π€ΠΎΡ€ΠΌΡƒΠ»Π° вводится Π² ΠΎΠ΄Π½Ρƒ ячСйку ΠΈ создаСт столбСц, ячСйки ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ автоматичСски.

Π£ созданного динамичСского spill-массива* Π½Π΅Ρ‚ фиксированного Ρ€Π°Π·ΠΌΠ΅Ρ€Π° – столбСц автоматичСски мСняСтся ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с исходными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.
ДинамичСскиС массивы ΠΏΠΎΠ΄ΡΠ²Π΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ синСй Ρ€Π°ΠΌΠΊΠΎΠΉ ΠΏΡ€ΠΈ ΠΈΡ… Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΌΡ‹ΡˆΠΊΠΎΠΉ.

* ΠΎΡ‚ spill β€” ΠΏΡ€ΠΎΠ»ΠΈΠ²Π°Ρ‚ΡŒΡΡ

ΠšΡ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ», Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏΡ‹ ссылок Π² Excel – Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ – Ρ‚Π΅ΠΌΠ° для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² ΠΈ всС Π΅Ρ‘ Π·Π½Π°ΡŽΡ‚? Π Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ссылок для динамичСских массивов.

Π—Π°ΠΎΠ΄Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΎΡΡ‚Π°Π»ΡŒΠ³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ познакомились с Ρ‚Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎ Ρ‚ΠΈΠΏΡ‹ ссылок Π² Excel =)

Если Π² Ρ„Π°ΠΉΠ»Π΅ Π΅ΡΡ‚ΡŒ динамичСский массив ΠΈΠ»ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках { }, Ρ‚ΠΎ Π½Π° Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ссылку.

Π’ ΠΊΠΎΠ½Ρ†Π΅ Ρ‚Π°ΠΊΠΎΠΉ ссылки Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΎΠΊ # – Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠ°.

Π’ Ρ†Π΅Π»ΠΎΠΌ, Ρƒ ссылок Π½Π° динамичСскиС массивы Π»ΠΎΠ³ΠΈΠΊΠ° ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° ссылки Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках { } с Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ Ctrl+Shift+Enter. Но, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ², ссылку Π½Π° массив Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ΄Π½Ρƒ ячСйку, Π° Π΅Ρ‰Ρ‘ массивы ΡƒΠΌΠ΅ΡŽΡ‚ сами автоматичСски Β«ΠΏΡ€ΠΎΡ‚ΡΠ³ΠΈΠ²Π°Ρ‚ΡŒΡΡΒ».

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½

{ = A1:A3 }

ДинамичСский массив

= A1#

Бсылки Π½Π° динамичСскиС массивы ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅, Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π·Π½Π°Ρ‡ΠΊΠΈ $. И ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π² вычислСниях с Β«ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈΒ» Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°ΠΌΠΈ. НиТС нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² примСнСния Ρ‚Π°ΠΊΠΈΡ… ссылок с Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°ΠΌΠΈ ранТирования, транспонирования, подсчСта Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚ΠΎΠΆΠ΅ становится ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ быстрСС.

Π Π°Π½ΠΆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

= РАНГ. Π Π’( A2#; A2# )

ΠŸΠΎΠ΄ΡΡ‡Ρ‘Ρ‚ количСства нСпустых ячССк

= БЧЁВЗ( A2# )

ВранспонированиС

=ВРАНБП( A1# )

Π’Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ списки

Π² мСню Π”Π°Π½Π½Ρ‹Π΅ β†’ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…

На сСгодняшний дСнь Π² Excel сущСствуСт восСмь Ρ„ΠΎΡ€ΠΌΡƒΠ» для динамичСских массивов. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π² этот список Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ ПРОБМОВРX ΠΈ ΠŸΠžΠ˜Π‘ΠšΠŸΠžΠ—X. Π€ΠΎΡ€ΠΌΡƒΠ»Π° Let Ρ‚Π°ΠΊΠΆΠ΅ Β«Π·Π°Ρ‚ΠΎΡ‡Π΅Π½Π°Β» для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами. И Π΅Ρ‰Ρ‘ Ρ‚Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ нСявного пСрСсСчСния @ (ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅). ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ массивам ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π½ΠΎΠ²Ρ‹ΠΉ Π²ΠΈΠ΄ ошибки β€” #ΠŸΠ•Π Π•ΠΠžΠ‘! ΠΈΠ»ΠΈ #SPILL!

ЀормулаДля Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Π°
Π£ΠΠ˜ΠšΠ˜Π·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ список ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
Π€Π˜Π›Π¬Π’Π Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ условиям
Π‘ΠžΠ Π’Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ столбцу (строкС)
Π‘ΠžΠ Π’ΠŸΠžΠ‘ΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ массивС
Π‘Π›ΠœΠΠ‘Π‘Π˜Π’Π“Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡ массива случайных чисСл
ΠŸΠžΠ‘Π›Π•Π”Π“Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡ массива ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл
ПРОБМОВРXΠ‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΎΠ³ Π’ΠŸΠ 
ΠŸΠžΠ˜Π‘ΠšΠŸΠžΠ—XΠ‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΎΠ³ ΠŸΠžΠ˜Π‘ΠšΠŸΠžΠ—

ΠŸΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ динамичСскиС массивы Π±ΡƒΠ΄ΡƒΡ‚ всё Ρ‡Π°Ρ‰Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² Excel. Β  Нам с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ ΠΎΠ½ΠΈ показались классными – Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° вводится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ΄Π½Ρƒ ячСйку, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π½Π°Π΄ΠΎ Β«ΠΏΡ€ΠΎΡ‚ΡΠ³ΠΈΠ²Π°Ρ‚ΡŒΒ», ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ массив обновляСтся сам, Π΄Π°ΠΆΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒΒ» Π½Π΅ Π½Π°Π΄ΠΎ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ. На этот Ρ€Π°Π· Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΠ»ΠΈΡΡŒ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΡ… πŸ˜‰

Π’Π΅Π³ΠΈ:Β ExcelΠ­ΠΊΠΎΠ½ΠΎΠΌΠΈΠΊΠ° ΠΈ финансы

Автор: Бтанислав БалостСй

Π€ΠΎΡ€ΠΌΡƒΠ»Ρ‹ динамичСского массива Π² Excel, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ динамичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Excel для Microsoft 365 Π•Ρ‰Π΅…МСньшС

Π’ сСнтябрС 2018 Π³. ΠΌΡ‹ прСдставили Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ динамичСского массива. Π€ΠΎΡ€ΠΌΡƒΠ»Ρ‹ динамичСского массива ΠΌΠΎΠ³ΡƒΡ‚ автоматичСски Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈΠ»ΠΈ «ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰Π°Ρ‚ΡŒ» Π² сосСдниС пустыС ячСйки, устраняя Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°Ρ… массива CTRL+SHIFT+Π’Π’ΠžΠ” (CSE). ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΊΠ½ΠΈΠ³ΠΈ, содСрТащСго Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ динамичСского массива Π² Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½Π΅ΠΉ вСрсии Excel, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ аспСкты совмСстимости.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:Β ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„ΠΎΡ€ΠΌΡƒΠ» динамичСского массива Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° для подписчиков Microsoft 365 Π² Current Channel Π² январС 2020 Π³.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ свСдСния

  • ΠŸΡ€ΠΈ написании Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ Π² Excel с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ динамичСских массивов ΠΎΠ½Π° опрСдСляСт, ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½Π° Π² настоящСС врСмя Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅). Если ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΌΡ‹ сохраняСм Π΅Π³ΠΎ ΠΊΠ°ΠΊ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ динамичСского массива, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… вСрсиях Excel ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ°Ρ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° CSE.Β 

  • НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ MUNIT, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π² Π²ΠΈΠ΄Π΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ динамичСского массива ΠΈ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ CSE. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ массива CSE Π²Π΅Π΄ΡƒΡ‚ сСбя ΠΎΡ‡Π΅Π½ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°ΠΌ динамичСского массива. ОсновноС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ сброса.

    Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ этих Π΄Π²ΡƒΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ » Π€ΠΎΡ€ΠΌΡƒΠ»Ρ‹ динамичСского массива ΠΈ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ массива CSE».

ДинамичСский массив

Π£ΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ°Ρ CSE

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

    Β 

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния

Π’Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ вопрос спСциалисту Excel Tech Community ΠΈΠ»ΠΈ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π² сообщСствС Answers community.

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅

Ѐункция Π€Π˜Π›Π¬Π’Π 

Ѐункция Π‘Π›Π£Π§ΠœΠΠ‘Π‘Π˜Π’

Ѐункция ΠŸΠžΠ‘Π›Π•Π”ΠžΠ’

Ѐункция БОРВ

Ѐункция БОРВПО

Ѐункция УНИК

Ошибки #ΠŸΠ•Π Π•ΠΠžΠ‘! Π² Excel

ПовСдСниС Ρ€Π°Π·Π»ΠΈΡ‚ΠΎΠ³ΠΎ массива

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ нСявного пСрСсСчСния: @

Как динамичСски Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ массивы Π² C++

Arham Qayyum

БСсплатный курс собСсСдования ΠΏΠΎ систСмному ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ

МногиС ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Ρ‹ ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΡΡŽΡ‚ΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ½ΠΈΠΆΠ°ΡŽΡ‚ΡΡ Π² Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π΅ ΠΈΠ·-Π·Π° ΠΏΠ»ΠΎΡ…ΠΎΠΉ успСваСмости Π½Π° собСсСдовании ΠΏΠΎ систСмному ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ Π½Π° собСсСдованиях ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ систСм ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² 2023Β Π³ΠΎΠ΄Ρƒ благодаря этому популярному бСсплатному курсу.

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² C++

ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для хранСния Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ значСния Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ вмСсто создания Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ значСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ массив cars объявлСн Π² стСкС фиксированного Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 3 . Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ инициализируСтся значСниями: Β«Π“ΠΎΡ€ΠΎΠ΄Β» , Β«ΠšΠΎΡ€ΠΎΠ»Π»Π°Β» ΠΈ Β«Π’ΠΈΡ‚Ρ†Β» соотвСтствСнно.

 

#include

#include

using namespace std;

int main() {

string cars[3] = {"Π“ΠΎΡ€ΠΎΠ΄", "ΠšΠΎΡ€ΠΎΠ»Π»Π°", "Π’ΠΈΡ‚Ρ†"};

для (Ρ†Π΅Π»ΠΎΠ΅ я = 0; я < 3; я ++) {

cout << "Car " << i << ": " << cars[i] << endl;

}

Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;

}

ДинамичСски выдСляСмыС массивы

ΠšΡƒΡ‡Π° позволяСт Π½Π°ΠΌ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π²ΠΎ врСмя выполнСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ динамичСски Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹Π΅ массивы ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ.

Бинтаксис

 Ρ‚ΠΈΠΏ_Π΄Π°Π½Π½Ρ‹Ρ… * имя_ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ = Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ_Π΄Π°Π½Π½Ρ‹Ρ…[Ρ€Π°Π·ΠΌΠ΅Ρ€];
 

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ синтаксис ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² стСкС, имя_ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ . Π­Ρ‚ΠΎ пСрСмСнная-ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ‚ * послС data_type . ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово new выдСляСт ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² ΠΊΡƒΡ‡Π΅ для ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… data_type ΠΈ size .

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива бСрСтся ΠΊΠ°ΠΊ Π²Π²ΠΎΠ΄ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ сохраняСтся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ . Π—Π°Ρ‚Π΅ΠΌ Π² строкС 9 ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° массив int ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ arr ΠΈ Π΅ΠΌΡƒ присваиваСтся int 9.0018 массив Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ . ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» for сохраняСт ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π΄Π΅ΡΡΡ‚ΡŒ, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ†ΠΈΠΊΠ» for

Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ содСрТимоС массива.

 

#include

с использованиСм пространства ΠΈΠΌΠ΅Π½ std;

ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» основной () {

цСлая Π΄Π»ΠΈΠ½Π°;

cin >> Π΄Π»ΠΈΠ½Π°;

int * arr = new int[length];

for (int i = 0; i < Π΄Π»ΠΈΠ½Π°; i++) {

ΠΎΠ±Ρ€[i] = (i + 1) * 10;

}

for (int i = 0; i < Π΄Π»ΠΈΠ½Π°; i++) {

cout << arr[i] << " " << endl;

}

Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;

}

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π½ΠΈΠΆΠ΅

ДинамичСскоС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ массивов

Для удалСния динамичСского массива ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ delete ΠΈΠ»ΠΈ delete[] . ΠžΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ‚ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈΠ· ΠΊΡƒΡ‡ΠΈ. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово delete[] удаляСт массив, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ динамичСски Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΉ массив, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ delete[] .

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Если Π² ΠΊΡƒΡ‡Π΅ объявлСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ элСмСнт, вмСсто Π½Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ delete (Π±Π΅Π· ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок [] ).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ являСтся ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ вСрсиСй ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ освобоТдаСт ΠΏΠ°ΠΌΡΡ‚ΡŒ arr Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

 

#include

с использованиСм пространства ΠΈΠΌΠ΅Π½ std;

ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» основной () {

цСлая Π΄Π»ΠΈΠ½Π°;

cin >> Π΄Π»ΠΈΠ½Π°;

int * arr = new int[length];

for (int i = 0; i < Π΄Π»ΠΈΠ½Π°; i++) {

ΠΎΠ±Ρ€[i] = (i + 1) * 10;

}

for (int i = 0; i < Π΄Π»ΠΈΠ½Π°; i++) {

cout << arr[i] << " " << endl;

}

ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ[] ΠΎΠ±Ρ€;

Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;

}

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Π²ΠΎΠ΄ Π½ΠΈΠΆΠ΅

БвязанныС Ρ‚Π΅Π³ΠΈ

C ++

ΠœΠ°ΡΡΠΈΠ²Ρ‹

Arham Qayyum

ЛицСнзия: Creative Commons-Attribution НСкоммСрка.

ВрСмСнная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ динамичСского массива

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ эту ΠΊΠ½ΠΈΠ³Ρƒ -> Π—Π°Π΄Π°Ρ‡ΠΈ Π½Π° массив: для ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ ΠΈ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ программирования

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ объяснили Π°Π½Π°Π»ΠΈΠ· слоТности динамичСского массива , Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ ΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ динамичСского массива.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ :

  1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² динамичСский массив
  2. ВрСмСнная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ динамичСского массива
  3. ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π΅Π½Π½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ динамичСского массива

НачнСм с Π°Π½Π°Π»ΠΈΠ·Π° слоТности динамичСского массива.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Dynamic Array, ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с массивом Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ фиксированный Ρ€Π°Π·ΠΌΠ΅Ρ€. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅ Π½Π΅ Π·Π½Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ связанный список.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° со связанным списком Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌ доступС ΠΊ памяти. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π° сцСну Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Dynamic Array, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ вСрсиСй Array.

ДинамичСский массив Ρ‚Π°ΠΊΠΆΠ΅ называСтся ArrayList Π² Java ΠΈ Vector Π² C++.

Π’ динамичСском массивС Ρ€Π°Π·ΠΌΠ΅Ρ€ массива ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. По сути, Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ Π² Dynamic Array, β€” это создаСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ коррСктируСтся Π² соотвСтствии с Π²Π²ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

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

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° всС элСмСнты ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ массива ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Π½ΠΎΠ²Ρ‹ΠΉ массив, Π° Π·Π°Ρ‚Π΅ΠΌ добавляСтся Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт. Π­Ρ‚ΠΎΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ массив являСтся динамичСским массивом.

ΠŸΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ массива Π·Π°Ρ‚Π΅ΠΌ освобоТдаСтся/распрСдСляСтся.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива увСличиваСтся Π²Π΄Π²ΠΎΠ΅, Π½ΠΎ это ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ зависит ΠΎΡ‚ ситуации ΠΈΠ»ΠΈ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² динамичСском массивС:

  • ΠœΠ΅Ρ‚ΠΎΠ΄ измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π°
  • ΠœΠ΅Ρ‚ΠΎΠ΄ добавлСния (с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ индСксу)
  • ΠœΠ΅Ρ‚ΠΎΠ΄ удалСния (с ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ индСксу)

Когда ΠΌΡ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива Π½Π° 1, Ρ‚ΠΎ элСмСнты ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Π² Π½ΠΎΠ²Ρ‹ΠΉ массив, Π° Π·Π°Ρ‚Π΅ΠΌ добавляСтся Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт, это Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ O(N).

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

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, опСрация измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π² срСднСм O(1) ΠΈ O(N) Π² Ρ…ΡƒΠ΄ΡˆΠ΅ΠΌ случаС.

Π›ΠΎΠ³ΠΈΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ вставки ΠΈ удалСния такая ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² структурС Π΄Π°Π½Π½Ρ‹Ρ… массива. ЕдинствСнным Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ шагом Π² динамичСском массивС являСтся ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ слСдуСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ:

  • Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт, Π½ΠΎ вСсь массив Π·Π°ΠΏΠΎΠ»Π½Π΅Π½, Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива удваиваСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.
  • Если элСмСнт ΡƒΠ΄Π°Π»Π΅Π½, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива Π²Π΄Π²ΠΎΠ΅, Ссли это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Ρƒ ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° сводная Ρ‚Π°Π±Π»ΠΈΡ†Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ слоТности Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² динамичСском массивС:

опСрация динамичСского массива Π₯ΡƒΠ΄ΡˆΠΈΠΉ случай Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ ящик Π›ΡƒΡ‡ΡˆΠΈΠΉ Ρ‡Π΅Ρ…ΠΎΠ»
Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ О(Н) О(Н) О(Н)
Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ О(1) О(1) О(1)
Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ индСксу О(Н) О(Н) О(1)
Π£Π΄Π°Π»ΠΈΡ‚ΡŒ О(1) О(1) О(1)
Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠΎ индСксу О(Н) О(Н) О(1)

Π³Π΄Π΅:

  • N = количСство элСмСнтов Π² массивС
  • ВрСмя чтСния Π±Π»ΠΎΠΊΠ° ΠΈΠ· N элСмСнтов = O(√N) Π½Π΅ учитываСтся.

Если ΠΌΡ‹ рассмотрим врСмя чтСния Π±Π»ΠΎΠΊΠ° ΠΈΠ· N элСмСнтов, Ρ€Π°Π²Π½ΠΎΠ΅ O(√N), Ρ‚ΠΎ врСмСнная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ составит:

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ динамичСского массива Π₯ΡƒΠ΄ΡˆΠΈΠΉ случай Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ ящик Π›ΡƒΡ‡ΡˆΠΈΠΉ Ρ‡Π΅Ρ…ΠΎΠ»
Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ О(Н + √Н) О(Н + √Н) О(Н + √Н)
Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ О(√Н) О(√Н) О(√Н)
Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ индСксу О(Н+√Н) О(Н+√Н) О(√Н)
Π£Π΄Π°Π»ΠΈΡ‚ΡŒ О(√Н) О(√Н) О(√Н)
Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠΎ индСксу О(Н+√Н) О(Н+√Н) О(√Н)

ОбъСмная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ всСх ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² динамичСском массивС Ρ€Π°Π²Π½Π° O(1).

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ resize(), ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ динамичСского массива, Π½ΠΎ ΠΏΡ€ΠΈ этом Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ памяти.

ΠžΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

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

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