Dalam logik, AND benar hanya apabila kedua-dua bahagian benar, dan OR benar apabila sekurang-kurangnya satu bahagian benar. Dalam bahasa harian, perkataan yang sama boleh membawa maksud yang lebih longgar, itulah sebabnya sesuatu ayat mesti diubah kepada kurungan sebelum menjadi syarat.
Pelajaran ini menggunakan operator daripada menilai ungkapan dan semakan kes daripada membandingkan ungkapan. Ia menutup pelajaran pengajaran dalam modul logik Boolean.
Di manakah bahasa biasa mengelirukan?
Terdapat tiga perangkap lazim.
- “Dan” digunakan untuk menyenaraikan kumpulan. “Masuk percuma untuk kanak-kanak bawah 5 dan dewasa atas 65” menyenaraikan dua kumpulan. Seseorang tidak pernah berada dalam kedua-duanya, maka syarat itu memerlukan OR.
- “Atau” bermaksud salah satu. “Anda boleh ambil teh atau kopi” biasanya mengecualikan kedua-duanya. OR logik membenarkan kedua-duanya, dan XOR mengecualikannya.
- AND dan OR bercampur tanpa kurungan. “Pintu terbuka dan sistem tidak diaktifkan atau butang panik ditekan” mempunyai dua bacaan.
Cara menterjemah ayat
- Namakan setiap kenyataan ringkas dengan satu huruf.
- Tandakan operator dalam ayat: dan, atau, bukan.
- Tanya apa yang dikumpulkan dan tulis kurungan.
- Uji satu kes yang akan menyebabkan bacaan berlainan tidak sependapat.
Contoh dikerjakan 1
Peraturan: “Masuk percuma untuk pelawat bawah 5 dan atas 65.”
Terjemahan salah: IF (Age < 5) AND (Age > 65) THEN. Uji Age = 3: (3 < 5) benar dan (3 > 65) palsu, maka benar AND palsu = palsu. Kanak-kanak tiga tahun akan ditolak.
Betul: IF (Age < 5) OR (Age > 65) THEN. Uji Age = 3: benar OR palsu = benar. Uji Age = 30: palsu OR palsu = palsu. Uji Age = 70: palsu OR benar = benar.
Contoh dikerjakan 2
Peraturan: “Penggera berbunyi jika pintu terbuka dan sistem tidak diaktifkan atau butang panik ditekan.”
Biar D = pintu terbuka, S = sistem diaktifkan, P = butang panik ditekan.
- Bacaan 1: (D AND NOT S) OR P
- Bacaan 2: D AND (NOT S OR P)
Uji D = 0, S = 0, P = 1 (pintu tertutup, sistem mati, panik ditekan).
Bacaan 1: (0 AND 1) OR 1 = 0 OR 1 = 1. Bacaan 2: 0 AND (1 OR 1) = 0 AND 1 = 0.
Kedua-dua bacaan memberi hasil berbeza, maka ayat itu kabur. Bacaan 1 membunyikan penggera setiap kali panik ditekan, yang mungkin dimaksudkan, tetapi hanya penulis peraturan boleh memastikan. Dalam atur cara anda mesti memilih, dan kurungan merekodkan pilihan itu:
IF (Door = TRUE AND Armed = FALSE) OR Panic = TRUE THEN
OUTPUT "ALARM"
ENDIF
Kesilapan yang perlu dielakkan
Pengiraan salah: “Peraturan menyebut ‘dan’, jadi saya akan guna AND di mana-mana.”
Perkataan dalam ayat tidak selalu sama dengan operator yang diperlukan syarat itu. Tentukan daripada maksud, kemudian semak dengan satu kes. Tabiat yang baik ialah menguji satu input yang jelas patut lulus dan satu yang jelas patut gagal.
Semak sendiri
1. “Pelawat boleh masuk jika mereka mempunyai tiket dan pas atau ialah kakitangan.” Tulis dua bacaan berkurungan.
Tunjukkan jawapan
Biar T = tiket, P = pas, S = kakitangan. Bacaan 1: (T AND P) OR S. Bacaan 2: T AND (P OR S). Uji T = 0, P = 0, S = 1: bacaan 1 memberi 1, bacaan 2 memberi 0, maka keduanya berbeza.
2. “Tidak panas dan lembap.” Berikan dua bacaan dan satu kes yang menjadikan keduanya berbeza.
Tunjukkan jawapan
Biar H = panas, U = lembap. Bacaan 1: NOT (H AND U). Bacaan 2: (NOT H) AND U. Uji H = 1, U = 0: bacaan 1 memberi NOT 0 = 1. Bacaan 2 memberi 0 AND 0 = 0. Keduanya berbeza.
3. Sebuah menu menyatakan “pilih sup atau salad”. Get manakah yang sepadan dengan maksud, jika anda tidak boleh mengambil kedua-duanya?
Tunjukkan jawapan
XOR, kerana ia ialah 1 hanya apabila tepat satu pilihan dipilih. OR akan menerima kedua-duanya juga.
Ke mana selepas ini?
Tamatkan modul dengan set latihan logik Boolean, yang mencampurkan kelima-lima kemahiran. Kotak pasir penaakulan Python yang selamat membolehkan anda menguji syarat seperti peraturan penggera dengan selamat.
Menukar kata-kata kepada syarat yang tepat ialah kemahiran yang dibimbing oleh guru kami satu contoh pada satu masa dalam tuisyen Computer Science dalam talian satu dengan satu.