Mavzu: mit app inventori interfeysi va unda mobil ilova yaratish



Yüklə 109,61 Kb.
səhifə4/4
tarix03.02.2023
ölçüsü109,61 Kb.
#122963
1   2   3   4
Документ (7)

Bloklash muharriri oynasi
O'tgan yili biz ba'zi tashqi omillarga kelsak, smartfonimizning xatti-harakatlarini o'zgartirdik. Masalan, smartfon ekranidagi tugmachani bosganda signal beriladi yoki sensorlar (akselerometer, yaqinlik sensori) almashtirilganda batareya quvvatini tejash maqsadida smartfon ekrani o‘chadi.
MIT App Inventor 2-dagi ob-havo stantsiyasi - ob-havo stantsiyasi dasturi android telefonlar yordam onlayn xizmati uchun yaratilgan.

Ushbu ob-havo stantsiyasi maqolada tasvirlangan, demi ob-havo stantsiyasining ishini o'g'irlagan, arduino uchun eskiz yaratgan va ob-havo stantsiyasini biriktirgan. Xo'sh, bugun biz Android uchun dasturni qanday yaratishni va ob-havo stantsiyamizdan olingan barcha ma'lumotlarni telefonda ko'rsatishni muhokama qilamiz.


MIT App Inventor 2 da ob-havo stantsiyasi dasturini yaratish uchun sizga kerak emas:


1. Fon rasmi hajmi 540x960 piksel

2. Bosh ekran uchun dastur belgisi 128x128 piksel (PNG32 formati uchun)


3. Ikki rang uchun plagin uchun tugma piktogrammalari, o'lchami 80x80 piksel

Agar dastur uchun barcha kerakli tasvirlarni tayyorlagan bo'lsak, biz robotni MIT App Inventor 2 da qurishimiz mumkin. Boshlash uchun bizga quyidagi komponentlar kerak bo'ladi:
ListPicker1 - ishga tushirish uchun Bluetooth ulanishi, mavjudni tanlash Bluetooth aksessuarlari Men rejimga bog'lanib qolaman

  • Label3 - qo'shimcha ma'lumotlarni ko'rsatish uchun zaxira

  • Label1 - arduino bilan ma'lumotlarni ko'rsatish uchun

  • Label2 - yozuvni ko'rsatish uchun (xona harorati, tashqi harorat, vitse va boshqalar)

  • HorizontalArrangement1 - elementlarni gorizontal ravishda ko'rsatish rejimi, bizning tugmalar turimizda rejimlarni almashtirish)

  • Button1 - "tashqi havo harorati" rejimini ko'tarish tugmasi

  • Tugma 2 – “xona harorati” rejimini oshirish tugmasi

  • Tugma 3 - "mmHg da bosish" rejimini yoqish tugmasi

  • Tugma 4 – “Hidratatsiya % in” rejimini yoqish tugmasi

  • Tugma 5 - yoqish tugmasi (ko'rinmas)

  • Soat1 - taymer

  • BluetoothClient1 - Bluetooth robotlari uchun komponent

Endi MIT App Inventor 2 da blok dasturlash rejimiga o‘tamiz. Avval ListPicker funksiyasini yozamiz.

taymer uchun imkoniyat



bluetooth orqali ma'lumotlarni qabul qilish

1-4 tugmalar uchun

surish tugmasi uchun

Barcha qadamlar bajarilgandan so'ng, biz telefonda qo'shimchani sinab ko'ramiz va protsedurani qayta tekshiramiz.


Veb-texnologiyalar va kengaytmalar yordamida App Inventor funksiyasini oshirishingiz mumkin. Siz savdogarda to'lovlar va bepul kengaytmalarni topishingiz mumkin (puravidaapps.com saytida taxminan 200), lekin oziq-ovqatni ayblang va o'zingizni yaratish qanchalik oson, ular nima berishi mumkin va chi varto tse chida bir soat sarflaydi. boshqalar bilan ishlash yaxshiroqmi?
App Inventor-da mavjud bo'lgan yig'ilgan komponentlar va bloklar kengaytirilgan (ichki) va tashqi ko'rinishga o'tkaziladi.
Fizibilitet bo'lsa, corystuvacs-pochatkivtsiv uchun funktsional halqa berish mumkin, bu tugatish uchun etarli va dasturchilar uchun etarli emas. Ko'proq koristuvachiv taqdirda, u tayyor kengaytirish foyda olish uchun muhim ahamiyatga ega, va ularni ajratish uchun emas. Nima uchun siz koristuvachas va ixlosmandlari xabardor qilish uchun, yanada muhimi, bir cicava bo'lishi mumkin kengaytirish kengaytirish mumkin qilganlar oddiy visnovok ko'rasiz. Pochatkívtsív tsílkom vbudovani vbudovani vbudovani possiblííí í nayavní í rasshirennja, va pochatkívtsív tsív sílkom vídnístí vídníníní vykonannya podvíynoí robotlar. Kengaytirilgan funksionallikni yaratish va takomillashtirishga bir soat vaqt ajratamiz, so'ngra almashilgan funksiyalar dasturini yangi yaratish yordami uchun Java-da barcha mavjud imkoniyatlar bilan bir qarashda kod yozishingiz mumkin. android studiyasi IDE va ​​Android API?
AI uchun kengaytmalarni yaratish oson emas, garchi OOP asoslarini dasturlashni va tushunishni tushunish kerak bo'lsa-da, ammo aniq sabablarga ko'ra ular bilan faqat bir nechtasi jiddiy shug'ullanadi. Yaratmoq funktsional kengayish bu amaliy emas va funksionallikni kengaytirish va yangisini yaratish uchun oddiy qo'shimchalar yozish o'qi amaliyot rejasiga o'xshash dars yaratilishi mumkin. Ale, bu erda sizni yondashuvdan tayinlash kerak. Siz AI tushunchasiga amal qilishingiz mumkin - vizual dasturlash yoki uni matnli dasturlash elementlari bilan kengaytiring.
Ochig'ini aytganda, App Inventor aysbergga o'xshaydi, qandaydir koristuvachaning tepasi yaxshi eskirgan funksiyaga o'xshaydi va sezilarli darajada katta qismiga suv ostida kirish mumkin emas. Bu dasturlash bo'yicha minimal bilimni talab qiluvchi IDE sifatida tan olinishi uchun maxsus o'zgartirilgan. App Inventor-ga kiritilgan robot modelining ajoyib funksionalligi kafolatlanmaydi. Yangi kuchlarning qo'shilishi geometrik progressdagi bloklar sonini ko'paytirishni talab qiladi. Masalan, teri vidjeti uchun ikkita blokning ko'rinishiga shaffoflik kuchini qo'shish (bu aylanish qiymatini o'rnatish uchun). Agar shunday vidjetlar 5 ta bo'lsa, bloklar soni 10 taga ko'payadi. Biz 10 ta kuch qo'shdik va oxirida biz 100 ta blok oldik. Dodatkovo uchun tsgogo z'yavlyaetsya dizayner vakolat yangi sohalarda. Bunday fikrda, "oddiy IDE + kengaytmasi" astarga o'xshaydi, lekin qo'shimcha o'rnatishni so'ramasdan, yaxshi funksionallikni "qutidan tashqarida" ko'radigan tinch odamlar uchun emas.
Dasturni ishlab chiqish bosqichida ob'ektlarning kuchini individual ravishda oshirish va bloklarning qattiq aloqasini o'rnatish, bir tomondan, aytaylik, bu juda ko'p miqdordagi afvlarni yo'q qilishga imkon beradi, balki statik qo'shimchalarni oqlash nuqtasiga olib keladi. . Agar bitta blokgacha boshqa blok olingan bo'lsa, uni qaytaring. Dasturni ishlab chiqish bosqichida quvvatni o'zgartirish yoki boshqa ob'ektni tanlash faqat bu holda mumkin, chunki bula imkoniyati rivojlanish bosqichida belgilab qo'yilgan. Buning uchun ob'ektlarga kirish vositachiligini tanlash kerak. Misol uchun, siz barcha ob'ektlar uchun "ob'ekt nomi-ob'ekt" juftliklari ro'yxatini yaratishingiz va keyin uni boshqa ob'ektlarga kirish uchun funktsiyalarga aylantirishingiz mumkin. Shunday qilib, qabul qiluvchi blok ma'lum bir ob'ekt bilan emas, balki ro'yxat bilan mos keladi, siz uni kalit nomi uchun olishingiz mumkin.
Yuqorida aytib o'tilganlarga qo'shimcha qilish uchun, guruh operatsiyalarini amalga oshirishga so'zlashuv tilini qo'shing, funksionallikni rivojlantirishda vidjetlar, usullar va boshqa nuanslarni qo'shing, AppyBuilder, Thunkable, Makeroid va boshqalar paydo bo'lishining tushunarli sababi bo'ling. funksionallikning realligini oshirish. Ko'proq komponentlar - ko'proq bloklar. Va qo'shimcha kengaytirish uchun o'qi, masalan, o'nlab ob'ektlarning o'nlab vakolatlariga kirish uchun bitta blokni yutib olishning funksionalligini oshirishi mumkin. O'q allaqachon funktsional cicavo, AI funksionalligidagi past kamchiliklarni qoplash uchun parchalar matn elementlari bilan vizual dasturlash bilan to'ldiriladi.
Dasturlashdan kam ma'lumotga ega bo'lganlar uchun kengaytmalar yarata olasizmi? Shunday qilib, "nusxa ko'chirish va o'zgartirish" yondashuvi bilan tezlashtirish, buni qilish oson, ammo tayyorgarlik hali ham zarur. Usiz, nima uchun kengaytma tuzilmaganligini va u bilan ekranda nima yozilganligini tushunolmaysiz. Android ob'ektlari bilan ishlaydigan kengaytmaning bir qismi bo'lganlar haqida ham aytish kerak, buni Android Studio'da qilish yaxshiroqdir.
Asosan App Inventor bilan kuchga ega bo'lgan, lekin qo'shishni, iltimos qilishni va kechirishni va shu bilan birga Java-da mashq qilishni xohlaydigan jamoaning kengayishini kengaytirish. Agar bu sizning kayfiyatingiz bo'lsa, keling, ochilishning o'rta qismidagi gırtlakdan boshlaylik.
VKontakte guruhi App Inventor uchun kengaytma, videoda va matnda u berilgan pokrokov keramikasi ishchi o'rta o'sha sozlash yaratish, shuningdek, so'z Test aylanadi oddiy dumba. Ushbu materialni ko'paytirish mantiqiy emas va dumba o'qining o'zi mavzuga tezkor kirish sifatida qaralishi mumkin.
paket vlad; import com.google.appinventor.components.runtime.*; import com.google.appinventor.components.annotations.DesignerComponent; import com.google.appinventor.components.annotations.DesignerProperty; import com.google.appinventor.components.annotations.PropertyCategory; import com.google.appinventor.components.annotations.SimpleEvent; import com.google.appinventor.components.annotations.SimpleFunction; import com.google.appinventor.components.annotations.SimpleObject; import com.google.appinventor.components.annotations.SimpleProperty; import com.google.appinventor.components.common.ComponentCategory; import com.google.appinventor.components.common.PropertyTypeConstants; import com.google.appinventor.components.common.YaVersion; import com.google.appinventor.components.runtime.util.SdkLevel; @DesignerComponent(versiya = YaVersion.NOTIFIER_COMPONENT_VERSION, kategoriya = ComponentCategory.EXTENSION, tavsif = "Tim ê test kengaytmasi", nonVisible = true, iconName = "images/notifier.png") @SimpleObject(external=true) umumiy ko'rinadigan AndroidComponent sinfi kengaytmalari amalga oshiradi Component ( public TestExtension(ComponentContainer container) ( super(container.$form()); ) @SimpleFunction(description = "Bu funksiya \"Test\" qatorini qaytaradi") public String Test() ( return "Test" ; ))
Kengaytma kodi sinfning java kodini va @ belgisi bilan boshlanadigan izohlarni o'z ichiga oladi. Izohlar ularning ostidagi kod bloki oddiy kompilyator tomonidan qayta ishlanishida aybdor ekanligini ko'rsatish uchun yoziladi. Oddiy kompilyator izohni ko'rib chiqadi va kengaytmani App Inventor ishlab chiqish muhitiga birlashtiradi - tayinlangan funksiya (funktsiya yoki vakolat) uchun blok, dizaynerda tahrirlash maydoni yaratadi va u bilan ishlashga imkon beradi.
@DesignerComponent ga ishora qiladi Global parametrlar komponentlar va toifa kengaytmasiga kiritilganlar va ê ingl
@SimpleObject komponentga, tashqi=true maydoni esa komponent tashqi bo'lganlarga ishora qiladi
@SimpleFunction kompilyatorga qaysi funktsiyani yaratish uchun blok yaratish kerakligini aytadi. Qiymatni aylantirish funktsiyasi sifatida u chap tomonda paydo bo'ladi. Funktsiyaning parametrlari bo'lishi mumkinligi sababli, u o'ng tomonda bo'ladi.
Muayyan sinf kodlarini paketlar nomlarini ko'rsatadigan kataloglarda izlash mumkin:
com/google/appinventor/components/runtime - ob'ektlarni qo'ying.
com/google/appinventor/components/annotations - ko'rsatmalarni kiriting
com/google/appinventor/components/common - hackni tekshiring
com/google/appinventor/components/runtime/util - yordamchi dastur klassi
Hozirgi vaqtda qo'shimcha kengaytirish uchun qo'shimcha vizual bo'lmagan komponentni yaratish mumkin. Agar vidjet kabi dizaynerning ish maydoniga tortiladigan vizual komponentni yaratish kerak bo'lsa, sizga App Inventor-ning o'z mahalliy nusxasi kerak bo'ladi.
Yozishni o'zgartirishga, kompilyatsiya qilishga, viconate blokini kiritishga harakat qiling. Agar hamma narsa yaxshi bo'lsa, unda ishchining o'rtasi qurilgan va siz ko'proq amaliy va fuqarolik nutqlarini yaratish uchun uzoqqa borishingiz mumkin.
MIT App Inventor 2 onlayn muharririda dasturlar Android dasturlarini ishlab chiqishning asosiy elementi bo'lgan standart komponentlar asosida quriladi. Ilova ixtirochilarining bloklari. Muhim tushunchalar va tamoyillar App Inventor bloklari - bu komponentlarni boshqarish uchun vositalar va boshqotirmalarga o'xshaydi. Ushbu Android ilovasini yaratuvchisidagi bloklar ta'sir ko'rsatadigan narsalarga va ular bilan bog'liqligiga qarab ikkita katta guruhga bo'linadi: tarkibiy qismlar bilan bevosita bog'liq umuman dastur bilan bog'liq Boshlaymiz tarkibiy qismlarga tegishli bloklar. Ularni uch turga bo'lish mumkin, ular ranglari bilan osongina ajralib turadi: 1. komponent xususiyatlarini tavsiflovchi bloklar. Ular yashil rangga ega va shunga o'xshash: bu blok komponentning joriy xususiyatini bildiradi. Ushbu rasmda TextBox1 matn komponentasi uchun fon rangining bloki ko'rsatilgan. Bu allaqachon mavjud bo'lgan ma'noni anglatadi. va bu kerakli qiymatni komponentga o'rnatadi (fon rangini TextBox1 ga belgilang ...). "O'rnatish" - o'rnatilgan. Ushbu turdagi block-property buyruqlar (ishlov beruvchilar) ga tegishli bo'lishi mumkin, chunki u chindan ham komponentlarning har qanday xususiyatlarini, shu jumladan maydonlarning qiymatlarini o'zgartirish buyrug'ini beradi. Biroq, App Inventor dasturchilari shunday qaror qildilar - axir, bular ham xususiyatlar. 2. hodisalar bloklari, ya'ni dasturda voqea sodir bo'lishini kuzatib boradigan bloklar, masalan, tugmani bosish va keyin blok buyrug'ini ishga tushirish. Ular bronza bilan bo'yalgan va quyidagicha ko'rinadi: masalan, ushbu blok tugmachani bosish bo'yicha harakatni amalga oshiradi (tugma3 tugmachasi bosilganda ...) 3. blok buyrug'i, App Inventor-da ushbu blok tez-tez ishlov beruvchi deb ham ataladi. Ushbu blok blok tegishli bo'lgan komponent bilan nima qilishni belgilaydi: Ushbu maxsus blok qurilma taymeridan ma'lumotlarni chaqiradi. Ikkinchi guruh bloklari, dastur bo'ylab, biroz boshqacha tarzda tashkil etilgan. Avvalo, ularning kichik guruhlari ro'yxati: Mantiqiy bloklar- mantiqiy bloklar Matematik bloklar- matematik bloklar Matn bloklari- matn bloklari Bloklarni ro'yxati- ro'yxatlarni boshqarish uchun bloklar Ranglar bloklari- ranglarni boshqarish uchun bloklar O'zgaruvchan bloklar- o'zgaruvchilarni boshqarish uchun bloklar Jarayon bloklari- protsedura bloklari. Ularning barchasi, protsedura bloklari bundan mustasno, boshqa bloklarga joylashtirilgan. Ya'ni, ular tarkibiy qismlarga tegishli voqea bloklaridan farqli o'laroq, boshlang'ich blok bo'lib xizmat qila olmaydi - barcha harakatlar tarkibiy qismlarga ega bo'lgan har qanday hodisalarda amalga oshiriladi. Bu erda "jumboq" turlari haqida ko'proq ma'lumot berishga arziydi. Shunday qilib, siz to'rtta boshqotirma mavjudligini payqadingiz. Ularning shakllaridan ko'rinib turibdiki, mobil ilovadagi har qanday zanjir birinchi qarashdan boshlanadi. Bu voqea va u keyingi harakatlarni boshlashi mantiqan to'g'ri. Va bu turdagi ushbu Android ilovasi konstruktorida qabul qilinganidan farq qilmaydi. Ammo App Inventor tipologiyasiga binoan quyidagi ikki turdagi bloklar har xil: mos ravishda xususiyatlar va buyruqlar (ishlovchilar). Ammo jumboq shaklida va ularning ma'nosida ularni buyruqlarga bog'lash mumkin edi, chunki ular harakatni o'rnatdilar. Aytaylik ikkinchi tasvirlangan jumboq komponentga ma'lum bir qiymat berish buyrug'ini beradi, lekin uchinchisi Jumboq - ma'lum bir qiymatga ega bo'lgan komponentni chaqiring... Bundan tashqari, ushbu jumboqlar "oraliq" bo'lib, ular zanjirni to'ldirolmaydilar. Va bu erda to'rtinchi ko'rinish mavjud yoki hisoblangan va u bilan yakunlanadigan yakuniy qiymat... Masalan, to'rtinchi rasm - Clock1 komponentasining joriy qiymati. Aiticher kompaniyasi App Inventor dasturlash tilida yaratilgan Android OS uchun mobil ilovalarni ishlab chiqish bo'yicha tanlov e'lon qiladi. Tanlov sanalari Tanlov ishlarini qabul qilish va ro'yxatdan o'tkazish: 2017 yil 1 yanvardan 15 maygacha. Tanlovdagi hakamlar hay'ati tomonidan ishlarni ko'rib chiqish - 2017 yil 15 maydan 30 maygacha. 30 may kuni tanlov portalida tanlov natijalarini e'lon qilish. Amaliyot deganda, biz har biri turli xil sonli bloklarni o'z ichiga olishi mumkin bo'lgan harakatlar ketma-ketligini tushunamiz. Har qanday operatsiyani hodisalarni boshqarish blokida yoki protsedura blokida joylashtirish mumkin. Hodisalarni qayta ishlash blokidagi operatsiyaning joylashishi oddiy, ammo kelajakda bu juda ko'p muammolarga olib kelishi mumkin, aksincha uni protsedurada ishlatishdan farq qiladi, bu sizga moslashuvchan algoritmni olishga imkon beradi. Buni global o'zgaruvchini ikkita blokdan tashkil topgan bo'sh ro'yxatga berishning oddiy operatsiyasi misolida ko'rib chiqamiz (1-rasm). Anjir. 1. Amaliyot o'tkaziladigan joy uchun variantlar. Amaliyotni komponentning hodisalar bilan ishlash blokiga (katta harf) joylashtirganda, u unga qattiq bog'langan va boshqa bloklardan qo'ng'iroq qilish mumkin bo'lmay qoladi. Agar ushbu operatsiyani boshqa blokdan chaqirish kerak bo'lsa, uni nusxalash kerak bo'ladi. Amaliyotning nusxalarini yaratish kerak emas, chunki uning algoritmini o'zgartirsangiz, ularning har biriga tahrir qilishingiz kerak bo'ladi. Bu turli xil xatolar yuzaga kelish ehtimolini oshiradi: ba'zi nusxalarni tuzatishni unutishingiz mumkin, bloklarni nusxalashda, ularni joylashtirishda va hokazolarda xatolikka yo'l qo'yishingiz mumkin. Amaliyotni protsedura blokiga joylashtirish uni boshqa bloklardan chaqirishga va yuqorida tavsiflangan xatolardan qochishga imkon beradi. Blok muharririda ishlashda ba'zida bir xil operatsiyaning turli xil versiyalarini yoki turli xil operatsiyalarni chaqirish kerak bo'ladi. Buning uchun siz voqealarni qayta ishlash bloklari bilan yangi komponentlar yaratishingiz yoki u yoki bu operatsiyaga qo'ng'iroq qilib, mavjud bo'lgan bitta btnExecute blokidan foydalanishingiz mumkin. O'zgartirish natijasida ajratilgan operatsiyalar hech qanday guruh blokiga kirmaydigan "suzuvchi" bloklarga aylanadi (2-rasm). Anjir. 2. "Suzuvchi" bloklar. Agar ishchi maydonda bunday suzuvchi bloklar juda ko'p bo'lsa, unda ular bilan kurashish qiyin bo'lishi mumkin. Agar pastki blok bilan hamma narsa aniq bo'lsa - bu protsedura chaqiruv bloki bo'lsa, unda rasmning yuqori qismidagi blok zanjiri nima qiladi? Bu alohida operatsiya bo'ladimi yoki boshqa operatsiyaning bir qismi bo'lganmi yoki boshqa bir qismmi? Ammo keyin bu operatsiyaning qolgan qismi qaerda? Amaliyot protsedura blokiga qo'shilishi tushunarsiz suzuvchi bloklardan xalos bo'lishga imkon beradi. Blokni bajarish uchun voqea ishlovchilariga blok qo'yishingiz shart emas. Sichqonchaning o'ng tugmachasini bosishingiz va paydo bo'lgan kontekst menyusida "Do it" -ni tanlashingiz mumkin. Amaliyotni voqealarni ko'rib chiquvchiga joylashtirishning yana bir kamchiliklari, agar dizaynerda tarkibiy qism tasodifiy o'chirilgan bo'lsa, nafaqat ushbu komponentga tegishli barcha bloklar, balki ularda joylashgan barcha bloklar ham o'chirilishi bilan bog'liq. Agar operatsiya juda ko'p miqdordagi bloklardan iborat bo'lsa, bu juda zerikarli bo'ladi (3-rasm). Agar btnTest komponentini o'chirib tashlasangiz, unda btnTest.Click bloki barcha tarkiblari bilan o'chiriladi. Anjir. 3. Hodisalarni ko'rib chiqishda bloklarni kiruvchi guruhlash. Ushbu rasmdagi bloklar qanday operatsiyani bajaradi? Darhol javob berish qiyin. Va ular alohida protseduraga joylashtirilganda, hamma darhol setVarValue nomidan aniq bo'ladi - o'zgaruvchining qiymatini belgilaydi (4-rasm). Anjir. 4. Jarayonda tomonlarni guruhlash. Protsedura va mahalliy o'zgaruvchan bloklar tishli belgini bosish orqali sozlamaga ega. Protsedura bloklari uchun ularga kirish parametrlarini qo'shishdan va mahalliy o'zgaruvchan bloklar uchun qo'shimcha kirishlar yaratishdan iborat. Bu to'rtta o'zgaruvchini to'rtta o'zgaruvchiga ega bitta blokga aylantiradi (4-rasm). Bunday konversiya ekvivalentmi? Yo'q. Bir nechta mahalliy o'zgaruvchiga ega bo'lgan blok bitta ko'lamga ega, bu uning ichida o'zgaruvchilar qiymatlarini olishga imkon bermaydi. Masalan, o'zgarmaydigan qiymatga (4-rasm) o'zgarmaydigan kalitga qiymat berish imkonsizdir. Operatsiyani voqealarni qayta ishlash blokiga joylashtirishda aniqlagan kamchiliklarimizni sanab o'tamiz: Tanlangan komponentning ma'lum bir turidagi hodisalar blokiga qattiq bog'lanish Amaliyotni boshqa bloklardan chaqirish mumkin emas (bu kutubxonaga aylana olmasligini anglatadi) Komponentni olib tashlashda operatsiyani olib tashlash Bloklarning tushunarsiz "suzuvchi" guruhlarini shakllantirish Amaliyot nima qilayotganini tezda anglash qiyin Agar barcha operatsiyalar protseduralarga joylashtirilgan bo'lsa, ushbu kamchiliklardan xalos bo'lish juda oson. Oddiylik va tezlik algoritmlarini tuzishda bitta protsedurada har xil operatsiyalarni joylashtirmoqchiman, bu esa bloklar sonining tez ko'payishiga va uning ishlashini tushunishda qiyinchiliklarga olib keladi. Dasturlashda bunga yo'l qo'ymaslik uchun oddiy qoida keng qo'llaniladi: Bitta funktsiya (protsedura) - bitta operatsiya Ushbu qoida hayotiy amaliyotdan olingan. Tasavvur qiling, siz xonada yorug'likni yoqasiz va shu bilan birga televizor, konditsioner va kompyuter yoqiladi. Sizga yoqadimi? Yo'q, chunki bu chalkashliklarga va noxush holatlarga olib keladi. Shakl. Blokning boshida to'rtta protsedura deyiladi - getKey (kalitni olish), getNewVal (yangi qiymatni olish), getKeys (tugmachalar ro'yxatini olish) va getIndex (indeksni olish). Ushbu protseduralarning har biri bitta operatsiyani bajaradi. Ulardan keyin setVarValue1 protsedurasining bitta amalini bajaradigan if bloki mavjud. Jarayonlarda mahalliy o'zgaruvchilar o'rniga global o'zgaruvchilarni ishlata olasizmi? Siz qila olasiz, lekin kerak emas. Protsedura ichida global o'zgaruvchilardan foydalanish, birinchidan, uni ularga va shunga mos ravishda berilgan dasturga qattiq bog'laydi, ikkinchidan, global o'zgaruvchilar yordamida dasturning turli joylaridan tashqi bloklar protseduraning ichki mexanizmiga ta'sir qilishi mumkin, bu juda istalmagan. Avtobus yo'lovchilari uning mexanizmidan foydalanish imkoniyatiga ega bo'lsa, nima bo'lishi mumkin? Mahalliy o'zgaruvchilar buferning bir turi. Agar global o'zgaruvchining nomi o'zgarsa, u holda bu protsedura ishlashini buzmaydi, chunki uning ichida o'zgarmagan mahalliy o'zgaruvchilarning nomlari ishlatiladi. App Inventor-da global o'zgaruvchining nomini o'zgartirganda, uni ishlatadigan barcha bloklarda avtomatik ravishda o'zgaradi. Demak, muhim xulosa shuki, App Inventor-da mavjud bo'lgan avtomatizatsiya o'zgaruvchan turlarning to'g'riligini tekshirish, o'zgaruvchilarning nomlarini o'zgartirish va hk, bir tomondan, dasturni ishlab chiqishni soddalashtiradi, ishlab chiquvchini ushbu masalalar haqida o'ylashdan ozod qiladi. qo'l, algoritmlarni beparvolik bilan kompilyatsiya qilish mahoratining rivojlanishiga hissa qo'shadi. Umuman olganda, ushbu ko'nikmani istalgan tilda dasturlash orqali rivojlantirish mumkin. Bunga qanday yo'l qo'ymaslik kerak? Ko'plab kitoblar yozilgan "toza kod" ni yaratish bo'yicha tavsiyalardan foydalaning. MIT App Inventor ushbu ko'rsatmalarning faqat kichik bir qismidan foydalanadi, ammo ularga rioya qilish algoritmlarni va ularning o'qilishini har qanday tarzda - qog'ozga, doskada, kodni tahrirlash yoki bloklar bilan ishlash jarayonida yaxshilaydi.
Yüklə 109,61 Kb.

Dostları ilə paylaş:
1   2   3   4




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin