Institute of Computer Science
  1. Main page
  2. Teeme ise arvutimänge
ET
Log in

Teeme ise arvutimänge

  • Esileht
  • I RAAMAT
  • II RAAMAT
  • III RAAMAT
  • IV RAAMAT
    • Funktsioonid
      • Funktsiooni välja kutsumine
      • Funktsiooni argumendid
      • Funktsiooni töö tulemuse tagastamine
      • Lokaalsed ja globaalsed muutujad
    • Objektid
      • Objekti loomine
      • Objekti algväärtustamine
      • self
      • Miks on objektid head?
      • Näide
    • Mida õppisid?
  • V RAAMAT
  • VI RAAMAT

Funktsioonid

Funktsiooni välja kutsumine

Vastan eelmise peatüki viimase rea küsimusele: ei, kindlasti ei ole funktsioonid ainult selleks, et pealkirjastada erinevaid koodijuppe umbes nagu pannakse raamatu peatükkidele pealkirju, ei. Funktsioonidel on palju, palju mõistlikum rakendus.

Tänu funktsioonidele võin ma kirjutada ühte koodijuppi ainult ühe korra ning kui mul on seda juppi vaja mitmes erinevas kohas, siis saan vaid viidata juba olemasolevale osale programmis. Seda võimaldab funktsiooni nimi. Võin funktsiooni välja kutsuda mistahes teises programmi osas ja nii mitu korda kui vaja, ilma et oleks pidanud uuesti ja uuesti sama koodijuppi kirjutama.

Vaatame ühte lihtsat näidet:

Siin näites ma defineerin kaks funktsiooni, kiitus ja laitus. Need funktsioonid ma kutsun välja kahes erinevas if-lauses, kord kahe arvu summa kontrolli juures, kord kahe arvu vahe kontrolli juures. Kuigi mu funktsioonid on väga väikesed ja ei tee suurt midagi, on aja kokkuhoid aga juba märgatav.

Jah, ma oleksin võinud ka need paar lauset kopeerida mõlemasse if-lausesse, kuid see muudab koodi kirjumaks ja loetamatumaks. Pealegi üldjuhul on funktsioonide sisu märksa keerulisem, kui lihtsalt print käsk.

Veel üks oluline punkt, miks kasutada funktsioone. Kui ma pean mitu korda ühte ja sama koodijuppi mitmes eri kohas kasutama, oletame et ma olen juba need jõudnud ära kirjutada ja ma ei kasuta funktsioone. Mingi aja pärast aga avastan, et olen selles programmijupis teinud olulise vea, siis nüüd pean vea parandamiseks terve programmi uuesti läbi käima (ütleme nii 10-100 kohas), siis on see üks väga tüütu asi. Funktsioonide korral oleks mul piisanud vaid funktsiooni sees ühe korra muutus teha ja see oleks funktsiooni nime kaudu kui viida kaudu kõikidesse väljakutsutavatesse kohtadesse mõjunud.

  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment