Senyawa ionik bernama seperti: (metal name) (non-metal suffixed with -ide)
. Berikut adalah daftar semua sufiks yang perlu diganti -ide
:
-on -ogen -ygen -ine -orus -ur -ic -ium
Jumlah atom dari setiap elemen dalam senyawa tidak digunakan dalam penamaan senyawa ionik. Abaikan aturan penamaan logam multivalen.
NaCl -> sodium + chlorine -> sodium chloride.
K2S -> potassium + sulphur -> potassium sulphide (or sulfide).
Yb2P3 -> ytterbium + phosphorus -> ytterbium phosphide.
PbTe2 -> lead + tellurium -> lead telluride.
String yang berisi senyawa ionik ( NaCl
, K2S
, Yb2P3
) akan diberikan sebagai masukan. Tidak ada ion poliatomik yang akan diberikan. Program harus menampilkan nama senyawa ini.
Sejak tak seorang pun ingin mengkompilasi tabel periodik data diri, di sini adalah pasta yang memiliki nama, simbol, dan apakah atau tidak itu adalah logam dari setiap elemen, dalam urutan ini: (name) (symbol) (is metal?)
. Anda dapat menyimpan ini ke file eksternal (panjang file tidak akan dihitung), atau Anda dapat menyimpan data dalam program Anda (cukup diskon panjang string itu dari sana.) Anda mungkin tidak memerlukan semua informasi yang disediakan. Setiap elemen dipisahkan oleh baris baru.
Seperti biasa dengan tantangan kode golf, kode terpendek menang.
sodium chloride
,potassium sulide
,ytterbium phosphoride
danlead telluriide
.Jawaban:
Ruby, 114
Menggunakan tempel teks elemen yang belum saya hitung dalam skor. Saya menghapus tag logam (karena saya berasumsi senyawa selalu diberikan dengan logam terlebih dahulu, jadi saya tidak benar-benar membutuhkannya) dan membangun kamus dengan itu. Saya mengidentifikasi bagian yang akan diganti dengan "ide" dengan memeriksa ujung string untuk tiga huruf dimulai dengan
i
, empat huruf berakhir dengangen
, atau hanya dua karakter terakhir.sumber
Python, 134 Karakter.
sumber
APL
142150Jika saya diizinkan untuk menyimpan nama elemen dan simbol dalam sepasang array bersarang di dalam ruang kerja APL maka kode berikut harus melakukannya:
Ini kira-kira berfungsi sebagai berikut:
Mengambil input dari layar melalui ⍞ dan membelah nama kimia menjadi simbol dan membuang angka apa pun
e [s⍳c [1]]
Mencari nama elemen pertama dari simbolnya. Demikian pula untuk c [2]
Identifikasi mana dari delapan kemungkinan ujung yang non-logam miliki dan jatuhkan dan ganti dengan ide melalui:
Tidak ada jebakan kesalahan sehingga hanya berfungsi untuk senyawa yang valid yang ditentukan melalui pengidentifikasi satu atau nol dalam daftar elemen yang disediakan.
sumber
oxygen -> oxide
atauhydrogen -> hydride
bekerja?Mathematica
252 267254Kode
ElementData[]
berisi informasi tentang elemen; ini asli untuk Mathematica.Contohnya
Penjelasan
Kode menghilangkan digit dari kompon, lalu memisahkan elemen dengan nama singkatannya. Kemudian mengkonversi singkatan ke nama standar elemen. Akhirnya, itu menggantikan non-logam dengan istilah dengan akhiran yang benar.
sumber
PbTe2
,lead telluride
sudah cukup.