1 of 26

Funkcija ir jos prototipas

2 of 26

3 of 26

Grąžinamos kelios reikšmės

void su parametrais

4 of 26

Funkcijos prototipas nurodo naudotojui:

• kuria tvarka duomenys perduodami funkcijai;

• kaip gaunamas rezultatas

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

5 of 26

Kreipinys į funkciją (2)

Jei funkcija turi grąžinti keletą reikšmių, tuomet naudojami parametrai-nuorodos.

Prieš juos funkcijos antraštėje rašomas ženklas & (ampersandas):

RezultatoTipas funkcijosVardas (tipas & vardas1, tipas & vardas2);

Tokia funkcija dirba ne su pačiais parametrais, o su jų kopijomis.

• Tai patogu, kai funkcijai nereikia keisti parametrų reikšmių.

6 of 26

Norint iš funkcijos grąžinti daugiau nei vieną reikšmę reikia naudoti nuorodas (&) kaip parametrus

Funkcija gali modifikuoti kelis kintamuosius, perduotus per nuorodą. Tokiu būdu ji „grąžina“ daugiau nei vieną reikšmę.

1 pavyzdys

7 of 26

2 pavyzdys

8 of 26

2 pavyzdys (2)

9 of 26

3 pavyzdys

10 of 26

4 pavyzdys

11 of 26

Režimas

Ką daro

ofstream fr("rezult.txt", ios::trunc);

fr.close();

Išvalo failą

ofstream fr("rezult.txt",ios::app);

Papildo failą

ofstream fr("rezult.txt");

Rašymas (be papildymo)

5 pavyzdys

12 of 26

13 of 26

Mokykloje keičiama grindų danga. Parengti programą kuri apskaičiuotų kiek pinigų reikia skirti. Kiekvienam kabinetui dangos reikia pirkti 3 % daugiau galimiems nuostoliams padengti.

Apskaičiuotą sumą įrašykite į rezultatų failą. Duomenų failo pirmoje eilutėje nurodytas kabinetų skaičius. Kitose eilutėse po tris realiuosius skaičius: kabineto ilgis, plotis ir vieno kvadratinio metro dangos kaina.

4 pavyzdys

14 of 26

15 of 26

fd kreipinyje, kad funkcija galėtų skaityti iš failo

if sakiniai čia papildomi, patikrina ar korektiškai dirbama su failais

return 0; → viskas gerai

return 1; →reiškia klaidą, pvz. „nepavyko atidaryti failo“

cout galime keisti į cerr

16 of 26

funkcija neatidaro failo pati — ji gauna jau atidarytą failo srautą per nuorodą

ifstream nekopijuojamas, todėl perduoti pagal reikšmę (be &) neįmanoma.

Nuoroda leidžia tęsti skaitymą nuo ten, kur sustota.

17 of 26

UŽDUOTYS

18 of 26

19 of 26

20 of 26

21 of 26

22 of 26

23 of 26

24 of 26

25 of 26

26 of 26

Pasitikrink žinias