Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

funkcja w programie obliczajaca srednia arytmetyczna i geometryczna.

Ostatnio zmodyfikowano 2013-11-11 12:34
Autor Wiadomość
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

C/C++
#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; }
P-95975
docentpp
» 2013-11-11 01:11:24
Przeredaguj swój kod :

C/C++
int sr_ar( int ile ) // error
{
    int liczba, wynik = 0; // error
    for( int i = 0; i < ile; i++ )
    {
        cout << "podaj liczbe: ";
        cin >> liczba;
        wynik = wynik + liczba;
    }
    wynik = wynik / ile;
    return wynik;
}

np. na :


C/C++
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;
   
}


P-95977
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  ?
P-95978
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ć. :-)
P-95979
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

C/C++
#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; }
P-96013
« 1 »
  Strona 1 z 1