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

Nie radzę sobie z funkcjami.

Ostatnio zmodyfikowano 2012-01-22 17:37
Autor Wiadomość
daniel.d
Temat założony przez niniejszego użytkownika
Nie radzę sobie z funkcjami.
» 2012-01-20 22:41:47
Chciałbym napisać prosty kalkulator, który będzie zawierał w sobie działania takie jak dzielenie, mnożenie itd. Chcę wywołać funkcje w switch...case czyli, że użytkownik wpisuje numer działania po czym program uruchamia np. funkcję dzielenie (jeśli takową wybrał user). Na razie mam taki kawałek kodu, ale to nie działa:
C/C++
#include <iostream>

using namespace std;

int dzielenie( int ile );
{
    cout << "Podaj a: " << endl;
    cin >> a;
    cout << "Podaj b: " << endl;
    cin >> b;
    cout << "Wynik to: " << a / b << endl;
}

int main()
{
    int wybor;
    cout << "Wybierz dzialanie: ";
    cin >> wybor;
    cout << "[1] Dzielenie";
   
    switch( wybor )
    {
    case 1:
        int dzielenie()
        break;
    }
}
Z góry dzięki za odpowiedzi i chcę podkreślić, że w C++ jestem początkujący i dopiero się uczę.
P-48985
Savail
» 2012-01-20 22:45:02
przed wywolaniem funkcji dzielenie nie nalezy wstawiac jej typu tylko po prostu
dzielenie();
, aha i stworzyles funkcje dzielenie, ktora ma zwracac wartosc typu int ale twoja funkcja nic nie zwraca. Zmien typ funkcji z int na void
P-48987
CodeMeister
» 2012-01-20 22:55:04
Poza tym funkcja przyjmuje argument int a gdy ja wywolujesz nic nie podajesz
P-48989
daniel.d
Temat założony przez niniejszego użytkownika
» 2012-01-21 00:07:29


#include <iostream>

using namespace std;

void dzielenie();
{
    cout << "Podaj a: " << endl;
    cin >> a;
    cout << "Podaj b: " << endl;
    cin >> b;
    cout << "Wynik to: " << a/b << endl;
}

int main()
{
    int wybor;
    cout << "Wybierz dzialanie: ";
    cin >> wybor;
    cout<< "[1] Dzielenie";

    switch(wybor)
    {
        case 1:
        void dzielenie()
        break;
    }
}

Zmieniłem na to i wywaliło takie błędy:

Line: 6 error: expected unqualified-id before '{' token
In function 'int main()':
Line: 25 error: expected initializer before 'break'
P-48996
jsc
» 2012-01-21 00:24:51
W 6 linijce skasuj ; i zamiast i w linijce 25 void dzielenie() zrób dzielenie ();
P-48997
MJJay
» 2012-01-21 00:26:22
Pisane na szybko, nie sprawdzałem poprawności:

C/C++
#include <iostream>
using namespace std;

void mnozenie(); // deklaracja funkcji

int main()
{
    int dzialanie;
    cout << "Wybierz dzialanie [1]: ";
    cin >> dzialanie;
   
    switch( dzialanie )
    {
    case 1:
        mnozenie(); //wywolujemy funkcje kompilator w czasie wywolania
        //musi miec deklaracje
        break;
       
        default:
        cout << "zla wartosc!" << endl;
    }
}
//definicja tutaj celem zwiekrzenia czytelnosci programu powinno byc w osobnym pliku
void mnozenie()
{
    cout << "Podaj liczbe a: ";
    int a;
    cin >> a;
    cout << "Podaj liczbe b: ";
    int b;
    cin >> b;
    cout << "Iloczyn to: " << a * b << endl;
}
P-48998
jsc
» 2012-01-21 00:29:47
Powinno działać, jeśli tak jest to po prostu zamknij temat.
P-48999
daniel.d
Temat założony przez niniejszego użytkownika
» 2012-01-21 12:44:26
Działa, ale mam jeszcze jedną sprawę. Napisałem oto kod ze średnią:


#include <iostream>
using namespace std;

void mnozenie(); // deklaracja funkcji
void srednia();

int main()
{
    int dzialanie;
    cout << "Wybierz dzialanie [2]: ";
    cin >> dzialanie;

    switch( dzialanie )
    {
    case 1:
        mnozenie(); //wywolujemy funkcje kompilator w czasie wywolania
        //musi miec deklaracje
        break;

    case 2:
        srednia();
        break;

        default:
        cout << "zla wartosc!" << endl;
    }
}
//definicja tutaj celem zwiekrzenia czytelnosci programu powinno byc w osobnym pliku
void mnozenie()
{
    cout << "Podaj liczbe a: ";
    int a;
    cin >> a;
    cout << "Podaj liczbe b: ";
    int b;
    cin >> b;
    cout << "Iloczyn to: " << a * b << endl;
}

void dzielenie()
{
    cout << "Podaj liczbe a: ";
    int a;
    cin >> a;
    cout << "Podaj liczbe b: ";
    int b;
    cin >> b;
    cout << "Iloraz to: " << a / b << endl;
}

void dodawanie()
{
    cout << "Podaj liczbe a: ";
    int a;
    cin >> a;
    cout << "Podaj liczbe b: ";
    int b;
    cin >> b;
    cout << "Suma to: " << a + b << endl;
}

void odejmowanie()
{
    cout << "Podaj liczbe a: ";
    int a;
    cin >> a;
    cout << "Podaj liczbe b: ";
    int b;
    cin >> b;
    cout << "Iloraz to: " << a - b << endl;
}

void srednia()
{
    cout << "Podaj ilosc liczb: ";
    int ilosc;
    cin >> ilosc;
    int tablica[ilosc];
    int licznik = 0;
    do
    {
        cout << "Podaj liczbe: ";
        std::cin >> tablica[ilosc];
        licznik++;
    } while (licznik < ilosc);
    cout <<"Wynik dzielenia to: " <<
}

Ale w tym miejscu nie wiem co dalej. Chcę aby program wczytywał te liczby z tablicy, dodał je wszystkie a potem podzielił przez ich ilość (chyba każdy wie jak się liczy średnią) no i nie wiem jak to zrobić.

Btw: Jak przenieść funkcję do osobnego pliku i użyć go w głównym programie?
P-49021
« 1 » 2
  Strona 1 z 2 Następna strona