Operator dan Ekspresi Logika
Operator dan Ekspresi LOGIKA
Fortran memiliki lima operator LOGICAL yang hanya dapat digunakan dengan ekspresi yang hasilnya adalah nilai logika ( yaitu , .TRUE. atau .FALSE. ). Semua operator LOGICAL memiliki prioritas lebih rendah daripada operator aritmatika dan relasional . Oleh karena itu, jika suatu ekspresi melibatkan operator aritmatika, relasional, dan logika, operator aritmatika dievaluasi terlebih dahulu, diikuti oleh operator relasional, diikuti oleh operator logika.
Lima operator logika ini adalah
.TIDAK. : tidak logis
.DAN. : logis dan
.ATAU. : logis atau
.EQV. : kesetaraan logis
.NEQV. : logika bukan kesetaraan
Tabel Kebenaran
Evaluasi ekspresi logika ditentukan oleh tabel kebenaran. Mari kita mulai dengan operator .NOT.
Perhatikan bahwa .NOT. adalah operator unary. Oleh karena itu, .NOT. a menghasilkan .TRUE. ( resp. , .FALSE. ) jika nilai variabel LOGICAL a adalah .FALSE. ( resp. , .TRUE. )
Oleh karena itu, hasil ekspresi logika a .AND. b adalah .TRUE. jika dan hanya jika kedua operan a dan b adalah .TRUE. . Dalam semua kasus lainnya, hasilnya selalu .FALSE.
Oleh karena itu, hasil ekspresi logika a .OR. b adalah .FALSE. jika dan hanya jika kedua operan a dan b adalah .FALSE. . Dalam semua kasus lainnya, hasilnya selalu .TRUE. Dengan kata lain, jika salah satu dari dua operan operator .OR. adalah .TRUE. , hasilnya adalah .TRUE.
Oleh karena itu, hasil ekspresi logika a .EQV. b adalah .TRUE. jika dan hanya jika kedua operan a dan b memiliki nilai yang sama ( yaitu , keduanya .TRUE. atau keduanya .FALSE. ). Seperti yang disebutkan dalam ekspresi relasional , operator relasional hanya dapat membandingkan nilai aritmatika dan tidak dapat digunakan untuk membandingkan nilai logika. Untuk membandingkan apakah dua nilai logika sama, gunakan .EQV.
Oleh karena itu, hasil ekspresi logika a .NEQV. b adalah .TRUE. jika dan hanya jika kedua operan a dan b tidak memiliki nilai yang sama. Seperti disebutkan dalam ekspresi relasional , operator relasional hanya dapat membandingkan nilai aritmatika dan tidak dapat digunakan untuk membandingkan nilai logika. Untuk membandingkan jika dua nilai logika tidak sama, gunakan .NEQV. Perhatikan bahwa .NEQV adalah kebalikan dari .EQV. . Oleh karena itu, untuk menguji apakah variabel logika x dan y memiliki nilai yang berbeda, seseorang dapat menggunakan .NOT. (x .EQV. y) . Di sini, jika x dan y memiliki nilai yang sama, x .EQV. y adalah .TRUE. dan .NOT. (x .EQV. y) adalah .FALSE. Di sisi lain, jika x dan y memiliki nilai yang berbeda, x .EQV. y adalah .FALSE. dan .NOT. (x .EQV. y) adalah .TRUE.
Prioritas
Prioritas .NOT. adalah yang tertinggi, diikuti oleh .AND. , diikuti oleh .OR. , diikuti oleh .EQV. dan .NEQV. Perhatikan bahwa .NOT. bersifat asosiatif kanan, sedangkan empat lainnya bersifat asosiatif kiri.
Assignments
Hasil dari ekspresi logika dapat ditetapkan ke dalam variabel LOGICAL . Perhatikan bahwa hanya nilai logika yang dapat dimasukkan ke dalam variabel LOGICAL . Penugasan berikut menyimpan hasil dari contoh ke dalam variabel LOGICAL :
Dengan demikian, Result1 , Result2 , Result3 , dan Results masing-masing menerima .FALSE. , .FALSE. , .TRUE., dan .FALSE.
Komentar
Posting Komentar