Igre s varijablama

Zavrzlame

     
 

U Primjeru 10 vidjeli ste kako se Tina dobro snalazi i u crtanju i u računanju. Na redu su primjeri u kojima se i od vas očekuje poprilična vještina u snalaženju u svijetu programiranja. No, sigurni smo da vi to možete.

Primjer 11. Šesterokutna spirala

Napišite program koji će nacrtati šesterokutnu spiralu kao na slici. Spirala se počinje crtati od najmanje stranice - njezina je duljina :s, a svaka sljedeća stranica je za 10 dulja. Spirala se sastoji od ukupno 24 stranice. Na slici je nacrtana spirala u boji 4, a vi odaberite boju koju želite.

Tina je razmišljala ovako:

  • spirala ima 24 stranice, trebat će mi repeat 24
  • spirala je šesterokutna, pa se trebam okretati za 60°
  • Ali kako ću povećavati stranicu??

Dakle, krenimo od najvećeg problema - povećavanja stranice.
Programeri, za razliku od matematičara, koriste malo neobične formule za računanje koje i s lijeve i s desne strane imaju istu nepoznanicu. No, to je poprilično uobičajena stvar, pa ćete se i vi brzo naviknuti.

Povećanje stranice :s za 10 zadat ćemo ovako:
make "s :s+10.

To prevodimo ovako
- vrijednost varijable s postaje za 10 veća od stare vrijednosti
- ili varijabli s pridružujemo prethodnu vrijednost varijable s uvećanu za 10.

Dakle, ako je varijabla s imala najprije vrijednost 17, nakon ove naredbe imat će vrijednost 27. Ako tu MAKE naredbu ponovimo još jednom varijabla s imat će vrijednost 37, u sljedećem ponavljanju 47 ... - skužili?

naredba

vrijednost varijable s

make "s 13

13

make "s :s+10

23

make "s :s+10

33

make "s :s+10

43

make "s :s+10

53

Naravno, ovakav način računanja može se koristiti i s drugim računskim operacijama, primjerice:

  • make "s :s*2
  • make "p 100/:p
  • make "a :a-5

Slijedeći Tinina i naša razmišljanja, napišite program za crtanje zadane spirale.
Nakon što riješite i provjerite zadatak, usporedite svoje rješenje s našim.

Pokaži mi rješenje

Primjer 12. Reklamni natpis

Napišite program natpis :tekst :b koji će zadanu riječ napisati 12 puta i to svaki put s drugom bojom i zakrenut u drugi položaj. Svih dvanaest natpisa čine puni krug. Na slici se jedan natpis ne vidi jer je ispisan bijelom bojom (boja 7) pa je nevidljiv. Kornjača je sakrivena.

Program treba imati dva ulazna podatka :tekst - riječ koju treba ispisivati i :b - broj boje s kojom će biti ispisana prva riječ.


natpis "Najbolji 1

Nakon što riješite i provjerite zadatak, usporedite svoje rješenje s našim.

Pokaži mi rješenje.

Tina je smislila još bolju verziju programa - svaki put se treba vidjeti samo jedan natpis, a njihovo okretanje i promjena boje ostaje kao što je bilo.

Za ispunjavanje te Tinine želje zatrebat će vam još dvije nove naredbe:

  • CLEAN - briše sliku, ali ne pomiče kornjaču
  • WAIT 30 - čeka 30 šezdesetinki sekunde prije nastavka izvršenja programa (zapravo je to pola sekunde)

Naredbu WAIT upotrijebit ćete za privremeno zaustavljanje programa, da biste vidjeli natpis prije nego što ga s naredbom CLEAN obrišete.


Naredbu CLEAN umetnite na početak ispisivanja natpisa, a naredbu WAIT 30 na kraju ispisa pojedinog natpisa.
Na slikama možete vidjeti kako izgleda ispis programa u par koraka izvršenja.

Ako ste smislili i isprobali svoje rješenje, usporedite ga s našim.

Pokaži mi rješenje.

J Šalabahter:

  • varijablama mijenjamo vrijednost pomoću naredbe MAKE. Primjeri:
    • make "r :r-3
    • make "p :p/5
    • make "s 500-:s
    • make "t 10+:t
  • WAIT 20 - privremeno zaustavlja izvršavanje programa na 20 šezdesetinki sekunde
  • CLEAN - briše sliku, ali ne mijenja položaj kornjače
  • LABEL tekst - ispis u grafičkom (kornjačinom) prozoru