Jak poprawić kod czy trójkąt jest egipski?

Cześć. Kto by mi pomógł?
Mam taki kod:

print("Twierdzenie pitagorasa")

a = float(input("Podaj bok A"))
b = float(input("Podaj bob B"))
c = float(input("Podaj bob C"))
if (a+b>c) and (a+c>b) and (b+c>a):
    print ("da sie zbudowac trojkat")
else:
   print("trojkata nie da sie zbudowac z podanych")
if a*a + b*b == c*c:
    print("trojkat pitagorejski")
if a == 3 and b == 4 and c ==5:
    print("trojkat egipski")
else:
    print("trojkat niepotagorejski")

Jego wynik jest:
da sie zbudowac trojkat
trojkat pitagorejski
trojkat egipski
Jakby wprowadzić zmianę, aby po podaniu boków a = 3 b = 4 i c = 5 wypisało jedynie:
da sie zbudowac trojkat
trojkat egipski?
U mnie wyświetla się da sie zbudowac trojkat
trojkat pitagorejski
trojkat egipski
Nie potrzebuję tego trójkąt pitagorejski - tylko gdzie tutaj coś poprawić?

A jak bedzie 6:8:10 to też jest egipski.

Przebuduj if-y tak by sprawdzały najrzadsze po najczęstsze może. Można próbować robić dodatkowy test przed wyświetlaniem „uda się” / „pitagorejski”.

Opcjonalnie zadziała też składnia markdown:

```
jakiś kodzik
```

by kod był czytelniejszy, bo tak to wcięło część mnożenia i mamy pochylone „literki”.

Przepraszam, ale w jakim języku jest napisany ten program?

Żeby sprawdzić czy jest egipski trzeba posortować boki od najmniejszego do największego i musi być spełniony warunek
if a/3==b/4 and b/4==c/5:
print(„trojkat egipski”)
else:
print(„trojkat nie egipski”)

Język to python.

Co by zmienić bo dalej niestety nie wiem ;/ Proszę o radę.
co tutaj mialbym srawdzac czy da sie podzielic przez a b i c?
if a/3==b/4 and b/4==c/5:?
@darek0107

print("Twierdzenie pitagorasa")

a = float(input("Podaj bok A"))
b = float(input("Podaj bob B"))
c = float(input("Podaj bob C"))
arr  = sorted([a , b c] )
a = arr[0]
b =arr[1]
c = arr[2]


if (a+b>c) and (a+c>b) and (b+c>a):
    print ("da sie zbudowac trojkat")
else:
   print("trojkata nie da sie zbudowac z podanych")

if a/3==b/4 and b/4==c/5:
    print("trojkat egipski")
    exit(0)
    
if a*a + b*b == c*c:
    print("trojkat pitagorejski")
else:
    print("trojkat niepotagorejski")

szczerze to nie pamiętam co to jest trójkąt egipski :wink:

trójkąt o proporcjach boków 3/4/5, jako że Egipcjanie nie mieli zdefiniowanych długości metra tylko patyki :smiley:

wygląda to powyżej ok, jedyne co można dodać to pytanie co jeżeli ktoś poda ujemną liczbą lub będzie wprowadzał coś innego np. litery. Można zamiast wyjścia też dać elif jako alternatywę w przypadku jeżeli to nie byłby koniec kodu

Czy ty wogle wiesz co to jest trójkąt egipski? To jest trójkąt o pokach 3x,4x,5x gdzie x=const. I to masz sprawdzić czy x=constans. Czczesz pisaćź algorytm a nie wiesz na co?

molexorUczestnik HotZlotu - ale u ciebie trza wprowadzić boki pozostowane od najmniejszego

a ten fragment co by oznaczał?
jeśli a jest podzielne przez 3 i b podzielne przez 4?
Dałbyś rade mi wyjąśnić te rzecz

Tak ten fragment w ogólności oczywiście nie jest prawidłowy ale jest poprawny dla tego przypadku jako, że liczby zostały wcześniej uporządkowane

Ale też idąc za tropem to skoro uporządkowałeś, to warunek w pierwszym if (fragment)

jest już zbędny skoro wiesz, że c jest największe

Napiszę jeszce raz bo widzę że nie wszyscy rorumieją if a/3==b/4 and b/4==c/5
Trókąt egipski ma boki (3x,4x,5x) gdzie x jest wartością stałą
Wykonując to działanie na „if” należy sprawdzić czy to jest wartość stała czyli boki są (3,4,5)*x
bo boki tego trójkąta mogą być np.
(3,4,5)*1=3,4,5
(3,4,5)*2=6,8,10
(3,4,5)*3=9,12,15
ale jak trójkąt będzie 6;8;7,5
to 6/3=2, 8/4=2, 7,5/5=1,5 to nie sparwdza warunku i nie jest egipski

Hehe … Co za kod :wink: miszczostfo :smiley:

Mam zasadę że nie robię zadań domowych za nikogo.
Sprawa wygląda tak że nie byłem najtrzezwiejszy wczoraj, :smiley:

No ale chyba działa… Nie sprawdzam ale wygląda w miarę. Robi swoje.
@darek0107 jest posortowane .

Śmiechłem jak zobaczyłem powiadomienie z tego tematu… Nie bardzo to pamiętałem :smiley: