![python ile özel üçgen ve dörtgen kontrolü yapan kodu yazma](https://serdarsari.dev/wp-content/uploads/2020/01/ucgenvedortgen.jpg)
Python Örnekleri:
Merhaba! Bu yazımızda kullanıcı tarafından girilen üçgen veya dörtgen ölçülerine bakarak o şeklin özel bir şekil olup olmadığını kontrol eden programı yazacağız. Dilerseniz koda geçelim.
print("""
****************************
Üçgen veya Dörtgenin Şeklini Bulan Program
****************************
Üçgenin tipini hesaplamak için 1'e basın
Dikdörtgenin tipini hesaplamak için 2'ye basın
""")
girdi=input("Seçin yapın : ")
if girdi =="1":
x=int(input("1.Kenarı girin : "))
y=int(input("2.Kenarı girin : "))
z=int(input("3.Kenarı girin : "))
if (abs(y-z)<x and x<y+z) and (abs(x-z)<y and y<x+z) and (abs(x-y)<z and z<x+y):
if (x==y and x!=z) or (x==z and x!=y) or (y==z and y!=x):
print("Bu üçgen İkizkenar'dır.")
elif x==y==z:
print("Bu üçgen Eşkenar'dır.")
else:
print("Bu ölçüler bir üçgen belirtmiyor.")
elif girdi =="2":
a=int(input("1.Kenarı girin : "))
b=int(input("2.Kenarı girin : "))
c=int(input("3.Kenarı girin : "))
d=int(input("4.Kenarı girin : "))
if a==b==c==d:
print("Bu şekil Kare'dir.")
elif (a==b and c==d) or (a==c and b==d) or (a==d and b==c):
print("Bu şekil Dikdörtgen'dir.")
else:
print("Bu şekil sıradan bir Dörtgen'dir.")
Kod nasıl çalışıyor? Adım adım
- Öncelikle kullanıcıdan 1 veya 2’yi seçmesi isteniyor. 1- Üçgenin tipini hesaplamak için, 2-Dörtgen tipini hesaplamak için.
- Daha sonra kullanıcıdan seçimine göre (örneğin biz üçgeni seçmiş olalım) 1.kenarı, 2.kenarı ve 3.kenarı girmesi isteniyor.
- Daha sonra if bloğunda kenarları üçgen olma şartı kurallarına göre karşılaştırarak eğer üçgen olabiliyorsa if’e girip kod devam ediyor. Ancak şartları sağlamıyorsa else girip ekrana “Bu ölçüler bir üçgen belirtmiyor.” yazar.
- Biz girdiğimiz ölçülerin üçgen şartlarına uyduğunu varsayalım ve if’e girip devam edelim. if içinde tekrar if kontrol blokları bulunuyor. Bu bloklarda ise kenarları karşılaştırıp, “Bu üçgen Eşkenar’dır.” , “Bu sıradan bir Üçgendir.” ya da “Bu sıradan bir Üçgendir.” şeklinde ekrana yazar.
- Aynı işlemler 2 seçimi yapıp dörtgen için yaparsakta geçerlidir. Dörtgeni de kendiniz anlamaya çalışın. Takıldığınız yer olursa yorum yazmayı, soru sormayı unutmayın.
Aklınıza takılan soruları veya düşüncelerinizi aşağıda yorum olarak yazabilirsiniz.
Paylaşmak istersen?
MERHABALAR HOCAM ,2. girişe yani dörtgeni neden elif le yazdınız açıklar mısınız biraz yeniyim tam anlamadım normalde ıf le başlaması lazım .Bir koşulu if le başlamak lazım değil midir ?
Rahatsız ettim özür dilerim 🙂
Selam Furkan,
if ve elif arasındaki iletişim şöyle, if bloğu altında elif yazarsan, senin koşulun if bloğunu sağlıyorsa, kod if bloğuna girer işini bitirip çıkar ve altındaki elif bloğuna girmez, elif bloğunu kontrol dahi etmez. Ama biz ikisini de if olarak yazsaydık, kod üstteki if bloğuna girdikten sonra altındaki if bloğunu da kontrol edip eğer koşul sağlanıyorsa ona da girebilecekti. Ama biz bazen sadece bir bloğa girmesini isteyebiliriz. Bu yüzden if ve elif kullanmamız gerekebilir. Burada ikisinde de if kullanmanın bir sakıncası yok ama if ve elif kullanırsak, üstteki if’e girdiği zaman alttaki elif bloğunu kontrol dahi etmeyecek çünkü biz sadece bir bloğa girmesini istedik. Seçim ya üçgendir ya dörtgen. Kesin bir ayrım var. Hâlâ kafanda tam oturmadıysa veya karmaşık geliyorsa belirt lütfen. İyi çalışmalar 🙂
Devam hocam, karmaşıkta olsa devam. Cevaplama gereği duyduğunuz ve bu önemi bana gösterdiğiniz için teşekkür ederim. Sorunlarım olduğunda rahatsız ederim 🙂
Müsait olduğunuz zaman .
Tekrardan Teşekkür ederim
Saygılarımı sunarım.
if (abs(y-z)<x and x<y+z) and (abs(x-z)<y and y<x+z) and (abs(x-y)<z and z<x+y):
BEN BU SATIRI ANLAYAMADIM. RİCA ETSEM YARDIMCI OLUR MUSUNUZ?TAMAM abs() FONKSİYONU MUTLAK DEĞER ANLADIM DA BURDAKİ İŞLEVİNİ ÇÖZEMEDİM.
Merhaba Emine,
Bu satırda if bloğunda 3 ana kontrol işlemi yapıyoruz ve aralarına and operatörünü koyarak bu 3 şartın da aynı anda sağlanmasını istediğimizi belirtiyoruz. Bu şartları aşağıdaki gibi ayırarak detaylı inceleyelim.
1. Şart :
(abs(y-z) < x and x < y+z)
2. Şart :
(abs(x-z) < y and y < x+z)
3. Şart :
(abs(x-y) < z and z < x+y)
x, y ve z değerlerini bir üçgenin kenarlarıymış gibi düşünelim.
1. şartımız: x kenarının uzunluğu y ve z kenarlarının farkından büyük iken, aynı zamanda y ve z nin toplamlarından da küçük olması gerekiyor. Bu, bir üçgen oluşturma şartıdır. Bu kısım Geometri'den geliyor :) Biz bunu burada koda döktük.
Diğer şartlarda sadece ele aldığımız kenar değişiyor. Örneğin 2.şartta da y kenarını referans alarak kontrolleri yapıyoruz tıpkı 1.şarttaki gibi.
Abs kullanmamızın sebebi ise, amacımız diğer iki kenarın farkını bulmak. Büyük kenardan küçük kenarı çıkarmak veya küçük kenardan büyük kenarı çıkarmak fark etmiyor.