Funkcija ir jos prototipas
Grąžinamos kelios reikšmės
void su parametrais
Funkcijos prototipas nurodo naudotojui:
• kuria tvarka duomenys perduodami funkcijai;
• kaip gaunamas rezultatas
Funkcijos prototipas rašomas prieš funkciją main() ir baigiamas kabliataškiu
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ų.
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
2 pavyzdys
2 pavyzdys (2)
3 pavyzdys
4 pavyzdys
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
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
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
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.
UŽDUOTYS
Pasitikrink žinias