Równanie kwadratowe C++ (referencja, wskaźnik)

0

Witam.
Mam za zadanie napisać funkcję rozwiązującą równanie kwadratowe. Nie byłoby w tym nic trudnego ale...
Funkcja otrzymuje jako argumenty trzy współczynniki równania kwadratowego oraz referencje do zmiennych.
Czytalem dużo o referencjach ale kompletnie nie wiem jak napisać taka funkcję wykorzystującą referencje. Proszę o pomoc!

Interesuje mnie również taka sama funkcja ale zamiast referencji są wskaźniki.

1
Itar9 napisał(a)

Witam.
Mam za zadanie napisać funkcję rozwiązującą równanie kwadratowe. Nie byłoby w tym nic trudnego ale...
Funkcja otrzymuje jako argumenty trzy współczynniki równania kwadratowego oraz referencje do zmiennych.
Czytalem dużo o referencjach ale kompletnie nie wiem jak napisać taka funkcję wykorzystującą referencje. Proszę o pomoc!

Interesuje mnie również taka sama funkcja ale zamiast referencji są wskaźniki.

"...oraz referencje do zmiennych", tzn. do tych trzech współczynników? Możesz przesłać te 3 zmienne przez referencje albo w funkcji głównej (czy gdzie tam pobierasz te dane) stworzyć referencje do pobranych danych i je przesłać do funkcji.
czyli


int x;
cin>>x;
int &refX = x

i już masz utworzoną referencję do zmiennej x i możesz ją przesłać do funkcji liczącej równanie kwadratowe, albo po prostu przesłać x przez referencje

double RownanieKwadratowe(int &x //jakiskod) 

Interesuje mnie również taka sama funkcja ale zamiast referencji są wskaźniki.

w argumencie funkcji dajesz wskaźniki zamiast referencji.

0

Własnie nie wiem czy do współczynników, nie rozumiem troche polecenia tego zadania...

1

Do równania kwadratowego wchodzą dwie zmienne i trzy współczynniki
Funkcja powinna wyglądać tak:

void RównanieKwadratowe(double A, double B, double C, double& x, double& y)
{
     y = A * x * x + B * x + C;
}
0
MJay napisał(a)

Do równania kwadratowego wchodzą dwie zmienne i trzy współczynniki
Funkcja powinna wyglądać tak:

void RównanieKwadratowe(double A, double B, double C, double& x, double& y)
{
y = A * x * x + B * x + C;
}

Za y podstawiam 0? A co z x?
Nie rozumiem... Najlepiej gdybym zobaczył caly kod i go sobie na spokojnie przeanalizował;)

0

Trochę bez sensu, jedyną wartością jaką można "zwrócić" przez referencję jest wartość funkcji (czyli y), inne nie mają większego sensu.

1
#include <iostream>
using namespace std;

double& RownanieKwadratowe(double A, double B, double C, double& x, double& y)
{
     return (y = A * x * x + B * x + C); // zwracamy referencję do wartości y
}

void RownanieKwadratowe(double A, double B, double C, double* x, double* y)
{
     *y = A * *x * *x + B * *x + C;
}

int main()
{
    double x = 5, y;

    RownanieKwadratowe(1, 2, 3, x, y);
    cout << y << endl;

    RownanieKwadratowe(1, 2, 3, x, y) = 3; // to jest poprawne, gdyż zwracamy referencję do obiektu y
    cout << y << endl;

    RownanieKwadratowe(1, 2, 3, &x, &y);
    cout << y << endl;

    return 0;
}

Edit: wersja ze wskaźnikami.

0

Tak wygląda kompletne polecenie:
Napisz dwie wersje funkcji rozwiązującej równanie kwadratowe.
Funkcje otrzymują jako argumenty trzy współczynniki wielomianu kwadratowego oraz w pierwszej wersji:
referencje do zmiennych typu double, a w drugiej: wskaźniki do tych zmiennych.

0

No to teraz to ma sens, ona ma rozwiązywać, czyli zwróci dwa pierwiastki. W sumie napisałeś to już w pierwszym poście. :-P

0

Funkcje powinny jeszcze zwracać jakąś informację o ilości pierwiastków.

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