$$ \newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor} \newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil} \renewcommand{\mod}{\,\mathrm{mod}\,} \renewcommand{\div}{\,\mathrm{div}\,} \newcommand{\metar}{\,\mathrm{m}} \newcommand{\cm}{\,\mathrm{cm}} \newcommand{\dm}{\,\mathrm{dm}} \newcommand{\litar}{\,\mathrm{l}} \newcommand{\km}{\,\mathrm{km}} \newcommand{\s}{\,\mathrm{s}} \newcommand{\h}{\,\mathrm{h}} \newcommand{\minut}{\,\mathrm{min}} \newcommand{\kmh}{\,\mathrm{\frac{km}{h}}} \newcommand{\ms}{\,\mathrm{\frac{m}{s}}} \newcommand{\mss}{\,\mathrm{\frac{m}{s^2}}} \newcommand{\mmin}{\,\mathrm{\frac{m}{min}}} \newcommand{\smin}{\,\mathrm{\frac{s}{min}}} $$

Prijavi problem


Obeleži sve kategorije koje odgovaraju problemu

Još detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link.
Nažalost nismo trenutno u mogućnosti da obradimo vaš zahtev.
Molimo vas da pokušate kasnije.

Procedure

Program ne moramo da kreiramo kao celinu.

Daleko je preglednije ako izdvojimo delove koda u manje, zasebne delove - procedure. Definisanjem procedura olakšavamo pisanje programa, ali i otkrivanje grešaka. Zato je dobro da čuvaš procedure u “rancu”. Tako ćeš moći da ih koristiš u drugim programima koje stvaraš, ne gubeći vreme na njihovo ponovno kreiranje.

Razglašavanje

Programi napravljeni u Skreču obično sadrže više likova koji su u određenoj interakciji. Interakciju možemo sami da definišemo, ali možemo i da koristimo ugrađenu proceduru koja omogućava likovima da oglašavaju poruke (broadcasting messages) i tako utiču na tok programa. Korišćenjem procedure za oglašavanje bitno smanjuje broj blokova koje program sadrži, a i olakšava čitanje kloda.

_images/ProcZ1a.png _images/ProcZ1b.png

    Q-9: Na gornjim slikama data su dva programa - A i B. Oba programa sadrže 3 lika, devojke koje govore engleskim, nemačkim i francuskim jezikom. Ispod svake od njih nalaze se blokovi koji im pripadaju (obezbeđuju da pozdrave sagovornice na svom jeziku). Kreiraj programe kao na gornjim slikama. Analiziraj njihovo izvršavanje. Koji program predstavlja simulaciju prirodnog razgovora tri stranca?

  • Program A
  • Izvršavanjem programa uočavamo da devojke uglas izgovaraju pozdrav na svom jeziku. To nije slučaj u svarnosti, tokom prirodnog razgovora. Sagovornika obično saslušamo, pa tek onda govorimo.
  • Program B
  • U pravu si! Oglašavanjem poruke obezbedili smo da sagovornici budu pristojni - da ne upadaju u reč jedni drugima.

Pogledaj proces izrade programa koji omogućava sagovornicama da ne upadaju jedna drugoj u reč:

System Message: ERROR/3 (D:\work\BlockBasedProgScratchSrLat\_sources\Procedure.rst, line 36)

Duplicate ID – see Kretanje, line 187

.. youtube:: QgCCzBw6DKU
   :width: 735
   :height: 415
   :align: center

Definisanje nove procedure

U Skreču možemo da napravimo sasvim novu proceduru, u skladu sa našim potrebama.

Zamisli da želimo da napravimo program koji iscrtava cvet na pozornici. Cvet se sastoji od latica. Dakle, potrebne su nam dve procedure:

  • Latica, u okviru koje ćemo definisati iscrtavanje jedne latice i

  • Cvet, u okviru koje ćemo definisati iscrtavanje pet latica.

Drugim rečima, procedura Cvet pozivaće proceduru Latica, dok će glavni program pozivati proceduru Cvet.

Proceduru kreiramo klikom na kategoriju My Blocks, u okviru koje treba da kliknemo na dugme Make a Block. Otvoriće se prozor koji nam omogućava da svojoj proceduri damo ime.

_images/ProcLatica.png

Ako želiš da i tvoj cvet ima latice kao na donjoj slici, napravi proceduru Latica, koju smo prikazali:

_images/KodProcLatica.png

Uradi Prepuštamo ti da napraviš proceduru koja iscrtava 5 latica. Mala pomoć: Nakon iscrtavanja jedne latice neophodno je da okreneš lik 72 stepena udesno.

Moguće rešenje

_images/Cvet.png

Vazno Dakle, korišćenjem procedura pojednostavljujemo pisanje programa i otkrivanje grešaka.