1 of 50

Funkcija ir jos prototipas

2 of 50

3 of 50

✅ Funkcija dar vadinama procedūra arba paprograme

Funkcija – tai atskirai aprašytas programos blokas, kuris atlieka tam tikrą veiksmą. Ji leidžia:

  • padalinti programą į logiškas dalis,
  • pakartotinai naudoti kodą,
  • padidinti programos aiškumą ir tvarką.

Funkcijos yra pagrindinis C++ programavimo kalbos komponentas, leidžiantis suskaidyti kodą į mažesnes, pakartotinai naudojamas dalis.

4 of 50

Funkcija – tai programos dalis, kuri atlieka tam tikrą veiksmą.

​

Ji gali:

  • priimti duomenis (parametrus),
  • atlikti skaičiavimus,
  • išvesti duomenis,
  • grąžinti rezultatą (arba negrąžinti nieko).

Funkcijas naudoti verta, kai:

  • kartojasi tas pats veiksmas (pvz., skaičiavimas),
  • norime padalinti programą į dalis,
  • norime padidinti aiškumą ir tvarką,
  • norime pakartotinai naudoti kodą

​

5 of 50

Kodėl rašyti funkciją virš main() nėra visada geriausia?

  • Sutrinka logika – main() turėtų būti programos pradžia, o ne viduryje.
  • Sunku skaityti – kai funkcijų daug, main() pasimeta tarp jų.
  • Nepraktiška didesnėse programose – kai kodas išskaidytas į modulius, funkcijos dažnai būna atskiruose failuose.

Kur rašoma funkcija?

6 of 50

Galima funkcija, kuri nieko negrąžina (void)

  • Naudojama, kai reikia atlikti veiksmą, bet nereikia grąžinti rezultato.
  • Pvz., išvesti tekstą į ekraną.

​

​

7 of 50

Funkcijos grąžinančios vieną reikšmę

(return) per vardą

​

8 of 50

✅ Funkcija:

Funkcija – tai atskirai aprašytas programos blokas, kuris atlieka tam tikrą veiksmą. Ji leidžia:

  • padalinti programą į logiškas dalis,
  • pakartotinai naudoti kodą,
  • padidinti programos aiškumą ir tvarką.

✅ Funkcijos prototipas:

Funkcijos prototipas – tai funkcijos aprašymo santrauka, pateikiama prieš main() funkciją, kad kompiliatorius žinotų apie jos egzistavimą.

Įsivaizduokite, kad rašote receptą.

Viršuje parašote:

  • „Naudosime padažo gaminimo instrukciją (prototipas)“,
  • aprašote, kaip gaminamas patiekalas su padažu (pagrindinė funkcija)
  • vėliau paaiškinate, kaip gaminti padažą (funkcija).

Taip programa „žino“, kad tokia instrukcija egzistuoja, ir ją galės panaudoti, kai reikės.

9 of 50

Funkcija su return yra funkcija, kuri atlieka veiksmus ir grąžina galutinį rezultatą atgal į tą vietą, iš kurios buvo iškviesta.

:) kaip „darbininkas, kuriam duodi žaliavas, o jis tau atgal grąžina pagamintą daiktą“.

parametrai yra duomenys, kuriuos įsinešame į funkcijos vidų (įvestis).

return yra rezultatas, kurį išsiunčiame iš funkcijos lauk (išvestis).

Įsivaizduokite sulčiaspaudę:

1. Jūs įdedate apelsinus (Parametrai)

2. Sulčiaspaudė spaudžia sultis (Funkcijos veiksmai)

3. Jūs pasiimate stiklinę sulčių (return)

10 of 50

11 of 50

12 of 50

1. Funkcija, kuri grąžina 1 reikšmę (return)

  • Naudojama, kai reikia apskaičiuoti ir gauti rezultatą.
  • Funkcijos tipas nurodo grąžinamos reikšmės tipą (pvz., int, double).

​

Jei funkcijos realizavimo aprašas pateikiamas prieš main(), tuomet funkcijos prototipo nereikia

13 of 50

Funkcijos prototipas nurodo naudotojui:

• kuria tvarka duomenys perduodami funkcijai;

• kaip gaunamas rezultatas

​

Funkcijos prototipas rašomas prieš funkciją main() ir baigiamas kabliataškiu

14 of 50

#1 Grąžinamos reikšmės tipas.

​

Jei funkcija negrąžina jokios reikšmės, vietoj rezultatoTipas

rašomas bazinis žodis void.

#2 Funkcijos Vardas parenkamas pagal tas pačias taisykles, kaip ir

kintamųjų vardai (prasmingas)

#3 Formalieji parametrai.

• Parametrai apibrėžiami kaip kintamieji, nurodant jų tipą ir vardą.

• Parametrai vienas nuo kito atskiriami kableliais.

• Jei funkcija neturi parametrų, rašomi tušti skliaustai ()

Funkcija

15 of 50

  • Veiksmai, kuriuos turi atlikti funkcija aprašomi jos dalyje funkcijosKamienas.

​

  • Jei funkcija skirta kokiai nors reikšmei grąžinti, turi būti bent vienas sakinys, kuriuo apskaičiuota reikšmė grąžinama į programą-

return Reiškinys.

Funkcija

16 of 50

17 of 50

Kreipinys į funkciją (1)

​

• Į funkciją kreipiamasi jos vardu, už skliaustų pateikiami faktiniai parametrai (pradiniai duomenys).

  • Funkcija grąžina reikšmę (t. y. jos tipas ne void).�
  • Grąžinta reikšmė priskiriama kintamajam Y.

​

  • Y tipas turi sutapti (arba būti suderinamas) su funkcijos grąžinamu tipu.

18 of 50

Kreipinys į funkciją (2)

​

• Į funkciją kreipiamasi jos vardu, už skliaustų pateikiami faktiniai parametrai (pradiniai duomenys).

  • Funkcija grąžina reikšmę, bet ji nepriskiriama kintamajam;

​

  • Grąžinta reikšmė gali būti:
    • spausdinama (išvedama)
    • perduodama kitai funkcijai
    • naudojama sąlygoje
    • naudojama cikle

19 of 50

1 pavyzdys

kai x=5, y=4

ekrane matysime:

Plotas 20

pradinius duomenis galime skaityti iš failo

​

20 of 50

1 pavyzdys kai pradinius duomenis skaitome iš failo

:

​

21 of 50

1 pavyzdys kai duota n stačiakampių ir pradinius duomenis skaitome iš failo

22 of 50

1 užduotis

​

atlikti jei vis dar labai neaišku

23 of 50

2 užduotis

​

atlikti jei vis dar neaišku

24 of 50

3 užduotis

​

atlikti jei vis dar labai neaišku

25 of 50

2 pavyzdys

Nurodyta seka: a1 = 1; a2 = -2; an = an-1 + an-2 , kai n > 2.

​

Parašykite programą n-tajam sekos nariui apskaičiuoti.

​

Pasitikrinkite. Jei n = 4, tai atsakymas yra -3, o jei n = 10, tai atsakymas yra -47

4 užduotis: pataisykite, kad duomenys būtų iš failo.

26 of 50

3 pavyzdys

27 of 50

4 pavyzdys

​

5 užduotis - sek nurodymus ir sukurk programą

28 of 50

29 of 50

30 of 50

31 of 50

32 of 50

duomenų failai gali būti aprašyti kaip konstantos

33 of 50

34 of 50

35 of 50

36 of 50

37 of 50

38 of 50

Pasitikrink žinias

39 of 50

40 of 50

41 of 50

42 of 50

#include <iostream>

using namespace std;

​

// Funkcijos prototipas

int f(int x);

​

int main()

{

int a = 5;

f(a);

cout << a;

return 0;

}

​

// Funkcijos realizacija

int f(int x)

{

x = x + 1;

return x;

}

Duota C++ programa

​

Ką išves programa? Paaiškinkite atsakymą.

Programa išves: 5

Paaiškinimas:

Funkcija f grąžina reikšmę x + 1, tačiau ši reikšmė nėra panaudojama, nes funkcijos iškvietimas f(a); nepriskiria grąžintos reikšmės jokiam kintamajam.

Be to, funkcijos parametras x perduodamas pagal reikšmę, todėl funkcijoje atliekami pakeitimai nekeičia kintamojo a reikšmės main funkcijoje.

43 of 50

#include <iostream>

using namespace std;

​

// Funkcijos prototipas

int f(int x);

​

int main()

{

int a = 5;

f(a);

cout << a;

return 0;

}

​

// Funkcijos realizacija

int f(int x)

{

x = x + 1;

return x;

}

Duota C++ programa išves: 5

Kaip būtų teisinga pakeisti, kad išvestų 6?

​

Panaudoti grąžinamą reikšmę

a = f(a);

​

44 of 50

Duota C++ programa

​

Ką išves programa? Paaiškinkite atsakymą.

45 of 50

Užduotys

46 of 50

47 of 50

Papildomos sunkesnės užduotys

48 of 50

49 of 50

50 of 50