Feladat: I.328 Korcsoport: - Nehézségi fok: -
Füzet: 2013/október, 420 - 421. oldal  PDF  |  MathML 

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

Egy bűntény felderítése során a detektív sorra hallgatja ki a tanúkat. A detektív segítőjeként az a feladatunk, hogy megállapítsuk, van-e a kijelentések között ellentmondás.
A feladat megoldásához programot készítünk, amelynek természetesen nem mondatokat, hanem az angol ábécé első 10 betűjéből és logikai műveletekből álló kifejezéseket kell feldolgoznia. A logikai kifejezés leírása során a nem, az és, a vagy és az implikáció műveleteket használjuk, amelyeket rendre a ., &, |, > karakterekkel jelöljük. A műveletek végrehajtási sorrendje a matematikában és informatikában szokásos, melyet zárójelezéssel módosíthatunk.
A bemeneti fájlban soronként egy-egy kifejezés van, mindegyik valamelyik tanú által mondott igaz állítás. A kimeneti fájl első sorában annak a sornak a száma van, amelyben szereplő kijelentés ellentmondásban van a korábbiakkal. Ha nincs ellentmondás, az első sorba a 0 kerül.

 
BemenetKimenet  A&B   3   A|B   .A   A>B
 

A program első parancssori argumentuma a bemeneti fájl neve, a második paraméter pedig a kimeneti fájl neve legyen.
Beküldendő a program forráskódja (i328.pas, i328.cpp, ...), valamint a program rövid dokumentációja (i328.txt, i328.pdf, ...), amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztő környezetben fordítható.