Membantu! Ujian matematika saya akan segera hadir dan saya tidak belajar! 1 Bagian dari ujian adalah untuk mengklasifikasikan segiempat dengan koordinat titik, yang sayangnya saya tidak tahu caranya. 2
Jadi, tantangan Anda adalah menulis program untuk melakukan ini untuk saya jadi saya tidak gagal!
Tantangan
Diberikan empat simpul sedemikian rupa sehingga tidak ada tiga dari mereka yang kolinear, tentukan klasifikasi paling spesifik dari segiempat yang dibentuk oleh keempat simpul tersebut.
Yang saya maksud dengan "klasifikasi paling spesifik" adalah bahwa meskipun semua kotak adalah persegi panjang, jika bentuknya persegi, Anda harus menunjukkan bahwa itu adalah persegi dan tidak menunjukkan bahwa itu adalah persegi panjang.
Memasukkan
Input akan diberikan sebagai empat (x, y) koordinat. Anda dapat mengambil ini sebagai daftar panjang 4 daftar / tupel panjang 2. Atau, Anda dapat mengambil input sebagai daftar koordinat x dan daftar masing-masing koordinat y.
Sebagai contoh, jika bentuk saya memiliki simpul pada titik-titik (0, 0), (5, 0), (6, 1), dan (1, 1), Anda dapat memilih untuk mengambil masukan dalam salah satu dari format berikut atau yang serupa:
[(0, 0), (5, 0), (6, 1), (1, 1)]
([0, 5, 6, 1], [0, 0, 1, 1])
Anda dapat mengasumsikan bahwa segiempat tidak berpotongan sendiri dan bahwa titik-titik tersebut diberikan dalam urutan yang benar (yaitu, dua titik berurutan dalam input akan dihubungkan oleh segmen garis dalam segi empat).
Keluaran
Anda akan membutuhkan keluaran unik untuk masing-masing kelas segiempat berikut:
- Kotak
- Empat persegi panjang
- Belah ketupat
- Genjang
- Trapesium / Trapesium
- Layang-layang
- Berbentuk segi empat
Ini bisa berupa nama persisnya, karakter, bilangan bulat, dll.
Aturan
- Celah Standar Berlaku
- Jika bahasa pemrograman Anda memiliki built-in yang akan melakukan tugas yang tepat ini, bahwa built-in tidak diperbolehkan.
- Built-in untuk menemukan jarak antara dua titik diperbolehkan.
- Built-in untuk menemukan sudut antara dua garis diperbolehkan.
Pada titik ini, jika Anda mengetahui semua persyaratan, Anda siap untuk memulai pemrograman! (Kasus Uji pada akhirnya)
Terminologi
Bagian ini untuk siapa saja yang membutuhkan klarifikasi tentang definisi bentuk yang berbeda.
Kotak
Segiempat adalah bujur sangkar jika dan hanya jika keempat sisinya memiliki panjang yang sama dan setiap pasangan sisi yang berdekatan tegak lurus (yaitu, segi empat dan belah ketupat).
Empat persegi panjang
Segiempat adalah persegi panjang jika dan hanya jika setiap pasangan sisi yang berdekatan tegak lurus.
Belah ketupat
Segiempat adalah belah ketupat jika dan hanya jika keempat sisinya sama.
Genjang
Quadrilateral adalah jajar genjang jika dan hanya jika setiap pasangan sisi yang berlawanan adalah paralel dan setiap pasangan dari sudut yang berlawanan adalah sama. Kedua kondisi ini menyiratkan satu sama lain sehingga Anda hanya perlu memeriksa salah satunya.
Trapesium / Trapesium
Segiempat adalah trapesium / trapesium jika dan hanya jika memiliki setidaknya satu sisi paralel.
Layang-layang
Segiempat adalah layang-layang jika dua pasang yang berlawanan dari sisi yang berdekatan memiliki panjang yang sama; yaitu, dua sisi yang berdekatan sama dan dua lainnya juga sama.
Uji Kasus
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
Tautan (Kalkulator Grafik Desmos)
Berikut ini tautan ke visualisasi masing-masing kasus uji.
Persegi
Persegi Panjang
Rhombus
Parallelogram
Trapesium / Trapezium
Kite
Segiempat
Kriteria Menang
Saya tidak bisa membawa komputer ke ujian, jadi saya ingin Anda menulis kode sesingkat mungkin agar saya dapat menghafalnya. Saya perlu menuliskannya di margin dan menjalankannya menggunakan TryItOffline TM sehingga agar sesuai dengan margin, program Anda harus sekecil mungkin!
1 Tentu saja saya benar-benar melakukannya: P
2 Tentu saja saya benar-benar melakukannya: P