Projeto I - Método da Resolução

O Projeto é um programa que aplica o Método da Resolução em Expressões bem-formadas. Para tal, haverá a necessidade que seu programa verifique se a expressão de entrada está na FNC e se todas as cláusulas são de Horn. É garantido que as expressões serão bem-formadas.

O programa poderá ser feito nas linguagens Python, C, C++ ou Java.

O programa deve ser entregue compilando, portanto, antes de enviar teste-o nas máquinas do CIn.

O projeto deve ser entregue em uma única classe com o nome "Resolucao.xx" (onde xx corresponde à linguagem que você usará) por e-mail para o seu monitor, com o assunto:
[Resolucao] - login  (onde login corresponde ao login do aluno no CIn).

Este exercício é individual. Qualquer tentativa de fraude ou cópia será punida com uma nota 0 (ZERO) para ambos os infratores.

O prazo de entrega do projeto é ATÉ as 23h59 do dia 11 de junho de 2017. A data de entrega não será prorrogada.


Detalhes

■ Quanto aos operadores:   

Operador Lógico Caracter Utilizado
OU +
E .
IMPLICAÇÃO >
NOT -

Só serão utilizados os operadores acima.

■ Quanto às variáveis:

Só serão utilizadas 4 (quatro) variáveis

a b c d

■ Quanto aos parênteses:

Operador Unário
Operador Binário
-a (a>b)
-(a+b) (a+"sub-expressão")
(-a+-b) ("sub1"."sub2")

É garantido que todas as cláusulas serão cercadas por parênteses, mesmo que ela seja apenas um literal.

■ Quanto à Entrada/Saída

Nome do arquivo: "Resolucao.xx" 

Entrada: Nome do arquivo "Expressoes.in"

Contem várias expressões que serão avaliadas.
A 1ª linha da entrada será um número n, indicando quantas expressões precisarão ter suas entradas avaliadas. Logo a seguir teremos n linhas, onde cada uma possuirá uma expressão, sem espaçamento, que será a expressão a ser avaliada, conforme as regras explicitadas anteriormente. É garantido que todas as expressões são bem-formadas e, consequentemente, possuem resposta e que cada expressão possuirá menos que 1000 caracteres. O aluno que não seguir as especificações dadas perderá 0,5 durante a correção, portanto prestem atenção aos nomes dos arquivos!!!

Saída: Nome do arquivo "Expressoes.out"

Para cada caso de teste imprima uma linha contendo "caso #x", onde x indica o número de caso de teste, iniciando de '1'. Na mesma linha, imprima a resposta como "satisfativel" ou "insatisfativel". Se a entrada não estiver na Fórmula Normal Conjuntiva, imprima "nao esta na FNC" e passe para a próxima expressão. Se a entrada não estiver de modo que todas as cláusulas são de Horn, imprima "nem todas as clausulas sao de horn" e passe para a próxima expressão.

Exemplo

Arquivo: "Expressoes.in"

6
(a+-b).(b+-c).(-a).(-c)
(a+-b).(-a).(b+c)
(a+-b).(-a).(b)
(a+(a.b)).(a)
(a+a+a)
(a.b).(c)

Arquivo: "Expressoes.out"

caso #1: satisfativel
caso #2: nem todas as clausulas sao de horn
caso #3: insatisfativel
caso #4: nao esta na FNC
caso #5: nem todas as clausulas sao de horn
caso #6: nao esta na FNC
{cursor aqui}




Dúvidas Frequentes

Do pacote java.util somente poderão ser utilizadas as classes Vector, ArrayList e Scanner.

Do pacote java.io somente poderão ser utilizadas as classes BufferedWriter, FileWriter, BufferedReader e FileReader.

De C/C++ somente poderão ser utilizadas as bibliotecas cstdio, cstdlib, iostream, string, cstring, vector.

A saída deve ser exatamente como está demonstrada na especificação.

Não haverá nenhum acento nem ponto na saída.

Não haverá espaços no meio da expressão, logo não é necessário o uso do readLine(). Em vez disso, pode-se utilizar o readString().


Obs:Todo o projeto deve ser entregue em uma única classe. É permitido o uso da classe Arquivo de Algoritmos, contanto que o seu monitor seja avisado no e-mail de envio do projeto.

Boa sorte a todos.

Qualquer dúvida mandem por e-mail para os monitores.

Referências: Google Code Jam




Copyright © 2010 - Designed by Marcelo Frota