načítání...
menu
nákupní košík
Košík

je prázdný
a
b

Kniha: App Inventor - David Wolber; Hal Abelson; Ellen Spertus; Liz Looney

App Inventor
-15%
sleva

Kniha: App Inventor
Autor: David Wolber; Hal Abelson; Ellen Spertus; Liz Looney

Průvodce prostředím App Inventoru, novým nástrojem pro Google, určeným pro programování mobilních aplikací v operačním systému Android. ... (celý popis)
Titul doručujeme za 4 pracovní dny
Vaše cena s DPH:  299 Kč 254
+
-
rozbalKdy zboží dostanu
8,5
bo za nákup
rozbalVýhodné poštovné: 39Kč
rozbalOsobní odběr zdarma

hodnoceni - 0%hodnoceni - 0%hodnoceni - 0%hodnoceni - 0%hodnoceni - 0%   celkové hodnocení
0 hodnocení + 0 recenzí

Specifikace
Nakladatelství: » Computer press
Médium / forma: Tištěná kniha
Rok vydání: 2015
Počet stran: 368
Rozměr: 167 x 225 mm
Úprava: ilustrace
Vydání: 1. vyd.
Spolupracovali: překlad Jiří Huf
Vazba: brožovaná lepená
Téma: počítače, programy, programování, aplikace, operační systémy, Android, mobilní, telefony
Datum vydání: 1. 4. 2015
Nakladatelské údaje: Brno, Computer Press, 2014
ISBN: 9788025141953
EAN: 9788025141953
Ukázka: » zobrazit ukázku
Popis / resumé

Průvodce prostředím App Inventoru, novým nástrojem pro Google, určeným pro programování mobilních aplikací v operačním systému Android.

Popis nakladatele

Seznamte se s prostředím App Inventoru, ve kterém poté budete moct sami vyvíjet aplikace pro nejrozšířenější mobilní platformu na světě. Vývoj v App Inventoru nevyžaduje žádné znalosti programování, aplikace vytváříte skládáním předpřipravených programových bloků. Jednotlivé možnosti prostředí si vyzkoušíte na dvanácti funkčních projektech, které poté můžete sami dál rozvíjet. (vytvořte si vlastní aplikaci pro Android : bez znalosti programování)

Další popis

Android je v současnosti nerozšířenější mobilní platformou na světě. Ne každý je však zkušeným programátorem, aby si mohl vlastní aplikaci podle svých potřeb naprogramovat. Naučte se vytvářet aplikace pro Android v App Inventoru jednoduchým skládáním programových bloků a vytvořte si vlastní aplikaci bez programování. Ve čtyřiadvaceti kapitolách vás tým zkušených autorů seznámí s prostředím App Inventoru, ve kterém poté budete moct sami vyvíjet aplikace. Jednotlivé možnosti prostředí si vyzkoušíte na dvanácti funkčních projektech, jež posléze můžete samostatně dál rozvíjet. Tvorba aplikací v App Inventoru nevyžaduje žádné znalosti programování.


Předmětná hesla
Kniha je zařazena v kategoriích
Recenze a komentáře k titulu
Zatím žádné recenze.


Ukázka / obsah
Přepis ukázky

273

KAPITOLA 18

Aplikace se rozhoduje: podmínkové bloky

Počítače, dokonce i ty malé, jakým je mobilní telefon, doká

žou v  několika málo sekundách provést tisíce operací. Do

konce se umí rozhodovat na základě údajů uložených v pa

měťových bankách a  programátorem stanovených pravidel.

Schopnost rozhodovat se je pravděpodobně klíčovou vlastností

umělé inteligence – a taky je to velmi důležitá součást chyt

rých a zajímavých aplikací! V této kapitole si ukážeme, jak naprogramovat aplikaci tak, aby se mohla rozhodovat. Do aplikací tak budeme moci zapracovávat logické postupy. Jak jsme si řekli v kapitole 14, chování aplikace je dáno obslužnými rutinami událostí. Každá obslužná rutina události provádí v reakci na defi novanou událost konkrétní funkce. Ty však nemusí být lineární. Některé funkce můžeme provádět pouze při splnění určitých podmínek. Například herní aplikace by mohla ověřovat, zda hráč dosáhl skóre 100 bodů. Navigační aplikace může zjišťovat, zda se uživatel nachází v budově. Aplikace může pokládat podobné otázky a na základě vyhodnocení odpovědí pak provádět pouze určitou část programu. Na obrázku 18.1 vidíte diagram obslužné rutiny události, která ověřuje, zda je splněna podmínka. Když dojde k výskytu obslužné rutiny události, provede se bez ohledu na vše ostatní funkce A. Poté dojde k ověření splnění podmínky. Pokud je podmínka splněna, provede se funkce B1. Pokud splněna není, provede se funkce B2. Zbytek obslužné rutiny události (funkce C) se provede vždy.

V této kapitole:

 Ověřování splnění

podmínek pomocí bloků if

a ifelse

 Naprogramování

rozhodnutí buď/nebo

 Programování podmínek

uvnitř podmínek

 Programování komplexních

podmínek

 Shrnutí


274

ČÁST II Manuál Inventoru

Obrázek 18.1 Obslužná rutina události, která ověřuje splnění podmínky a na základě

vyhodnocení provádí pouze některé funkce

Diagramy popisující rozhodovací proces se podobají stromům, viz obrázek 18.1. Proto běžně

říkám, že se aplikace v závislosti na vyhodnocení podmínky „větví“. V našem případě bychom

například řekli, že: „Je-li podmínka splněna, provede se větev obsahující funkci B1.“

Ověřování splnění podmínek pomocí bloků if

a ifelse

App Inventor nabízí dva typy podmínkových bloků (obrázek 18.2): if a ifelse. Oba bloky ne

jdete na paletě Built-In v přihrádce Control.

Obrázek 18.2 Podmínkové bloky if a ifelse

Do zásuvky „test“ uvedených bloků můžeme vkládat logické výrazy (Boolean). Jedná se o ma

tematické rovnice, které vrací hodnotu true (pravda), nebo false (nepravda). Výrazy vyhod

nocují hodnoty vlastností a proměnných pomocí relačních a logických operátorů, které vidíte

na obrázku 18.3.


KAPITOLA 18 Aplikace se rozhoduje: podmínkové bloky

275

Obrázek 18.3 Relační a logické operátory používané v podmínkových blocích

Oba bloky (if i ifelse) provedou bloky umístěné do zásuvky „then-do“ pouze v  případě, že

podmínku vyhodnotí jako splněnou. V bloku if se aplikace při nesplnění podmínky přesune

na bloky níže. V bloku ifelse pak provede bloky zapojené do zásuvky „else-do“.

Ve hře bychom tedy použili logický výraz (Boolean), který ověřuje hodnotu dosaženého skóre

tak, jak to vidíte na obrázku 18.4.

Obrázek 18.4 Logický výraz ověřující výši dosaženého skóre

V našem příkladu se při dosažení skóre ve výši 100 přehraje zvukový soubor. Pokud se pod

mínka vyhodnotí jako nesplněná, neprovedou se žádné bloky. Pokud chcete, aby se bloky

provedly, když nedojde ke splnění podmínky, můžete použít blok ifelse.

Naprogramování rozhodnutí buď/nebo

Představte si aplikaci, kterou byste využili, když se nudíte: Stisknete tlačítko a telefon zavolá

náhodně vybranému kamarádovi. Na obrázku 18.5 vidíte, jak pomocí bloku random integer

generujeme náhodné číslo. Jeho prostřednictvím pak v bloku ifelse voláme na konkrétní číslo.

Obrázek 18.5 Blok ifelse volá jedno ze dvou čísel na základě náhodně vygenerovaného čísla


276

ČÁST II Manuál Inventoru

V příkladu je blok random integer volán s argumenty 1 a 2, což znamená, že se 1 i 2 vygene

rují se stejnou pravděpodobností. Vrácené náhodné číslo se uloží do proměnné NahodneCislo.

Poté co se nastaví hodnota proměnné NahodneCislo, porovnají bloky její hodnotu v  rám

ci ověřování v bloku ifelse s číslem 1. Pokud má proměnná stejnou hodnotu, bude aplikace

pokračovat v provádění v první větvi (then-do) a vybere telefonní číslo 111-1111. Pokud má

však jinou hodnotu, ověřování podmínky selže, aplikace se posune ke druhé větvi (else-do)

a zvolí číslo 222-2222. Telefonní hovor však aplikace vyvolá v obou případech, protože blok

MakePhoneCall (zavolat) se nachází pod blokem ifelse.

Programování podmínek uvnitř podmínek

Při rozhodování je často na výběr z více než dvou možností. V aplikaci pro volání přátelům si

můžeme například chtít vybrat z více než dvou kamarádů. K tomu nám může posloužit blok

ifelse vložený do zásuvky „else-do“ prvního podmínkového bloku, viz obrázek 18.6.

Obrázek 18.6 Podmínka ifelse vložená do zásuvky else-do vnější podmínky

Pokud je v případě těchto dvou bloků podmínka při prvním ověřování platná, aplikace provede

první větev „then-do“ a zavolá číslo 111-1111. Pokud se prvním ověření ukáže podmínka jako

neplatná, provede se větev „else-do“ a okamžitě se provede další ověření. Je-li tedy podmínka

při prvním ověření (NahodneCislo=1) neplatná, zatímco při druhém platná (NahodneCislo=2),

provede se druhá větev „then-do“ a zavolá se číslo 222-2222. Pokud není splněna ani jedna

podmínka, provede se vnitřní větev „else-do“ a zavolá se třetí číslo (333-3333).

Všimněte si, že tato úprava funguje pouze v případě, že parametr to funkce random integer

změníme na 3, takže se čísla 1, 2 i 3 budou generovat se stejnou pravděpodobností.


KAPITOLA 18 Aplikace se rozhoduje: podmínkové bloky

277

Umísťování řídících prvků dovnitř jiných řídících prvků označujeme jako vnořování. V našem případě bychom řekli, že jsou bloky vnořené do zásuvky „if-else“. Vnořování rozšiřuje možnosti aplikace náhodného volání. Na obecné rovině nám umožní vytvářet komplexnější aplikace. Programování komplexních podmínek Zanořování otázek můžeme obohatit o rozšířené ověřování podmínek. Představte si například aplikaci, která zavibruje, když vyjdete (s telefonem) z budovy či jiného vymezeného prostoru. Takovou aplikaci by například mohl použít člověk v podmínce, který by tak byl varován, když se příliš vzdálí ze soudem vymezeného prostoru, či rodiče ke sledování svých dětí. Učitel by si tak mohl například automaticky udělat prezenci (za předpokladu, že mají všichni studenti telefon se systémem Android!). Položíme si tedy otázku: Nachází se telefon v prostorách Harneyho vědeckého střediska (Harney Science Center) Sanfranciské univerzity? Takováto aplikace by musela ověřovat čtyři různé otázky:

 Je zeměpisná délka pozice telefonu nižší než maximální defi novaná hranice (37,78034)?

 Je zeměpisná šířka pozice telefonu nižší než maximální defi novaná hranice (-122,45027)?

 Je zeměpisná délka pozice telefonu vyšší než minimální defi novaná hranice (37,78016)?

 Je zeměpisná šířka pozice telefonu vyšší než minimální defi novaná hranice (-122,45059)? V příkladu použijeme komponentu LocationSensor. Postupu byste měli rozumět i v případě, že jste se zatím s komponentou neseznámili, ale pokud se o ní chcete dozvědět více, nalistujte si kapitolu 23. Pomocí logických operátorů and, or a not, které najdete v přihrádce Logic, můžeme defi novat komplexní ověřování. V našem případě bychom nejprve na plochu přetáhli blok if a poté blok and. Následně bychom blok and umístili do zásuvky „test“ bloku if, viz obrázek 18.7. Obrázek 18.7 Blok and umístěný do zásuvky „test“ bloku if Poté bychom použili bloky první otázky a umístili je do zásuvky „test“ bloku and, viz obrázek 18.8. Obrázek 18.8 Když do zásuvky „test“ bloku and vložíme první bloky, otevře se nová zásuvka


278

ČÁST II Manuál Inventoru

Všimněte si, že když v  bloku and zaplníte zásuvku „test“, otevře se nová zásuvka. Když do

těchto zásuvek vložíme další ověřovací bloky a do události LocationSensor.LocationChanged

vložíme celý blok ifelse, vytvoříme obslužnou rutinu události, která ověřuje, zda se nacházíme

ve vyměřeném areálu, viz obrázek 18.9.

Obrázek 18.9 Obslužná rutina události ověřuje hranice při každé změně pozice

Bloky se postarají o to, aby telefon zavibroval vždy, když dojde k odečtení pozice mimo sta

novené hranice.

Dosavadní výsledek vypadá dobře, ale zkusíme si ještě i něco složitějšího, abychom si před

vedli, jak se aplikace dokážou rozhodovat. Co kdybychom chtěli, aby telefon zavibroval pouze

tehdy, když dojde k překročení hranice zevnitř ven? Zamyslete se, jak byste takové chování

naprogramovali, dříve než budete pokračovat ve čtení.

Použili bychom proměnnou uvnitr, která by si pamatovala, zda byla předchozí pozice ode

čtena v, či vně vymezeného prostoru. Aplikace by pak jen nový odečet srovnala s proměnnou.

Proměnná uvnitr je příkladem proměnné typu Boolean – neukládá totiž číslo ani text, ale

hodnotu true (pravda), nebo false (nepravda). Když ji například zavedeme s hodnotou false,

viz obrázek 18.10, bude to znamenat, že se telefon nenachází ve vymezeném areálu Harneyho

vědeckého střediska.

Obrázek 18.10 Proměnná uvnitr zavedená s hodnotou false

Nyní můžeme upravit bloky tak, aby se při každé změně pozice nastavila proměnná uvnitr

znovu. Telefon pak bude moci zavibrovat, když vystoupíme z  vymezeného areálu. V  jazyce

bloků to znamená, že telefon zavibruje pouze v případě, že (1) má proměnná uvnitr hodnotu

true (pravda), protože to značí, že předchozí odečet odpovídal pozici uvnitř areálu, zatímco

nový odečet (2) pozici vně areálu. Obrázek 18.11 znázorňuje aktualizované bloky.


KAPITOLA 18 Aplikace se rozhoduje: podmínkové bloky

279

Obrázek 18.11 Bloky zajistí, aby telefon zavibroval pouze při vykročení z vymezeného prostoru

Podívejme se nyní na použité bloky blíže. Jakmile komponenta LocationSensor odečte pozici,

zkontroluje, zda se pozice nachází uvnitř vymezeného prostoru. Pokud ano, nastaví proměn

né uvnitr hodnotu true. My však chceme, aby telefon zavibroval pouze v případě, že z areálu

vykročíme ven, takže v první větvi telefon vibrovat nebude.

Pokud se dostaneme k zásuvce „else-do“, budeme vědět, že telefon odečetl pozici mimo vy

mezené hranice. V ten okamžik budeme muset zkontrolovat předchozí odečet. Jestliže se na

cházíme mimo areál, má telefon zavibrovat pouze v případě, že jsme při předchozím odečtu

byli v areálu. Kontrolu budeme moci provést díky proměnné uvnitr, která nám sdělí výsledek

předchozího odečtu. Pokud má proměnná hodnotu true, telefon zavibruje.

Jakmile si potvrdíme, že jsme s telefonem skutečně vykročili z vymezené zóny, musíme provést

ještě jednu věc – napadne vás co? Rovněž musíme znovu změnit proměnné uvnitr hodnotu

na false, aby telefon mohl zavibrovat i příště.

Ještě jedna poznámka o proměnných typu Boolean: Podívejte se na dvě ověření bloku if na

obrázku 18.12. Jsou shodná?

Odpověď zní, ano! Jediný rozdíl spočívá v tom, že ověřování napravo pokládá otázku složi

tějším způsobem. Při ověřování nalevo se srovná hodnota proměnné typu Boolean s hodno

tou true. Pokud má proměnná tutéž hodnotu, podmínka se vyhodnotí jako splněná. Pokud

má proměnná hodnotu false, dojde ke srovnání hodnot false a true, takže se podmínka


280

ČÁST II Manuál Inventoru

vyhodnotí jako nesplněná. Stejného výsledku však dosáhneme i prostou kontrolou hodnoty

proměnné uvnitr, viz ověřování napravo. Navíc je takový postup i snazší.

Shrnutí

Už se vám z toho všeho točí hlava? Poslední příklad byl trochu složitější. Ale přesně takhle

se složitější aplikace rozhodují. Když budete toto chování defi novat postupně (větev za větví)

a funkcionalitu budete po kouscích zkoušet, zjistíte, že i složitá logika – dovolím si dokonce

výraz umělá inteligence – lze naprogramovat. Sice se vám z toho rozbolí hlava a pěkně si za

přemýšlíte, ale současně se můžete i dobře pobavit.




       
Knihkupectví Knihy.ABZ.cz - online prodej | ABZ Knihy, a.s.
ABZ knihy, a.s.
 
 
 

Knihy.ABZ.cz - knihkupectví online -  © 2004-2019 - ABZ ABZ knihy, a.s. TOPlist