Podzielenie kodu kalkulatora na funkcje

0

Witam!

Swoją przygodę z programowaniem zaczęłam z książką Alexa Allain "Przewodnik dla początkujących C++" i jestem obecnie na rozdziale 6 "Funkcje".
Na końcu każdego rozdziału są zadania praktyczne do wykonania i zatrzymałam się na drugim zadaniu a mianowicie:

Zmień program kalkulatora w taki sposób, aby każdy z rodzajów operacji był przeprowadzany w osobnej funkcji.

Proszę o rozwiązanie tego zadania. Poniżej prosty kod kalkulatora, który mam podzielić na funkcję. Z góry dziękuje za pomoc.

#include <iostream>

using namespace std;

int main()

{
    int pierwszy_argument;
    int drugi_argument;
    cout << "Podaj pierwszy argument: ";
    cin >> pierwszy_argument;
    cout << "Podaj drugi argument: ";
    cin >> drugi_argument;
    cout << pierwszy_argument << " * " << drugi_argument << " = " << pierwszy_argument * drugi_argument << endl;
    cout << pierwszy_argument << " + " << drugi_argument << " = " << pierwszy_argument + drugi_argument << endl;
    cout << pierwszy_argument << " / " << drugi_argument << " = " << pierwszy_argument / drugi_argument << endl;
    cout << pierwszy_argument << " - " << drugi_argument << " = " << pierwszy_argument - drugi_argument << endl;
}
3

Czego dokładnie nie umiesz?
Forum służy do pomocy, a nie rozwiązywania zadań za kogoś.

Nie wiesz, co to są funkcje?

0

Dokładnie tak jak napisał @Patryk27. Jak chcesz się nauczyć programowania pisząc:

Proszę o **rozwiązanie **tego zadania(...)

?

0

Dziękuje za pomoc. Wszyscy jesteście bardzo życzliwi i pomocni w szczególności dla początkującego.
Zadanie mam rozwiązane tylko chciałam sprawdzić czy dobrze je wykonałam.
A tu od razu zarzuty, że mi się nie chce itd.
Te same pytanie zadałam na zagranicznym forum tam ludzie bardziej są pomocni.

3

To dlaczego nie wrzuciłeś swojego kodu i nie zapytałeś "hej, mam takie zadanie, rozwiązałem je tak i tak, dobrze zrobiłem? wy jak byście zrobili?". Na pewno chętniej byśmy pomogli niż widząc "rozwiążcie mi zadanie".

0

@alexprogram Bardzo proszę. Widzisz najprościej rzecz ujmując programowanie to logika, po prostu. Jeśli ktoś pisze że się uczy a następnie prosi o podanie rozwiązania to jest to nielogiczne. Jako Twój pierwszy duży krok w nauce programowania proponuję żebyś nauczyła się różnicy między prośbą o pomoc a podaniem gotowego rozwiązania.

Aha i nie odwracaj kota ogonem teraz że niby miałaś rozwiązane zadanie. To co napisałaś w pierwszym poście w ogóle na to nie wskazywało. Raz jeszcze powtarzam- logika, droga Pani, logika.

0

rozwiązanie mojego zadania, dobrze zrobiłam?

#include <iostream>

using namespace std;

int pierwszy_argument, drugi_argument;

void iloczyn (int pierwszy_argument, int drugi_argument)
{
    cout << pierwszy_argument << " * " << drugi_argument << " = " << pierwszy_argument * drugi_argument << endl;
}

void suma (int pierwszy_argument, int drugi_argument)
{
    cout << pierwszy_argument << " + " << drugi_argument << " = " << pierwszy_argument + drugi_argument << endl;
}

void dzielenie (int pierwszy_argument, int drugi_argument)
{
    cout << pierwszy_argument << " / " << drugi_argument << " = " << pierwszy_argument / drugi_argument << endl;
}

void odjac (int pierwszy_argument, int drugi_argument)
{
    cout << pierwszy_argument << " - " << drugi_argument << " = " << pierwszy_argument - drugi_argument << endl;
}

int main ()
{
    cout << "Podaj pierwszy argument: ";
    cin >> pierwszy_argument;
    cout << "Podaj drugi argument: ";
    cin >> drugi_argument;


    iloczyn(pierwszy_argument, drugi_argument);
    suma(pierwszy_argument, drugi_argument);
    dzielenie(pierwszy_argument, drugi_argument);
    odjac(pierwszy_argument, drugi_argument);
}
4

Dobrze. Ale oczywiście można mieć kilka uwag ;-)

Zmienne pierwszy_argument oraz drugi_argument możesz zadeklarować wewnątrz funkcji main() - obecnie są to zmienne globalne. Zasadniczo zmiennych globalnych się nie używa, bo zaprzeczają tutaj podejściu, że każda funkcja jest niezależna. W twoim programie to nie będzie miało znaczenia.

Możesz też rozdzielić wyświetlanie wyniku od samej operacji matematycznej. Obecnie każda twoja funkcja jest typu void i tylko wynik wyświetla. Możesz na przykład stworzyć funkcje:

int dodawanie(int pierwszy, int drugi)
{
    return pierwszy + drugi;
}

int odejmowanie(int pierwszy, int drugi)
{
    return pierwszy - drugi;
}

(i tak dalej)

Oraz stworzyć funkcję wyświetlającą, na przykład:

void wyswietl(int pierwszy, int drugi, char operacja, int wynik)
{
    cout << pierwszy << " " << operacja << " " << drugi << " = " << wynik << endl;
}

Co pozwala ci jej użyć w taki sposób:

int wynik = dodawanie(liczba1, liczba2);
wyswietl(liczba1, liczba2, '+', wynik);

Po co? Bo potem możesz bezproblemowo robić sobie łańcuszki funkcji operacji matematycznych (wynik = dodawanie(odejmowanie(mnozenie(2, 3), 4), 5)), a do tego, jak ci się kiedy odwidzi, że wynik powinien być wyświetlany nie w formie "1+2=3", tylko "1 plus 2 równa się 3" to zmienisz to w jednym miejscu, a nie w czterech.

1 użytkowników online, w tym zalogowanych: 0, gości: 1