• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ - Funkcja

Object Storage Arubacloud
0 głosów
2,151 wizyt
pytanie zadane 19 stycznia 2017 w C i C++ przez Kamil Początkujący (430 p.)
edycja 4 października 2017 przez criss
#include <iostream>
void moja_funkcja()
{
    cout << "[1] - dodawanie" << endl;
    cout << "[2] - odejmowanie" << endl;
    cout << "[0] - wyjscie z programu" << endl;
}

void dodawanie()
{
    int a, b;

    cout << "Podaj dwie liczby : " << endl;
    cin>>a;
    cin>>b;
    cout<<"Wynik :  "<<a+b<<endl;

}

void odejmowanie()
{

dodawanie();
a+b=a-b;

}



Chodzi mi o odejmowanie, da się jakoś to zapisać tak, abym nie musiał wszystkiego z dodawania() przepisywać do odejmowania()?

1 odpowiedź

0 głosów
odpowiedź 19 stycznia 2017 przez draghan VIP (106,230 p.)
wybrane 19 stycznia 2017 przez Kamil
 
Najlepsza
Napisać osobną funkcję do wczytywania danych, a funkcje dodawanie() oraz odejmowanie() niech pobierają dwa argumenty liczbowe i tylko zwracają wynik.

Wskazówka: kod wstawiamy z użyciem bloczku "code" przy edycji posta. ;)
komentarz 19 stycznia 2017 przez Kamil Początkujący (430 p.)
tzn, wpisać w oddzielną funkcje dajmy na to void dane() - wpisać w nią cin>>a i b?
A do dodawania i odejmwoania tylko wynik=a+b lub a-b?
komentarz 19 stycznia 2017 przez draghan VIP (106,230 p.)

Nie jestem pewien, jak dobrze znasz język - bo im mniej umiesz, tym możliwości się zawężają. Zakładam jednak, że jesteś początkujący - nie obraź się, jeśli tak nie jest. ;)

W jednym z prostszych przypadków:

int dodaj(int a, int b)
{
    return a + b;
}

int odejmij(int a, int b)
{
    return a - b;
}

int menu()
{
    cout << "[1] - dodawanie" << endl;
    cout << "[2] - odejmowanie" << endl;
    cout << "[0] - wyjscie z programu" << endl;
    int wybor;
    cin>>wybor;
    return wybor;
}

int podaj_liczbe()
{
    int a;
    cout << "Podaj liczbe: " << endl;
    cin>>a;
    return a;
}

int main()
{
    int wybor = menu();
    if(wybor == 0)
    {
        return 0; // koniec programu
    }
    else if(wybor < 3)
    {
        int a, b;
        a = podaj_liczbe();
        b = podaj_liczbe();

        switch(wybor)
        {
        case 1:
            cout<<"Wynik:  "<< dodaj(a, b) <<endl;
            break;
        case 2:
            cout<<"Wynik:  "<< odejmij(a, b) <<endl;

        }
    }
    else
    {
        cout<<"Bledna operacja "<<endl;
    }
}

Można to zrobić ładniej, problem jednak w tym, że w C++ nie można wprost zwrócić dwóch wartości naraz - stąd nie można napisać funkcji która pobierze i zwróci dwie liczby. Chyba, że znasz struktury, tablice lub referencje - ale wydaje mi się że jeszcze nie znasz. :)

Tak czy inaczej - zostawiam Tobie kawałek kodu do analizy. W razie wątpliwości pytaj.

Podobne pytania

0 głosów
1 odpowiedź 465 wizyt
pytanie zadane 3 listopada 2019 w C i C++ przez Julka_99 Użytkownik (540 p.)
0 głosów
1 odpowiedź 410 wizyt
pytanie zadane 4 czerwca 2019 w C i C++ przez Joe Nowicjusz (200 p.)
0 głosów
1 odpowiedź 564 wizyt
pytanie zadane 3 czerwca 2019 w C i C++ przez zaliczenie14 Użytkownik (620 p.)

92,555 zapytań

141,404 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...