Limbajul LOGO - Mediu de programare online | Ţestoasa ta ce ştie să facă?
Ce este o procedură?



Definiția unei proceduri

Printr-o procedură (sau subprogram) vom înțelege un ansamblu alcătuit din declarări și instrucțiuni scrise în vederea unei anumite prelucrări, ansamblu creat separat și identificat printr-un nume sugestiv.

Astfel, vei putea să-ți înveți Țestoasa noi instrucțiuni și să-i extinzi limbajul pe care implicit îl cunoaște. Spre exemplu, nu ar fi super ca prin apelul unei instrucțiuni numite "curcubeu", aceasta să traseze imediat unul? Oricând?
Definirea unei noi proceduri

Pentru a defini o procedură utilizăm instrucțiunea "procedura" (în engleză, "to"/"end" la final) care are forma generală:

procedura numele_ei parametri_optionali
    lista_instructiuni
sfarsit


Exemplul trasării unui dreptunghi

Da, știm! Puteți trasa un dreptunghi imediat cu ajutorul comenzii "d_dreptunghi", cu Țestoasa în centrul său. Totuși, cum putem face ca Țestoasa să îl deseneze efectiv?
Exemplul 1. Să analizăm în continuare procedura de mai jos:

procedura dreptunghi1
    inainte 100
    stanga 90
    inainte 200
    stanga 90
    inainte 100
    stanga 90
    inainte 200
    stanga 90
sfarsit
dreptunghi1


Am definit procedura "dreptunghi1" care trasează un dreptunghi cu dimensiunile (100 x 200), apoi am apelat-o direct cu numele ei. Dacă sunteți autentificat, Țestoasa a reținut definiția procedurii și de acum înainte o puteți apela oricând, fără a o mai defini. A învățat o comandă nouă! Fantastic!

Exemplul 2. Optimizarea procedurii anterioare: observăm că se repetă 4 instrucțiuni de 2 ori, deci folosim "repeta":

procedura dreptunghi1
    repeta 2 [
        inainte 100
        stanga 90
        inainte 200
        stanga 90
    ]
sfarsit
dreptunghi1


Exemplul 3. Optimizăm mai mult: o procedură care trasează același dreptunghi de fiecare dată e ok, însă ce facem dacă ne dorim să modificăm dimensiunile? Simplu. Folosim parametrii opționali:

procedura dreptunghi :lat1 :lat2
    repeta 2 [
        inainte :lat1
        stanga 90
        inainte :lat2
        stanga 90
    ]
sfarsit
dreptunghi 200 90


După cum veți vedea, Țestoasa a învățat un cuvânt nou (procedură nouă) și anume "dreptunghi", care este urmat de cei doi parametri (:lat1 și :lat2). De acum, de fiecare dată când veți apela această procedură, cu dimensiunile corespunzătoare, Țestoasa va ști ce are de făcut:
Observați faptul că la definirea parametrilor am folosit semnul două puncte (":") înaintea numelor acestora, precum și în cadrul listei de instrucțiuni.

Avantajele utilizării procedurilor

Pe lângă extinderea limbajului Țestoasei tale, beneficiile folosirii procedurilor sunt multiple:

  • reutilizarea codului – odată scris, un subprogram poate fi utilizat de către mai multe alte programe Logo;
  • elaborarea algoritmilor prin descompunerea problemei în altele mai simple – astfel, puteți rezolva cu mult mai ușor problema;
  • reducerea numărului de erori care pot apărea la scrierea programelor;
  • depistarea cu ușurință a erorilor – verificăm de la bun început subprogramele, apoi modul în care le-am asamblat (le-am apelat din cadrul programului);
  • realizarea unor programe ușor de urmărit/citit (lizibile).

Să nu uităm de curcubeu...

Deși un pic mai complicată, analizați și testați procedura de mai jos:

procedura curcubeu
    grosimecreion 20
    creion_sus
    inapoi 20
    creion_jos
    directia 270
    culoarecreion 4
    arc 180 200
    culoarecreion 14
    arc 180 180
    culoarecreion 6
    arc 180 160
    culoarecreion 2
    arc 180 140
    culoarecreion 1
    arc 180 120
    culoarecreion 13
    arc 180 100
sfarsit


Detalii. Am setat dimensiunea creionului ca fiind de 20 de pixeli. Deoarece vreau să mă deplasez fără să trasez, merg înapoi 20 de pixeli (fix dimensiunea de trasare). Setez orientarea (direcția Țestoasei) ca fiind 270 de grade, deci o rotesc spre stânga 90 de grade. De ce? Vezi instrucțiunea arc (trasează un arc de cerc în sensul acelor de ceasornic). Aleg prima culoare pentru creion (4, roșu). Trasez primul arc (180 de grade - jumătate de cerc, raza de 200 de pixeli). Apoi, aleg altă culoare și următorul arc îl trasez cu raza de dimensiune mai mică fix cu 20 de pixeli...

Exercițiu. Modificați procedura astfel încât să primească ca parametru dimensiunea arcului/creionului.

LOGO este aproape de un limbaj natural şi este o alternativă de învățare a programării la gimnaziu în curriculumul oficial M.E.N. [programa].
Acest proiect este susţinut şi colaborează cu:
U.P.I.R.         www.infogim.ro
ebooks.infobits.ro
Cărți, culegeri de probleme și cursuri în format electronic
(simplu, rapid, sigur, *.pdf)
www.infobits.ro
Biblioteca Digitală de Informatică "TUDOR SORIN"

Materiale educaționale în format electronic