Komenskio Logo:
Programa Pamokos: Užsienio šalyse
 

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.

Logo – kas tai? LogoWriter programa Naudingos nuorodos Metodinė medžiaga Moksleivių darbai

į svetainės pradžią


Laiškus su klausimais ir komentarais siųskite adresu: logo@delfi.lt
Atnaujinta 2000 m. spalio 20 d.