If you're seeing this message, it means we're having trouble loading external resources on our website.

Dacă sunteţi în spatele unui filtru de web, vă rugăm să vă asiguraţi că domeniile *. kastatic.org şi *. kasandbox.org sunt deblocate.

Conţinutul principal

Definirea unei proceduri (subprogram)

Putem face lucruri foarte interesante cu programarea; de exemplu, calcularea unor expresii matematice complicate și tot felul de prelucrări cu șiruri de caractere. Uneori, compunem secvențe ingenioase pe care ne-am dori să le putem folosi de mai multe ori sau în alte programe.
În acest scop, toate limbajele de programare ne permit să definim propriile funcții sau subprograme, cunoscute și ca proceduri, subrutine, sau metode (denumirea folosită depinde de limbajul de programare și de preferințele programatorului). Un subprogram reprezintă, în esență, un set de instrucțiuni (este o parte specială dintr-un program).
În limbajul JavaScript folosim termenul de funcție. Există mai multe modalități de definire a funcțiilor în limbajul JavaScript. Una dintre ele presupune definirea unui element de tip function care conține instrucțiunile:
function singBingo() {
   println("B!");
   println("I!");
   println("N!");
   println("G!");
   println("O!");
}
Odată ce am definit această funcție, o putem apela oriunde ne place, iar calculatorul va executa instrucțiunile din interiorul blocului function (instrucțiunile cuprinse între acolade).
Pentru a apela o funcție în JavaScript, scriem numele funcției urmat de două paranteze rotunde, iar la sfârșit punct și virgulă. Ca să vedem clar, hai să o apelăm de trei ori:
singBingo();
singBingo();
singBingo();
📝 Vezi codul echivalent în: App Lab | Snap | Python
Probabil că ți se pare cunoscut, căci am apelat deja funcțiile predefinite precum println() și Math.sin(). Acum putem să apelăm și funcțiile definite de noi, astfel încât să avem o bibliotecă de funcții potrivită nevoilor noastre.
Pentru un alt exemplu, iată aici un program pentru jocul distractiv knock-knock, program realizat cu ajutorul câtorva funcții și cu puțină artă ASCII (realizarea unor desene folosind caractere):
📝 Vezi codul echivalent în: App Lab | Snap | Python
Gândește-te cât de mult putem continua distracția, acum că avem definite acele funcții. Utilitatea funcțiilor este foarte prețioasă.
Apelarea unei funcții în programul nostru, înseamnă economisirea timpului și spațiului care ar fi fost necesare pentru scrierea repetată a secvenței corespunzătoare. De asemenea, se reduce probabilitatea de a se strecura greșeli în program pentru că nu mai este necesară rescrierea secvenței de instrucțiuni din interiorul funcției.

În interiorul calculatorului

Când un calculator întâlnește apelul unei funcții într-un program, el caută definiția acelei funcții și execută instrucțiunile din interiorul ei. Calculatorul tot muncește cu executarea acelor instrucțiuni, chiar dacă noi am scris mai puțin și programul este mai scurt.
De fapt, el muncește oarecum mai mult, căci trebuie să facă și pasul de căutare a definiției funcției. Dar nu e mare lucru, căutarea se face rapid.
Îți amintești secvența de dinainte pe care am denumit-o singBingo()? Hai să o apelăm de trei ori:
singBingo();
singBingo();
singBingo();
În realitate, calculatorul execută toate instrucțiunile de mai jos:
println("B!");
println("I!");
println("N!");
println("G!");
println("O!");
println("B!");
println("I!");
println("N!");
println("G!");
println("O!");
println("B!");
println("I!");
println("N!");
println("G!");
println("O!");
Funcțiile nu-i fac viața mai ușoară calculatorului, ci programatorilor care se pot concentra pe a crea programe complicate.
În curând, vom explora și alte modalități de a defini funcții și mai puternice folosind parametri și valori returnate.

Proceduri în pseudocod

Când ne referim la limbajul pseudocod, obișnuim să folosim termenul de procedură, iar linia de mai jos reprezintă definiția în pseudocod a unei proceduri denumite name:
PROCEDURE name ()
{
     <instructions>
}
Iată acum definiția și apelul în pseudocod pentru procedura singBingo:
PROCEDURE singBingo () {
  DISPLAY ("B!")
  DISPLAY ("I!")
  DISPLAY ("N!")
  DISPLAY ("G!")
  DISPLAY ("O!")
}

singBingo ()
singBingo ()
singBingo ()

🙋🏽🙋🏻‍♀️🙋🏿‍♂️Ai vreo întrebare pe acest subiect? Ne-ar face plăcere să îți răspundem— nu ai decât să pui întrebarea în spațiul de mai jos!