Transcript Funkcijos

Funkcijos
Funkcijos samprata
• Funkcijos – tai programos konstrukcijos, kurios
savarankiškai atlieka veiksmus.
• Programoje į tą pačią funkciją galima kreiptis
daug kartų.
• Funkcija padeda struktūrizuoti programas.
• Programas su funkcijomis lengviau skaityti,
analizuoti, rasti klaidas.
Funkcijos aprašymas (1)
Prototipas
(išankstinis aprašas)
Realizavimo aprašymas
Funkcijos prototipas nurodo naudotojui:
• kuria tvarka duomenys perduodami funkcijai;
• kaip gaunamas rezultatas
Funkcijos prototipas rašomas prieš funkciją main() ir
baigiamas kabliataškius
Funkcijos aprašymas (2)
Funkcijos prototipo struktūra:
RezultatoTipas funkcijosVardas (formalieji parametrai);
Funkcijos prototipo pavyzdys:
int Suma (int a, int b);
Funkcijos aprašymas (3)
Funkcijos realizavimo aprašas rašomas už main() funkcijos;
Jeigu funkcijos realizavimo aprašas pateikiamas prieš
main(), tuomet nereikia rašyti funkcijos prototipo.
Funkcijos aprašas atrodo taip:
RezultatoTipas funkcijosVardas (formalieji parametrai)
{
funkcijosKamienas
}
Funkcijos aprašymas (4)
1
2
3
RezultatoTipas funkcijosVardas (formalieji parametrai)
{
funkcijosKamienas
}
1  Grąžinamos reikšmės tipas.
Jei funkcija negrąžina jokios reikšmės, vietoj rezultatoTipas
rašomas bazinis žodis void.
void funkcijosVardas (formalieji parametrai)
Funkcijos aprašymas (5)
1
2
3
RezultatoTipas funkcijosVardas (formalieji parametrai)
{
funkcijosKamienas
}
2  funkcijosVardas.
Funkcijos Vardas parenkamas pagal tas pačias taisykles, kaip ir
kintamųjų vardai (prasmingas)
Funkcijos aprašymas (6)
1
2
3
RezultatoTipas funkcijosVardas (formalieji parametrai)
{
funkcijosKamienas
}
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 ()
Funkcijos aprašymas (7)
1
2
3
RezultatoTipas funkcijosVardas (formalieji parametrai)
{
funkcijosKamienas
}
• 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.
Kreipinys į funkciją (1)
• Į funkciją kreipiamasi jos vardu, už skliaustų pateikiami faktiniai
parametrai (pradiniai duomenys).
• Jei funkcija grąžina reikšmę, į ją kreipiamasi, pvz.:
Y = funkcijosVardas (faktiniaiParametrai) * c;
• Jei funkcija negrąžina reikšmė, į ją kreipiamasi, pvz.:
funkcijosVardas (faktiniaiParametrai);
Kreipinys į funkciją (2)
// Stačiakampio plotas
...
using namespace std;
//----------------------------------------------int Plotas (int a, int b);
//----------------------------------------------int main ();
{
int x = 5, y = 4, s;
s = Plotas (x, y);
cout << “ Plotas “ << s << endl;
return 0;
}
//---------------------------------------------int Plotas (int a, int b);
// skaičiuoja stačiakampio plotą, kurio kraštinės a ir b
{
return a*b;
}
Kreipinys į funkciją (3)
Jei funkcija turi grąžinti keletą reikšmių, tuomet naudojami
parametrai-nuorodos. Prieš juos funkcijos antraštėje rašomas
ženklas &:
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ų.
Kreipinys į funkciją (4)
// Dviejų kintamųjų reikšmių sukeitimas
...
using namespace std;
//----------------------------------------------int Sukeisti (int & pirmas, int & antras);
//----------------------------------------------int main ();
{
int x = 11, y = 25;
Sukeisti (x, y);
cout << “ x = “ << x << “ y = “ << y << endl;
return 0;
}
//---------------------------------------------int Sukeisti (int & pirmas, int & antras);
{
int papild = pirmas; pirmas = antras; antras = papil;
}
Įvykdę programą ekrane matysite:
x = 25 y = 11
Užduotis
Parašyti programą, kuri rastų bendrą grandinės varžą, kai
grandinę sudaro viena ar daugiau sujungtų grandinės dalių.
Kiekviena grandinės dalis sudaryta iš dviejų ar daugiau
lygiagrečiai sujungtų laidininkų skaičiaus. N – nuosekliai sujungtų
grandinės dalių skaičius, k – lygiagrečiai sujungtų grandinės dalių
skaičius ir varžų reikšmės rj
Pradiniai duomenys surašyti
duomenų faile.
Varžų skaičiavimui naudokite
funkcijas.