Witam. Zrezygnowałem z nauki javy na rzecz c++. Łatwiej mi wchodzi kod z c++ niż z javy. Ale mam pytanie jak zapisać funkcję jako argument w drugiej funkcji?
Próbuje zrobić równanie kwadratowe z deltą. Jeżeli delta jest mniejsza od 0 to program wykorzysta jedną funkcję, jeśli równa 0, to wyliczy 2 funkcję, a jeżeli większa od 0 to 3 funkcję. W 3 funkcji, będę próbował wykorzystać kody z http://forum.dobreprogramy.pl/funkcja-zwracajaca-dwie-zmienne-t426359.html do stworzenia dwóch zmiennych zwrotnych, i wywołania. Ale wracając do tematu. Jak umieścić jedną funkcję jako argument w drugiej funkcji?
Problem jest z funkcją delta2
#include<iostream>
#include<conio.h>
#include<math.h>
#include<cstdio>
#include<cstdlib>
#include<windows.h>
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
#include<cmath>
using namespace std;
int delta( int liczbaa, int liczbab, int liczbac)
{
int wynik;
wynik=(pow(liczbab, 2))-(4*liczbaa*liczbac);
return wynik;
}
void deltawypisz(){
cout<<"brak rozwiazan";
}
int delta0(int liczbaa, int liczbab){
int wynik;
wynik=-liczbab/(2*liczbaa);
return wynik;
}
void delta2(int liczbaa, int liczbab, int liczbac, int wynik1, int wynik2, int *delta){
wynik1=(-liczbab+sqrt( delta( liczbaa, liczbab, liczbac))/2*liczbaa);
wynik2=(-liczbab-sqrt( delta( liczbaa, liczbab, liczbac))/2*liczbaa);
}
int main()
{
int a, b, c;
cout<<"Podaj liczby a, b i c:"<<endl;
cin>>a>>b>>c;
int wynik1=0, wynik2=0;
int wynik=delta(a, b, c);
cout<<"delta wynosi "<<wynik;
if (delta<0){
cout<<deltawypisz();
}
else if(delta=0){
cout<<delta0(a, b);
}
else{
cout<<delta2(a, b, c, wynik1, wynik2, delta(a, b, c));
}
system("pause");
return 0;
}