Prezentácia sa nahráva. Prosím počkajte

Prezentácia sa nahráva. Prosím počkajte

 Ulazna vrijednost N mora biti veća od 0.

Podobné prezentácie


Prezentácia na tému: " Ulazna vrijednost N mora biti veća od 0."— Prepis prezentácie:

1  Ulazna vrijednost N mora biti veća od 0.
Otvorite datoteku 65Avje1.lgo koju ste spremili prošli sat. Upišite u naredbeni redak: Kocka se nije nacrtala, već je Logo "odgovorio": Zašto? Zadali smo da treba nacrtati -1 kocku!  Ulazna vrijednost N mora biti veća od 0. kocka REPEAT ne voli -1 za ulaznu vrijednost in KVADRATI [REPEAT :N [NIZ_KVADRATA :N :A FD :A]]

2  Ulazna vrijednost N mora biti veća od 0.
Kako to učiniti? Logo mora ODLUČITI može li sa zadanom ulaznom vrijednosti N nacrtati kocku PRIJE crtanja…. ako je N>0 onda KOCKA :N :A :BOJA inače izlaz(N mora biti veći od 0)

3 5.A. Programski jezik Logo
Odluke u programu

4 Grafički, u dijagramu tijeka naredbu odluke prikazujemo u rombu

5 Naredba odluke u Logu: provjeri uvjet ako je istina
to crtaj_kocku :n :a :boja test :n>0 iftRUE[kocka :n :a :boja] iffALSE[pr "|Zadaj broj malih kocaka N>0|] end provjeri uvjet ako je istina naredbe koje treba izvršiti za N>0 ako je laž naredbe koje treba izvršiti za N NIJE veći od 0

6 TEST IFTRUE IFT [ ] IFFALSE IFF [ ] Oblik naredbe odluke:
Mali engleski rječnik: if – ako true – istina false - laž TEST logički uvjet IFTRUE IFT [ naredbe koje se izvršavaju ako je uvjet istinit ] IFFALSE IFF [ ] naredbe koje se izvršavaju ako je uvjet lažan

7 Možemo li sada nacrtati svaku kocku?
cs crtaj_kocku Neće se nacrtati kocka jer N nije cijeli broj veći od 1. Ne mogu se nacrtati dvije i pol male kocke na svakom bridu. cs crtaj_kocku Nacrtat će se velika kocka sastavljena od malih kocaka kojima je duljina brida 40.5. cs crtaj_kocku Logo će javiti pogrešku jer broj boje mora biti prirodni broj ili 0.

8 Naredba za ispis PR 2+2 4 PR 13-5 8 PR 13-(7+2) PR 4*5 20 PR 12/3
PR REMAINDER 14 3 2 PR [DOBAR DAN!] DOBAR DAN! PR (PRINT) naredba za ispis u naredbenom prozoru. Računske operacije u Logu: računska operacija znak u Logu zbrajanje + oduzimanje - množenje * dijeljenje / ostatak pri dijeljenju REMAINDER

9 Naredba odluke u Logu < > =  <>  <=  >= PR 3<5
Logički operatori u Logu PR 3<5 TRUE PR 4>9 FALSE PR 3+8=15 PR 3+8=11 Matematika LOGO < > = <> <= >=

10 INT :broj – vraća broj bez decimalnih mjesta
ROUND :broj – zaokružuje broj na najbliži cijeli broj

11 DIJAGRAM TIJEKA ALGORITAM ako je N>0 onda ako je BOJA < 0 onda BOJA = slučajan(16) KOCKA :N :A BOJA inače izlaz(N mora biti veći od 0.)

12 Program: TO CRTAJ_KOCKU :N :A :BOJA MAKE "N ROUND :N
MAKE "BOJA ROUND :BOJA TEST :N>1 IFT[IF :BOJA<0 [MAKE "BOJA RANDOM 16] KOCKA :N :A :BOJA] IFF [PR "|ZADAJ BROJ MALIH KOCAKA N>0.|] END

13 Vježba 3. Napišite program JEDNAKI :A :B koji će provjeriti jesu li dva broja A i B jednaka ili nisu.

14 DIJAGRAM TIJEKA ALGORITAM ulaz(a,b) ako je a=b onda
izlaz(Brojevi su jednaki) inače izlaz(Brojevi su različiti)

15 Program: TO JEDNAKI :A :B TEST :A=:B IFTRUE [PR "|BROJEVI SU JEDNAKI|]
IFFALSE [PR "|BROJEVI SU RAZLIČITI|] END

16 Vježba 4. Napišite program USPOREDI :A :B koji uspoređuje dva broja A i B.

17 ALGORITAM DIJAGRAM TIJEKA ulaz(a,b) ako je a>b onda izlaz(a > b)
inače ako je a<b onda izlaz(a < b) inače izlaz(a = b)

18 Program: TO USPOREDI :A :B TEST :A>:B IFT [PR (SE :A "> :B)]
IFF [TEST :A<:B IFT [PR (SE :A "< :B)] IFF [PR (SE :A "= :B)]] END

19 Vježba 5. Napišite program VODORAVNO :A :B koji crta pravokutnik tako da mu je dulja stranica uvijek vodoravno, a kraća okomito.

20 Program: TO PRAVOKUTNIK :A :B REPEAT 2 [FD :B RT 90 FD :A RT 90] END
TO VODORAVNO :A :B TEST :A>:B IFT [PRAVOKUTNIK :A :B] IFF [PRAVOKUTNIK :B :A] END

21 Vježba 6. Na početku sata tjelesne i zdravstvene kulture učenici trebaju stati „u vrstu“ po visini. Tri najbolja prijatelja Matej, Ivan i Luka, među najvišim učenicima u razredu, svaki sat se prepiru tko će stati prvi u red. Napišite program koji će ispisati ime učenika koji treba stati prvi u redu, ako su ulazne vrijednosti programa PRVI :M :I :L njihove visine koje su izmjerili danas ujutro. PRVI PRVI U REDU: LUKA PRVI PRVI U REDU: MATEJ PRVI PRVI U REDU: IVAN

22 ift[PR "|PRVI U REDU: MATEJ|] test :NAJ = :I
PROGRAM ALGORITAM NAJ = M ako je I > NAJ onda NAJ = I ako je L > NAJ onda NAJ = L ako je NAJ = M onda izlaz(MATEJ) ako je NAJ = I onda izlaz(IVAN) ako je NAJ = L onda izlaz(LUKA) to PRVI :M :I :L MAKE "NAJ :M test :I > :NAJ ift[make "NAJ :I] test :L > :NAJ ift[make "NAJ :L] test :NAJ = :M ift[PR "|PRVI U REDU: MATEJ|] test :NAJ = :I ift[PR "|PRVI U REDU: IVAN|] test :NAJ = :L ift[PR "|PRVI U REDU: LUKA|] end Nacrtaj dijagram tijeka.

23 TKO ŽELI ZNATI VIŠE DODATNI PRIMJERI

24 Problem 1. Napiši program koji crta niz od N kvadrata duljine stranice A. Prije početka crtanja kornjaču pomaknemo uz lijevi rub grafičkog prozora. Niz kvadrata crta se samo ako čitav stane u grafički prozor. Ako je N*A>600, treba ispisati poruku "Niz kvadrata ne stane u grafički prozor.", a inače nacrtati niz kvadrata.

25 Rješenje: TO CRTAJ.NIZ :N :A PU LT 90 FD 300 RT 90 PD
TEST :N*:A>600 IFT[PR [NIZ KVADRATA NE STANE U GRAFIČKI PROZOR.]] IFF [NIZ.KVADRATA :N :A] END TO KVADRAT :A REPEAT 4 [FD :A RT 90] TO NIZ.KVADRATA :N :A REPEAT :N [KVADRAT :A RT 90 FD :A LT 90]

26 Problem 2. Program treba nacrtati lik s N vrhova stranice duljine A, ako je broj vrhova N veći od 2, a inače ispisati poruku "Lik ima barem 3 vrha."

27 Rješenje: TO LIK :N :A TEST :N>2 IFT [REPEAT :N[FD :A RT 360/:N]]
IFF [PR [Lik ima barem 3 vrha.]] END


Stiahnuť ppt " Ulazna vrijednost N mora biti veća od 0."

Podobné prezentácie


Reklamy od Google