Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
studnicka.ji
Člen
Avatar
studnicka.ji:26.12.2013 22:57

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
Tvůrce
Avatar
Odpovídá na studnicka.ji
Kit:26.12.2013 23:01

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:27.12.2013 0:03

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
Tvůrce
Avatar
Odpovídá na studnicka.ji
Kit:27.12.2013 0:14

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:27.12.2013 0:18

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
Tvůrce
Avatar
Odpovídá na studnicka.ji
Kit:27.12.2013 0:20

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
Tvůrce
Avatar
Odpovídá na Kit
coells:27.12.2013 1:34

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
27.12.2013 1:34
Avatar
mkub
Tvůrce
Avatar
Odpovídá na coells
mkub:27.12.2013 2:01

trosku som sa tuna stracam...

 
Nahoru Odpovědět
27.12.2013 2:01
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na mkub
TomBen:27.12.2013 2:12

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ý
Tvůrce
Avatar
Odpovídá na TomBen
Jan Vargovský:27.12.2013 2:24

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

 
Nahoru Odpovědět
27.12.2013 2:24
Avatar
mkub
Tvůrce
Avatar
Odpovídá na Jan Vargovský
mkub:27.12.2013 3:33

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.