funkcja w programie obliczajaca srednia arytmetyczna i geometryczna.
Ostatnio zmodyfikowano 2013-11-11 12:34
nikos Temat założony przez niniejszego użytkownika |
funkcja w programie obliczajaca srednia arytmetyczna i geometryczna. » 2013-11-11 00:22:09 Witam, napisałem program i stanąłem na średniej arytmetycznej i geometrycznej, z czego ta pierwsza prawie udało mi się zrobić, bo liczy srednia n liczb, lecz wykazuje wynik w int, bez wartosci po przecinku, jak zmienic deklaracje zmiennych aby działalo normalnie ? I drugie pytanie to jak zrobić w jednej funkcji liczenie obydwu średnich w zaleznosci od wyboru uzytkownka i wywołanie w main #include<iostream> #include<conio.h> #include <cstdlib>
using namespace std;
int Menu() { int wybor = 0; do { system( "CLS" ); cout << "Menu\n\n"; cout << "1. Silnia\n"; cout << "2. Suma n wartosci\n"; cout << "3. Potega m liczby n\n"; cout << "4. Srednia:\n\n"; cout << "5. Wyjscie:\n\n"; cout << "Dokonaj wyboru: "; cin >> wybor; } while( wybor < 1 || wybor > 5 ); return wybor; }
int Silnia( int n ) { int wynik = 1; if( n > 1 ) for( int i = 2; i <= n; i++ ) { wynik *= i; } else if( n == 1 ) { wynik = 1; } else { wynik =- 1; } return wynik; } int potega( int liczba, int potega ) { int wynik = liczba; for( int i = 1; i < potega; i++ ) wynik *= liczba; return wynik; }
int suma( int ilosc ) { int liczba, wynik = 0; for( int i = 0; i < ilosc; i++ ) { cout << "podaj liczbe: "; cin >> liczba; wynik = wynik + liczba; } return wynik; } int sr_ar( int ile ) { int liczba, wynik = 0; for( int i = 0; i < ile; i++ ) { cout << "podaj liczbe: "; cin >> liczba; wynik = wynik + liczba; } wynik = wynik / ile; return wynik; }
int main() { switch( Menu() ) { case 1: { cout << "Silnie jakiej liczby obliczasz: "; int l = 0; cin >> l; cout << "Silnia = " << Silnia( l ); break; } case 2: { int a; cout << "Podaj ilosc: "; cin >> a; cout << "suma: " << suma( a ); break; } case 3: { int liczba, pot; cout << "podaj liczbe: "; cin >> liczba; cout << "Podaj do ktorej potegi: "; cin >> pot; cout << "Liczba " << liczba << " do potegi " << pot << " wynosi: " << potega( liczba, pot ); break; } case 4: { int b; cout << "Podaj ilosc: "; cin >> b; cout << "srednia: " << sr_ar( b ); break; } case 5: { exit( 1 ); break; } } getch(); return 0; } |
|
docentpp |
» 2013-11-11 01:11:24 Przeredaguj swój kod : int sr_ar( int ile ) { int liczba, wynik = 0; for( int i = 0; i < ile; i++ ) { cout << "podaj liczbe: "; cin >> liczba; wynik = wynik + liczba; } wynik = wynik / ile; return wynik; }
np. na : double sr_ar( int ile ) { int liczba; double wynik = 0; for( int i = 1; i <= ile; i++ ) { cout << "podaj liczbe: "; cin >> liczba; wynik = wynik + liczba; } return wynik / ile; }
|
|
nikos Temat założony przez niniejszego użytkownika |
» 2013-11-11 01:19:50 dzięki, działa. A jak zrobić to z tą srednia geometryczna i wyborem rodzaju sredniej przez uzytkownika ? |
|
docentpp |
» 2013-11-11 01:52:03 A jak zrobić to z tą srednia geometryczna
|
?!?!?!?!?!?! Wstaw kod funkcji na średnią geometryczną, bo trudno powiedzieć cokolwiek o czymś ,czego nie widać. :-) |
|
nikos Temat założony przez niniejszego użytkownika |
» 2013-11-11 12:34:59 Już jest zrobione, średnia harmoniczna miała być. Teraz jest taki problemik bo nie wiem jak zrobić aby w menu po wyborze ze chce sie obliczyć srednia pojawilo sie takie menu 1: silnia wartości n 2: potęga n liczy x 3: suma n liczb całkowitych 4: Średnia n liczb: 1. Średnia arytmetyczna 2. Średnia harmoniczna 5: Wyjście #include<iostream> #include<conio.h> #include <cstdlib> #include<cmath>
using namespace std;
int Menu() { int wybor = 0; do { system( "CLS" ); cout << "Menu\n\n"; cout << "1. Silnia\n"; cout << "2. Suma n wartosci\n"; cout << "3. Potega m liczby n\n"; cout << "4. Srednia:\n\n"; cout << "5. Wyjscie\n"; cout << "Dokonaj wyboru: "; cin >> wybor; } while( wybor < 1 || wybor > 5 ); return wybor; }
int Silnia( int n ) { int wynik = 1; if( n > 1 ) for( int i = 2; i <= n; i++ ) { wynik *= i; } else if( n == 1 ) { wynik = 1; } else { wynik =- 1; } return wynik; } int potega( int liczba, int potega ) { int wynik = liczba; for( int i = 1; i < potega; i++ ) wynik *= liczba; return wynik; }
int suma( int ilosc ) { int liczba, wynik = 0; for( int i = 0; i < ilosc; i++ ) { cout << "podaj liczbe: "; cin >> liczba; wynik = wynik + liczba; } return wynik; } double sr_ar( void ) { int l; double wynik = 0, liczba; cout << "Z ilu liczb chcesz policzyc srednia arytmetycza: "; cin >> l; for( int i = 0; i < l; i++ ) { cout << "Podaj liczbe nr " << i + 1 << ": "; cin >> liczba; wynik = wynik + liczba; } cout << "Srednia z tych " << l << " liczb wynosi: "; wynik = wynik / l; return wynik; } double srednia_harmoniczna_n( void ) { int n; double wynik = 0, liczba, suma = 0; cout << "Z ilu liczb chcesz policzyc srednia harmoniczna: "; cin >> n; for( int i = 0; i < n; i++ ) { cout << "Podaj liczbe nr " << i + 1 << ": "; cin >> liczba; liczba = 1./ liczba; suma = suma + liczba; } cout << "Srednia z tych " << n << " liczb wynosi: "; wynik = n / suma; return wynik; }
int main() { switch( Menu() ) { case 1: { cout << "Silnie jakiej liczby obliczasz: "; int l = 0; cin >> l; cout << "Silnia = " << Silnia( l ); break; } case 2: { int a; cout << "Podaj ilosc: "; cin >> a; cout << "suma: " << suma( a ); break; } case 3: { int liczba, pot; cout << "podaj liczbe: "; cin >> liczba; cout << "Podaj do ktorej potegi: "; cin >> pot; cout << "Liczba " << liczba << " do potegi " << pot << " wynosi: " << potega( liczba, pot ); break; } case 4: { int x; cout << "1. Srednia arytmetyczna." << endl; cout << "2. Srednia harmoniczna. " << endl; cin >> x; int b; if( x == 1 ) { cout << sr_ar(); } if( x == 2 ) { cout << srednia_harmoniczna_n() << endl; } break; } case 5: { exit( 1 ); break; } } getch(); return 0; } |
|
« 1 » |