Procedūros. Parametrai. Kintamieji
Procedūros
Remiantis Logo ideologija, procedūromis aprašomos naujos komandos
tos, kurių nėra Logo kalboje ir kurių mums prireikia. Procedūros tarsi
Vėžliuko mokymas naujų žodžių, kurių jis dar nežino.
Kiekviena procedūra prasideda žodžiu tai ir procedūros vardu, o baigiasi
žodžiu taškas. Tarp jų rašoma visa procedūra komandų seka. Aprašyta procedūra
atliekama taip pat, kaip ir bet kuri Logo komanda surinkus jos vardą
komandų lauke (arba kitoje procedūroje).
Tarkime, mums reikia nupiešti kvadratą. Tokios komandos nėra. Vadinasi,
reikia patiems parašyti procedūrą. Tą galime padaryti keletu būdų.
Pirmasis būdas procedūros aprašymas komandų lauke. Komandų lauke iš
karto po klaustuko ženklo surenkame procedūros antraštę: tai kvadratas.
Paspaudę Enter klavišą, pamatysime, kad vietoj klaustuko atsirado
ženklas: >, tai reiškia, jog sistema persijungė iš Logo dialogo į procedūrų
rašymo režimą. Visas toliau renkamas eilutes Logo interpretuos kaip procedūros
aprašo dalis (o ne kaip komandą, kurią reikia tuoj pat įvykdyti).
Kvadratui braižyti reikia keturių porų komandų (ėjimo priekin ir posūkio)
arba trumpiau vienos kartojimo komandos:
tai kvadratas
kartok 4 [priekin 100 kairėn 90]
taškas
Po procedūrą užbaigiančios komandos (taškas) Logo sistema
vėl grįžta į dialogo režimą: nauja procedūra įsiminta ir ją galima naudoti
kaip įprastas komandas.
Antrasis būdas procedūros rašymas naudojant objektų redaktorių. Atveriame
atmintinės langą. Čia randame galimybę pasirinkti objektus (1 pav.).
1 pav.
Logo projekto objektu vadinamos įvairios programavimo konstrukcijos,
kuriomis galima išreikšti sprendžiamų uždavinių veiksmus. Procedūra vienas
iš galimų objektų. Ja nusakomas visas objekto elgesys. Pavyzdžiui, kvadratui
skirta procedūra braižo kvadratą.
Pasirinkus objektų meniu komandą Kurti procedūrą, atsivers dialogo langelis,
kuriame įrašysime procedūros vardą. Toliau dirbame su objektų redaktoriumi.
Jis teikia įvairių paslaugų: tam tikrose vietose parašo reikiamas komandas,
pavyzdžiui, pateikia procedūros antraštę ir jos pabaigą, taiso klaidas
pavadinimuose, leidžia atlikti teksto žymėjimo, kopijavimo, kirpimo, įterpimo
veiksmus kaip ir dirbant su bet kuriuo Windows tekstų redaktoriumi.
Beje, ir aprašius procedūrą pirmuoju būdu (komandų lauke), ji automatiškai
atsiranda atmintinėje ir ją galima taisyti objektų redaktorių.
Procedūros su parametrais
Logo kalboje yra galimybė aprašyti procedūras, kuriomis gali būti nurodomi
kintami objektų dydžiai parametrai. Parašysime procedūrą bet kurio dydžio
kvadratui piešti: jo kraštinės ilgis bus parametras.
tai kvadratas :kraštinės_ilgis
kartok 4 [pr : kraštinės_ilgis
kr 90]
taškas
Norėdamas įvykdyti procedūrą, Vėžliukas pradžioje paklaus parametro
reikšmės, t.y. kvadrato kraštinės ilgio. Kraštinės ilgį galima nurodyti
ir iš karto kreipiantis į procedūrą, pavyzdžiui:
kvadratas 100
Pateikiame procedūrą bet kokiam daugiakampiui braižyti:
tai daug :kampų_skaičius
kartok :kampų_skaičius [pr
100 kr 360 / :kampų_skaičius]
taškas
Šią procedūrą panaudosime kitoje šitaip galime braižyti įdomias ir
sudėtingas geometrines figūras (2 pav.):
tai graži_figūra :kampų_skaičius
kartok 6 [daug :kampų_skaičius
es kr 45 pr 10 dš 45 pš]
taškas
graži_figūra 3 graži_figūra 4
graži_figūra 5
2 pav.
Šiek tiek pakeitę išorinę procedūrą, gausime vaizdžių sukinių (3 pav.):
tai sukinys :kampų_skaičius
kartok 360 / 4 / 5 [kartok 5 [pr 1 dš 4] daug
:kampų_skaičius]
taškas
|
|
|
sukinys 3 |
sukinys 4 |
sukinys 6 |
3 pav.
Kintamieji
Kintamasis tai objektas, kuris turi vardą ir reikšmę. Kintamojo reikšmė
Logo kalboje gali būti žodis (atskiras jo atvejis skaičius), sąrašas
arba kaukė (su visais kadrais).
Kintamasis sukuriamas ir jam reikšmė priskiriama komandomis tebus bei
vadink. Pavyzdžiui, kintamajam suma skaičių galime priskirti užrašydami
komandas:
tebus suma 5 arba vadink 5
suma
Kintamojo reikšmę (jei ji buvo jam priskirta) galima pamatyti komandų
lauke tam vartojama komanda rašyk. Išbandykite:
rašyk :suma
Reikia suprasti, kada prieš kintamąjį rašomos kabutės, o kada dvitaškis.
Kabutės rašomos, kai naudojamas kintamojo vardas, dvitaškis kai reikalinga
kintamojo reikšmė. Pabandykite ir palyginkite:
tebus Vėžliuko_amžius 5
rašyk Vėžliuko_amžius
rašyk :Vėžliuko_amžius
Pirmoji komanda kintamajam Vėžliuko_amžius priskirs reikšmę
5,
antroji komanda komandų lauke išspausdins kintamojo vardą, trečioji spausdins
nurodyto kintamojo reikšmę (skaičių 5).
Kitas būdas kintamajam sukurti bei priskirti reikšmę naudojantis objektų
redaktoriumi. Tuomet atmintinės lango Objektų meniu reikia pasirinkti komandą
Kurti kintamąjį. Atsivers dialogo langas, kuriame surinkus kintamojo vardą
(kabučių čia rašyti nereikia), pateksime į objektų redaktorių. Tada renkama
kintamojo reikšmė. Naudoti objektų redaktorių patogu tuomet, kai kintamojo
reikšmė sudėtinga ilgi reiškiniai ar sąrašai.
Atkreipiame dėmesį, kad procedūros parametrai tai taip pat kintamieji.
Pateiksime procedūrą, kurioje parodysime, kaip galima panaudoti kintamąjį.
Procedūrą braižo daugiakampius, kaskart vienetu sumažindama kiekvieno jų
kampų skaičių: tebus kampų_skaičius :kampų_skaičius
- 1:
tai daugiakampiai :kampų_ skaičius
kartok :kampų_ skaičius - 2 [daug
:kampų_ skaičius~
tebus kampų_
skaičius :kampų_ skaičius - 1]
taškas
Ženklu ~ nurodoma, kad komanda (šiuo atveju kartok)
perkelta į kitą eilutę. Pateiktoji procedūra braižo štai tokią figūrą (4
pav.):
4 pav.
Gražu? O jeigu dar kiekvieną daugiakampį braižytume vis kita spalva...
Kaip pasirinkti pieštuko spalvą žinome. Dar įdomiau leisti pačiam Vėžliukui
pasirinkti atsitiktinę spalvą. Tam naudojama komanda bet.koks,
generuojanti atsitiktinį sveikąjį skaičių nuo 0 iki nurodytojo, pavyzdžiui:
pasirink.pieštuko.spalvą
bet.koks15.
Vidiniai ir išoriniai kintamieji
Logo kalboje kintamieji yra dviejų rūšių: vidiniai (dar vadinami lokaliaisiais),
kurių reikšmės galioja ribotą laiką, ir išoriniai (dar vadinami globaliaisiais),
kurių reikšmės galioja visame Logo projekte.
Jei kintamąjį sukuriame komandų lauke ar pasirinkę atmintinės lango
Objektų meniu komanda Kurti kintamąjį, tai toks kintamasis būna išorinis
ir galioja visame projekte tol, kol jo nepašalinsime specialia komanda
(trink).
Vidinis kintamasis visų pirma yra bet kuris procedūros parametras
jis galioja tik toje procedūroje ir tik tol, kol ši procedūra atliekama,
sakoma, kol aktyvi. Vidinį kintamąjį galime sukurti procedūros viduje panaudoję
komandas tebus bei vadink (taip padarėme procedūroje daugiakampiai).
Keletas užduočių
1. Procedūrą daugiakampiai papildykite taip, kad kiekvienas daugiakampis
būtų piešiamas vis kita atsitiktinai parinkta spalva ir vis kitokio storio
pieštuku.
2. Parašykite procedūrą, kuri nupieštų lanką (ketvirtį apskritimo).
Ją panaudokite lapeliui piešti. Toliau iš lapelio sudėliokite gėlės žiedą.
3. Šešiakampį nupiešti galima naudojantis daugiakampio procedūra.
Pabandykime nupiešti koriuką, sulipdytą iš šešiakampių:
4. Parašykite procedūras šioms figūroms braižyti:
Paruošta pagal J. Aušraitės ir V. Dagienės pamokų ciklą
Mokomės
dirbti su Komenskio Logo. |