Kolokwium GR INF 7 FUNKCJE A 1) Napisz funkcję SumaCyfrW

Transkrypt

Kolokwium GR INF 7 FUNKCJE A 1) Napisz funkcję SumaCyfrW
Kolokwium GR INF 7 FUNKCJE A
1) Napisz funkcję SumaCyfrW, która na podstawie parametru: n- liczba całkowita oraz c – liczba całkowita bez
znaku, zwraca w wyniku sumę tych cyfr w zapisie dziesiętnym liczby n, które są większe od c.
Następnie w funkcji main korzystając z funkcji SumaCyfrW oblicz dla podanej przez użytkownika liczby sumy jej
cyfr większych od 0, 1, 2, 3, ...8.
int SumaCyfrW(int n, unsigned int c)
{
n=abs(n); // wartość bezwzględna, aby f-cja dziala dla n<0
int sc=0; //zmienna na sume cyfr
//bierzemy ostatnia cyfre liczby n
//sprawdzamy czy jest większa od c, jesli tak to ja doliczamy do sumy sc
//liczbe dzielimy przez 10, (aby pozbyc się ostatniej cyfry)
//dopóki jest >0
do
{
if(n%10 > c)
sc += n%10;//sc = sc+ n%10
n/=10; //n= n/10;
}while (n>0);
return sc; //f-cja zwraca sume cyfr sc
}
//-----------------------------------------------------------int main()
{
int n;
cout<<”podaj liczbe”;
cin<<n;
for (int i=0; i<=8; i++)
cout<<”suma cyfr liczby ”<<n<<” wiekszych od ”<<
<<i<<” wynosi ”<<
}
SumaCyfrW(n,i)<<endl;
2) Napisz funkcję ZmienDodatnie, która w n elementowej tablicy liczb całkowitych od wartości dodatnich
odejmuje ostatnią cyfrę tej wartości. Wynikiem funkcji jest liczba zmienionych elementów tablicy.
int ZmienDodatnie(int n, int tab[])
{
int ilezmian=0; //licznik zmian
//przechodzimy po tablicy
for(int i=0; i<n; i++)
{
//jesli i element tablicy tab[i] >0, to go zmniejszamy i zwiekszamy licznik
if (tab[i]>0)
{
tab[i] -= tab[i]%10; // tab[i] = tab[i]- tab[i]%10;
ilezmian++;
}
return ilezmian;
}
3) Napisać funkcję logiczną, która zwraca w wyniku informację, czy dla zadanego parametrem x udało się policzyć
wartość funkcji f(x) = x/(x-2). Wartość funkcji ma być zwrócona jako y - drugi parametr tej funkcji.
bool f(double x, double & y)
{
if(x!=2} //mozna policzyc wartosc funkcji, dlatego param y przez &
{
y = x/(x-2);
return true;
}
else //zero w mianowniku, nie da sie policzyc wart f-cji
return false;
}
Kolokwium GR INF 7 FUNKCJE B
1) Napisz funkcję SumaCyfrMn, która na podstawie parametrów: n- liczba całkowita oraz c – liczba całkowita bez
znaku, zwraca w wyniku sumę tych cyfr w zapisie dziesiętnym liczby n, które są mniejsze od c.
Następnie w funkcji main korzystając z funkcji SumaCyfrMn oblicz dla podanej przez użytkownika liczby sumy jej
cyfr mniejszych od 1, 2, 3, ...9.
int SumaCyfrMn(int n, unsigned int c)
{
n=abs(n); // wartość bezwzględna, aby f-cja dziala dla n<0
int sc=0; //zmienna na sume cyfr
//bierzemy ostatnia cyfre liczby n
//sprawdzamy czy jest mniejsza od c, jesli tak to ja doliczamy do sumy sc
//liczbe dzielimy przez 10, (aby pozbyc się ostatniej cyfry)
//dopóki jest >0
do
{
if(n%10 < c)
sc += n%10;//sc = sc+ n%10
n/=10; //n= n/10;
}while (n>0);
return sc; //f-cja zwraca sume cyfr sc
}
//-----------------------------------------------------------int main()
{
int n;
cout<<”podaj liczbe”;
cin<<n;
for (int i=1; i<=9; i++)
cout<<”suma cyfr liczby ”<<n<<” mniejszych od ”<<
<<i<<” wynosi ”<<
}
SumaCyfrMn(n,i)<<endl;
2) Napisz funkcję ZmienUjemne, która w n elementowej tablicy liczb całkowitych do wartości ujemnych dodaje
ostatnią cyfrę tej wartości. Wynikiem funkcji jest liczba zmienionych elementów.
int ZmienUjemne(int n, int tab[])
{
int ilezmian=0; //licznik zmian
//przechodzimy po tablicy
for(int i=0; i<n; i++)
{
//jesli i element tablicy tab[i] <0, to go powiększamy i zwiekszamy licznik
if (tab[i]<0)
{
tab[i] += tab[i]%10; // tab[i] = tab[i]+ tab[i]%10;
ilezmian++;
}
return ilezmian;
}
3) Napisać funkcję logiczną, która zwraca w wyniku informację, czy dla zadanego parametrem x udało się policzyć
wartość funkcji f(x) = 1/(x-3). Wartość funkcji ma być zwrócona jako y - drugi parametr tej funkcji.
bool f(double x, double & y)
{
if(x!=3} //mozna policzyc wartosc funkcji
{
y = 1/(x-3); //obliczamy wartosc f-cji, dlatego param y przez &
return true;
}
else //zero w mianowniku, nie da sie policzyc wart f-cji
return false;
}