Avatar
studnicka.ji
Člen
Avatar
studnicka.ji:

Zdravím začínám s pythonem a napsal jsem si jednoduchý program, zda je možné sestrojit trojúhelník a nějak mi tu nefungují podmínky nevíte kde je chyba?Program mi pořád píše že troj. jde sestrojit i když nejde

print("Vítejte v programu Je možné sestrojit trojúhelník ?")

a = input ("Zadejte délku první strany: ")
b = input ("Zadejte délku druhé strany: ")
c = input ("Zadejte délku třetí strany: ")
prvni = a + b
druha = c + a
treti = c + b
if (float(c) < float(prvni)):
    print("Trojúhelník lze sestrojit")

elif (float(b) < float(druha)):
    print("Trojúhelník lze sestrojit")

elif (float(a) < float(treti)):
    print("Trojúhelník lze sestrojit")

else:
    print("Trojúhelník nelze sestrojit")
input()
Editováno 26.12.2013 22:59
 
Odpovědět 26.12.2013 22:57
Avatar
Kit
Redaktor
Avatar
Odpovídá na studnicka.ji
Kit:

Testuj, kdy trojúhelník nelze sestrojit.

Nahoru Odpovědět 26.12.2013 23:01
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
studnicka.ji
Člen
Avatar
studnicka.ji:

ok přepíšu to :) ale nevím zda je to hlavní příčina

 
Nahoru Odpovědět 27.12.2013 0:03
Avatar
Kit
Redaktor
Avatar
Odpovídá na studnicka.ji
Kit:

Je to hlavní příčina. Pokud odchytíš všechny 3 podmínky, kdy trojúhelník nelze sestrojit, tak sestrojit lze. Tohle mi funguje:

a = float(input("Zadejte délku první strany: "))
b = float(input("Zadejte délku druhé strany: "))
c = float(input("Zadejte délku třetí strany: "))

prvni = a + b
druha = c + a
treti = c + b

try:
    if (c > prvni): raise
    if (b > druha): raise
    if (a > treti): raise
    print("Trojúhelník je OK")
except:
    print("Trojúhelník nelze sestrojit")
Nahoru Odpovědět 27.12.2013 0:14
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
studnicka.ji
Člen
Avatar
studnicka.ji:

jj je už jsem si to uvědomil dík
jinak tohle je taky zapis pythonu ?

 
Nahoru Odpovědět 27.12.2013 0:18
Avatar
Kit
Redaktor
Avatar
Odpovídá na studnicka.ji
Kit:

Ještě jsem tam vyhodil pár zbytečností

a = float(input("Zadejte délku první strany: "))
b = float(input("Zadejte délku druhé strany: "))
c = float(input("Zadejte délku třetí strany: "))

try:
    if (c > a + b): raise
    if (b > a + c): raise
    if (a > b + c): raise
    print("Trojúhelník je OK")
except:
    print("Trojúhelník nelze sestrojit")

Ano, tohle je zápis Pythonu.

Nahoru Odpovědět 27.12.2013 0:20
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
coells
Redaktor
Avatar
Odpovídá na Kit
coells:

Případně se použije troška matematiky ;-)

c > a + b
c + c > a + b + c
2 * c > a + b + c
c > (a + b + c) / 2
soucet = (a + b + c) / 2
if (a > soucet || b > soucet || c > soucet) ...
 
Nahoru Odpovědět  +2 27.12.2013 1:34
Avatar
mkub
Redaktor
Avatar
Odpovídá na coells
mkub:

trosku som sa tuna stracam...

 
Nahoru Odpovědět 27.12.2013 2:01
Avatar
TomBen
Redaktor
Avatar
Odpovídá na mkub
TomBen:

Tím chce říct, že to dostane do jediné podmínky všechno.

( ars mathematica damnabilis et interdicta est :D )

Nahoru Odpovědět 27.12.2013 2:12
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na TomBen
Jan Vargovský:

Řekl bych, že se spíše ztratil v té úpravě nerovnice :)

 
Nahoru Odpovědět 27.12.2013 2:24
Avatar
mkub
Redaktor
Avatar
Odpovídá na Jan Vargovský
mkub:

to skor, ale neva... matematika mi aj tak nikdy moc dobre nesla...

Editováno 27.12.2013 3:35
 
Nahoru Odpovědět 27.12.2013 3:33
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.