Subroutine

Kutoka Wikipedia, kamusi elezo huru
Rukia: urambazaji, tafuta

Subroutine ni sehemu ya programu ya kompyuta iliyopewa jina au inayotambuliwa kwa njia nyingine yenye elezo la seti yoyote ya matendo au hatua. Subroutine inaweza kuvutwa kutoka sehemu mbalimbali za programu mara nyingi. Katika lugha mbalimbali za programming subroutines zinaweza kuwa na majina kama procedures, functions, routines, methods au subprograms.

Makusudi[hariri | hariri chanzo]

Kwanza subroutines zilitokea kama chombo cha kufanya programu kuwa bora kabisa kuhusu kiasi cha kumbukumbu inayokaliwa nazo. Programu hizo ziliwezesha kutorudia sehemu za code zilizo sawa katika programu bali kuzieleza mara moja na kuzivuta wakati unapohitajiwa. Sasa kazi hiyo ya subroutine ikawa ya kusaidia na wajibu yao kuu ni kupanga sehemu za programu kwa kurahisisha kuifahamu na kuitengeneza.

  • Utengaji wa seti ya matendo katika subroutine na kuivuta wakati unapohitajiwa zinawezesha kulitenga logically fumbo la chini kamilifu lenye utoshelezi sanifu. Tendo hilo lina nafuu tena tofauti na marudio ya matendo ya namna ileile (ghairi ya uokoaji wa kumbukumbu) yaani mabadiliko yoyote yaliyofanyiwa katika subroutine (kwa mfano kusahihisha makosa, kufanya kuwa bora kabisa, kuongeza kazi) yanaathiri miwito yake yote maadam wakati wa kurudufu kila badiliko lazima ziwekwe katika kila uingiaji wa code inayobadilika.
  • Hata wakati katika subroutine kunatolewa na seti ya matendo inayotekelezwa mara moja hii ni ya maana kwa sababu inawezesha kudogesha ukubwa wa blocku kamilifu za code zinazotengeneza programu yaani kufanya programu iweze kufahamika na kutazamiwa zaidi.

Mifano[hariri | hariri chanzo]

Ruby[hariri | hariri chanzo]

def fib(n)
  previous, current = 1, 1
  3.upto(n) {
    previous, current = current, (previous + current)
  }
  current
end

fib(1)    # 1
fib(2)    # 1
fib(3)    # 2
fib(20)   # 6765

Python[hariri | hariri chanzo]

def fib(n):
    previous, current = 1, 1
    for i in range(3, n + 1):
        previous, current = current, (previous + current)
    return current

fib(20)     # 6765

Javascript[hariri | hariri chanzo]

function fib(n) {
    var previous = 1;
    var current = 1;
    var temp;
    for (var i = 3; i <= n; i++) {
        temp = previous;
        previous = current;
        current = temp + current;
    }
    return current;
}

fib(20);    // 6765

Blocky[hariri | hariri chanzo]

Fibonacci number in Blocky.png

Mifano (recursive)[hariri | hariri chanzo]

Ruby[hariri | hariri chanzo]

def fib(n)
  return n if n <= 1
  fib(n - 1) + fib(n - 2)
end

fib(20)   # 6765

Python[hariri | hariri chanzo]

def fib(n):
    if n <= 1:
        return n
    return fib(n - 1) + fib(n - 2)

fib(20)     # 6765

Javascript[hariri | hariri chanzo]

function fib(n) {
    if (n <= 1) {
        return n;
    }
    return fib(n - 1) + fib(n - 2);
}

fib(20);    // 6765

Angalia Pia[hariri | hariri chanzo]