VEXcode Pro V5 жүйесінде қалқымалы және қос айнымалы мәндерді жасау

The VEX Visual Studio Code Extension has replaced VEXcode Pro V5, which is now end-of-life.

VEXcode Blocks and VEXcode Text remain actively developed and supported for all VEX platforms.

Ондық таңбалары бар сандарды ұстайтын типтер – қалқымалы, қос

Бұл деректер түрлері жиі өзгермелі нүктелі деректер типтері деп аталады. Сандар өзгермелі нүктелі сандар деп аталады.

float fvar = 50,15;
қос dvar = 50,0;

Қалқымалы нүктелі деректер түрін салыстырыңыз – float және double

Қалқымалы және қос деректер түрі арасындағы айырмашылық ондық таңбалардың # дәлдігіне қатысты.

VexOS – ARM 7 спецификациясына негізделген, float 6 немесе 7 орынды, ал double 15 немесе 16 орынды өңдей алады.

float: ағымдағы V5os жүйесінде контроллер дәлдіктің 8 ондық таңбасына дейін рұқсат беретін сияқты.

мысалы

float fvar1 = 1,12345670;
қалқымалы fvar2 = 1,12345678;

fval1 fvar2-ден ерекшеленеді,

қарсы

float fvar1 = 1,123456780; 
қалқымалы fvar2 = 1,123456781;

fval1 fvar2 сияқты бағаланады.

қос: дәлдіктің 17 ондық таңбасына дейін рұқсат береді.

мысалы

қос dvar1 = 1,12345678912345678;
қос dvar2 = 1,12345678912345670;

dval1 dvar2-ден ерекшеленеді,

қарсы

қос dvar1 = 1,123456789123456789;
қос dvar2 = 1,123456789123456780;

dval1 dvar2 сияқты бағаланады.


Жоғары дәлдік қажет болмаса, «қос» қолданбаңыз

Жоғары дәлдік қажет болмаса, «қос» қолданбаудың екі себебі бар:

  1. Ол 2X флоат түрін алады.
  2. Ол әлдеқайда жоғары өңдеу қуатын алады.

VexOS – ARM 7 спецификациясына негізделген, қалқымалы құрылғы 6 немесе 7 орынды, ал қос 15 немесе 16 орынды орындай алады. Кез келген жағдайда қос немесе қалқымадағы соңғы сандардың дәлдігіне сенбеу керек. Ол «float-нүкте есебі» деп аталатын нәрсеге байланысты «int» сақтаудан мүлде басқаша сақталады (бұл мақаланың аясынан тыс).

Осылайша, соңғы бірнеше ондық таңбалардағы дәлдікті жоғалтуыңыз мүмкін.

Double операциясы қалқымалымен салыстырғанда өте қымбат және өзгермелі нүктелік есептеулер деп аталатын нәрсеге байланысты «бүтін саннан» әлдеқайда жоғары.

IEEE стандартына сүйене отырып, төмендегілер сенімдірек ауқымда.

Түр Ең кіші оң мән Ең үлкен оң мән #дәлдік
жүзу 10 -38 x 1,17549 10 38 x 3,40282 6 цифр
қос 10 -308 немесе 2,22507 10 308 x 1,79769 15 цифр

Қарапайым деректер түрлерін ауыстыра аласыз ба? - Кастинг

Деректер түрлерін алмастыруға болады. Бұл әдіс «Кастинг» деп аталады. Кастинг өте кең таралған тәжірибе болғанымен, мұны қажет болған жағдайда ғана жасаңыз. 

Ең көп таралған тәжірибелердің бірі - char және int алмасу.

Себебі олардың екеуі де бір ерекшелікпен бүтін мәндерді білдіреді: 

  • «int» құрамында 4 байт (немесе кейбір компиляторда 8 байт)
  • «char» тек 1 байтты қамтиды.

Мәселен, мысалы

char aVal = 100;
int iVal = aVal; // жасырын кастинг

немесе

int iVal = (char) aVal; // айқын кастинг.

Жасырын кесу туралы ескерту:

мысалы

V5 робототехника жүйесінің бағдарламалау мүмкіндіктерін суреттейтін диаграмма, роботты тиімді бағдарламалау үшін негізгі компоненттер мен қосылымдарды бөлектейді.

Тағы бір кең тараған тәжірибе - in және float алмасу
float fVal = 5,486;
қалқымалы бөлшек = fVal - (int)fVal; //ол жасайды: 5.486 - 5

Жасырын кесу туралы ескерту:

мысалы

int iVal = 50;
қалқымалы мән fVal = iVal / 100;

енді fVal = 0,0, 0,5 ЕМЕС.

Кейбір сценарийлерде жиі операциялардың маңызды бөлігі болып табылатын жасырын кесу артықшылығын пайдалану өте жақсы. Дегенмен, бұл әдісті дизайн бойынша пайдаланып жатқаныңызға көз жеткізуіңіз керек.

Егер сіз жасырын кесудің орын алуын қаламасаңыз, нақты кастингті орындауыңыз керек:

  • жасырын құю: қалқымалы fVal = iVal / 100,0;
  • айқын құю: қалқымалы fVal = (float) iVal / 100

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: