{"id":1196,"date":"2024-01-19T22:03:44","date_gmt":"2024-01-19T17:03:44","guid":{"rendered":"https:\/\/yarat.uz\/?p=1196"},"modified":"2025-03-19T15:27:04","modified_gmt":"2025-03-19T10:27:04","slug":"qiymat-turlari-ozgaruvchilar","status":"publish","type":"post","link":"https:\/\/yarat.uz\/?p=1196","title":{"rendered":"Qiymat turlari. O&#8217;zgaruvchilar. Struktura"},"content":{"rendered":"<div class=\"table-responsive wprt_style_display\">\n<p style=\"text-align: center;\"><strong>QIYMAT TURLARI<br \/>\n<\/strong><\/p>\n<p style=\"text-align: justify;\"><strong>Qiymat turi<\/strong> &#8211; dasturlarda qo&#8217;llaniladigan qiymatlarning o&#8217;zgarish oralig&#8217;i va qiymat qabul qilish sohasini bildiruvchi axborot.<\/p>\n<p style=\"text-align: justify;\">Qiymati turidan kelib chiqib axborotning hajmi turlicha bo&#8217;lishi mumkin va u baytlarda o&#8217;lchanadi.<\/p>\n<p style=\"text-align: justify;\"><strong>bayt<\/strong> &#8211; xotiraning dastur tomonidan uning nomi yoki manzili bo&#8217;yicha murojaat qilish mumkin bo&#8217;lgan minimal bloki hajmi.<\/p>\n<p style=\"text-align: justify;\"><strong>bit<\/strong> &#8211; xotira elementar katagining holatini ifodalovchi axborot birligi.<\/p>\n<p style=\"text-align: justify;\"><strong>1 bayt = 8 bit.<\/strong> Barcha raqamlar va belgilarning kodi bit birligi orqali ifodalanadi. 1 bayt xotiraga saqlash mumkin bo&#8217;lgan qiymatlarning maksimal soni 2^8=256 ga teng (0 dan 255 gacha). Har bir raqam yoki belgining hajmi 1 baytga teng. Demak, ikkilik sanoq tizimidagi <strong>00000001<\/strong> bilan <strong>11111111<\/strong> qiymatlarida ifodalangan belgining hajmi 1 bayt bo&#8217;lsa-da, ular bir-biridan farqlanadi, ularni ma&#8217;lumot uzatish tarmoqlari orqali uzatish tezligi ham keskin farq qiladi. Shuning uchun ham tarmoqlar orqali ma&#8217;lumot uzatish tezligini ifodalashda ham <strong>bayt\/sekund<\/strong> birligidan emas, <strong>bit\/sekund<\/strong> (bod) birligidan foydalaniladi.<\/p>\n<p style=\"text-align: justify;\"><strong>2 bayt = 16 bit = 2^16 = 65 536.<\/strong><\/p>\n<p style=\"text-align: justify;\"><strong>4 bayt = 32 bit = 2^32 = 4 294 967 296.<\/strong><\/p>\n<p style=\"text-align: justify;\">Turli qiymat turlari xotiradan turlicha joy talab qilishi mumkin.<\/p>\n<p style=\"text-align: center;\"><strong>Arduinoda qo&#8217;llaniladigan qiymat turlari va ularning qo&#8217;llanish sohasi<\/strong><\/p>\n<table class=\"table\" border=\"1\" cellspacing=\"\" cellpadding=\"5px\">\n<tbody>\n<tr>\n<td style=\"text-align: center;\"><strong>Qiymat turining asosiy nomi, ifodalanishi<br \/>\n<\/strong><\/td>\n<td style=\"text-align: center;\"><strong>Alternativ nomi va ifodalanishi<br \/>\n<\/strong><\/td>\n<td style=\"text-align: center;\"><strong>O&#8217;lchami<\/strong><\/td>\n<td style=\"text-align: center;\"><strong>Qiymat oralig&#8217;i<\/strong><\/td>\n<td style=\"text-align: center;\"><strong>Xususiyati<\/strong><\/td>\n<\/tr>\n<tr>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\">boolean<\/span><\/span><\/div>\n<\/td>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-k5 wp-dark-mode-ignore\">bool<\/span><\/span><\/div>\n<\/td>\n<td>1 bayt<\/td>\n<td><strong>0<\/strong> yoki <strong>1<\/strong>, <strong>LOW<\/strong> yoki <strong>HIGH<\/strong>, <strong>false<\/strong> yoki <strong>true<\/strong><\/td>\n<td style=\"text-align: justify;\">Mantiqiy o&#8217;zgaruvchilar uchun qo&#8217;llaniladi. <strong>bool<\/strong> 1 bayt joy talab qiladi (1 bit emas!)<\/td>\n<\/tr>\n<tr>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-k5 wp-dark-mode-ignore\">char<\/span><\/span><\/div>\n<\/td>\n<td>\u2013<\/td>\n<td>1 bayt<\/td>\n<td>-128\u2026 127<\/td>\n<td style=\"text-align: justify;\">ASCII belgilar jadvalidagi belgining tartib raqamini (kodini) saqlaydi<\/td>\n<\/tr>\n<tr>\n<td>\u2013<\/td>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-k5 wp-dark-mode-ignore\">int8_t<\/span><\/span><\/div>\n<\/td>\n<td>1 bayt<\/td>\n<td>-128\u2026 127<\/td>\n<td>Ishorali (musbat va manfiy) butun sonlar<\/td>\n<\/tr>\n<tr>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\">byte<\/span><\/span><\/div>\n<\/td>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-k5 wp-dark-mode-ignore\">uint8_t<\/span><\/span><\/div>\n<\/td>\n<td>1 bayt<\/td>\n<td>0\u2026 255<\/td>\n<td>Ishorasiz (faqat musbat) butun sonlar<\/td>\n<\/tr>\n<tr>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-k5 wp-dark-mode-ignore\">int<\/span><\/span><\/div>\n<\/td>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-k5 wp-dark-mode-ignore\">int16_t<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">, <\/span><span class=\"enlighter-k5 wp-dark-mode-ignore\">short<\/span><\/span><\/div>\n<\/td>\n<td>2 bayt<\/td>\n<td>-32 768\u2026 32 767<\/td>\n<td style=\"text-align: justify;\">Ishorasiz butun sonlar. ESP32\/8266 larda 4 bayt!<\/td>\n<\/tr>\n<tr>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-k8 wp-dark-mode-ignore\">unsigned<\/span> <span class=\"enlighter-k5 wp-dark-mode-ignore\">int<\/span><\/span><\/div>\n<\/td>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-k5 wp-dark-mode-ignore\">uint16_t<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">, word<\/span><\/span><\/div>\n<\/td>\n<td>2 bayt<\/td>\n<td>0\u2026 65 535<\/td>\n<td>Ishorali butun sonlar. ESP32\/8266 larda 4 bayt!<\/td>\n<\/tr>\n<tr>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-k5 wp-dark-mode-ignore\">long<\/span><\/span><\/div>\n<\/td>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-k5 wp-dark-mode-ignore\">int32_t<\/span><\/span><\/div>\n<\/td>\n<td>4 bayt<\/td>\n<td>-2 147 483 648\u2026\u00a0\u00a0\u00a0 2 147 483 647<\/td>\n<td>Ishorali butun sonlar<\/td>\n<\/tr>\n<tr>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-k8 wp-dark-mode-ignore\">unsigned<\/span> <span class=\"enlighter-k5 wp-dark-mode-ignore\">long<\/span><\/span><\/div>\n<\/td>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-k5 wp-dark-mode-ignore\">uint32_t<\/span><\/span><\/div>\n<\/td>\n<td>4 bayt<\/td>\n<td>0\u2026 4 294 967 295<\/td>\n<td>Ishorasiz butun sonlar<\/td>\n<\/tr>\n<tr>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-k5 wp-dark-mode-ignore\">float<\/span><\/span><\/div>\n<\/td>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\"> &#8211;<\/span><\/span><\/div>\n<\/td>\n<td>4 bayt<\/td>\n<td>-3.4E+38 3.4E+38<\/td>\n<td style=\"text-align: justify;\">Ishorali kasr sonlar. Aniqligi 6-7 ta belgigacha, ya&#8217;ni 100% emas!<\/td>\n<\/tr>\n<tr>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-k5 wp-dark-mode-ignore\">double<\/span><\/span><\/div>\n<\/td>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\"> &#8211;<\/span><\/span><\/div>\n<\/td>\n<td>4 bayt<\/td>\n<td>-1.7E+308.. 1.7E+308<\/td>\n<td style=\"text-align: justify;\">AVR uchun <strong>float<\/strong> bilan bir xil. Aslida 8 baytga teng.<br \/>\nESP va ayrim 32 bitli mikrokontrollerlarda 8 bayt, aniqlik 15-16 belgigacha.<\/td>\n<\/tr>\n<tr>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\">&#8211;<\/span><\/span><\/div>\n<\/td>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-k5 wp-dark-mode-ignore\">int64_t<\/span><\/span><\/div>\n<\/td>\n<td>8 bayt<\/td>\n<td>-(2^64)\/2\u2026 (2^64)\/2-1<\/td>\n<td>Ishorali butun sonlar<\/td>\n<\/tr>\n<tr>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\">&#8211;<\/span><\/span><\/div>\n<\/td>\n<td>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-k5 wp-dark-mode-ignore\">uint64_t<\/span><\/span><\/div>\n<\/td>\n<td>8 bayt<\/td>\n<td>2^64-1<\/td>\n<td>Ishorasiz sonlar<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>bool<\/strong> (boolean) &#8211; 0 yoki 1 qiymatini qabul qiladi, 1 dan katta qiymatni ham 1 sifatida qabul qiladi.<\/p>\n<p>Har bir qiymat turining maksimal qiymati konstantalarda ham saqlanadi. Ular quyidagilar:<\/p>\n<ul>\n<li>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\">UINT8_MAX &#8211; 255<br \/>\n<\/span><\/span><\/div>\n<\/li>\n<li><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\">INT8_MAX &#8211; 127<br \/>\n<\/span><\/span><\/li>\n<li>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\">UINT16_MAX &#8211; 65 535<\/span><\/span><\/div>\n<\/li>\n<li>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\">INT16_MAX &#8211; 32 767<\/span><\/span><\/div>\n<\/li>\n<li>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\">UINT32_MAX <\/span><\/span>&#8211; 4 294 967 295<\/div>\n<\/li>\n<li>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\">INT32_MAX <\/span><\/span>&#8211; 2 147 483 647<\/div>\n<\/li>\n<li>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\">UINT64_MAX <\/span><\/span>&#8211; 18 446 744 073 709 551 615<\/div>\n<\/li>\n<li>\n<div class=\"enlighter-default enlighter-v-inline enlighter-t-wpcustom enlighter-l-cpp wp-dark-mode-ignore\"><span class=\"enlighter wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\">INT64_MAX <\/span><\/span>&#8211; \u202d9 223 372 036 854 775 807<\/div>\n<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Konstantalardan foydalanish, o&#8217;zgaruvchiga o&#8217;zlashtirish xuddi oddiy qiymatdagidek amalga oshiriladi: <strong>int led_maks = UINT_MAX; <\/strong>(<strong>int led_maks = 255;<\/strong> bilan bir xil)<br \/>\n<strong>unsigned long taymer_maks = UINT32_MAX; (unsugned long taymer_maks = 4294967295; <\/strong>bilan bir xil)<\/p>\n<p style=\"text-align: justify;\"><strong>char<\/strong> &#8211; har qanday turdagi 1 ta belgini (raqam, harf, ko&#8217;rsatilmaydigan belgilar, maxsus klavishalar kodlari va boshqa maxsus belgilarni) o&#8217;zida saqlovchi qiymat turi. Bunday qiymat turiga ega bo&#8217;lgan o&#8217;zgaruvchilar qiymatning ASCII jadvalidagi kodini o&#8217;zida saqlaydi. Bunday qiymatlarni o&#8217;zlashtirishda belgining ASCII kodi ko&#8217;rsatiladi yoki belgining o&#8217;zi tirnoq (bittalik qo&#8217;shtirnoq)da matn tarzida ko&#8217;rsatilad: <strong>&#8216;a&#8217;<\/strong>, <strong>&#8216;2&#8217;<\/strong> kabi.<\/p>\n<\/div>\n<p><em><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1206 size-large\" src=\"https:\/\/yarat.uz\/wp-content\/uploads\/2024\/01\/asc-1024x610.jpg\" alt=\"\" width=\"640\" height=\"381\" srcset=\"https:\/\/yarat.uz\/wp-content\/uploads\/2024\/01\/asc-1024x610.jpg 1024w, https:\/\/yarat.uz\/wp-content\/uploads\/2024\/01\/asc-300x179.jpg 300w, https:\/\/yarat.uz\/wp-content\/uploads\/2024\/01\/asc-768x458.jpg 768w, https:\/\/yarat.uz\/wp-content\/uploads\/2024\/01\/asc-1536x915.jpg 1536w, https:\/\/yarat.uz\/wp-content\/uploads\/2024\/01\/asc-2048x1220.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/em><\/p>\n<p style=\"text-align: center;\"><em>ASCII jadvali<\/em><\/p>\n<p style=\"text-align: justify;\"><strong>String<\/strong> &#8211; barcha turdagi ko&#8217;rsatiladigan qiymatlarni matn ko&#8217;rinishida o&#8217;zida birlashtiruvchi qiymat turi. Bunday qiymat turini <strong>matnli qator<\/strong> (bundan keyin <strong>qator<\/strong>) deb ham yuritiladi.<\/p>\n<p style=\"text-align: justify;\"><strong>Qator<\/strong>, <em>char<\/em> qiymatidan farqli ravishda, bir yoki undan ortiq belgilar va raqamlarni o&#8217;z ichiga olishi mumkin. Qator qiymati odatda (ikkitalik) qo&#8217;shtirnoqqa olinadi. Agar matnda qo&#8217;shtirnoq belgisining o&#8217;zi ham ko&#8217;rsatilishi kerak bo&#8217;lsa, uni teskari slesh belgisidan keyin ko&#8217;rsatiladi (<strong>\\&#8221;<\/strong> kabi). Masalan, <strong>String a = &#8220;abCD\\&#8221;12\\&#8221;#$&#8221;<\/strong> kabi (Yuqoridagi misolda &#8220;<strong>abCD&#8221;12&#8243;#$<\/strong>&#8221; matni <strong>a<\/strong> o&#8217;zgaruvchisiga matn ichidagi qo&#8217;shtirnoq belgisi bilan birga o&#8217;zlashtirilgan). Lekin ba&#8217;zida Arduinoda qo&#8217;shtirnoqsiz ko&#8217;rsatilgan boshqa turdagi qiymatlar ham qator sifatida o&#8217;zlashtirilishi mumkin. Masalan, <strong>String a = 1234<\/strong>, <strong>String b = &#8216;s&#8217;<\/strong>, <strong>String c = &#8216;-2.34&#8217;<\/strong> kabi. Shuningdek, qatorni o&#8217;zgaruvchiga konstruktor bilan ham o&#8217;zlashtirish mumkin: <strong>String<\/strong> a(1234) &#8211; sonli qiymatni o&#8217;zlashtirish, <strong>String b(1234, BIN)<\/strong> &#8211; sonli qiymatdan razryadini (BIN, DEC, HEX) ko&#8217;rsatgan holda<strong>, String b(3.14, 1) <\/strong>&#8211; kasr sonning qiymatini qisqartirib (3.1 tarzida)<strong>, String b(&#8216;s&#8217;)<\/strong> &#8211; <em>char<\/em> qiymat turidan<strong>, String c(&#8220;text&#8221;)<\/strong> &#8211; matndan o&#8217;zlashtirish kabi.<\/p>\n<p style=\"text-align: justify;\">Bir nechta qatorni yoki qator bilan matnni &#8220;<strong>+<\/strong>&#8221; amali yordamida birlashtirish (qo&#8217;shish emas) mumkin. Masalan, <strong>String a = b + c<\/strong> &#8211; bu yerda a, b va c &#8211; qatorlar, <strong>String a = b + &#8220;abcd&#8221;<\/strong> &#8211; bu yerda a va b &#8211; qatorlar, &#8220;abcd&#8221; esa &#8211; matn (yoki teskari ketma-ketlikda ham bilashtirish mumkin: <strong>String a = &#8220;qwerty&#8221; + b<\/strong>). Biroq 2 ta matnni o&#8217;zaro qo&#8217;shib bo&#8217;lmaydi: <strong>String a = &#8220;abcd&#8221; + &#8220;qwerty&#8221;<\/strong> &#8211; xatolikka olib keladi. Ushbu matnlarni qo&#8217;shish uchun ulardan kamida 1 tasi qator bo&#8217;lishi kerak: <strong>String b = &#8220;abcd&#8221;; String a = b + &#8220;qwerty&#8221;<\/strong>.<\/p>\n<p style=\"text-align: justify;\">Bir nechta matn va qatorlarni birlshtirishda ham shu qoidaga amal qilish zarur: <strong>String t = &#8220;25.7&#8221;; String h = &#8220;45 %&#8221;; String a = &#8220;Harorat: &#8221; + t + &#8221; C, havo namligi: &#8221; + h;\u00a0<\/strong> (Natija: <strong>&#8220;Havo namligi: 25.7 C, havo namligi: 45 %&#8221;<\/strong> ko&#8217;rinishiga keladi).<\/p>\n<p style=\"text-align: justify;\">Qatorning boshqa qiymat turlaridan afzalligi &#8211; unga har qanday boshqa qiymat turlaridagi ma&#8217;lumotlarni birlashtirish mumkin. Kamchiligi esa &#8211; u xotiradan boshqa qiymat turlariga nisbatan ko&#8217;proq joy talab qiladi. Aniqrog&#8217;i, uning xotiradan egallaydigan joyi qatordagi belgilar soniga teng bo&#8217;ladi (shuncha bayt joyni band qiladi).<\/p>\n<p style=\"text-align: justify;\">Boshqa turdagi qiymatlarni qator sifatida o&#8217;zlashtirmasdan <strong>(String) amali<\/strong> yordamida ularni vaqtincha qator sifatida ifodalash mumkin, bunda ularning qiymat turi asl holida qoladi (o&#8217;zgarmaydi):<\/p>\n<p style=\"text-align: justify;\"><strong>float t = 25.7; int h = 45; String a = &#8220;Havo harorati: &#8221; + (String)t + &#8221; C, havo namligi: &#8221; + (String)h + &#8221; %&#8221;;<\/strong><\/p>\n<p style=\"text-align: justify;\">Natija: <strong>a<\/strong> ning qiymati <strong>&#8220;Havo harorati: 25.7 C, havo namligi: 45 %&#8221;<\/strong> ko&#8217;rinishiga keladi.<\/p>\n<p style=\"text-align: justify;\">Masalan, bunday amaldan qator bilan turlicha boshqa qiymat turlarini birlashga holda displey orqali ko&#8217;rsatishda foydalanish mumkin.<\/p>\n<p style=\"text-align: justify;\">Qatorning tarkibidagi elementlarni ajratib olishda, konstruktor yordamida unga massivga murojaat qilgandek murojaat qilish mumkin:<\/p>\n<p><strong>String a(&#8220;salom!&#8221;);<br \/>\na[0] = &#8220;S&#8221;; <\/strong><\/p>\n<p>Natija: <strong>&#8220;Salom!&#8221;<\/strong> ko&#8217;rinishiga keladi (1-harf bosh harfga aylandi, massivdagi <strong>0<\/strong>-indeks).<\/p>\n<p><strong>char b = a[1];<\/strong><\/p>\n<p>Natija: <strong>b<\/strong> ning qiymati sifatida a matnli qatordagi &#8220;a&#8221; belgisiga o&#8217;zlashtiriladi (massivdagi 1-indeks).<\/p>\n<p>Qatorlarni taqqoslash ham xuddi sonli o&#8217;zgaruvchilarni taqqoslagandek amalga oshiriladi:<\/p>\n<p><strong>String a = &#8220;salom!&#8221;;<br \/>\nif (a == &#8220;salom!&#8221;) {shart bajarilgandagi amallar};<br \/>\n<\/strong><strong>if (a != &#8220;Salom!&#8221;) {shart bajarilgandagi amallar};<br \/>\n<\/strong><\/p>\n<p style=\"text-align: justify;\">Qatordan Arduino qurilmasidan boshqa qurilmalarga matnli xabar yuborishda, yoki aksincha, ulardan matnli xabarni qabul qilishda ham keng qo&#8217;llaniladi.<\/p>\n<p style=\"text-align: center;\"><strong>O&#8217;ZGARUVCHILAR<\/strong><\/p>\n<p style=\"text-align: justify;\"><strong>O&#8217;zgaruvchi<\/strong> &#8211; o&#8217;z nomiga ega bo&#8217;lgan va mikrokontroller tezkor xotirasida o&#8217;z manziliga ega bo&#8217;lgan xotira katagi, u o&#8217;z o&#8217;lchamiga mos qiymatni saqlaydi. O&#8217;zgaruvchiga uning nomi (yoki boshlang&#8217;ich manzili) bo&#8217;yicha murojaat qilish, uning qiymatini o&#8217;qish va o&#8217;zgartirish mumkin. O&#8217;zgaruvchida hisoblash natijalari, datchiklardan, modullardan olingan qiymatlar va boshqa ma&#8217;lumotlar saqlanishi mumkin.<\/p>\n<p style=\"text-align: justify;\">Arduinoda o&#8217;zgaruvchilar amal qilish doirasiga ko&#8217;ra <strong>global<\/strong> va <strong>lokal<\/strong> turlariga bo&#8217;linadi.<\/p>\n<p style=\"text-align: justify;\"><strong>Global o&#8217;zgaruvchi<\/strong> &#8211; odatda sketchning boshida e&#8217;lon qilinadigan va sketchdagi barcha funksiyalarda amal qiladigan o&#8217;zgaruvchi hisoblanadi. Bu global o&#8217;zgaruvchining qulayligi bo&#8217;lsa, uning salbiy jihati &#8211; uning tezkor xotiradan doimiy joy band qilib turishi hisoblanadi. Ayniqsa, tezkor xotirasi kamroq bo&#8217;lgan plata va mikrokontrollerlarda bu hal qiluvchi ahamiyatga ega bo&#8217;ladi. Global o&#8217;zgaruvchining qiymati sketch davomida xohlagancha o&#8217;zgartirilishi (qayta o&#8217;zlashtirilishi) mumkin. Konstanta-o&#8217;zgaruvchi &#8211; bu global o&#8217;zgaruvchining yana bir turi bo&#8217;lib, uning qiymati ham butun sketch davomida amal qiladi, biroq uning qiymati faqat bir marta belgilanadi va qayta o&#8217;zgarmaydi. Shuning uchun unga odatda o&#8217;zgaruvchi sifatida qaralmaydi ham. Chunki kompilyator uning qiymatini oddiy konstanta sifatida qabul qiladi. Yana bir ahamiyati &#8211; u tezkor xotiradan umuman joy talab qilmaydi.<\/p>\n<p style=\"text-align: justify;\"><strong>Lokal o&#8217;zgaruvchi<\/strong> &#8211; faqat ma&#8217;lum bir funksiya ichidagina amal qiladigan o&#8217;zgaruvchi turi. Tegishli funksiyadan tashqarida undan foydalanib bo&#8217;lmasa-da, u tezkor xotiradan doimiy joy band qilmaydi. Aniqrog&#8217;i, funksiya ishi yakunlanganda, lokal o&#8217;zgaruvchilar tezkor xotiradan o&#8217;chib ketadi. Bir xil nomli lokal o&#8217;zgaruvchidan turli funksiyalarda qayta-qayta foydalanish mumkin (ular bir-biri bilan konflikt qilmaydi). Lokal o&#8217;zgaruvchi o&#8217;zi amal qiladigan funksiya ichida e&#8217;lon qilinadi va uning qiymati funksiya ichida xohlagancha o&#8217;zgartirilishi (qayta o&#8217;zlashtirilishi) mumkin. Bitta funksiya doirasida bir xil nom bilan o&#8217;zgaruvchini takroran e&#8217;lon qilib bo&#8217;lmaydi, lekin unga xohlagancha qaytadan qiymat o&#8217;zlashtirish mumkin.<\/p>\n<p style=\"text-align: justify;\">O&#8217;zgaruvchini e&#8217;lon qilish, unga qiymat o&#8217;zlashtirish va undan foydalanish quyidagicha tartibda amalga oshiriladi:<br \/>\n1) avval uning <strong>qiymat turi<\/strong> va <strong>nomi<\/strong> e&#8217;lon qilinadi (<em>&#8220;int a;&#8221;, &#8220;byte b;&#8221;, &#8220;float c;&#8221;, &#8220;float d;&#8221;, &#8220;String s;&#8221;<\/em> kabi);<br \/>\n2) unga aniq <strong>qiymat o&#8217;zlashtiriladi<\/strong> (<em>&#8220;a = 0;&#8221;, &#8220;b = -5;&#8221;, &#8220;c = 2.5;&#8221;, &#8220;d = 1.0;&#8221;, &#8220;s = &#8216;Salom dunyo!&#8217;;&#8221;<\/em> kabi). Agar qiymat turi matn bo&#8217;lsa, qiymat doim qo&#8217;shtirnoqqa olinadi;<br \/>\n3) shundan keyin undan xohlagancha foydalanish mumkin, bunda foydalanish doirasi (joyi) o&#8217;zgaruvchining turiga bog&#8217;liq bo&#8217;ladi.<br \/>\nAgar o&#8217;zgaruvchi e&#8217;lon qilinganidan keyin unga qiymat o&#8217;zlashtirilmasa, kompilyator ko&#8217;p hollarda unga avtomatik ravishda <strong>0<\/strong> (nol) qiymatini (agar qiymat turi son bo&#8217;lsa) yoki <strong>&#8220;&#8221; <\/strong>(bo&#8217;shliq) qiymatini (agar qiymat turi matn bo&#8217;lsa) o&#8217;zlashtiriladi. Lekin, har doim unga dastlabki qiymatni o&#8217;zlashtirish maqsadga muvofiq hisoblanadi.<\/p>\n<p style=\"text-align: justify;\">Kodni ixchamlashtirish maqsadida o&#8217;zgaruvchini e&#8217;lon qilish paytida unga dastlabki qiymatni o&#8217;zlashtirish ham mumkin. Masalan <em>&#8220;int a = 0;&#8221;, &#8220;float c = 2.5;&#8221;<\/em> kabi.<\/p>\n<p style=\"text-align: justify;\">O&#8217;zgaruvchiga o&#8217;zlashtirilgan qiymat o&#8217;zgaruvchining oldindan belgilangan qiymat turiga mos kelmasa, kompilyator xatolikni o&#8217;zi to&#8217;g&#8217;rilab oladi. Masalan, <strong>int a = 2.35<\/strong> amalida qiymat turi sifatida buton son (<strong>int<\/strong>) e&#8217;lon qilingan, lekin o&#8217;zlashtirilgan qiymat kasr son. Kompilyator bunday holda <strong>a<\/strong> o&#8217;zgaruvchiga <strong>2<\/strong> qiymatini o&#8217;zlashtiradi, ya&#8217;ni faqat butun qismini qabul qiladi, kasr qismini tashlab yuboradi (yaxlitlanmaydi).<\/p>\n<p style=\"text-align: justify;\">Kompilyator ko&#8217;p hollarda son ko&#8217;rinishidagi boshqa qiymat turini <em><strong>int<\/strong><\/em> qiymat turi sifatida qarashi mumkin. Masalan, <em>bool<\/em> qiymat turidagi <strong><em>HIGH<\/em><\/strong> yoki <em><strong>true<\/strong><\/em> qiymatlarini <strong><em>int<\/em><\/strong> qiymat turidagi <strong>1<\/strong> raqami sifatida, <em><strong>LOW <\/strong><\/em>yoki <em><strong>false<\/strong><\/em> qiymatlarini <strong><em>int<\/em><\/strong> qiymat turidagi <strong>0<\/strong> raqami sifatida qaraydi. Lekin bu dastur ishiga ta&#8217;sir ko&#8217;rsatmaydi, aksincha uni osonlashtiradi. Foydalanuvchi ham <em><strong>bool<\/strong><\/em> qiymat turidagi o&#8217;zgaruvchi qiymatini kod davomida <strong>1<\/strong> yo <strong>0<\/strong> ko&#8217;rinishida ifodalashi mumkin. <em><strong>Bool<\/strong><\/em> qiymat turi bilan e&#8217;lon qilingan o&#8217;zgaruvchiga ataylab yoki tasodifan notog&#8217;ri o&#8217;zlashtirilgan <strong>1<\/strong> dan katta har qanday qiymatni kompilyator har doim <strong><em>1 (HIGH, true)<\/em><\/strong> sifatida qabul qiladi.<\/p>\n<p style=\"text-align: center;\"><strong>Struktura<\/strong><\/p>\n<p style=\"text-align: justify;\"><strong>Struktura (struct)<\/strong> &#8211; o&#8217;zgaruvchilarning qo&#8217;shma (birlashgan) ko&#8217;rinishi, ya&#8217;ni har xil qiymat turidagi o&#8217;zgaruvchilarning bitta nom ostida e&#8217;lon qilinishi hisoblanadi. Struktura e&#8217;lon qilishi va qo&#8217;llanilishi jihatidan C++ dasturlash tilidagi klassni eslatadi: u ham struktura sarlavhasi kabi (klassning obyektiga o&#8217;xshab) e&#8217;lon qilinadi. Struktura turini yorliq deb yuritiladi. Struktura quyidagicha e&#8217;lon qilinadi:<\/p>\n<div class=\"enlighter-default enlighter-v-standard enlighter-t-wpcustom enlighter-l-cpp enlighter-hover enlighter-overflow-scroll wp-dark-mode-ignore\" style=\"text-align: justify;\">\n<div class=\"enlighter-code wp-dark-mode-ignore\">\n<div class=\"enlighter wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-k2 wp-dark-mode-ignore\">struct<\/span> <span class=\"enlighter-g1 wp-dark-mode-ignore\">&lt;<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">yorliq<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">&gt;<\/span> <span class=\"enlighter-g1 wp-dark-mode-ignore\">{<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-g1 wp-dark-mode-ignore\">\u00a0 &lt;1-<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">tur<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">&gt;<\/span> <span class=\"enlighter-g1 wp-dark-mode-ignore\">&lt;<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">1-o&#8217;zgaruvchi<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">&gt;<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">;<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-g1 wp-dark-mode-ignore\">\u00a0 &lt;2-<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">tur<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">&gt;<\/span> <span class=\"enlighter-g1 wp-dark-mode-ignore\">&lt;<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">2-o&#8217;zgaruvchi<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">&gt;<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">;<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-g1 wp-dark-mode-ignore\">\u00a0 &lt;3-<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">tur<\/span> <span class=\"enlighter-g1 wp-dark-mode-ignore\">&gt;<\/span> <span class=\"enlighter-g1 wp-dark-mode-ignore\">&lt;<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">3-o&#8217;zgaruvchi<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">&gt;<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">;<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-g1 wp-dark-mode-ignore\">}<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">;<\/span><\/strong><\/div>\n<div>Masalan, umumiy &#8220;menigStrukturam&#8221; yorlig&#8217;i (turi) ostida 5 xil a&#8217;zolarini (o&#8217;zgaruvchilarni) e&#8217;lon qilish:<\/div>\n<div>\n<div class=\"wp-dark-mode-ignore\" style=\"text-align: justify;\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-k2 wp-dark-mode-ignore\">struct <\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\">menigStrukturam<\/span>{<\/span> <span class=\"enlighter-c0 wp-dark-mode-ignore\"><br \/>\n<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\" style=\"text-align: justify;\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0 boolean bayroqcha1;<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\" style=\"text-align: justify;\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0 byte bufer1;<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\" style=\"text-align: justify;\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-k5 wp-dark-mode-ignore\">\u00a0 int<\/span><span class=\"enlighter-text wp-dark-mode-ignore\"> son1;<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\" style=\"text-align: justify;\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-k5 wp-dark-mode-ignore\">\u00a0 long<\/span><span class=\"enlighter-text wp-dark-mode-ignore\"> son2;<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\" style=\"text-align: justify;\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0 byte massiv1<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">[<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">5<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">]<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">;<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\" style=\"text-align: justify;\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-g1 wp-dark-mode-ignore\">}<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">;<\/span><\/strong><\/div>\n<\/div>\n<\/div>\n<div>Yorliq &#8211; qiymatlarning alohida (aralash) turi deb qabul qilinadi. Yorliqdan foydalanib, strukturaning o&#8217;zini e&#8217;lon qilish mumkin:<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p style=\"text-align: justify;\"><strong>&lt;yorliq&gt; &lt;struktura nomi&gt;;<\/strong> \/\/ 1 ta strukturani e&#8217;lon qilish<br \/>\n<strong>&lt;yorliq&gt; &lt;1-struktura nomi&gt;, &lt;2-struktura nomi&gt;;<\/strong> \/\/ &lt;yorliq&gt; turli 2 ta strukturani e&#8217;lon qilish<br \/>\n<strong>&lt;yorliq&gt; &lt;struktura nomi&gt;[3];<\/strong> \/\/ &lt;yorliq&gt; turli strukturalar massivini e&#8217;lon qilish<\/p>\n<p style=\"text-align: justify;\">Shuningdek, strukturani yorliq yaratmasdan ham e&#8217;lon qilish mumkin:<\/p>\n<div class=\"enlighter-default enlighter-v-standard enlighter-t-wpcustom enlighter-l-cpp enlighter-hover enlighter-overflow-scroll wp-dark-mode-ignore\" style=\"text-align: justify;\">\n<div class=\"enlighter-code wp-dark-mode-ignore\">\n<div class=\"enlighter wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-k2 wp-dark-mode-ignore\">struct<\/span> <span class=\"enlighter-g1 wp-dark-mode-ignore\">{<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-g1 wp-dark-mode-ignore\">&lt;1-<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">tur<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">&gt;<\/span> <span class=\"enlighter-g1 wp-dark-mode-ignore\">&lt;<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">1-o&#8217;zgaruvchi nomi<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">&gt;<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">;<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-g1 wp-dark-mode-ignore\">&lt;2-<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">tur<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">&gt;<\/span> <span class=\"enlighter-g1 wp-dark-mode-ignore\">&lt;2<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\">-o&#8217;zgaruvchi nomi<\/span>&gt;<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">;<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-g1 wp-dark-mode-ignore\">&lt;3-<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">tur<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">&gt;<\/span> <span class=\"enlighter-g1 wp-dark-mode-ignore\">&lt;<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">3-o&#8217;zgaruvchi nomi<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">&gt;<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">;<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-g1 wp-dark-mode-ignore\">}<\/span> <span class=\"enlighter-g1 wp-dark-mode-ignore\">&lt;<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">struktura nomi<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">&gt;<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">;<\/span><\/strong><\/div>\n<div>\n<div class=\"enlighter-default enlighter-v-standard enlighter-t-wpcustom enlighter-l-cpp enlighter-hover enlighter-overflow-scroll wp-dark-mode-ignore\">\n<div class=\"enlighter-code wp-dark-mode-ignore\">\n<div class=\"enlighter wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\">\n<ul>\n<li>Struktura a\u2019zosiga murojaat qilish quyidagicha amalga oshiriladi (klass kabi):\u00a0<strong>&lt;struktura nomi&gt;.&lt;o\u2019zgaruvchi nomi&gt;<\/strong> operatori qiymatini o\u2019qish va o\u2019zgartirish imkonini beradi.<\/li>\n<li>agar 2 ta struktura bir xil tuzilgan bo\u2019lsa (1 ta yorliq asosida e\u2019lon qilingan bo\u2019lsa), 1 ta strukturani boshqasiga o\u2019zlashtirish ham mumkin. Barcha o\u2019zgaruvchilar mos ravishda o\u2019z o\u2019rinlariga yoziladi: <strong>&lt;struktura nomi1&gt; = &lt;struktura nomi2&gt;;<\/strong><\/li>\n<li>Strukturani o\u2019zlashtirishning yana bir qulay usuli:\u00a0<strong>&lt;struktura nomi&gt;=(&lt;yorliq&gt;){&lt;1-o\u2019zgaruvchi qiymati&gt;,&lt;2-o\u2019zgaruvchi qiymati&gt;,&lt;3-o\u2019zgaruvchi qiymati&gt;}<\/strong><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>\/\/Misollar:<br \/>\n<span class=\"enlighter-c0 wp-dark-mode-ignore\">\/\/ 1-qadam: \u2018<span class=\"enlighter-text wp-dark-mode-ignore\">yorliq1<\/span>\u2018 turli struktura yorlig\u2019i yaratiladi va uning a&#8217;zolari (o\u2019zgaruvchilari) e\u2019lon qilinadi:<\/span><\/p>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-k2 wp-dark-mode-ignore\">struct\u00a0<\/span><\/strong><span class=\"enlighter-g1 wp-dark-mode-ignore\"><strong><span class=\"enlighter-text wp-dark-mode-ignore\">yorliq1<\/span><\/strong>{<\/span><span class=\"enlighter-c0 wp-dark-mode-ignore\"><br \/>\n<\/span><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0 boolean a;<\/span><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0 byte b;<\/span><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><span class=\"enlighter-k5 wp-dark-mode-ignore\">\u00a0 int<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0c;<\/span><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><span class=\"enlighter-k5 wp-dark-mode-ignore\">\u00a0 long<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0d;<\/span><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0 byte arr<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">[<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">5<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">]<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">;<\/span><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><span class=\"enlighter-g1 wp-dark-mode-ignore\">}<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">;<\/span><\/div>\n<\/div>\n<div>\/\/2-qadam:<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div><span class=\"enlighter-text wp-dark-mode-ignore\"><strong>yorliq1 qiymatlar2;<\/strong>\u00a0<\/span><span class=\"enlighter-c0 wp-dark-mode-ignore\">\/\/ \u2018yorliq1\u2019 turida \u2018<span class=\"enlighter-text wp-dark-mode-ignore\">qiymatlar2\u2032 nomli struktura yaratiladi<\/span><br \/>\n<\/span><\/div>\n<\/div>\n<div class=\"wprt-container\">\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-text wp-dark-mode-ignore\">yorliq1\u00a0<span class=\"enlighter-c0 wp-dark-mode-ignore\">qiymatlar3<\/span><\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">[<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">3<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">]<\/span><\/strong><span class=\"enlighter-text wp-dark-mode-ignore\"><strong>;<\/strong>\u00a0<span class=\"enlighter-c0 wp-dark-mode-ignore\">\/\/ \u2018yorliq1\u2019 turli \u2018qiymatlar3\u2019 nomli 3 o\u2019lchovli strukturalar massivi yaratiladi<\/span><br \/>\n<\/span><\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><span class=\"enlighter-c0 wp-dark-mode-ignore\">\/\/ 3-qadam: struktura a\u2019zolariga qiymatlarni bevosita o\u2019zlashtiramiz:<\/span><\/div>\n<\/div>\n<p><span class=\"enlighter-k5 wp-dark-mode-ignore\">void<\/span>\u00a0<span class=\"enlighter-m0 wp-dark-mode-ignore\">setup<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">()<\/span>\u00a0<span class=\"enlighter-g1 wp-dark-mode-ignore\">{<\/span><\/p>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-c0 wp-dark-mode-ignore\">\u00a0\u00a0 qiymatlar2.<\/span><span class=\"enlighter-m3 wp-dark-mode-ignore\">a<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0=\u00a0<\/span><span class=\"enlighter-e0 wp-dark-mode-ignore\">true<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">;<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0\u00a0 qiymatlar2.<\/span><span class=\"enlighter-m3 wp-dark-mode-ignore\">b<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0= 10;<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0\u00a0 qiymatlar2.<\/span><span class=\"enlighter-m3 wp-dark-mode-ignore\">c<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0= 1200;<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0\u00a0 qiymatlar2.<\/span><span class=\"enlighter-m3 wp-dark-mode-ignore\">d<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0= 789456;<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0\u00a0 qiymatlar2.<\/span><span class=\"enlighter-m3 wp-dark-mode-ignore\">arr<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">[<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">0<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">]<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0= 10;<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0\u00a0 qiymatlar2.<\/span><span class=\"enlighter-m3 wp-dark-mode-ignore\">arr<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">[<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">1<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">]<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0= 20;<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0\u00a0 qiymatlar2.<\/span><span class=\"enlighter-m3 wp-dark-mode-ignore\">arr<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">[<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">2<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">]<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0= 30;<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><span class=\"enlighter-c0 wp-dark-mode-ignore\">\/\/ \u2018<span class=\"enlighter-text wp-dark-mode-ignore\">qiymatlar2\u2032<\/span>\u00a0strukturasini \u2018<span class=\"enlighter-text wp-dark-mode-ignore\">qiymatlar3\u2032<\/span>\u00a0strukturasiga 0-tartib bilan o\u2019zlashtiramiz:<\/span><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0\u00a0 <strong>qiymatlar3<\/strong><\/span><strong><span class=\"enlighter-g1 wp-dark-mode-ignore\">[<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">0<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">]<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0= qiymatlar2;<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><span class=\"enlighter-c0 wp-dark-mode-ignore\">\/\/ \u2018<span class=\"enlighter-text wp-dark-mode-ignore\">qiymatlar2\u2032<\/span>\u00a0strukturasidagi massiv elementini \u2018<span class=\"enlighter-text wp-dark-mode-ignore\">qiymatlar3\u2032 strukturasiga 1-tartib bilan o\u2019zlashtiramiz:<\/span><\/span><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-g1 wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\">qiymatlar3<\/span>[<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">0<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">]<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">.<\/span><span class=\"enlighter-m3 wp-dark-mode-ignore\">arr<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">[<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">1<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">]<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0=\u00a0<\/span><span class=\"enlighter-m3 wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\">qiymatlar2<\/span>.arr<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">[<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">1<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">]<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">;<\/span><\/strong><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><span class=\"enlighter-c0 wp-dark-mode-ignore\">\/\/ 2-tartibli \u2018<span class=\"enlighter-text wp-dark-mode-ignore\">qiymatlar3\u2032<\/span>\u00a0strukturasini \u2018qiymatlar1\u2019 dagi o\u2019zgaruvchilar qiymatlari bilan to\u2019ldiramiz:<br \/>\n<\/span><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><strong><span class=\"enlighter-g1 wp-dark-mode-ignore\"><span class=\"enlighter-text wp-dark-mode-ignore\">qiymatlar3<\/span>[<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">2<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">]<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">\u00a0=\u00a0<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">(<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">qiymatlar1<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">)<\/span>\u00a0<\/strong><span class=\"enlighter-g1 wp-dark-mode-ignore\">{<\/span><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><span class=\"enlighter-e0 wp-dark-mode-ignore\">\u00a0 \u00a0 false<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">, 30, 3200, 321654,\u00a0<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">{<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">1, 2, 3, 4, 5<\/span><span class=\"enlighter-g1 wp-dark-mode-ignore\">}<\/span><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">\n<div class=\"wp-dark-mode-ignore\"><span class=\"enlighter-g1 wp-dark-mode-ignore\">\u00a0 }<\/span><span class=\"enlighter-text wp-dark-mode-ignore\">;<\/span><\/div>\n<\/div>\n<div class=\"wp-dark-mode-ignore\">}<\/div>\n<div><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p id=\"parsing\" style=\"text-align: center;\"><strong style=\"text-align: justify;\"><em>String<\/em> qiymat turi bilan ishlash (parsing)<br \/>\n<\/strong><\/p>\n<p style=\"text-align: justify;\"><strong>Parsing &#8211;<\/strong> qatorni tahlil qilib, uning bir qismini yoki kerakli qiymatni ajratib olish jarayoni.<\/p>\n<p style=\"text-align: justify;\">Arduino qurilmalari bilan ishlashda parsingdan ko&#8217;p foydalanilishini hisobga olib, bu haqda batafsilroq ma&#8217;lumotga ega bo&#8217;lish maqsadga muvofiq.<\/p>\n<p style=\"text-align: justify;\">Yuqorida ham aytib o&#8217;tilganidek, Arduino qurilmasi bilan boshqa qurilmalar bog&#8217;langanidan so&#8217;ng, ular o&#8217;rtasidagi ma&#8217;lumot almashinuvida qatordan keng foydalaniladi. Chunki, undan foydalanish qulay va uni boshqa qiymat turlariga o&#8217;tkazish ham nisbatan oson bajariladi. Masalan, 2 ta qurilma o&#8217;rtasidagi bog&#8217;lanishda almashinadigan ma&#8217;lumot (bufer ma&#8217;lumoti)da turli xil sonlar, telefon raqamlari va boshqa kodlar mavjud bo&#8217;lsa, qator bilan ishlovchi buyruq va funksiyalar yordamida ularni ajratib olish hamda tegishli qiymat turiga almashtirish mumkin bo&#8217;ladi. Odatda, bufer ma&#8217;lumotini shakllantisihda uning yakunlanganini identifikatsiyalovchi <strong>qator oxiri<\/strong> belgisi ham qo&#8217;shib qo&#8217;yiladi (qator oxiriga &#8220;<strong>\\r<\/strong>&#8221; kodini qo&#8217;shish yordamida). Shuningdek, agar buferdagi ma&#8217;lumot 1 tadan ortiq qatordan tashkil topgan bo&#8217;lsa, <strong>yangi qator <\/strong>belgisi\u00a0(&#8220;<strong>\\n<\/strong>&#8221; kodi) ham qo&#8217;llaniladi.<\/p>\n<p style=\"text-align: justify;\">Parsing jarayonida Arduinoda qatorlar bilan ishlashning quyidagi metodlaridan foydalaniladi (qo&#8217;llanilish formati: <strong>&lt;matn_qatori_nomi&gt;.&lt;metod_nomi&gt;<\/strong>):<\/p>\n<p style=\"text-align: justify;\"><strong>charAt(indeks)<\/strong> &#8211; qatorning ko&#8217;rsatilgan pozitsiyasi (indeksidagi) 1 ta qiymatni qaytaradi. Masalan, <strong>a.<\/strong><strong class=\"wp-dark-mode-ignore\">charAt<\/strong><strong>(0)<\/strong> &#8211; <strong>a<\/strong> nomli qatorning 1-pozitsiyasidagi (<strong>0<\/strong>-indeksidagi) elementni qaytariladi (indeks <strong>0<\/strong> dan boshlab hisoblanadi, shuning uchun qiymati pozitsiyanikidan 1 ta birlikka kam bo&#8217;ladi. ).<\/p>\n<p style=\"text-align: justify;\"><strong>setCharAt(indeks, qiymat)<\/strong> &#8211; qatorning ko&#8217;rsatilgan pozitsiyasidagi (indeksidagi) qiymatni yangi qiymat bilan almashtiriladi. Masalan, <strong>a.<\/strong><strong class=\"wp-dark-mode-ignore\">charAt<\/strong><strong>(0, &#8220;S&#8221;)<\/strong> &#8211; a nomli qatorning <strong>0<\/strong>-pozitsiyasidagi elementi &#8220;<strong>S<\/strong>&#8221; belgisi bilan almashtiriladi.<\/p>\n<p style=\"text-align: justify;\"><strong>compareTo()<\/strong> &#8211; qatorlarni ASCII jadvali bo&#8217;yicha o&#8217;zaro joylashgan o&#8217;rinlarini taqqoslash. Masalan, <strong>a.compareTo(b)<\/strong> &#8211; <strong>a<\/strong> nomli qatorning <strong>b<\/strong> nomli qatordan oldin yoki keyin kelayotganligini tekshiradi va agar <strong>a<\/strong> qator o&#8217;rni <strong>b<\/strong> dan oldin kelsa <strong>manfiy<\/strong>, <strong>b<\/strong> qator <strong>a<\/strong> qatordan oldin kelsa <strong>musbat<\/strong>, ikkalasi bir xil bo&#8217;lsa <strong>0<\/strong> (nol) qiymatini qaytaradi.<\/p>\n<p style=\"text-align: justify;\"><strong>concat()<\/strong> &#8211; ixtiyoriy turdagi raqamli qiymatni matnli qatorga qo&#8217;shib (birlashtirib) oladi va qo&#8217;shib olish muvaffaqiyatli yoki muvaffaqiyatsiz ekanligini ifodalaydi. Masalan,\u00a0 <strong>a.concat(num)<\/strong> &#8211; <strong>a<\/strong> nomli matnli qatorga <strong>num<\/strong> qaymatini qo&#8217;shib olish muvaffaqiyatli bo&#8217;lsa <strong>true<\/strong>, aksincha <strong>false<\/strong> qiymatini qaytaradi. Xuddi <strong>b<\/strong> = <strong>a + num<\/strong> ifodasi bilan bir xil natija beradi (<strong>a, b<\/strong> &#8211; matnli qatorlar, <strong>num<\/strong> &#8211; sonli qiymat).<\/p>\n<p style=\"text-align: justify;\"><strong>endsWith()<\/strong> &#8211; qator oxiri boshqa qator qiymatiga mos kelishi yoki mos kelmasligini (qator qanday matn bilan yakunlanishini) tekshiradi. Agar mos kelsa <strong>true<\/strong>, aksincha <strong>false<\/strong> qiymatlarini qaytaradi. Masalan, <strong>a.endWith(b)<\/strong> &#8211; <strong>a<\/strong> qatori oxirida <strong>b<\/strong> qatori mavjudligi tekshiriladi.<\/p>\n<p style=\"text-align: justify;\"><strong>startsWith()<\/strong> &#8211; qator boshlanish boshqa qator qiymatiga mos kelishi yoki mos kelmasligini (qator qanday matn bilan boahlanishini) tekshiradi. Agar mos kelsa <strong>true<\/strong>, aksincha <strong>false<\/strong> qiymatlarini qaytaradi. Masalan, <strong>a.startsWith(b)<\/strong> &#8211; <strong>a<\/strong> qatori <strong>b<\/strong> qatori bilan boshlanishini tekshiriladi.<\/p>\n<p style=\"text-align: justify;\"><strong>equals()<\/strong> &#8211; ikkita qator o&#8217;zaro bir xilligini tekshiradi, bir xil bo&#8217;lsa <strong>true<\/strong>, aksincha <strong>false<\/strong> qiymati qaytariladi. Bunda, matnlar registri (bosh va kichik harflar) ham hisobga olinadi. Masalan, <strong>a.equals(b)<\/strong> &#8211; <strong>a<\/strong> qatori <strong>b<\/strong> qatori bilan bir xilligi tekshiriladi, <strong>matn registri hisobga olinadi<\/strong>.<\/p>\n<p style=\"text-align: justify;\"><strong>equalsIgnoreCase()<\/strong> &#8211; ikkita qator o&#8217;zaro bir xilligini tekshiradi, bir xil bo&#8217;lsa <strong>true<\/strong>, aksincha <strong>false<\/strong> qiymati qaytariladi. Bunda, matnlar registri hisobga olinmaydi. Masalan, <strong>a.equalsIgnoreCase(b)<\/strong> &#8211; <strong>a<\/strong> qatori <strong>b<\/strong> qatori bilan bir xilligi tekshiriladi, <strong>matn registri hisobga olinmaydi<\/strong>.<\/p>\n<p style=\"text-align: justify;\"><strong>indexOf()<\/strong> &#8211; qatorda boshqa qator mavjudligi va agar mavjud bo&#8217;lsa, uning joylashgan o&#8217;rnini (indeksini) qaytaradi, mavjud bo&#8217;lmasa, <strong>-1<\/strong> qiymatini qaytaradi.\u00a0 Masalan, <strong>a.indexOf(b)<\/strong> &#8211; <strong>a<\/strong> qatorida <strong>b<\/strong> qatori mavjud bo&#8217;lsa, uning indeksi, aksincha <strong>-1<\/strong> qiymati qaytariladi, izlash <strong>a <\/strong>qatorining boshidan oxirigacha amalga oshiriladi. Ushbu metodni <strong>a.indexOf(b, indeks)<\/strong> ko&#8217;rinishida ham ifodalash mumkin. Bunda, <strong>indeks<\/strong> argumenti izlashni boshlash indeksi aniq ko&#8217;rsatiladi. Masalan, <strong>a.indexOf(b, 10)<\/strong> &#8211; <strong>a<\/strong> qatorining <strong>11-<\/strong>pozitsiyasi (<strong>10-indeksi<\/strong>) dan boshlab oxirigacha <strong>b<\/strong> qatori mavjud bo&#8217;lsa, uning indeksi, aksincha <strong>-1<\/strong> qiymati qaytariladi, izlash <strong>a<\/strong> qatorning <strong>11-<\/strong>pozitsiyasidan boshlab uning oxirigacha amalga oshiriladi.<\/p>\n<p style=\"text-align: justify;\"><strong>lastIndexOf()<\/strong> &#8211; qatorda boshqa qator mavjudligi va agar mavjud bo&#8217;lsa, uning aniqlangan indekslar ichidagi eng oxirgisining indeksini, mavjud bo&#8217;lmasa, <strong>-1<\/strong> qiymatini qaytaradi.\u00a0 Masalan, <strong>a.<\/strong><strong>lastIndexOf(b)<\/strong> &#8211; <strong>a<\/strong> qatorida <strong>b<\/strong> qatori bir nechta o&#8217;rinda mavjud bo&#8217;lsa, uning eng oxirgisi indeksi, aksincha <strong>-1<\/strong> qiymati qaytariladi.<\/p>\n<p><strong>length()<\/strong> &#8211; qatorning uzunligini (undagi belgilar jami sonini) qaytaradi. Masalan, <strong>a.length()<\/strong> &#8211; <strong>a<\/strong> qatori uzunligini qaytaradi.<\/p>\n<p style=\"text-align: justify;\"><strong>remove()<\/strong> &#8211; qatorning ko&#8217;rsatilgan indeksdan to oxirigacha yoki ko&#8217;rsatilgan boshqa indeksgacha oraliqdagi barcha belgilarini o&#8217;chiradi. Masalan, <strong>a.remove(10)<\/strong> &#8211; <strong>a<\/strong> qatorining <strong>10<\/strong>-indeksidan oxirigacha bo&#8217;lgan belgilari o&#8217;chiriladi. <strong>a.remove(10, 25)<\/strong> &#8211; <strong>a<\/strong> qatorining <strong>10<\/strong>-indeksidan 25-indeksigacha bo&#8217;lgan belgilari o&#8217;chiriladi.<\/p>\n<p style=\"text-align: justify;\"><strong>replace()<\/strong> &#8211; qatorda uchragan bor matnni boshqa matn bilan almashtiradi. Masalan, <strong>a.replace(&#8220;salom&#8221;, &#8220;xayr&#8221;)<\/strong> &#8211; <strong>a <\/strong>qatorda uchragan barcha <strong>&#8220;salom&#8221;<\/strong> matnlarini <strong>&#8220;xayr&#8221;<\/strong> matnlariga almashtiradi.<strong><br \/>\n<\/strong><\/p>\n<p style=\"text-align: justify;\"><strong>reserve()<\/strong> &#8211; xotiradan qator o&#8217;zgaruvchisi uchun ma&#8217;lum bayt joyni oldindan rezervga olish (&#8220;bron&#8221; qilish). Masalan, <strong>a.reserve(100)<\/strong> &#8211; <strong>a <\/strong>qator o&#8217;zgaruvchisi uchun <strong>100<\/strong> bayt joy ajratib qo&#8217;yilishi kerakligi ko&#8217;rsatilmoqda. Xotiradan oldindan joy olish nafaqat qatorning maksimal uzunligini belgilab qo&#8217;yilgani bilan, balki qator bilan ishlashning tezroq bajarilishi bilan ham ahamiyatli (kodda qator o&#8217;zgaruvchisi qiymati o&#8217;zgargan taqdirda, uning uzunligi ko&#8217;rsatilgan chegaradan oshmaydi).<\/p>\n<p style=\"text-align: justify;\"><strong>c_str()<\/strong> &#8211; \/\/ matnni &#8220;c&#8221; formatiga (null-terminated string) o&#8217;tkazadi va hosil bo&#8217;lgan matnga <a href=\"https:\/\/alexgyver.ru\/lessons\/pointers\/\">ko&#8217;rsatkich<\/a>ni qaytaradi (qatorga <em><strong>char*<\/strong><\/em> ko&#8217;rsatkichni qaytaradi). <strong>a.c_str(char* b)<\/strong> &#8211; <strong>a <\/strong>qatorga <strong>char* b<\/strong> ko&#8217;rsatkich qaytariladi.<\/p>\n<p style=\"text-align: justify;\"><strong>trim()<\/strong> &#8211; matn boshi va oxiridagi probellarni o&#8217;chirish. <strong>a.trim()<\/strong> &#8211; <strong>a <\/strong>qatori boshi va oxiridagi probellar o&#8217;chirib tashlanadi.<strong><br \/>\n<\/strong><\/p>\n<p style=\"text-align: justify;\"><strong>substring()<\/strong> &#8211; ko&#8217;rsatilgan indeksdan boshlab oxirigacha yoki ko&#8217;rsatilgan ikkinchi indeksgacha oraliqda qatorda mavjud bo&#8217;lgan belgilar ketma-ketligini qaytarish. Masalan, <strong>a.substring(i)<\/strong> &#8211; <strong>a <\/strong>qatorining <strong>i<\/strong> indeksidan boshlab oxirigacha oraliqda mavjud belgilar ketma-ketligi qaytariladi. Yoki, <strong>a<\/strong>.<strong class=\"wp-dark-mode-ignore\">substring<\/strong>(<strong>i1, i2<\/strong>) &#8211; ko&#8217;rsatilgan boshlang&#8217;ich indeksdan (<strong>i1<\/strong> dan) boshlab ko&#8217;rsatilgan oxirgi indeksgacha (<strong>i2<\/strong> gacha) qatorda mavjud bo&#8217;lgan belgilar ketma-ketligi qaytariladi.<\/p>\n<p style=\"text-align: justify;\"><strong>toCharArray()<\/strong> &#8211; qatorning belgilarini <strong>char<\/strong> turli massivga (buferga), ma&#8217;lum uzunlikkacha o&#8217;zlashtirish va avtomatik ravishda unga qator oxiri belgisini qo&#8217;shish. Masalan, <strong>a.toCharArray(bufer, len)<\/strong> &#8211; <strong>a<\/strong> qatorining belgilarini <strong>char<\/strong> turli, <strong>bufer<\/strong> nomli massiv-buferga <strong>len<\/strong> uzunligigacha bo&#8217;lgan qismini o&#8217;zlashtiriladi va qator oxiri belgisi qo&#8217;shadi.<\/p>\n<p style=\"text-align: justify;\"><strong>getBytes()<\/strong> &#8211; qatorning ma&#8217;lum uzunlikdagi qismini <strong>byte<\/strong> turidagi massiv-buferga nusxalash va avtomatik ravishda qator oxiri belgisini qo&#8217;shish. Masalan, <strong>a.getBytes(bufer, len)<\/strong> &#8211; <strong>a<\/strong> qatorining belgilarini <strong>byte<\/strong> turli, <strong>bufer<\/strong> nomli massiv-buferga <strong>len<\/strong> uzunligigacha bo&#8217;lgan qismini nusxalaydi va qator oxiri belgisi qo&#8217;shadi.<\/p>\n<p style=\"text-align: justify;\"><strong>toFloat()<\/strong> &#8211; qator sonli qiymatlarini <strong>float<\/strong> qiymat turiga aylantiradi (konvertatsiyalaydi) va qaytaradi. Masalan, <strong>a.toFloat()<\/strong> &#8211; <strong>a <\/strong>qatoridagi sonli qiymatlarni <strong>float<\/strong> qiymat turiga konvertatsiyalaydi. <strong>String a = &#8220;12.34&#8221;<\/strong> yoki <strong>String a = &#8220;abc12.34&#8221;<\/strong> bo&#8217;lsa, <strong>a.toFloat()<\/strong> natijasi <strong>12.34<\/strong> bo&#8217;ladi.<\/p>\n<p style=\"text-align: justify;\"><strong>toDouble()<\/strong> &#8211; qator sonli qiymatlarini <strong>double<\/strong> qiymat turiga aylantiradi (konvertatsiyalaydi) va qaytaradi. Masalan, <strong>a.toDouble()<\/strong> &#8211; <strong>a <\/strong>qatoridagi sonli qiymatlarni <strong>double<\/strong> qiymat turiga konvertatsiyalaydi. <strong>String a = &#8220;12.34&#8221;<\/strong> yoki <strong>String a = &#8220;abc12.34&#8221;<\/strong> bo&#8217;lsa, <strong>a.toDouble()<\/strong> natijasi <strong>12.34<\/strong> bo&#8217;ladi.<\/p>\n<p style=\"text-align: justify;\"><strong>toInt()<\/strong> &#8211; qator sonli qiymatlarini <strong>butun <\/strong><b>sonli <\/b>(bool, byte, int, long, uint64_t) formatdagi qiymat turiga aylantiradi (konvertatsiyalaydi) va qaytaradi. Masalan, <strong>a.toInt()<\/strong> &#8211; <strong>a <\/strong>qatoridagi sonli qiymatlarni <strong>int<\/strong> qiymat turiga konvertatsiyalaydi. <strong>String a = &#8220;1234&#8221;<\/strong> yoki <strong>String a = &#8220;abc1234&#8221;<\/strong> bo&#8217;lsa, <strong>a.toInt()<\/strong> natijasi <strong>1234<\/strong> bo&#8217;ladi.<\/p>\n<p style=\"text-align: justify;\"><strong>toLowerCase()<\/strong> &#8211; qatordagi barcha harfli belgilarni quyi registrga o&#8217;tkazadi. Masalan,\u00a0agar <strong>String a = &#8220;ABCD123&#8221;<\/strong> yoki <strong>String a = &#8220;ABcd123&#8221;<\/strong> bo&#8217;lsa, <strong>a.toLowerCase() <\/strong>natijasi <strong>&#8220;abcd123&#8221;<\/strong> bo&#8217;ladi.<\/p>\n<p><strong>toUpperCase()<\/strong> &#8211; qatordagi barcha harfli belgilarni yuqori registrga o&#8217;tkazadi. Masalan, agar <strong>String a = &#8220;abcd123&#8221;<\/strong> yoki <strong>String a = &#8220;ABcd123&#8221;<\/strong> bo&#8217;lsa, <strong>a.toUpperCase() <\/strong>natijasi <strong>&#8220;ABCD123&#8221;<\/strong> bo&#8217;ladi.<\/p>\n<p style=\"text-align: center;\"><strong>Qiymat turlarini konvertatsiyalash<\/strong><\/p>\n<p style=\"text-align: justify;\">Arduinoda dasturlash jarayonida ko&#8217;p hollarda sonli turdagi qiymatni matnli qatorga va aksincha matn ko&#8217;rinishidagi sonni sonli formatlardan biriga aylantirishga tog&#8217;ri keladi. Ayniqsa, ma&#8217;lumotlarni aloqa kanallari orqali yuborish yoki ularni xotira qurilmasiga saqlashdan oldin, ularni tegishli (byte) formatga o&#8217;tkazish, aksincha, ularni qabul qilinganidan yoki xotiradan o&#8217;qilganidan so&#8217;ng yana tushunarli bo&#8217;lgan matnga formatga aylantirish zaruratiga amalda ko&#8217;p duch kelinadi. Shuning uchun quyida asosiy turlardagi sonli qiymatlarni matn ko&#8217;rinishiga va aksincha o&#8217;tkazish bo&#8217;yicha ilgari o&#8217;rganilgan ma&#8217;lumotlarni ixcham holda keltirib o&#8217;tiladi. Bunda massiv ma&#8217;lumotlarini matnga yoki aksincha o&#8217;zgartirishda bir nechta amallardan foydalanishga to&#8217;g&#8217;ri keladi.<\/p>\n<p><strong>O&#8217;nli formatdagi (bool, byte, int, long, float, double) sonni matnga aylantirish:<\/strong><br \/>\nint a = 32000; String matn = (String)a; \/\/ Natija: matn = &#8220;32000&#8221;.<br \/>\nfloat a = -5.68; String matn = (String)a; \/\/ Natija: matn = &#8220;-5.68&#8221;.<br \/>\n<strong><em>char<\/em> formatidagi belgini matnga aylantirish:<\/strong><br \/>\nchar a = &#8216;A&#8217;; String matn = (String)a; \/\/ Natija: matn = &#8220;A&#8221;.<br \/>\nchar a = 65; String matn = (String)a; \/\/ Natija: matn = &#8220;A&#8221;.<br \/>\n<strong><em>char<\/em> formatidagi bir nechta ketma-ket belgilarni matnga aylantirish:<\/strong><br \/>\nchar *a = &#8220;Ab+0&#8221;; String matn = (String)a; \/\/ Natija: matn = &#8220;Ab+0&#8221;.<br \/>\n<strong>Matnni o&#8217;nli formatdagi songa aylantirish:<\/strong><br \/>\nString matn = &#8220;1234567890&#8221;; int32_t a = matn.toInt(); \/\/ Natija a = 1234567890;<br \/>\n<strong>Matnni o&#8217;nli (byte) formatidagi massivga aylantirish:<\/strong><br \/>\nString matn = &#8220;0123456789ABCDEF&#8221;; byte a[16]; matn.toCharArray(a, 17);<br \/>\n\/\/ Natija: a[16] = {48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70}.<br \/>\n<strong>Sonli qiymatli massivni matnga aylantirish:<br \/>\n<\/strong>byte a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; String matn = &#8220;&#8221;; for (int i = 0; i &lt; 10; i++) {matn += a[i];}<strong><br \/>\n<\/strong>\/\/ Natija: matn = &#8220;012345678910&#8221;.<strong><br \/>\nHEX formatida ifodalangan sonli qiymatli massivni matnga aylantirish:<\/strong><br \/>\nbyte a[16] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10}; String matn = &#8220;&#8221;; for (int i = 0; i &lt; 16; i++) {matn += a[i];}<br \/>\n\/\/ Natija: matn = &#8220;12345678910111213141516&#8221;.<br \/>\n<strong>ASCII formatda ifodalangan sonli qiymatlardagi massivni matnga aylantirish:<\/strong><br \/>\nchar a[16] = {48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70}; String matn = &#8220;&#8221;; for (int i = 0; i &lt; 16; i++) {matn += a[i];}<br \/>\n\/\/ Natija: matn = &#8220;0123456789ABCDEF&#8221;.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>QIYMAT TURLARI Qiymat turi &#8211; dasturlarda qo&#8217;llaniladigan qiymatlarning o&#8217;zgarish oralig&#8217;i va qiymat qabul qilish sohasini bildiruvchi axborot. Qiymati turidan kelib chiqib axborotning hajmi turlicha bo&#8217;lishi mumkin va u baytlarda o&#8217;lchanadi. bayt &#8211; xotiraning dastur tomonidan uning nomi yoki manzili bo&#8217;yicha murojaat qilish mumkin bo&#8217;lgan minimal bloki hajmi. bit &#8211; xotira elementar katagining holatini ifodalovchi axborot [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-1196","post","type-post","status-publish","format-standard","hentry","category-arduino"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/yarat.uz\/index.php?rest_route=\/wp\/v2\/posts\/1196","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yarat.uz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yarat.uz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yarat.uz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yarat.uz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1196"}],"version-history":[{"count":47,"href":"https:\/\/yarat.uz\/index.php?rest_route=\/wp\/v2\/posts\/1196\/revisions"}],"predecessor-version":[{"id":5199,"href":"https:\/\/yarat.uz\/index.php?rest_route=\/wp\/v2\/posts\/1196\/revisions\/5199"}],"wp:attachment":[{"href":"https:\/\/yarat.uz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1196"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yarat.uz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1196"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yarat.uz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1196"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}