[C++] Pierwiastki funkcji kwadratowej
-
- Użytkownik
- Posty: 97
- Rejestracja: 1 sty 2013, o 17:48
- Płeć: Kobieta
- Lokalizacja: pomorze
- Podziękował: 6 razy
[C++] Pierwiastki funkcji kwadratowej
Mam jeszcze jedna prośbę. Muszę napisać jeszcze jeden program. Tutaj jest treść zadania:
Napisz program znajdujący pierwiastki trójmianu kwadratowego \(\displaystyle{ ax^2+bx+c=0}\), dla zadanych parametrów \(\displaystyle{ a, b, c}\). Wykorzystać dwie funkcje: sprawdzającą, czy jest pierwiastek, wyliczająca pierwiastki. Jako argumenty dla funkcji należy podać współczynniki równania.
Będę wdzięczna za jakiekolwiek wskazówki
Napisz program znajdujący pierwiastki trójmianu kwadratowego \(\displaystyle{ ax^2+bx+c=0}\), dla zadanych parametrów \(\displaystyle{ a, b, c}\). Wykorzystać dwie funkcje: sprawdzającą, czy jest pierwiastek, wyliczająca pierwiastki. Jako argumenty dla funkcji należy podać współczynniki równania.
Będę wdzięczna za jakiekolwiek wskazówki
Ostatnio zmieniony 20 mar 2013, o 22:54 przez Afish, łącznie zmieniany 2 razy.
Powód: Całe wyrażenia matematyczne umieszczaj w tagach[latex] [/latex] .
Powód: Całe wyrażenia matematyczne umieszczaj w tagach
[C++] Pierwiastki funkcji kwadratowej
Silnik do tego wszystkiego jest trywialny. Może coś w Pascalu (to umiem nieco )
Kod: Zaznacz cały
delta:=b*b-4*a*c;
if delta<0 then writeln('Brak pierwiastków rzeczywistych')
else
if delta=0 then writeln(-b/(2*a),' pierwiastek podwójny')
else writeln((-b-sqrt(delta))/(2*a),(-b+sqrt(delta))/(2*a),' dwa pierwiastki rzeczywiste');
- Althorion
- Użytkownik
- Posty: 4541
- Rejestracja: 5 kwie 2009, o 18:54
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 9 razy
- Pomógł: 662 razy
[C++] Pierwiastki funkcji kwadratowej
Na którym etapie się zacinasz? Czy wiesz kiedy trójmian kwadratowy ma pierwiastki? Wiesz jak ten warunek zapisać w C++? Umiesz deklarować funkcje?
-
- Użytkownik
- Posty: 97
- Rejestracja: 1 sty 2013, o 17:48
- Płeć: Kobieta
- Lokalizacja: pomorze
- Podziękował: 6 razy
[C++] Pierwiastki funkcji kwadratowej
mam coś takiego ale to nie do końca działa:(
Kod: Zaznacz cały
#include <iostream>
#include <cstdlib>
#include <math.h>
using namespace std;
float czy_trojmian ( float a, float b, float c, float x)
{
if ( a * pow (x,2) + b * x + c == 0)
return 1;
else
return 0;
}
float czy_miejsca_zerowe ( float delta, float x, float x1, float x2)
{
if ( delta > 0)
return 1;
else
return 0;
}
int main ()
{
float a,b,c;
float delta;
float x, x1, x2;
cout << " Podaj a :";
cin >> a;
cout << " Podaj b : ";
cin >> b;
cout << "Podaj c : ";
cin >> c;
if (a==0)
cout << " To nie jest trójmian kwadratowy ";
else
{
delta == b*b - 4*a*c;
if (delta>0)
{
x1==(-b- sqrt(delta))/(2*a);
x2==(-b+sqrt(delta))/(2*a);
cout << "Trójmian ma dwa miejsca zerowe:" << endl
<< " x1 = " << x1 << endl
<< " x2 = " << x2 << endl;
}
else
if (delta==0)
{
x==(-b)/(2*a);
cout << "Trójmian jedno miejsce zerowe:" << endl
<< " x0 = " << x << endl;
}
else
cout << " Trójmian nie ma miejsc zerowych! ";
}
return 0;
}
- Althorion
- Użytkownik
- Posty: 4541
- Rejestracja: 5 kwie 2009, o 18:54
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 9 razy
- Pomógł: 662 razy
[C++] Pierwiastki funkcji kwadratowej
No to po kolei:
1. Formatowanie. Na wszystkich bogów, wstawiaj odstępy.
2. Co miała testować funkcja
3. Po co funkcja
4. Dlaczego dwie powyższe funkcje są typu zmiennoprzecinkowego, a nie logicznego?
5. Dlaczego je napisałaś, a nie wykorzystujesz?
6. Po co Ci biblioteka
1. Formatowanie. Na wszystkich bogów, wstawiaj odstępy.
2. Co miała testować funkcja
czy_trojmian
? Bo na razie sprawdza, czy dla danego x
ma on miejsce zerowe.3. Po co funkcja
czy_miejsca_zerowe
dostaje cztery argumenty, skoro korzysta tylko z jednego?4. Dlaczego dwie powyższe funkcje są typu zmiennoprzecinkowego, a nie logicznego?
5. Dlaczego je napisałaś, a nie wykorzystujesz?
6. Po co Ci biblioteka
cstdlib
?-
- Użytkownik
- Posty: 97
- Rejestracja: 1 sty 2013, o 17:48
- Płeć: Kobieta
- Lokalizacja: pomorze
- Podziękował: 6 razy
[C++] Pierwiastki funkcji kwadratowej
Nie wiem o co dokładnie chodzi, czyli ten program jest żle??
Zmieniłam w nim parę rzeczy:
wszystko działa. Tylko nie wiem o co chodzi z ta funkcją jak mam ją wykorzystać??
Zmieniłam w nim parę rzeczy:
Kod: Zaznacz cały
#include <iostream>
#include <math.h>
using namespace std;
int czy_trojmian ( int a, int b, float c, int x, int x1, int x2)
{
if ( a * pow (x,2) + b * x + c == 0)
return 1;
else
return 0;
}
int czy_miejsca_zerowe ( int delta, int x, int x1, int x2)
{
if ( delta > 0)
return 1;
else
return 0;
}
int main ()
{
int a,b,c;
int delta;
int x, x1, x2;
cout << " Podaj a :";
cin >> a;
cout << " Podaj b : ";
cin >> b;
cout << "Podaj c : ";
cin >> c;
if (a==0)
cout << " To nie jest trójmian kwadratowy ";
else
{
delta = b*b - 4*a*c;
if (delta>0)
{
x1=(-b- sqrt(delta))/(2*a);
x2=(-b+sqrt(delta))/(2*a);
cout << "Trojmian ma dwa miejsca zerowe:" << endl
<< " x1 = " << x1 << endl
<< " x2 = " << x2 << endl;
}
else
if (delta==0)
{
x=(-b)/(2*a);
cout << "Trojmian jedno miejsce zerowe:" << endl
<< " x0 = " << x << endl;
}
else
cout << " Trojmian nie ma miejsc zerowych! ";
}
return 0;
}
-
- Użytkownik
- Posty: 1406
- Rejestracja: 6 maja 2012, o 22:46
- Płeć: Mężczyzna
- Lokalizacja: Polska
- Podziękował: 107 razy
- Pomógł: 145 razy
[C++] Pierwiastki funkcji kwadratowej
Kod: Zaznacz cały
int czy_trojmian ( int a, int b, float c, int x, int x1, int x2)
{
if ( a * pow (x,2) + b * x + c == 0)
return 1;
else
return 0;
}
poza tym deklarujesz funkcje, których nie używasz, zamiast pisać w programie
Kod: Zaznacz cały
delta = b*b - 4*a*c;
Kod: Zaznacz cały
int oblicz_delte(int a, int b, int c)
{
int delta;
delta = b*b - 4ac;
return delta;
}
-
- Użytkownik
- Posty: 97
- Rejestracja: 1 sty 2013, o 17:48
- Płeć: Kobieta
- Lokalizacja: pomorze
- Podziękował: 6 razy
[C++] Pierwiastki funkcji kwadratowej
w tym właśnie chodziło o to, aby korzystać z funkcji, mnie nie było na zajęciach kiedy grupa ćwiczyła zaisywanie i korzystanie z funkcji. Szukałam cos niecoś w necie ale z niezbyt dobrym skutkiem. Mam z tym mały problem .
Czyli tutaj powinno być tylko tyle:
Dobrze zrozumiałam?
Czyli tutaj powinno być tylko tyle:
Kod: Zaznacz cały
int czy_trojmian ( int a, int b, int c)
{
if ( a * pow (x,2) + b * x + c == 0)
return 1;
else
return 0;
}
-
- Użytkownik
- Posty: 1406
- Rejestracja: 6 maja 2012, o 22:46
- Płeć: Mężczyzna
- Lokalizacja: Polska
- Podziękował: 107 razy
- Pomógł: 145 razy
[C++] Pierwiastki funkcji kwadratowej
nie do końca wiem co ma robić ta funkcja, poza tym komputer nie podniesie Ci x do kwadratu, tam nawet nie zadeklarowałaś tej zmiennej
zrób sobie funkcję liczącą delte i liczącą miejsca zerowe, tak chyba najłatwiej
zrób sobie funkcję liczącą delte i liczącą miejsca zerowe, tak chyba najłatwiej
-
- Użytkownik
- Posty: 97
- Rejestracja: 1 sty 2013, o 17:48
- Płeć: Kobieta
- Lokalizacja: pomorze
- Podziękował: 6 razy
[C++] Pierwiastki funkcji kwadratowej
czy to ma wyglądać w ten sposób:
narazie zbudowałam sobie funkcje
Kod: Zaznacz cały
int oblicz_delte(int a, int b, int c)
{
int delta;
delta == b*b - 4*a*c;
return delta;
}
int oblicz_miejsca_zerowe ( int a, int b, int delta)
{
int x, x1, x2;
x== -b/2*a;
x1== (-b - sqrt(delta))/2*a;
x2== (-b + sqrt(delta))/2*a;
return x, x1, x2;
}
-
- Użytkownik
- Posty: 145
- Rejestracja: 16 lis 2007, o 09:06
- Płeć: Mężczyzna
- Lokalizacja: Gniezno
- Podziękował: 2 razy
- Pomógł: 27 razy
[C++] Pierwiastki funkcji kwadratowej
Przypisujesz wartość do zmiennej czyli pojedynczy znak równości, dalej to samo.
Co jeśli delta jest ujemna?
Co jeśli a jest równe zero?
Kod: Zaznacz cały
delta = b*b - 4*a*c;
Co jeśli a jest równe zero?
-
- Użytkownik
- Posty: 97
- Rejestracja: 1 sty 2013, o 17:48
- Płeć: Kobieta
- Lokalizacja: pomorze
- Podziękował: 6 razy
[C++] Pierwiastki funkcji kwadratowej
to musze też w zapisie funkcji ująć czy dopiero w programie?
napisałam cos takiego ale chyba jest w tym cos nie tak, bo nie liczy dobrze:
napisałam cos takiego ale chyba jest w tym cos nie tak, bo nie liczy dobrze:
Kod: Zaznacz cały
#include <iostream>
#include <math.h>
using namespace std;
int oblicz_delte(int a, int b, int c)
{
int delta;
delta = b*b - 4*a*c;
return delta;
}
int oblicz_miejsca_zerowe ( int a, int b, int delta)
{
int x, x1, x2;
x= -b/2*a;
x1= (-b - sqrt(delta))/2*a;
x2=(-b + sqrt(delta))/2*a;
return x, x1, x2;
}
int main()
{
int a,b,c;
cout<<"podaj a:"<< endl;
cin>>a;
cout<<"podaj b:"<< endl;
cin>>b;
cout<<"podaj c:"<< endl;
cin>>c;
int delta = oblicz_delte (a,b,c);
{
int miejsca_zerowe = oblicz_miejsca_zerowe (a,b,delta);
int x, x1, x2;
if(delta<0)
{
cout<<" brak miejsc zerowych"<<endl;
}
if(delta=0)
{
cout<<" jest jedno miejsce zerowe:"<<x1<<endl;
}
else
{
cout<< "Sa dwa miejsca zerowe:"<<x1<<endl<<x2<<endl;
}
}
return 0;
}
-
- Użytkownik
- Posty: 145
- Rejestracja: 16 lis 2007, o 09:06
- Płeć: Mężczyzna
- Lokalizacja: Gniezno
- Podziękował: 2 razy
- Pomógł: 27 razy
[C++] Pierwiastki funkcji kwadratowej
Zastanów się nad tymi znakami = a == jest duża różnica, w instrukcji if(cos==cos2) masz porównanie
a wartosc=4*5 chcesz przypisać.
takie coś nie zadziała tak jak Ci się wydaje...
ta klamra to od czego miała być?
przypisujesz to co zwraca Twoja funkcja do jednej zmiennej, a później korzystasz z zupełnie innych? jak to miało działać w zamyśle?
Na szybko przerobione:
a wartosc=4*5 chcesz przypisać.
takie coś nie zadziała tak jak Ci się wydaje...
Kod: Zaznacz cały
return x, x1, x2;
Kod: Zaznacz cały
int delta = oblicz_delte (a,b,c);
[b]{[/b]
Kod: Zaznacz cały
int miejsca_zerowe = oblicz_miejsca_zerowe (a,b,delta);
int x, x1, x2;
Na szybko przerobione:
Kod: Zaznacz cały
#include <iostream>
using namespace std;
int oblicz_delte(int a, int b, int c)
{
int delta;
delta = b*b - 4*a*c;
return delta;
}
void oblicz_miejsca_zerowe ( int a, int b, int delta)
{
double x, x1, x2;
x= -b/2*a;
x1= (-b - sqrt(delta))/2*a;
x2=(-b + sqrt(delta))/2*a;
if(delta<0)
cout<<" brak rozwiazan rzeczywistych"<<endl;
if(delta==0)
cout<<" jest jedno miejsce zerowe:"<<x1<<endl; //napewno jedno?
else
cout<< "Sa dwa miejsca zerowe:"<<x1<<endl<<x2<<endl;
}
int main()
{
int a,b,c;
cout<<"podaj a:"<< endl;
cin>>a;
cout<<"podaj b:"<< endl;
cin>>b;
cout<<"podaj c:"<< endl;
cin>>c;
oblicz_miejsca_zerowe(a,b,oblicz_delte (a,b,c));
system("pause");
return 0;
}
-
- Użytkownik
- Posty: 97
- Rejestracja: 1 sty 2013, o 17:48
- Płeć: Kobieta
- Lokalizacja: pomorze
- Podziękował: 6 razy
[C++] Pierwiastki funkcji kwadratowej
tak jeśli delta jest zerowa to jest tylko jedno miejsce zerowe,
dziękuję za pomoc .-- 21 mar 2013, o 00:18 --konieczne było dadanie biblioteki, bez niej kompilator nie chciał uruchomić programu.
dziękuję za pomoc .-- 21 mar 2013, o 00:18 --konieczne było dadanie biblioteki
Kod: Zaznacz cały
math.h
- Althorion
- Użytkownik
- Posty: 4541
- Rejestracja: 5 kwie 2009, o 18:54
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 9 razy
- Pomógł: 662 razy
[C++] Pierwiastki funkcji kwadratowej
Słusznie, funkcja
Poza tym, możesz chcieć rozważyć zmianę współczynników trójmianu z całkowitych na zmiennoprzecinkowe.
sqrt
z niej pochodzi.Poza tym, możesz chcieć rozważyć zmianę współczynników trójmianu z całkowitych na zmiennoprzecinkowe.