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

Jeżeli jesteś za filtrem sieci web, prosimy, upewnij się, że domeny *.kastatic.org i *.kasandbox.org są odblokowane.

Główna zawartość

Definiowanie procedury

Z programowaniem możemy robić całkiem niezłe rzeczy, jak na przykład obliczanie skomplikowanych wyrażeń matematycznych i manipulowanie łańcuchami na różne sposoby. Czasami wymyślamy trochę kodu, który jest tak zgrabny, że chcemy go użyć ponownie wiele razy.
Dlatego wszystkie języki programowania pozwalają na tworzenie własnych procedur, zwanych również podprogramami, funkcjami lub metodami. Procedura jest zbiorem instrukcji wielokrotnego użytku.
W języku JavaScript istnieje wiele sposobów definiowania procedur. Jednym ze sposobów jest utworzenie nowej zmiennej i przypisanie jej do bloku funkcji, która zawiera polecenia:
var singBingo = function() {
   println("B!");
   println("I!");
   println("N!");
   println("G!");
   println("O!");
};
Po zdefiniowaniu funkcji możemy ją wywołać kiedy tylko chcemy, a komputer wykona polecenia, które znajdują się "wewnątrz" bloku funkcyjnego (pomiędzy nawiasami klamry).
Aby wywołać funkcję w JavaScript, piszemy jej nazwę, dwa nawiasy i średnik. Wywołajmy ją trzy razy, na wszelki wypadek:
singBingo();
singBingo();
singBingo();
📝 Zobacz podobny kod w: App Lab | Snap | Python
Wygląda to prawdopodobnie znajomo, ponieważ już wywoływaliśmy wbudowane funkcje jak println() i Math.sin(). Teraz możemy również wywołać własne funkcje i zbudować użyteczną bibliotekę procedur, aby spełnić nasze potrzeby.
Aby podać inny przykład, oto program, który opowiada mój ulubiony dowcip typu puk-puk, przy pomocy kilku procedur i odrobiny sztuki ASCII:
📝 Zobacz podobny kod w: App Lab | Snap | Python
Wyobraźcie sobie, jak boleśnie długo moglibyśmy opowiadać ten żart, teraz, gdy mamy te trzy funkcje! Taka jest moc procedur.
Kiedy wywołujemy procedurę w naszym programie, oszczędzamy sobie czas i miejsce na wielokrotne wpisywanie tego samego kodu. Zmniejszamy również nasze szanse na wprowadzenie nowych błędów, ponieważ nie musimy ponownie wpisywać całego kodu wewnątrz funkcji.

Wewnątrz komputera

Kiedy komputer widzi wywołanie procedury w programie, szuka ją po nazwie, znajduje instrukcje wewnątrz procedury i je wykonuje. Komputer nadal wykonuje całą pracę związaną z wykonywaniem tych poleceń, nawet jeśli wygląda to dla nas jak mniej kodu.
Pod pewnymi względami wykonuje on więcej pracy, ponieważ ma dodatkowy etap sprawdzania nazwy procedury. Ale to jest szybkie sprawdzenie.
Przypomnij sobie wcześniejszy kod, który wywoływał singBingo() trzy razy:
singBingo();
singBingo();
singBingo();
Pod spodem, komputer nadal wykonywał wszystkie te linie:
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!");
Procedury nie ułatwiają komputerom wykonywania programu, ale znacznie ułatwiają ludziom tworzenie skomplikowanych programów.
Wkrótce poznamy sposoby uczynienia naszych procedur jeszcze potężniejszymi, dzięki zastosowaniu parametrów i wartości zwracanych.

Procedury w pseudokodzie

Ten pseudokod reprezentuje procedurę zwaną name:
PROCEDURE name ()
{
     <instrukcje>
}
Oto pseudokod dla procedury singBingo i wywołania:
PROCEDURE singBingo () {
  DISPLAY ("B!")
  DISPLAY ("I!")
  DISPLAY ("N!")
  DISPLAY ("G!")
  DISPLAY ("O!")
}

singBingo ()
singBingo ()
singBingo ()