Yardım! Matematik sınavım yakında başlayacak ve ben çalışmadım! 1 Sınavın bir kısmı, ne yazık ki nasıl yapılacağını bilmediğim tepe koordinatları göz önüne alındığında bir dörtgeni sınıflandırmaktır. 2
Yani, senin meydan okumam bunu benim için yapacak bir program yazmak, bu yüzden başarısız değilim!
Meydan okuma
Hiçbiri doğrusal olmayan dört köşe göz önüne alındığında, bu dört köşe tarafından oluşturulan dörtgenin en belirgin sınıflandırmasını belirleyin.
"En belirgin sınıflandırma" ile kastettiğim, tüm kareler dikdörtgen olsa da, şekil kare ise, kare olduğunu belirtmeli ve dikdörtgen olduğunu belirtmemelisiniz.
Giriş
Giriş dört (x, y) koordinat olarak verilecektir. Bunları uzunluk 2 listelerinin / tuples'lerinin 4'lük bir listesi olarak alabilirsiniz. Alternatif olarak, girdiyi x-koordinatlarının bir listesi ve ilgili y-koordinatlarının bir listesi olarak alabilirsiniz.
Benim şekil noktalarında kesişim noktası var Örneğin, (0, 0)
, (5, 0)
, (6, 1)
, ve (1, 1)
aşağıdaki biçimlerde veya benzer bir şey birinde girişini almayı tercih edebilir:
[(0, 0), (5, 0), (6, 1), (1, 1)]
([0, 5, 6, 1], [0, 0, 1, 1])
Dörtgenlerin kendiliğinden kesişmediğini ve noktaların doğru sırada verildiğini varsayabilirsiniz (yani, girişteki iki ardışık nokta dörtgendeki bir çizgi parçası ile bağlanacaktır).
Çıktı
Aşağıdaki dörtgen sınıflarının her biri için benzersiz bir çıktıya ihtiyacınız olacak:
- Meydan
- Dikdörtgen
- Eşkenar dörtgen
- Paralelkenar
- Yamuk / Trapezium
- Uçurtma
- Dörtgen
Bu tam adın kendisi, bir karakter, bir tam sayı vb. Olabilir.
kurallar
- Standart Loopholes Uygula
- Programlama dilinizde bu tam görevi yerine getirecek bir yerleşik varsa, yerleşik olana izin verilmez.
- İki nokta arasındaki mesafeyi bulmak için yerleşiklere izin verilir.
- İki çizgi arasındaki açıyı bulmak için yerleşiklere izin verilir.
Bu noktada, tüm terimleri biliyorsanız, programlamaya başlamaya hazırsınız! (Test Durumları sonunda)
terminoloji
Bu bölüm, farklı şekillerin tanımları hakkında açıklığa ihtiyaç duyan herkes içindir.
Meydan
Bir dörtgen, sadece kenarlarının 4'ünün tamamı eşitse ve her bir bitişik kenar çifti dikse (yani hem bir dikdörtgen hem de bir eşkenar dörtgen ise) bir karedir.
Dikdörtgen
Dörtgen, yalnızca ve her bitişik kenar çifti dikse dikdörtgen şeklindedir.
Eşkenar dörtgen
Bir dörtgen, eğer sadece 4 tarafı da eşitse eşkenar dörtgendir.
Paralelkenar
Bir dörtgen, yalnızca ve her iki karşılıklı taraf çifti paralel ve her bir karşılıklı açı çifti eşitse paralelkenardır. Bu koşulların her ikisi de birbirini ima eder, bu yüzden sadece birini kontrol etmeniz gerekir.
Yamuk / Trapezium
Dörtgen, sadece ve en az bir çift paralel kenarı varsa yamuk / yamuktur.
Uçurtma
Bir dörtgen, bitişik kenarların iki zıt çiftinin uzunluğu eşitse bir uçurtmadır; yani, bitişik kenarlarından ikisi eşittir ve diğer ikisi de eşittir.
Test Durumları
input as (x, y) * 4 -> full name
[(0, 0), (1, 0), (1, 1), (0, 1)] -> square
[(0, 0), (1, 1), (-1, 3), (-2, 2)] -> rectangle
[(0, 0), (5, 0), (8, 4), (3, 4)] -> rhombus
[(0, 0), (5, 0), (6, 1), (1, 1)] -> parallelogram
[(0, 0), (4, 0), (3, 1), (1, 1)] -> trapezoid/trapezium
[(0, 0), (1, 1), (0, 3), (-1, 1)] -> kite
[(0, 0), (2, 0), (4, 4), (0, 1)] -> quadrilateral
Bağlantılar (Desmos Grafik Hesap Makinesi)
İşte test örneklerinin her birinin görselleştirmelerine bağlantılar.
Kare
Dikdörtgen
Eşkenar Dörtgen
Paralelkenar
Yamuk / Yamuk
Uçurtma
Dörtgen
Kazanma Kriterleri
Bir bilgisayarı sınava açık bir şekilde getiremiyorum, bu yüzden ezberleyebilmem için mümkün olan en kısa kodu yazmanızı istiyorum. Kenar boşluklarına yazmak ve TryItOffline TM kullanarak çalıştırmak gerekir böylece programınızın mümkün olduğunca küçük olması gereken kenar boşluklarına sığdırmak için!
1 Tabii ki yaptım: P
2 Tabii ki yapıyorum: P