http://4programmers.net/Forum/1214208
funkcja potega(liczba podstawa, liczba wykladnik) zwraca(liczbe)
liczba ile_razy = wykladnik;
liczba akumulator = podstawa;
dopoki ile_razy --> 1 rob
akumulator *= podstawa;
wystarczy;
zwroc akumulator;
wystarczy;
alias_funkcji(potega, potege);
program("N-ty kalkulatorek na forum") to
staly slownik<znakow i akcji> slownik_akcji zawiera
pare('+' i [](liczba a oraz
liczba b){ zwroc a + b; }),
pare('-' i [](liczba a oraz
liczba b){ zwroc a - b; }),
pare('^' i [](liczba a oraz
liczba b){ zwroc potege(a, b); })
wystarczy;
liczba a, b;
znak decyzja;
wypisz << "podaj [a] [znak] [b]: " << koniec_linii;
pobierz >> a >> decyzja >> b;
liczba wynik = wartosc_slownika(slownik_akcji, decyzja)(a, b);
wypisz << a << " " << decyzja << " " << b << " = " << wynik << koniec_linii;
wystarczy;
Jeśli chcesz, możesz do tego dorzucić menu: http://4programmers.net/Forum/C_i_C++/256774-menu_w_programie_konsolowym_tablica_string_czy_zmienna_z_ifami_co_lepsze?p=1170628#id1170628
http://4programmers.net/Forum/Newbie/174071-kalklulator_konsolowy_-_ocena_kodu_i_wskazowki?p=1088658#id1088658
#include <iostream>
#include <string>
#include <map>
#include <functional>
using namespace std;
double add(double a, double b){
return a+b;
}
double subtract(double a, double b){
return a-b;
}
double multiply(double a, double b){
return a*b;
}
double divide(double a, double b){
return a/b;
}
int main() {
map<string, function<double(double, double)>> functions = {
{"+", add},
{"-", subtract},
{"*", multiply},
{"/", divide}
};
string inFuncName;
double a, b;
while(cin>>a>>inFuncName>>b)
cout << a << inFuncName << b
<< " = " << functions[inFuncName](a, b) << endl;
return 0;
}
#include <iostream>
#include <string>
#include <map>
#include <functional>
using namespace std;
int main() {
map<string, function<double(double, double)>> functions = {
{"+", [](double a, double b){return a+b;}},
{"-", [](double a, double b){return a-b;}},
{"*", [](double a, double b){return a*b;}},
{"/", [](double a, double b){return a/b;}}
};
string inFuncName;
double a, b;
while(cin>>a>>inFuncName>>b)
cout << a << inFuncName << b
<< " = " << functions[inFuncName](a, b) << endl;
return 0;
}
Kalkulator w petli