Programozó versenyek

Magas szintű programozási nyelvek 2, 2018. március 21., Sz16 ZH

2018. március 21. 16:00 – 2018. március 21. 17:55

Kielégíthető formulák (Java)

Sajnos a logikai kifejezések kiértékelése nem mindenkinek megy olyan könnyen, mint amennyire szeretné. Sokan úgy próbálnak készülni a soron következő dolgozatra, hogy memorizálják egy-egy sokszor látott kifejezés értékét.

Írjon programot, amely a standard bemenetről állományvégjelig (EOF-ig) több tesztesetet olvas be! Egy teszteset első sorában egy

x Y x

felépítésű logikai formula (kifejezés) szerepel, ahol Y egy logikai konstanst (operátort), x pedig egy nemlogikai konstanst (operandust) jelöl. Az operandusokat a nevükkel (egy-egy sztring) adjuk meg, az operátor pedig minden esetben a következő logikai konstansok egyike: & (és), | (megengedő vagy), > (implikáció), = (ekvivalencia). A teszteset ezután egy vagy több olyan sorral folytatódik, amelyben megadjuk a két nemlogikai konstans értékét (egy interpretációját). A hamis értéket a 0, míg az igaz értéket az 1 karakter jelöli.

A programja írja a standard kimenetre az egyes tesztesetekhez tartozó logikai kifejezést, majd pedig a megadott interpretációk szerinti értékét! A pontos formátumot lásd a példa be- és kimeneten!

Példa bemenet

  1. a & b
  2. 0 0
  3. 0 1
  4. a | b
  5. 0 1
  6. a > b
  7. 1 0
  8. a = b
  9. 1 1
  10. 1 0
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. a & b
  2. 0
  3. 0
  4. a | b
  5. 1
  6. a > b
  7. 0
  8. a = b
  9. 1
  10. 0
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.