Witam. Robię zadanie z książki Szkoła programowania i mam zaprojektować funkcję calculate() pobierającą 2 wartości double i wskaźnik funkcji mającej 2 parametry double zwracająca typ double. Sama funkcja calculate tez ma zwracać typ double, dla chętnych dodatkowe utrudnienie, którego się podjąłem jest użycie tablicy wskaźników na funkcję. Niestety nie udało mi się to i nie mam pojęcia jak to zrobić, żeby działało.
#include <iostream>
using namespace std;
double calculate(double x, double y,double (*pf)(double, double));
double * add(double x,double y);
double * sub(double x, double y);
double * product(double x, double y);
double * quotient(double x, double y);
int main()
{
double *(*p1)(double x,double y)=add;
double *(*p2)(double x, double y)=sub;
double *(*p3) (double x, double y)= product;
double *(*p4) (double x, double y)=quotient;
double *(*pa[4])(double x, double y)= {add,sub,product,quotient};
cout<<"podaj 2 liczby"<<endl;
cout<<"A nastepnie wybierz dzialanie:"<<endl;
cout<<"1.Dodawanie"<<endl;
cout<<"2.Odejmowanie"<<endl;
cout<<"3.Mnozenie"<<endl;
cout<<"4.Dzielenie"<<endl;
for(;;)
{
int x,y,choice;
cin>>x>>y>>choice;
double *pa;
switch(choice)
{
case 1 :
pa=add(x,y);
break;
case 2:
pa=sub(x,y);
break;
case 3:
pa=product(x,y);
break;
case 4:
pa=quotient(x,y);
break;
default :
cout<<"nie ma takiej opcji"<<endl;
}
cout<<calculate(x,y,pa);
}
return 0;
}
double calculate(double x, double y,double (*pf)(double, double))
{
double score=pf(x,y);
return score;
}
double * add(double x,double y)
{
double sum=x+y;
double *pt=∑
return pt;
}
double * sub(double x, double y)
{
double sum=x-y;
double *pt=∑
return pt;
}
double * product(double x, double y)
{
double sum=x*y;
double *pt=∑
return pt;
}
double * quotient(double x, double y)
{
double sum=x/y;
double *pt=∑
return pt;
}