4. Tingimuslause
Eesmärk:
- Oskad selgitada, mis on tingimuslause.
- Oskad kasutada tingimuslausey App Inventoris.
Parooliga kaitstud programm
Mis on tingimuslause?
Eelmises peatükis tegime programmi, mis sisaldas IF-lauset, kus kontrolliti, kas on veel aega mängu mängimiseks. Selliseid IF-lauseid nimetatakse tingimuslauseteks.
Parooliga kaitstud programm
Teeme App Inventoriga tutvumiseks mobiilirakenduse ehk programmi, kuhu sisenemiseks on vaja parooli.
Näites loome programmi, mis küsib kasutajalt sisenemiseks parooli ja kontrollib selle õigsust, siis
- õige parooli sisestamisel võiks programm öelda: “Õige parool! Sisenesid panka!”
- vale parooli sisestamisel aga võiks öelda: “Vale parool! Sissepääs keelatud!”.
Sellisel juhul saame arvutikasutajalt küsida alguses parooli lisades Designer vaates kaks komponenti:
- parooli tekstikasti (PasswordTextBox) ja
- nupu (Button).
Seejärel hakkame programmeerima. Alguses tuleks programmeerida programm reageerima nupuvajutuse peale.
Meil tuleb kontrollida, kas parool on õige või ei ole. Selleks saab kasutada tingimuslauset, (if..), mis kontrolliks, kas parooli tekstikastis olev tekst on võrdne mingi salasõnaga. Teeme nii, et selleks salasõnaks oleks 007. Seega saame:
Nüüd tuleks koodi lisada, mis juhtub, kui parool on õige. Selleks lisame projekti ühe sildi (Label), kuhu saaks tekstiks kirjutada “Sisenesid Pentagoni salajasse serverisse!”. Lisame selle sildi nii, et see on alguses nähtamatu.
Nüüd teemegi nii, et kui parool on õige, siis muutub Label nähtavaks ja paroolikast ning nupp nähtamatuks.
Mis see tingimuslause on? Tingimuslauses olev võrdlus peab alati andma vastuseks õige või vale (True / False). Selleks, et saada tulemuseks õige või vale, on võimalus võrrelda erinevaid muutujaid. Nagu eelnevast näha, siis kahe muutuja väärtuse võrdsust saab kontrollida rohelise võrdusmärgiga.
Küll aga on meil antud programmist puudu kood, mis juhtub siis, kui parool on vale. Selleks kasutatakse järgnevat else-lauset, mille saab lisada if-lause sinist nupukest vajutades:
Teeme nii, et kui on vale parool, siis öeldakse tekstikastis “Vale parool! Sissepääs keelatud!” Kokku sai siis selline kood:
Sellist ühes või teises suunas otsuste tegemist ja liikumist vastavalt tingimuse kontrollile nimetatakse programmeerimises ka hargnemiseks. Programm otsustab, millist haru pidi edasi minnakse, kui tingimus on üks, keerab näiteks vasakule, kui mitte, keerab paremale.
Ülesanne
Tee nüüd programm, kus kasutajalt küsitakse midagi ja kui arvab õigesti, siis kiidetakse teda.
NB! selleks, et vältida segadust suurte ja väikeste algustähtedega, võiks teisendada sisendi väikesteks tähtedeks roosa klotsiga
Ülesanne 2
Koosta programm, mis küsib sünniaastat ja kui kasutaja on noorem, kui 18 aastat vana siis teatatakse talle, et ta on edasipääsuks natukene liiga noor ja kui on 18 aastat vana või vanem, siis teatakse arvutikasutajale, et ta on sisenenenud võlumaailma. NB! Lihtsuse huvides tuleks vanuse leidmiseks lahutada käesolevast aastarvust arvutikasutaja sünniaasta.
Mitu tingimuslauset koos
Tingimuslauseid saab ka üksteise sisse panna. Vaatame kivi-paber-käärid näidet.
Nüüd tuleks teha muutuja arvutiValik, mis saab väärtuseks suvalise arvu:
Mida see random integer from 1 to 3 tähendab? See tähendab, et muutuja arvutiValik saab väärtuseks täisarvu, mis jääb vahemikku 1 kuni 3. Ehk muutuja arvutiValik saab väärtuseks kas 1, 2 või 3. Kui nüüd mõelda, et 1 on kivi, 2 on paber ja 3 on käärid, siis saame vastavalt ka teada, kas võidab kasutaja, kes vajutas nuppu või arvuti, kes valis suvalise arvu. Seega programmeerime iga nupuvajutuse eraldi, arvestades seda, et
- on kivi
- on paber
- on käärid
Esimese KIVI nupu jaoks programmeerime
Programmeeri iseseisvalt ka teised nupud. Nuputa! Kas saaks ka natukene lihtsamalt?
Ülesanne 4
Tee rollimäng, kus kasutajalt küsitakse, millises suunas liikuda ja vastavalt antud suunas liikudes juhtub midagi. Uute nuppude nähtavale tulemisega küsitakse uusi asju.
Creative Commons litsentsiga Autorile viitamine + Mitteäriline eesmärk 3.0 Eesti (CC BY-NC 3.0 EE) - https://creativecommons.org/licenses/by-nc/3.0/ee/