[c++] dziwny blad

0

#include <iostream>
using namespace std;

#include <stdlib.h>
#include <math.h>

float main()
{
cout << "a = ";
int wa;
cin >> wa;

cout << "b = ";
int wb;
cin >> wb;

cout << "c = ";
int wc;
cin >> wc;
int delta;
delta = wbwb-4wawc;
cout << "Funkcja " << wa <<"x^2+" << wb <<"x+" << wc <<"=0";
if (delta>0)
{
float w1 = (-1
wb-1*( sqrt(delta)))/(2wa);
float w2 = (-1
wb+( sqrt(delta) ))/(2wa);
cout << "Ma 2 miejsca zerowe: "<< w1 <<" i " << w2 <<" .\n";
}
else
if (delta==0)
{
float w3 = (-1
wb)/(2*wa);
cout << "Ma 1 miejsce zerowe: " << w3 << " .\n";
}
else
{
cout << "Nie ma miejsc zerowych\n";
}

cout << "przecina os y w punkcie (0;"<<wc<<").\n";
float pw = (-1wb)/(2wa); \codzi o ten
float qw = (-1delta)/(4wa); \i o ten wzor

cout << "Jej wierzcholkiem jest punkt (" << pw << ";" << qw << ").\n\n";
system("PAUSE");
endl;
}

znalazlem dziwny blad
gdy delta jest mniejsza od zera pokazuja sie jakies glupie wyniki
a w wszystkich innych wypadkach liczy dobrze
chociez wszystkie w/w operacje opsluguje jeden wzor
niewiem gzie jest blad
pomozcie ktos
z gory dzieki

0

#include <iostream>
using namespace std;

#include <stdlib.h>
#include <math.h>

int main()
{
float w1,w2;

cout << "a = ";
float wa;
cin >> wa;

cout << "b = ";
float wb;
cin >> wb;

cout << "c = ";
int wc;
cin >> wc;
double delta;
double(delta = wbwb-4wa*wc) ;
cout << "Funkcja " << wa <<"x^2+" << wb <<"x+" << wc <<"=0"<<endl ;
cout << "Delta: " << delta << endl;

if (delta>0)
{

 w1 = (-1*wb-1 * ( sqrt(delta)))/(2*wa);
 w2 = (-1*wb + ( sqrt(delta) ))/(2*wa);
cout << "Ma 2 miejsca zerowe: "<< w1 <<" i " << w2 <<" .\n";

}
else
if (delta==0)
{
float w3 = (-1wb)/(2wa);
cout << "Ma 1 miejsce zerowe: " << w3 << " .\n";
}
else
{
cout << "Nie ma miejsc zerowych\n";
}

cout << "przecina os y w punkcie (0;"<<wc<<").\n";
float pw = (-1wb)/(2wa); //codzi o ten
float qw = (-1delta)/(4wa); //i o ten wzor
cout << "Jej wierzcholkiem jest punkt (" << int(pw) << ";" << int(qw) << ").\n\n";

return(0);
}

Teraz powinno działac.
main jest typu int !!!! i zapamietaj to do konca zycia
Typy sie nie zgadzały i kompilator iinterpretował to na swoj sposob
np sqrt to double !! a nie float ;]
umiesczaj zmienne i stale na poczatku programu bo jesli ktos kto czyta
ma problemy z odzukaniem ich deklaracji

pozdro

0

Teraz powinno działac.
main jest typu int !!!! i zapamietaj to do konca zycia

Nie koniecznie - ja stosuje void...

umiesczaj zmienne i stale na poczatku programu bo jesli ktos kto czyta
ma problemy z odzukaniem ich deklaracji

bzdura. Staraj sie unikac deklarowania zmiennych globalnych - jak tylko mozesz to stosuj zmienne lokalne.

</quote>
0

Z tym main ti jest tak, że na przykład w Dev-C++ musi zwracać typ int, ale w Borland C++ już nie.

0

Jasne ze może byc void nawet char albo co tam sobie jescze czlowiek wymyśli, ale wtedy system nie ma zwracanego Error Level
co jest błędem w profesjonalnym programie.
Kompilowałem gcc, nie pamietam już jak to tam jest w builderze nie uzywalem go od 2 lat, jednak gcc pozwala na takie deklaracje jak:
[root@localhost sc0rp10n]# cat test.c
char main(){}
i tym podobne, kompilator zwróci jedynie uwage ze nie jest to typ takiego jaki oczekuje
[root@localhost sc0rp10n]# gcc test.c -o test
test.c: In function main': test.c:1: warning: return type of main' is not `int'

Nie napisałem o deklarowanie zmienych i stalych globalnie tylko o skupieniu ich w jednym miejscu w celu
uporzadkowania kodu, inna sprawą jest to że spora czesc koderów ma gdzieś czytelność kodu.

0

po poprawieniu bledow jest prawie dobrze
np.
po wpisaniu wartosci 1,1,1
wierzcholkiem powinno byc (-0,5:0,75)
a program zwraca (0;0,75)

i jeszcze jedno co zrobic by po wpisaniu np litery
program sie nie posypał

0

No tak miał działać, wykorzystałem tam rzutowanie typu (integer), czyli liczba całkowita, więc program zaokrangla wynik do pełnej liczby. Możesz to zmienic, nie wpłynie to na wynik wykonywacych obliczeń.

0

zmienilem ta linijke na
cout << "- jej wierzcholkiem jest punkt (" << pw << ";" << qw << ").\n\n" <<endl;
i dalej jest problem z poprawnym zwracaniem zmiennej pw

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