program trojkaty

mnij
Użytkownik
Użytkownik
Posty: 223
Rejestracja: 18 lis 2008, o 16:01
Płeć: Mężczyzna
Lokalizacja: KrK
Podziękował: 10 razy
Pomógł: 3 razy

program trojkaty

Post autor: mnij »

program ma podać czy z danych bokw da się zbudować trojkat, i stwierdzić jak kątny jest. i nie działa. gdzie błędy?? samo-ukiem w tej dziedzinie jestem więc licze na wyrozumiałość : )

#include <iostream>
#include <stdlib.h>

using namespace std;

void boki (float a, float b, float c)
{
if (a<0 || b<0 || c<0)
cout<<"bledne dane"<<endl;
else

if (a+b>c && b+c>a && a+c>b)

cout<<"z tych bokow da sie zbudowac trojkat"<<endl;

else
cout<<"z bokow o tych dlugosciach nie da sie zbudowac trojkata"<<endl;
break;
}
void katy (float d, float e, float f)
{
if (d*d+e*e=f*f || d*d+f*f=e*e || e*e+f*f=d*d)
cout<<"trojkat jest prostokątny"<<endl;

if (d*d+e*e<f*f || d*d+f*f<e*e || e*e+f*f<d*d)
cout<<"trojkat jest rozwartokatny"<<endl;

if (d*d+e*e>f*f && d*d+f*f>e*e && e*e+f*f>d*d)
cout<<"trojkat jest ostrotokatny"<<endl;
}
int main(int argc, char *argv[])
{
cout<<"podaj dlugosci bokow"<<endl;
cin>>a;
cin>>b;
cin>>c;

boki (a,b,c);
katy (a,b,c);


system("PAUSE");
return 0;
}
Awatar użytkownika
jarzabek89
Użytkownik
Użytkownik
Posty: 1337
Rejestracja: 11 lis 2007, o 21:36
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 4 razy
Pomógł: 181 razy

program trojkaty

Post autor: jarzabek89 »

Co do poprawności kodu zaraz się zajmę. Ale mam inne pytanie. Ja treść zadania zrozumiałem, że podajemy wymiary boków sprawdzamy czy da się zbudować trójkąt,następnie sprawdzamy jaki to trójkąt, dobrze myślę?

EDIT :
Już widzę Wypisuję błędy.
Ostatnio zmieniony 3 maja 2009, o 22:35 przez jarzabek89, łącznie zmieniany 1 raz.
Awatar użytkownika
kolanko
Użytkownik
Użytkownik
Posty: 1905
Rejestracja: 9 gru 2006, o 14:23
Płeć: Mężczyzna
Lokalizacja: Łańcut
Podziękował: 32 razy
Pomógł: 172 razy

program trojkaty

Post autor: kolanko »

przy czym nie dziala ? boki ? byc moze dlatego ze masz 2x else od ifa ... chociaz nie jestem pewny, nie mam kompilatora przy sobie ale obczaj tak


void boki (float a, float b, float c)
{
if (a<0 || b<0 || c<0)
{
cout<<"bledne dane"<<endl;
}
else
{
if (a+b>c && b+c>a && a+c>b)

cout<<"z tych bokow da sie zbudowac trojkat"<<endl;

else

cout<<"z bokow o tych dlugosciach nie da sie zbudowac trojkata"<<endl;
}

}

-- 3 maja 2009, 22:37 --

+ deklaracja

a,b,c

by sie przydała ..-- 3 maja 2009, 22:45 --
#include <iostream>
#include <stdlib.h>

using namespace std;

void boki (float a, float b, float c)
{
if (a<0 || b<0 || c<0)
cout<<"bledne dane"<<endl;
else

if (a+b>c && b+c>a && a+c>b)

cout<<"z tych bokow da sie zbudowac trojkat"<<endl;

else
cout<<"z bokow o tych dlugosciach nie da sie zbudowac trojkata"<<endl;

}
void katy (float d, float e, float f)
{
if (d*d+e*e==f*f || d*d+f*f==e*e || e*e+f*f==d*d)
cout<<"trojkat jest prostokątny"<<endl;

if (d*d+e*e<f*f || d*d+f*f<e*e || e*e+f*f<d*d)
cout<<"trojkat jest rozwartokatny"<<endl;

if (d*d+e*e>f*f && d*d+f*f>e*e && e*e+f*f>d*d)
cout<<"trojkat jest ostrotokatny"<<endl;
}
int main(int argc, char *argv[])

{

float a, b,c;
cout<<"podaj dlugosci bokow"<<endl;
cin>>a;
cin>>b;
cin>>c;

boki (a,b,c);
katy (a,b,c);


system("PAUSE");
return 0;
}
zobacz to. powinno dzialac

break; dodaje sie raczej w switch, case.

w ifach musisz miec znak "==" zamiast "=" ... reszta git
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

program trojkaty

Post autor: matshadow »

break; jest jeszcze użyteczne w while() No i pisząc w C++ można ominąć wstawki w mainie: int argc, char *argv[]

Pozdrawiam
spajder
Użytkownik
Użytkownik
Posty: 735
Rejestracja: 7 lis 2005, o 23:56
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 2 razy
Pomógł: 133 razy

program trojkaty

Post autor: spajder »

Taka fajna optymalizacja: raz oblicz a=d*d+e*e (oraz wszystkie inne potrzebne wartości) i potem porównuj.
mnij
Użytkownik
Użytkownik
Posty: 223
Rejestracja: 18 lis 2008, o 16:01
Płeć: Mężczyzna
Lokalizacja: KrK
Podziękował: 10 razy
Pomógł: 3 razy

program trojkaty

Post autor: mnij »

zadleklarowałem w mainie a,b,c wywaliłem break; i zamieniłem "=" na "==", i działa tylko muszę jeszcze poprawić początek bo komiczne jest jak wyskakuje że nie da sie zbudować, ale jest ostrokątny
ale to już chill. dz -- 4 maja 2009, 17:55 --no właśnie. jak zrobić bez komendy "break", z którą program nie wiem czemu nie działał, żeby w p[rzypadku gdy z tych boków nie da się zbudować trójkąta przestał pracować ?
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

program trojkaty

Post autor: matshadow »

Kod: Zaznacz cały

#include <iostream>
#include <stdlib.h>

using namespace std;
bool ok=true;
void boki (float a, float b, float c)
{
if (a<0 || b<0 || c<0)
cout<<"bledne dane"<<endl;
else

if (a+b>c && b+c>a && a+c>b)

cout<<"z tych bokow da sie zbudowac trojkat"<<endl;

else
{
cout<<"z bokow o tych dlugosciach nie da sie zbudowac trojkata"<<endl;
ok=false;
}

}
void katy (float d, float e, float f)
{
if (d*d+e*e==f*f || d*d+f*f==e*e || e*e+f*f==d*d)
cout<<"trojkat jest prostokątny"<<endl;

if (d*d+e*e<f*f || d*d+f*f<e*e || e*e+f*f<d*d)
cout<<"trojkat jest rozwartokatny"<<endl;

if (d*d+e*e>f*f && d*d+f*f>e*e && e*e+f*f>d*d)
cout<<"trojkat jest ostrotokatny"<<endl;
}
int main(int argc, char *argv[])

{

float a, b,c;
cout<<"podaj dlugosci bokow"<<endl;
cin>>a;
cin>>b;
cin>>c;

boki (a,b,c);
if(ok) katy (a,b,c);

system("PAUSE");
return 0;
}
Awatar użytkownika
kolanko
Użytkownik
Użytkownik
Posty: 1905
Rejestracja: 9 gru 2006, o 14:23
Płeć: Mężczyzna
Lokalizacja: Łańcut
Podziękował: 32 razy
Pomógł: 172 razy

program trojkaty

Post autor: kolanko »

albo po prostu funkcje katy wmontowac w funkcje boki.
mnij
Użytkownik
Użytkownik
Posty: 223
Rejestracja: 18 lis 2008, o 16:01
Płeć: Mężczyzna
Lokalizacja: KrK
Podziękował: 10 razy
Pomógł: 3 razy

program trojkaty

Post autor: mnij »

tego bool'a nie znałem. pożyteczne :
ODPOWIEDZ