/****************************************
*
* C/C++ vaja X_2
*
* utrjevanje /2
*/
1.Naloga
Dane so naslednje deklaracije :
a) int g1();
b) int g1(int);
c) int g1(char);
d) int g1(int,int);
e) int g1(char,int);
p1) Katera od funkcij se bo izvedla, če uporabimo klic : int fff=g1('A');
p2) Napišite klice za vsako izmed možnosti od a) do e), ki bi tudi v primeru sočasne deklaracije
vseh omenjenih funkcij vedno klicala ustrezno !
p3) Katera so dejstva, ki enolično ločijo C oz. C++ funkcijo izmed množice podobnih ?
2.Naloga
a) Napišite podprogram, ki bo izračunal in vrnil vsoto dveh podanih parametrov. Podprogram je podan s
prototipom :
long vsota(int,int) ;
b) Dopišite še podprograme, ki bodo omogočali izračun produkta, razlike, celoštevilčnega kvocienta
dveh parametrov.
3.Naloga
Napišite C-jevski podprogram, ki bo izmed petih podanih parametrov izločil in vrnil srednjega po vrednosti.
4.Naloga
Dan je program:
// poveca vrednosti parametrov za 'koliko'
void povecajVrednostiParametrov(int p1, int p2, int p3, int p4, int p5, int koliko){
p1+=koliko; p2+=koliko; p3+=koliko;p4+=koliko;p5+=koliko;
}
int main(){
int a=1,b=2,c=3,d=4,e=5;
povecajVrednostiParametrov(a,b,c,d,e,5);
cout << a << b << c << d <<e;
return 0;
}
Ugotovite, zakaj program ne deluje kot bi želeli !
5.Naloga
Popraviti smo zeleli program iz naloge 4, pa nam ni najbolj uspelo. Razložite, kje se pojavi napaka
in kaj bi bilo potrebno popraviti, da bi program deloval pravilno.
// poveca vrednosti parametrov za 'koliko'
void povecajVrednostiParametrov(int *p1, int *p2, int *p3, int *p4, int *p5, int koliko){
p1+=koliko; p2+=koliko; p3+=koliko;p4+=koliko;p5+=koliko;
}
int main(){
povecajVrednostiParametrov(1,2,3,4,0,5);
return 0;
}
6.Naloga
Kaj je narobe z naslednjo modifikacijo programa iz 4, naloge ?
// poveca vrednosti parametrov za 'koliko'
void povecajVrednostiParametrov(int *p1, int *p2, int *p3, int *p4, int *p5, int koliko){
*p1+=koliko; *p2+=koliko; *p3+=koliko;*p4+=koliko;*p5+=koliko;
}
int main(){
int a=1,b=2,c=3,d=4,e=5;
povecajVrednostiParametrov(a,b,c,d,e,5);
cout << a << b << c << d <<e;
return 0;
}
7.Naloga
Kako bi bilo potrebno modificirati program, da bi namesto naslovov sprememnljivk (kazalčnih) uporabili
reference.
8.Naloga
Napišite sled izvajanja naslednjega programa :
int nekaj(int,int);
int nekaj1(int a, int *b){
a++;
*b+=3*a;
int c=nekaj(a,b);
return c;
}
int nekaj(int b, int a){
a++;
b+=3*a;
return b;
}
void main(){
int a=3,b=1,c=2;
cout << a << b << c;
a= nekaj1(b,c);
c=nekaj(a,b);
cout << a << b << c;
}