Π’Π΅ΠΊΡ‚ΠΎΡ€ c: Компания «Π’Π΅ΠΊΡ‚ΠΎΡ€ связи» — ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ΡƒΡŽΡ‰ΠΈΠ΅ для ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°, Ρ€Π΅ΠΌΠΎΠ½Ρ‚Π° ΠΈ ΠΌΠΎΠ½Ρ‚Π°ΠΆΠ° Π»ΠΈΠ½ΠΈΠΉ связи, Π’ΠžΠ›Π‘

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

Аналог std::vector ΠΈΠ· C++11 Π½Π° чистом C89 ΠΈ ΠΊΠ°ΠΊ я Π΅Π³ΠΎ писал / Π₯Π°Π±Ρ€


Π–ΠΈΠ»ΠΎΠΉ массив людСй. НСт, ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΠΎ.

Π₯ΠΎΠ»ΠΈΠ²Π°Ρ€Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ цСнитСлями Π‘ΠΈ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Ρ€ΠΆΠ΅Π½Ρ†Π°ΠΌΠΈ Π΅Π³ΠΎ ΡƒΠ±Π»ΡŽΠ΄ΠΊΠ° сына Π² Π»ΠΈΡ†Π΅ C++ Π½Π°Ρ‡Π°Π»ΠΈΡΡŒ Π΅Ρ‰Ρ‘ Π΄ΠΎ ΠΌΠΎΠ΅Π³ΠΎ роТдСния ΠΈ прСкратятся Ρ€Π°Π·Π²Π΅ Ρ‡Ρ‚ΠΎ послС смСрти ΠΎΠ±ΠΎΠΈΡ… этих языков ΠΈ мСня Π·Π°ΠΎΠ΄Π½ΠΎ.

АдСпты Π²Π΅Π»ΠΈΠΊΠΎΠ³ΠΎ творСния ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½Π°-Π ΠΈΡ‚Ρ‡ΠΈ Π΄ΠΎ послСднСй сСкунды Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ дня Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΡΠΏΠ΅ΡˆΠ½ΠΈΠΊΠ°ΠΌ Бтрауструпа аксиомы ΠΏΡ€ΠΎ Π²Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ Π‘ΠΈ ΠΈ Π΅Π³ΠΎ Π½Π΅Π²Π΅Ρ€ΠΎΡΡ‚Π½ΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ.
Π’Π΅ Π² ΠΎΡ‚Π²Π΅Ρ‚ ΠΏΠΎ-свойски ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽΡ‚ ΠΈΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΡ€Π°Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌΡƒ дню, вСдь ΠΎΠ½ Π²ΠΎΡ‚-Π²ΠΎΡ‚ окаТСтся послСдним – Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ Π²Π΅ΠΊΡƒ кроссплатформСнный ассСмблСр Π½Π΅ Π½ΡƒΠΆΠ΅Π½.
Распаляясь, сторонники Π‘ΠΈ приводят ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ Π΄Π°Π²Π½ΠΎ ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΡ… Ρ‡Π΅Ρ€Π΅Π· Π³ΠΎΠ»ΠΎΠ²Ρƒ Π½Π°Π²Ρ‹Π»Π΅Ρ‚ тСзисов «ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π‘ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ C++», ΠΏΡ€ΠΈ этом ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· подчёркивая, Ρ‡Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ всС достоинства ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ растСрял Π΅Ρ‰Ρ‘ Π±ΡƒΠ΄ΡƒΡ‡ΠΈ Π² отцовской ΡƒΡ‚Ρ€ΠΎΠ±Π΅, ΠΏΠΎΠΏΡƒΡ‚Π½ΠΎ ΡƒΡ‚Ρ€Π°Ρ‚ΠΈΠ² Π»ΠΈΠΊ чСловСчСский.
ОбвиняСмая сторона Π² ΠΎΠ±ΠΈΠ΄Π΅ Π½Π΅ остаётся ΠΈ…

Π° хотя постойтС, ΠΎ Ρ‡Ρ‘ΠΌ это я.

Π― люблю Π‘ΠΈ, ΡƒΠ²Π°ΠΆΠ°ΡŽ C++ ΠΈ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡˆΡƒ Ρ…ΠΎΠ»ΠΈΠ²Π°Ρ€Ρ‹ (чСстно). ΠŸΡ€ΠΈ этом я осознаю, Ρ‡Ρ‚ΠΎ Π² Π‘ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ, ΠΈ яркий Ρ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ – отсутствиС ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π’ C++ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ STL ΠΈ свойства самого языка. На ΠΌΠΎΠΉ студСнчСский взгляд, здСсь особо отличаСтся всСм Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΉ

std::vector. Если стало интСрСсно, ΠΊΠ°ΠΊ я Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» Π΅Π³ΠΎ Π°Π½Π°Π»ΠΎΠ³ срСдствами C89 – ΠΏΡ€ΠΎΡˆΡƒ ΠΏΠΎΠ΄ ΠΊΠ°Ρ‚.


Π’ΠΎΠΎΠ±Ρ‰Π΅, с Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ навСрняка сталкиваСтся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ, ΠΊΡ‚ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° Π‘ΠΈ с языка Ρ‡ΡƒΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ высокого уровня (Π² ΠΌΠΎΡ‘ΠΌ случаС это Π±Ρ‹Π»ΠΈ FreeBASIC ΠΈ Free Pascal). ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° отсутствия Π΄Π°Π²Π½ΠΎ ΠΏΠΎΠ»ΡŽΠ±ΠΈΠ²ΡˆΠΈΡ…ΡΡ Redim ΠΈ SetLength() Π²Π½Π°Ρ‡Π°Π»Π΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ «Π² Π»ΠΎΠ± ΠΊΡƒΠ²Π°Π»Π΄ΠΎΠΉ» ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ realloc(). ΠŸΠΎΡ‚ΠΎΠΌ приходят знания Π² ΠΎΠ±Π½ΠΈΠΌΠΊΡƒ с ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ, ΠΈ вмСсто этого ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΈΠΉ самописный динамичСский массив.

Однако Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠΎΠ΄ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ взятого Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Ρ€Π°Π·ΠΎΠΌ всё сильнСС Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

Π’ΡƒΠ΄Π° ΠΆΠ΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ – использованиС ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅Π΅ Ρ€Π°Π·Ρ‹ΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠΎΠ². А Π·Π°Ρ‚Π΅ΠΌ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² Ρ€ΡƒΠΊΠΈ C++ (ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΎΠ³) ΠΈ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ Π²ΠΈΠ΄ΠΈΡ‚ STL (ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΎΠ³). Π”Π°Π»ΡŒΡˆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² любом Π±ΡƒΠ»ΡŒΠ²Π°Ρ€Π½ΠΎΠΌ Ρ€ΠΎΠΌΠ°Π½Π΅.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π²Π»ΡŽΠ±Π»ΡΡŽΡ‚ΡΡ Π² Ρ‚Π΅Π»ΠΎ, Π½ΠΎ Π»ΡŽΠ±ΡΡ‚ Π΄ΡƒΡˆΡƒ. Если Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя Π±Ρ‹Π» Π² счастливых ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ… с Π‘ΠΈ, Ссли Π² Π½ΠΈΡ… ΡƒΠΆΠ΅ появились ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, Ρ‚ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ Π²ΠΏΠΎΠ»Π½Π΅ СстСствСнно Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ своСй любви Π»ΡƒΡ‡ΡˆΠ΅ – ΠΊ обоюдной пользС. А Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ Π² ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠΈ всСгда Π½Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ориСнтируСтся.

ΠšΠΎΡ€ΠΎΡ‡Π΅ говоря, это история ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ любовь ΠΊ Π‘ΠΈ заставила мСня привнСсти Π² Π½Π΅Ρ‘ (Π½Π΅Π³ΠΎ?) прСсловутый std::vector – Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ Π½Ρ€Π°Π²ΠΈΠ»ΠΎΡΡŒ Π² C++, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ?) я Π² ΠΎΠ΄Π½ΠΎ врСмя увлёкся.


Π£ΠΆΠ΅ Π±Ρ‹Π»ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° отсутствия Π² Π‘ΠΈ встроСнного динамичСского массива для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π½Π΅ Π½ΠΎΠ²Π° ΠΈ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ Ρ€Π΅ΡˆΠ°Π»Π°ΡΡŒ Π½Π΅ΠΌΠ°Π»ΠΎ Ρ€Π°Π·.

Π’ΠΎΡ‚ Ρ‚Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π½Π°ΡˆΡ‘Π» Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π·Π° ΠΏΡΡ‚ΡŒ ΠΌΠΈΠ½ΡƒΡ‚ Π² Google:

https://github. com/rxi/vec
https://github.com/eteran/c-vector
https://github.com/jibsen/scv
https://github.com/graphitemaster/cvec
https://github.com/robertkety/dataStructures (Ctrl+F «dynamicArray»)
http://troydhanson.github.io/uthash/utarray.html
https://github.com/dude719/Dynamic-Array-Kernel
https://developer.gnome.org/glib/stable/glib-Arrays.html
https://www.happybearsoftware.com/implementing-a-dynamic-array
https://github.com/nothings/stb/blob/master/stretchy_buffer.h (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΏΠΎ Π½Π°Π²ΠΎΠ΄ΠΊΠ΅ Xop)

ВсС эти Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… нСдостатков:


  1. РСализация макросами ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ управлСния.
    Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ макросы Π² качСствС inline-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ – затСя плохая. Об этом Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·, Π½ΠΎ Ρ€Π°Π·Π²Π΅ ΠΌΡ‹ устанСм ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ?

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


  2. Π”ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ‰ΠΈΡ… для Π»ΡŽΠ±Ρ‹Ρ… Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.
    НапримСр, Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ освобоТдСния для Π²Π΅ΠΊΡ‚ΠΎΡ€Π°

    int‘ΠΎΠ² ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° char‘ΠΎΠ². Под ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой всСго-навсСго Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ free(), Π³Π»ΡƒΠ±ΠΎΠΊΠΎ Π±Π΅Π·Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ хранится Π² ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ°Π΅ΠΌΠΎΠΌ Π±ΡƒΡ„Π΅Ρ€Π΅, Ρ€Π°Π²Π½ΠΎ ΠΊΠ°ΠΊ ΠΈ ΠΊ Ρ‚ΠΈΠΏΡƒ указатСля Π½Π° Π½Π΅Π³ΠΎ.
    Π­Ρ‚ΠΎ ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅ ΠΏΡ€ΠΎΠ²ΠΎΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΡ‘ΠΌΠ° Π΅Π΄ΠΈΠ½ΠΈΡ† трансляции, Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, Π° Π·Π°ΠΎΠ΄Π½ΠΎ ΠΈ замусориваниС пространства ΠΈΠΌΡ‘Π½.


  3. Π Π°Π±ΠΎΡ‚Π° со значСниями Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ.
    Π­Ρ‚ΠΎ обязываСт всСгда Π±Ρ€Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для добавлСния Π΅Π³ΠΎ Π΄Π°ΠΆΠ΅ Π² простой Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ int‘ΠΎΠ²). А Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ разымСнованиях. Ну ΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Ρ‚Π°ΠΊΠΎΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π·Π°ΡΡƒΠ½ΡƒΡ‚ΡŒ значСния Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², ΠΈ Π½ΠΈΠΊΡ‚ΠΎ нас ΠΎΠ± этом Π½Π΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈΡ‚.


  4. ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Π²Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΊΠ°ΠΊ структуры.


    Π‘Π°ΠΌΡ‹ΠΉ большой нСдостаток, ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ отсутствиС Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡƒΠΆΠ΅ Π½Π΅ ΠΈΠ³Ρ€Π°Π΅Ρ‚ Ρ€ΠΎΠ»ΠΈ.
    Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ элСмСнтам Π²Π΅ΠΊΡ‚ΠΎΡ€Π° происходит Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ»Π΅ структуры. Для ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° это ΡƒΠΆΠ΅ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ – стоит Π»ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ….
    Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, всС поля структуры, Π΄Π°ΠΆΠ΅ тСхничСскиС, свободно доступны ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ.
    Π’ΠΎ-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, практичСски полная Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ².
    Π’-Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚Ρ‹Ρ…, для создания ΠΈ удалСния Π²Π΅ΠΊΡ‚ΠΎΡ€Π° трСбуСтся 2 Π²Ρ‹Π·ΠΎΠ²Π° malloc() / free() соотвСтствСнно – ΠΎΠ΄ΠΈΠ½ Π½Π° структуру ΠΈ ΠΎΠ΄ΠΈΠ½ Π½Π° сам Π±ΡƒΡ„Π΅Ρ€ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°. Как Π½Π΅Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, для Π²Π΅ΠΊΡ‚ΠΎΡ€Π° размСрности Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΆΠ΅ .
    Π’-пятых, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ Π² свою Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ Π½Π° структуру, поэтому синтаксис обращСния ΠΊ Π½Π΅ΠΌΡƒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ слСгка Π΄Ρ€ΡƒΠ³ΠΈΠΌ (-> вмСсто .
    ΠΈ всё Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΎΡ‡Π΅Π΅).


Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, вырисовываСтся Π·Π°Π΄Π°Ρ‡Π° создания Π²Π΅ΠΊΡ‚ΠΎΡ€Π°, спСциализируСмого для Π»ΡŽΠ±Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π‘ΠΈ ΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ возмоТностями:


  1. Доступ ΠΊ элСмСнтам Π²Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΊΠ°ΠΊ ΠΊ элСмСнтам ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ массива, Π²Π½Π΅ зависимости ΠΎΡ‚ Π΅Π³ΠΎ размСрности: vec[k], vec[i][j] ΠΈ Ρ‚.Π΄.
  2. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ макросов.
  3. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π° благодаря спСциализации Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΈ/ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ значСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.
  4. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ прямого доступа ΠΊ тСхничСской ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°.
  5. Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ присваивания ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ.
  6. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΡ€ΠΈ спСциализации Π²Π΅ΠΊΡ‚ΠΎΡ€Π° ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ способ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΠΏΠΎ ссылкС (Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ).
  7. Максимальная ΡΡ…ΠΎΠΆΠ΅ΡΡ‚ΡŒ интСрфСйса Π²Π΅ΠΊΡ‚ΠΎΡ€Π° с Ρ‚Π°ΠΊΠΎΠ²Ρ‹ΠΌ Ρƒ std::vector ΠΈΠ· C++11.

Π—Π°Ρ€Π°Π½Π΅Π΅ ΠΎΡ‚Π²Π΅Ρ‡Ρƒ Π½Π° вопрос, ΠΏΠΎΡ‡Π΅ΠΌΡƒ C89, Π° Π½Π΅ хотя Π±Ρ‹ C99. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, это Π΄Π°Ρ‘Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ компилятора ΠΈΠ· Visual Studio (Ρ…ΠΎΡ‚ΡŒ ΠΎΠ½ ΠΌΠ½Π΅ ΠΈ Π½Π΅ нравится). Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, я сам ΠΎΡ‡Π΅Π½ΡŒ люблю C99, Π½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС почувствовал, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΈ Π² Π±ΠΎΠ»Π΅Π΅ Тёстких условиях. Как-Π½ΠΈΠΊΠ°ΠΊ, ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π² «Π½Π΅Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ» Π½Π°Π΄ΠΎ ΠΎΠΏΡ€Π°Π²Π΄Ρ‹Π²Π°Ρ‚ΡŒ.

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

Однако ΠΏΠΎΡ‚ΠΎΠΌ ΠΌΠ½Π΅ Π½Π° Π³Π»Π°Π·Π° попалась Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° динамичСских строк для Π‘ΠΈ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Simple Dynamic Strings, написанная Π² своё врСмя для Redis. Она ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄: тСхничСская информация ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π΅ хранится Π½Π΅ Π² структурС вмСстС с ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° Π½Π΅Π³ΠΎ, Π° Π² Π²ΠΈΠ΄Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° прямо ΠΏΠ΅Ρ€Π΅Π΄ самим Π±ΡƒΡ„Π΅Ρ€ΠΎΠΌ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Π² памяти. Π­Ρ‚ΠΎ позволяСт ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, ΠΏΡ€ΠΈ этом Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ тСхничСской ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ всСгда достовСрно извСстно.

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

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ возмоТности (1) ΠΈ (4). Π˜Π΄Ρ‘ΠΌ дальшС.

Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€ – это просто Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, Ρ‚ΠΎ ΠΌΡ‹, казалось Π±Ρ‹, ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ освобоТдСния, просто ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠ² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ «ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° освобоТдаСмый Π²Π΅ΠΊΡ‚ΠΎΡ€» ΠΊΠ°ΠΊ void*. ΠžΠ±Ρ‰Π΅ΠΈΠ·Π²Π΅ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π² void* ΠΌΠΎΠΆΠ½ΠΎ нСявно ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, Ρ€Π°Π²Π½ΠΎ ΠΊΠ°ΠΊ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

Однако ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ‹ это ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ для Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ? Как Π½ΠΈ странно, Π½ΠΎ Π΄Π°. Π£ нас Π½Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… нСпосрСдствСнно с самими Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΌΠΈ значСниями – ΠΈΡ… ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π²Π΅ΠΊΡ‚ΠΎΡ€Π°. По сути ΠΌΡ‹ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ лишь мСстами хранСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π½ΠΎ Π½Π΅ самими значСниями. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π°ΠΌ достаточно Π·Π½Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² тСхничСской ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅Π³ΠΎ создания ΠΏΡƒΡ‚Ρ‘ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. Π’Π°ΠΊΠΎΠΉ Ρ‚Ρ€ΡŽΠΊ позволяСт Π½Π°ΠΌ ΠΎΠ±ΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² Π²ΠΎΠΎΠ±Ρ‰Π΅ всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΈΡ… основС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΈ/ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ значСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

ΠŸΡƒΠ½ΠΊΡ‚Ρ‹ (2) ΠΈ (3) Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹. А Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² Π‘ΠΈ Π½Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пСрСприсвоСно Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ памяти, Ρ‚ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΈ ΠΏΡƒΠ½ΠΊΡ‚ (5). ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Π΄ΡƒΡ…Π΅.

По сути, всС спСциализируСмыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ со значСниями ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΄Π²ΡƒΡ… способов:


  • присвоСниС ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ элСмСнтам Π²Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ значСния;
  • Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ значСния ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта.

Π˜Π·Π²Π΅ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΈΠ· Π½Π΅Ρ‘ Π»ΠΈΠ±ΠΎ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ (ΠΏΠ°Ρ€Π΄ΠΎΠ½ Π·Π° ΠΊΠ°Π»Π°ΠΌΠ±ΡƒΡ€), Π»ΠΈΠ±ΠΎ ΠΏΠΎ ссылкС. Для ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ для слоТных структур – Π²Ρ‚ΠΎΡ€ΠΎΠΉ.
Бсылок Π°-ля C++ Π² Π‘ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ Π½Π΅Ρ‚, Π½ΠΎ ΠΈΡ… замСнят Π½Π°ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ.

Устали ΠΎΡ‚ тСкста? вопрос риторичСский.
Π’ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ для наглядности опрСдСлСния Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΡ…/Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΈ ΠΏΠΎ ссылкС соотвСтствСнно.

gvec_error_e gvec_NAME_push( gvec_NAME_t* phandle, const TYPE value )
gvec_error_e gvec_NAME_push( gvec_NAME_t* phandle, const TYPE* value )
TYPE gvec_NAME_front( gvec_NAME_t handle )
TYPE* gvec_NAME_front( gvec_NAME_t handle )

Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π² ΠΎΠ±ΠΎΠΈΡ… случаях ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ лишь Π² ΠΎΠ΄Π½ΠΎΠΌ символС.

Π£ΠΆΠ΅ Π² C89 ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ присваивания доступСн для всСх Ρ‚ΠΈΠΏΠΎΠ², Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ позволяСт ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΏΠΎ ссылкС ΠΈΠ»ΠΈ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π² спСциализируСмых функциях ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ макроса-спСциализатора. ΠŸΡ€Π°Π²Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρ€Π΅Π·ΠΎΠ½Π½Ρ‹ΠΉ вопрос: Π° ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ это ΠΎΠ΄Π½ΠΈΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ сразу для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ? А ΠΎΡ‡Π΅Π½ΡŒ просто: Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈ быстрСС Π² случаС ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π² случаС отсутствия Π² Π²Π΅ΠΊΡ‚ΠΎΡ€Π΅ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ элСмСнта. ΠŸΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ ΠΏΠΎ ссылкС Π² Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ просто Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ NULL. ΠšΠΎΡ€ΠΎΡ‡Π΅ говоря, это оставлСно Π½Π° усмотрСниС самого программиста.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΏΡƒΠ½ΠΊΡ‚ (6). ΠŸΡƒΠ½ΠΊΡ‚ (7) ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎ совокупности всСх ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ….


Π˜Ρ‚ΠΎΠ³ΠΎΠ²Π°Ρ рСализация Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Π½Π° C89, готовая ΠΊ практичСскому ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ, находится здСсь:

https://github.com/cher-nov/genvector (MIT License Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ WTFPL)

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ Π² ReadMe.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΡΡ‚Π°Ρ‚ΡŒΡ Π½Π΅ освСщаСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, ΠΌΠ΅Π½Π΅Π΅ слоТныС Π½ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ интСрСсныС аспСкты Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½Π° описаниС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρƒ мСня Π½Π΅ Ρ…Π²Π°Ρ‚ΠΈΠ»ΠΎ лаконичности ΠΈ краснорСчия. Π’Π°ΠΊΠΆΠ΅ ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹ Ρ€Π°Π·Π³Π»Π°Π³ΠΎΠ»ΡŒΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, ΠΎΠΊΠ°Π·Π°Π²ΡˆΠΈΡ…ΡΡ Π² ΠΈΡ‚ΠΎΠ³Π΅ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹ΠΌΠΈ, ΠΈ ΠΈΡ… пСрСосмыслСния. Но я ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΏΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΈ ReadMe Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π° ΠΏΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ – ΠΈΠ· истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

Π­Ρ‚ΠΎ пСрвая моя ΡΡ‚Π°Ρ‚ΡŒΡ Π½Π° Π₯Π°Π±Ρ€Π΅, поэтому ΠΏΡ€ΠΎΡˆΡƒ ΡΡƒΠ΄ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ строТС. Π—Π° косноязычиС – особСнно.

НадСюсь, это всё окаТСтся ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ Π΄Π° ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ.

АО Π’Π΅ΠΊΡ‚ΠΎΡ€-БСст — ΠšΠ°Ρ€Ρ‚Π° сайта

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ

ВСтСринария

Π–ΡƒΡ€Π½Π°Π» «Новости Π’Π΅ΠΊΡ‚ΠΎΡ€-БСст»


08 — 09.06.2023

г. Москва

V ВсСроссийский конгрСсс с ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹ΠΌ участиСм Β«ΠžΡ€Ρ„Π°Π½Π½Ρ‹Π΅ Π±ΠΎΠ»Π΅Π·Π½ΠΈΒ» (ΠΎΡ‡Π½ΠΎ+ΠΎΠ½Π»Π°ΠΉΠ½)

22 — 23.06.2023

Π³. Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³

5-ΠΉ Клинико-Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΡƒΠΌ спСциалистов Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΌΠ΅Π΄ΠΈΡ†ΠΈΠ½Ρ‹ ΠΈ спСциализированная выставка

23 — 26. 07.2023

Brisbane, Australia

12th IAS Conference on HIV Science ο»ΏΠžΡ‡Π½ΠΎ+ΠΎΠ½Π»Π°ΠΉΠ½

Авторизация

Π›ΠΎΠ³ΠΈΠ½: ΠŸΠ°Ρ€ΠΎΠ»ΡŒ: Π—Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ мСня Π½Π° этом ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅

РСгистрация

Π—Π°Π±Ρ‹Π»ΠΈ свой ΠΏΠ°Ρ€ΠΎΠ»ΡŒ?

  • О ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
    • Π’Π΅ΠΊΡ‚ΠΎΡ€-БСст
    • Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
    • Новости
    • ΠšΠ°Π»Π΅Π½Π΄Π°Ρ€ΡŒ событий
    • Вакансии
  • ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΡ
    • Наборы
    • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • РасходныС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹
    • Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • РасчСт индСкса РОМА
    • Π—Π°ΠΊΠ°Π· ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ
    • ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС
  • Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹
    • Π‘ΡŽΠ»Π»Π΅Ρ‚Π΅Π½ΡŒ «Новости Π’Π΅ΠΊΡ‚ΠΎΡ€-БСст»
    • Бписок ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ
    • Π Π΅ΠΊΠ»Π°ΠΌΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹
    • ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ пособия
    • ΠŸΠ°ΠΌΡΡ‚ΠΊΠΈ Π²Ρ€Π°Ρ‡Ρƒ
  • ΠžΡ†Π΅Π½ΠΊΠ° качСства
    • Π’Π›ΠšΠš
    • ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠ΅ΠΆΠ»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½Ρ‹Ρ… сличСний «ВмСстС»
  • ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹
    • АдрСса ΠΈ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹
    • ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°
    • Π”ΠΈΡΡ‚Ρ€ΠΈΠ±ΡŒΡŽΡ‚ΠΎΡ€Ρ‹
  • ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ связь

Автоматизация ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования C ΠΈ C++ VectorCAST

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ VectorCAST для ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ тСстирования C ΠΈ C++ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚:

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ C++11, C++14 ΠΈ C++17 ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹, симуляторы ΠΈ процСссорныС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹
  • УстраняСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ тСстовыС Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ ΠΈ Π·Π°Π³Π»ΡƒΡˆΠΊΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ
  • Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ возмоТности ΠΎΡ…Π²Π°Ρ‚Π° ΠΊΠΎΠ΄Π°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ MC/DC
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ хост, симулятор ΠΈΠ»ΠΈ встроСнноС Ρ†Π΅Π»Π΅Π²ΠΎΠ΅ тСстированиС
  • АвтоматизируСт рСгрСссионноС тСстированиС
  • НастраиваСмый ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ интСрфСйс компилятора
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ DO-178 (Π°Π²ΠΈΠΎΠ½ΠΈΠΊΠ°), ISO 26262 (автомобилСстроСниС), IEC 61508 (ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΡΡ‚ΡŒ), IEC 62304 (ΠΌΠ΅Π΄ΠΈΡ†ΠΈΠ½Π°), EN 50128 ΠΈ EN 50657 (ΠΆΠ΅Π»Π΅Π·Π½ΠΎΠ΄ΠΎΡ€ΠΎΠΆΠ½Ρ‹ΠΉ транспорт) 9 0006
  • ΠžΠΏΠΎΡ€Ρ‹ ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Windows ΠΈ Linux
  • ΠŸΠΎΠ»Π½Ρ‹ΠΉ интСрфСйс ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки
ΠŸΠΎΡ‡Π΅ΠΌΡƒ VectorCAST/C++ для ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования C ΠΈ C++?

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, для тСстирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² трСбуСтся ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ΄Π½Π° строка тСстового ΠΊΠΎΠ΄Π° (Π² Π²ΠΈΠ΄Π΅ Π·Π°Π³Π»ΡƒΡˆΠ΅ΠΊ ΠΈΠ»ΠΈ ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² ΠΈ тСстовых Π΄Π°Π½Π½Ρ‹Ρ…) для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ тСстируСмой строки ΠΊΠΎΠ΄Π° C ΠΈΠ»ΠΈ C++. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ этих тСстовых срСд Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ дорогостоящим ΠΈ нСэффСктивным, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ тСстовый ΠΊΠΎΠ΄, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠ΄ прилоТСния. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ VectorCAST/C++ макСтная срСда создаСтся автоматичСски, Π° тСстированиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π±Π΅Π· написания Π΅Π΄ΠΈΠ½ΠΎΠΉ строки тСстового ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ освобоТдаСт врСмя для создания комплСксных тСстовых случаСв, ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠ΄Π°. НаписаниС ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… тСстов Ρ‚Π°ΠΊ ΠΆΠ΅ просто, ΠΊΠ°ΠΊ Π²Ρ‹Π±ΠΎΡ€ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² для тСстируСмого устройства (UUT) Π² простом Π² использовании интСрфСйсС. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠΎΠ΄, спСцифичный для тСстирования, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² Ρ‚Π΅ΡΡ‚ΠΎΠ²ΡƒΡŽ обвязку. НапримСр, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΠΎ Π΄Π΅ΠΌΠΎΠ½Ρ‚Π°ΠΆΡƒ. Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ mocking Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΈ C++. ВСстовыС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² классС C++, вызывая конструкторы класса для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².
Β 

Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΊΠΎΠ΄Π°

Π‘Π΅Π· инструмСнта покрытия ΠΊΠΎΠ΄Π° Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ части вашСго исходного ΠΊΠΎΠ΄Π° использовались Π²ΠΎ врСмя тСстирования. VectorCAST/C++ прСдоставляСт Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ покрытия ΠΊΠΎΠ΄Π°, которая позволяСт Π²Π°ΠΌ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ тСстирования вашСго ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, сообщая ΠΎΠ± утвСрТдСниях исходного ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π²ΠΎ врСмя ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… тСстовых ΠΏΡ€ΠΎΠ³ΠΎΠ½ΠΎΠ². Π”Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΊΠΎΠ΄Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π² VectorCAST/QA для создания ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΎ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΈ систСмноС тСстированиС. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ VectorCAST/QA Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… CPPUnit, GoogleTest ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… срСд ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ΅ прСдставлСниС покрытия ΠΊΠΎΠ΄Π° Π½Π° всСх этапах тСстирования ΠΈ всСх инструмСнтах тСстирования. Π­Ρ‚ΠΎ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, Π½Π° Ρ‡Π΅ΠΌ слСдуСт ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒ усилия ΠΏΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Π­Ρ‚ΠΎ особСнно эффСктивно, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΊΠΎΠ΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ VectorCAST/QA для ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… тСстов.
Β 

ВСстированиС повторяСмо

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ VectorCAST прСдоставляСт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ срСду ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования C ΠΈ C++, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ тСстирования. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свой тСстовый ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ VectorCAST/C++ Π² качСствС срСдства запуска тСстов для автоматичСского ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ запуска тСстовых случаСв с использованиСм послСднСй вСрсии исходных Ρ„Π°ΠΉΠ»ΠΎΠ² C ΠΈΠ»ΠΈ C++. Π­Ρ‚ΠΈ тСсты Π»Π΅Π³ΠΊΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… вСрсий вашСго ΠΊΠΎΠ΄Π°. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ тСстов ΠΈ каталогизация Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² тСстов Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ автоматичСски. Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ тСстовых случаСв с Π½ΠΎΠ²Ρ‹ΠΌΠΈ вСрсиями ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π΄ΠΎ систСмной ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ нСслоТно, с Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΡ‡Π΅Ρ€Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ, упорядочСнными ΠΏΠΎ Π΄Π°Ρ‚Π΅, Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, названию модуля ΠΈ тСста. Π­Ρ‚Π° ΠΎΡ‚Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΌΡƒ количСству нСоТиданностСй, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Ρ… Β«ΠΎΠ΄Π½ΠΈΠΌ нСбольшим ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌΒ» Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅. Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ для ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΉ процСсс ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ тСстирования.
Β 

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ тСстированиС

Π’ ΠΎΠ΄Π½ΠΎΠΉ тСстовой срСдС VectorCAST/C++ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько устройств. Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования VectorCAST/C++ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ слоТныС тСстовыС случаи ΠΈ сцСнарии, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡ‚ΠΈΠΌΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… устройствах. Π’Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ тСстированиС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… сцСнариСв ΠΈ обСспСчСния Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ тСстированиС с VectorCAST/C++ позволяСт Π·Π°Π³Π»ΡƒΡˆΠ°Ρ‚ΡŒ зависимости ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄.
Β 

Π‘Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ управлСния

VectorCAST/C++ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ использованиС Ρ‚ΠΎΡ‡Π΅ΠΊ зондирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ управлСния Π²ΠΎ врСмя выполнСния для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ тСстирования. Π­Ρ‚ΠΎ позволяСт тСстовому ΡΡ†Π΅Π½Π°Ρ€ΠΈΡŽ автоматичСски вСсти ΠΊΠΎΠ΄ ΠΏΠΎ труднодоступному ΠΏΡƒΡ‚ΠΈ. УтвСрТдСния Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для фиксации состояния ΠΊΠΎΠ΄Π° Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Когда ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ оцСниваСтся Π²ΠΎ врСмя выполнСния тСста, событиС рСгистрируСтся Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ… выполнСния вмСстС с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Π±Ρ‹Π»ΠΎ Π»ΠΈ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ истинным ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½Ρ‹ΠΌ. Π—ΠΎΠ½Π΄ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для добавлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ€Π°Π·Ρ€Ρ‹Π²Π°.
Β 

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с компилятором

VectorCAST/C++ автоматичСски ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ связываСт всС созданныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ тСстового ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ вашСго компилятора. Π’Π°ΠΊΠΆΠ΅ прСдоставляСтся интСрфСйс ΠΊ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΡƒ вашСго компилятора, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ тСстовыС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.
Β 

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· тСстированиС (TDD)

VectorCAST/C++ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π³ΠΈΠ±ΠΊΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· тСстированиС. ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ проСктирования Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ тСстового ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°. Π­Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ всС ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ тСсты Π½Π° основС Ρ„Π°ΠΉΠ»ΠΎΠ² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π΄ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ любого ΠΊΠΎΠ΄Π° прилоТСния. Π’ Π½Π°Ρ‡Π°Π»Π΅ этого процСсса ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ тСсты Π½Π΅ ΠΏΡ€ΠΎΠΉΠ΄ΡƒΡ‚ ΠΈΠ·-Π·Π° отсутствия исходного ΠΊΠΎΠ΄Π°. Однако с постСпСнной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΊΠΎΠ΄Π° для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ тСсты Π½Π°Ρ‡Π½ΡƒΡ‚ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ мСньшС Π·Π°Π³Π»ΡƒΡˆΠ΅ΠΊ ΠΈΠ»ΠΈ ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ большС Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ПослС этого процСсса Π½Π°Π±ΠΎΡ€ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… тСстов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ автоматичСски ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π½ΡƒΡ‚ рСгрСссионному Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.
Β 

ВСстированиС встроСнного Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

VectorCAST/C++ ΠΏΡ€ΠΈ использовании Π² сочСтании с VectorCAST RSP позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ тСстированиС C ΠΈ C++ нСпосрСдствСнно Π½Π° вашСй встроСнной Ρ†Π΅Π»Π΅Π²ΠΎΠΉ систСмС. VectorCAST RSP ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ с вашим ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ кросс-компилятором ΠΈ RTOS, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ инструмСнтом для тСстирования ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ВСстовыС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Π² хост-срСдС, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Π²ΠΎ встроСнной Ρ†Π΅Π»ΠΈ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Ρ†Π΅Π»ΠΈ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ кросс-компилятора. Π­Ρ‚Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ исполняСмый Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ срСдС ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡƒΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅ ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ.
Β 

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ

VectorCAST/C++ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ инструмСнтами Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΈ систСмой сборки. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ своС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ распространСнныС срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Windows Visual Studio, cmake ΠΈΠ»ΠΈ Github, Ρ‡Ρ‚ΠΎ позволяСт Π²Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° основС ΡƒΠΆΠ΅ установлСнных Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ваши тСстовыС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… срСдах, ΠΈ VectorCAST/C++ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ компилятор, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму ΠΈ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅, подходящиС для этой срСды. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ VectorCAST/C++ ΠΊΠ°ΠΊ для тСстирования Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° хостС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Visual Studio, Ρ‚Π°ΠΊ ΠΈ для тСстирования Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ срСдС встроСнного оборудования. Π­Ρ‚ΠΎ обСспСчиваСт сцСнарии тСстирования Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… условиях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ вашСго ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ Python Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ VectorCAST с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ инструмСнтами Π² вашСй срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.
Β 

API Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ

VectorCAST/C++ ΠΈΠΌΠ΅Π΅Ρ‚ API для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС настраиваСмыС ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹. API Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΡƒΡŽ настройку VectorCAST посрСдством Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ скриптов Python, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· Π½Π° основС Π΄Π°Π½Π½Ρ‹Ρ… VectorCAST. НСкоторыС ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ доступны Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ xml, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ создаСтся список ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ стороннСму инструмСнту, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌΡƒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹, ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΈ ΠΈ симуляторы

VectorCAST ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ компиляторы C, C++ ΠΈ Ada. VectorCAST настраиваСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π² соотвСтствии с Π½Π°Π±ΠΎΡ€ΠΎΠΌ инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ΅ обСспСчСниС ΠΈ симуляторы.

Π‘Π»ΡƒΠΆΠ±Ρ‹ VectorCAST

Π“Ρ€ΡƒΠΏΠΏΠ° слуТб VectorCAST ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ вашСй ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ отраслСвыС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ, основанныС Π½Π° ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²ΠΎΠΌ ΠΎΠΏΡ‹Ρ‚Π΅, для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ качСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π§Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ Π³Ρ€ΡƒΠΏΠΏΡƒ VectorCAST Services ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π³Ρ€ΡƒΠΏΠΏ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… услуг, Ρ‚Π°ΠΊ это ΠΎΠΏΡ‹Ρ‚ Π² слоТных срСдах тСстирования ΠΈ Π°ΠΊΡ†Π΅Π½Ρ‚ Π½Π° наставничСствС ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² для самодостаточности, помогая ΠΈΠΌ Π½Π°Π»Π°Π΄ΠΈΡ‚ΡŒ воспроизводимыС процСссы тСстирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Π‘Π΅ΠΌΠΈΠ½Π°Ρ€Ρ‹ VectorCAST

Наши сСминары ΠΈ ΡƒΡ‡Π΅Π±Π½Ρ‹Π΅ пособия прСдоставят Π²Π°ΠΌ нСсколько возмоТностСй Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒ свои знания ΠΎ VectorCAST.

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

Β 

Π’Π΅ΠΊΡ‚ΠΎΡ€Ρ‹

Π­Ρ‚ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€:

Π’Π΅ΠΊΡ‚ΠΎΡ€ ΠΈΠΌΠ΅Π΅Ρ‚ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ (Ρ€Π°Π·ΠΌΠ΅Ρ€) ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ :

Π”Π»ΠΈΠ½Π° Π»ΠΈΠ½ΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΅Π΅ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ, Π° стрСлка ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Π²Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π°, соСдинив ΠΈΡ… Π»ΠΎΠ± Π² Π»ΠΎΠ±:

И Π½Π΅Π²Π°ΠΆΠ½ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ порядкС ΠΌΡ‹ ΠΈΡ… складываСм, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π‘Π°ΠΌΠΎΠ»Π΅Ρ‚ Π»Π΅Ρ‚ΠΈΡ‚ Π½Π° сСвСр, Π½ΠΎ Π²Π΅Ρ‚Π΅Ρ€ Π΄ΡƒΠ΅Ρ‚ с сСвСро-Π·Π°ΠΏΠ°Π΄Π°.

Π”Π²Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π° (ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, создаваСмая ΠΏΡ€ΠΎΠΏΠ΅Π»Π»Π΅Ρ€ΠΎΠΌ, ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π²Π΅Ρ‚Ρ€Π°) приводят ΠΊ нСсколько Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΉ скорости ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π΅ΠΌΠ»ΠΈ Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊ востоку ΠΎΡ‚ сСвСра.

Если ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° самолСт с Π·Π΅ΠΌΠ»ΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΊΠΎΠ»ΡŒΠ·ΠΈΡ‚ Π²Π±ΠΎΠΊ.

Π’Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π²ΠΈΠ΄Π΅Π»ΠΈ Ρ‚Π°ΠΊΠΎΠ΅? Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΏΡ‚ΠΈΡ†, Π±ΠΎΡ€ΡŽΡ‰ΠΈΡ…ΡΡ с ΡΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Π²Π΅Ρ‚Ρ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, каТСтся, лСтят Π±ΠΎΠΊΠΎΠΌ. Π’Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ это.

Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, ускорСниС, сила ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ.

Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ:

  • сначала ΠΌΡ‹ мСняСм Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…ΠΎΡ‚ΠΈΠΌ Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ,
  • , Π·Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΈΡ… ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ:


Π° βˆ’ Π±

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Π’Π΅ΠΊΡ‚ΠΎΡ€ часто записываСтся ΠΆΠΈΡ€Π½Ρ‹ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ , Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ a ΠΈΠ»ΠΈ b .

Π’Π΅ΠΊΡ‚ΠΎΡ€ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ Π±ΡƒΠΊΠ²
Π΅Π³ΠΎ Π³ΠΎΠ»ΠΎΠ²Ρ‹ ΠΈ хвоста со стрСлкой Π½Π°Π΄ Π½ΠΈΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:
Β 

РасчСты

Π’Π΅ΠΏΠ΅Ρ€ΡŒ… ΠΊΠ°ΠΊ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ расчСты?

Π‘Π°ΠΌΡ‹ΠΉ распространСнный способ β€” сначала Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€ Π½Π° части x ΠΈ y, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π’Π΅ΠΊΡ‚ΠΎΡ€ a Ρ€Π°Π·Π±ΠΈΡ‚ Π½Π°
Π΄Π²Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π° a x ΠΈ a y

(ПозТС ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. )

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ²

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΏΠΎ , Π΄ΠΎΠ±Π°Π²ΠΈΠ² части x ΠΈ , Π΄ΠΎΠ±Π°Π²ΠΈΠ² части y :

Π’Π΅ΠΊΡ‚ΠΎΡ€ (8, 13) ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€ (26, 7) Π² суммС Π΄Π°ΡŽΡ‚ Π²Π΅ΠΊΡ‚ΠΎΡ€ (34, 20)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: слоТитС Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹

a = (8, 13) ΠΈ b = (26, 7)

c = a + b

9 0118 с = (8, 13) + (26, 7) = (8+26, 13+7) = (34, 20)

Когда ΠΌΡ‹ Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅ΠΌ Π²Π΅ΠΊΡ‚ΠΎΡ€ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, каТдая Ρ‡Π°ΡΡ‚ΡŒ называСтся ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ :

Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ²

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ, сначала ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π²Π΅ΠΊΡ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ, Π·Π°Ρ‚Π΅ΠΌ слоТитС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ

ΠΊ = (4, 5) ΠΈΠ· v = (12, 2)

a = v + βˆ’ k

a = (12, 2) + βˆ’(4, 5) = ( 12, 2) + (βˆ’4, βˆ’5) = (12βˆ’4, 2βˆ’5) = (8, βˆ’3)

Π’Π΅Π»ΠΈΡ‡ΠΈΠ½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π°

Π’Π΅Π»ΠΈΡ‡ΠΈΠ½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΏΠΎΠΊΠ°Π·Π°Π½Π° двумя Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ полосами ΠΏΠΎ ΠΎΠ±Π΅ стороны ΠΎΡ‚ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°:

| ΠΈ |

Π˜Π›Π˜ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ€Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ (Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒ с Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ):

|| ΠΈ ||

Для расчСта ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚Π΅ΠΎΡ€Π΅ΠΌΡƒ ΠŸΠΈΡ„Π°Π³ΠΎΡ€Π°:

| ΠΈ | = √( Ρ… 2 + Ρƒ 2 )

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΠΊΠ°ΠΊΠΎΠ²Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π°

b = (6, 8) ?

| б | = √( 6 2 + 8 2 ) = √( 36+64) = √100 = 10

Π’Π΅ΠΊΡ‚ΠΎΡ€ с Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ΠΎΠΉ 1 называСтся Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΌ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ.

Π’Π΅ΠΊΡ‚ΠΎΡ€ ΠΏΡ€ΠΎΡ‚ΠΈΠ² скаляра

Бкаляр ΠΈΠΌΠ΅Π΅Ρ‚ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ (Ρ€Π°Π·ΠΌΠ΅Ρ€) Ρ‚ΠΎΠ»ΡŒΠΊΠΎ .

Бкаляр: просто число (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 7 ΠΈΠ»ΠΈ βˆ’0,32) … ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π½Π΅ Π²Π΅ΠΊΡ‚ΠΎΡ€.

Π’Π΅ΠΊΡ‚ΠΎΡ€ ΠΈΠΌΠ΅Π΅Ρ‚ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ , ΠΈ Π΅Π³ΠΎ часто ΠΏΠΈΡˆΡƒΡ‚ ΠΆΠΈΡ€Π½Ρ‹ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ , поэтому ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ это Π½Π΅ скаляр:

  • , поэтому c β€” это Π²Π΅ΠΊΡ‚ΠΎΡ€, ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅
  • , Π½ΠΎ c β€” это просто Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 3 ΠΈΠ»ΠΈ 12,4

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: k

b Π½Π° самом Π΄Π΅Π»Π΅ скаляр k ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Π½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€ Π± .

Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Π½Π° скаляр

Когда ΠΌΡ‹ ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ Π²Π΅ΠΊΡ‚ΠΎΡ€ Π½Π° скаляр, это называСтся «ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ» Π²Π΅ΠΊΡ‚ΠΎΡ€Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ измСняСм Ρ€Π°Π·ΠΌΠ΅Ρ€ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€

m = (7, 3) Π½Π° скаляр 3
Β  a = 3 ΠΌ = (3Γ—7, 3Γ—3) = (21, 9)

Он ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, Π½ΠΎ Π² 3 Ρ€Π°Π·Π° Π΄Π»ΠΈΠ½Π½Π΅Π΅

(И Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΏΠΎΡ‡Π΅ΠΌΡƒ числа Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ «скалярами», ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Β«ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΡŽΡ‚Β» Π²Π΅ΠΊΡ‚ΠΎΡ€ Π²Π²Π΅Ρ€Ρ… ΠΈΠ»ΠΈ Π²Π½ΠΈΠ·. )

Β 

Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Π½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€ (скалярноС ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅)

Как Π½Π°ΠΌ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π΄Π²Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π° вмСстС? БущСствуСт Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ способ!

  • Бкаляр ΠΈΠ»ΠΈ скалярноС ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ (Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ являСтся скаляр).
  • Π’Π΅ΠΊΡ‚ΠΎΡ€ ΠΈΠ»ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ (Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ являСтся Π²Π΅ΠΊΡ‚ΠΎΡ€).

(Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ см. Π½Π° этих страницах.)

Β 

Π‘ΠΎΠ»Π΅Π΅ Π΄Π²ΡƒΡ… ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ

Π’Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ прСкрасно Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² 3-Ρ… ΠΈ Π±ΠΎΠ»Π΅Π΅ измСрСниях:


Π’Π΅ΠΊΡ‚ΠΎΡ€ (1, 4, 5)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: слоТитС Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹

a = (3, 7, 4) ΠΈ b = (2, 9, 11)

c = a + b

90 030 с = (3 , 7, 4) + (2, 9, 11) = (3+2, 7+9, 4+11) = (5, 16, 15)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΠΊΠ°ΠΊΠΎΠ²Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π°

w = (1, βˆ’2, 3) ?

| с | = √( 1 2 + (βˆ’2) 2 + 3 2 ) = √( 1+4+9) = √14

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с 4-мя измСрСниями (Π½ΠΎ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ слоТно!):

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ (1, 2, 3, 4) ΠΈΠ· (3, 3, 3, 3)

(3, 3, 3, 3) + -(1, 2, 3, 4)
= (3, 3, 3, 3) + (βˆ’1,βˆ’2,βˆ’3,βˆ’4)
= (3βˆ’1, 3βˆ’2, 3βˆ’3, 3βˆ’4)
= (2, 1, 0, βˆ’1 )

Β 

Π’Π΅Π»ΠΈΡ‡ΠΈΠ½Π° ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π½Π°Ρ‚ΡŒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°, Π½ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Ρ‹ x ΠΈ y (ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚):

<=>
Π’Π΅ΠΊΡ‚ΠΎΡ€ a Π² полярных ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°Ρ…
Β  Π’Π΅ΠΊΡ‚ΠΎΡ€ a Π² Π΄Π΅ΠΊΠ°Ρ€Ρ‚ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°Ρ…
ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² полярныС ΠΈ Π΄Π΅ΠΊΠ°Ρ€Ρ‚ΠΎΠ²Ρ‹ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, Π½ΠΎ Π²ΠΎΡ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€:

Из полярных ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ (r, ΞΈ )
Π² Π΄Π΅ΠΊΠ°Ρ€Ρ‚ΠΎΠ²Ρ‹ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ (x,y)
Β  ΠžΡ‚ Π΄Π΅ΠΊΠ°Ρ€Ρ‚ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ (x,y)
Π΄ΠΎ полярных ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ (r,ΞΈ)
  • x = r Γ— cos( ΞΈ )
  • y = r Γ— sin( ΞΈ )
Β 
  • Π³ = √ ( Ρ… 2 + Ρƒ 2 )
  • ΞΈ = тангСнс -1 (Π³/Ρ…)

Β 

Β 

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

Бэм ΠΈ АлСкс тянут ΠΊΠΎΡ€ΠΎΠ±ΠΊΡƒ.

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

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

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