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; }