Eğitim yıllarınızı hatırlarsanız, Doğruluk Tablolarını öğrendiğinizi hatırlayabilirsiniz . Sıkıcı görünüyordu, ama mantığın temelini oluşturuyorlar ve (bazıları tartışıyorlardı) tüm bilgisayarları ...
Sorun
Göreviniz, kabul etmeyi seçerseniz, bir program, fonksiyon veya kod verilen bir doğruluk tablosu çıktısı verebilecek bir widget yazmaktır.
Giriş
Girdi, Doğruluk Tablosunu oluşturmak için mantık deyimini içeren bir dize (veri yapısı gibi) olacaktır. Örneğin:
p ∧ q
Bu p and q
(mantıksal iletim) anlamına gelir ve çıktı:
p q p ∧ q
T T T
T F F
F T F
F F F
Boşluğa dikkat edin: Sütun öğesi başlığın ortasında
Karakterler
Baytlarla değil karakterlerle puanlama Mantık karşılaştırma karakterleri özeldir ve her zaman göründükleri gibi değildir. Şu karakterleri kullanın:
Mantıksal Bağlaç (AND): ∧
U + 2227
Mantıksal Ayrılma (VEYA): ∨
U + 2228
Mantıksal Negatif (NOT) ~
veya ¬
U + 7e ve U + ac
Bonuslar
Tüm bu bonuslar isteğe bağlıdır, ancak puanınızı düşürür. Herhangi birini seçin.
Mantıksal Olumsuzluk
Mantıksal Olumsuzluk, doğruluk tablolarında tek bir operatördür. !
Çoğu C tabanlı dilde eşdeğerdir . false
=> true
Ve tersini yapar . Bir ¬
veya ile işaretlidir ~
(her ikisini de desteklemelisiniz). Bunu desteklemek puanınızın% 10'unu kesecektir. Ancak sonuçlarını göstermek için ek bir sütun eklemelisiniz: Örneğin:
~p ∧ q
çıktı olacak:
p ~p q ~p ∧ q
T F T F
T F F F
F T T T
F T F F
Güzel Baskı
Normal tablo gösterimi sıkıcıdır. Hadi güzel yapalım! Güzel baskı formatı aşağıdaki p ∧ q
gibidir:
+---+---+-------+
| p | q | p ∧ q |
+---+---+-------+
| T | T | T |
+---+---+-------+
| T | F | F |
+---+---+-------+
| F | T | F |
+---+---+-------+
| F | F | F |
+---+---+-------+
Güzel baskı için özel detaylar:
- Her hücrede 1 boşluk dolgusu vardır
- Hücre değerleri hala ortalanmış
Tablolarınızı güzel bir şekilde yazdırırsanız, kodunuzdan sonra 0.6 ile çarpın. Bu bonus için bu işlevi kullanın:
score = 0.6 * code
Örnekler
p ∧ q
:
p q p ∧ q
T T T
T F F
F T F
F F F
p ∨ q
:
p q p ∨ q
T T T
T F T
F T T
F F F
~p ∧ q
:
p ~p q ~p ∧ q
T F T F
T F F F
F T T T
F T F F
~p ∨ q
:
p ~p q ~p ∧ q
T F T T
T F F F
F T T T
F T F T
kurallar
- Standart boşluklar geçerlidir
- Harici kaynak yok
- Kuralları ihlal edecekseniz, akıllı olun;)
En kısa Kod (karakter cinsinden) kazanır. İyi şanslar!
score = 0.6 * (code - 15)
=.6 * code - 9
p
q
ve r
bir doğruluk tablosunda daha fazla göremezsiniz ;)
p
ve şeklindedirq
. Her zaman bu isimlere sahip olmadıkça, test örneklerinde birkaç farklı seçenek göstermek isteyebilirsiniz. Her zaman tek bir mektup mu?