Linguagens
Por: Shanks Snow • 19/11/2015 • Trabalho acadêmico • 714 Palavras (3 Páginas) • 780 Visualizações
UNIVERSIDADE FEDERAL DE OURO PRETO
Sistema Especialista em Prolog: doação de sangue
MATHEUS MOREIRA DA SILVA 12.2.8427
RAFAEL MARTINS
Sistema Especialista em Prolog
Enunciado
Este trabalho tem como objetivo construir um pequeno sistema especialista, em Prolog,
capaz de responder informações sobre doadores de sangue.
Para tanto, deve-se modelar as relações de compatibilidade sanguínea (predicado
compativel) e de compatibilidade de fator RH (predicado rhcompativel), em Prolog,
definidas pela tabela a seguir:
[pic 1]
A regra principal a ser definida nesta modelagem será:
• podeDoar(X,Y): define que X pode doar sangue para Y se o tipo sanguíneo de X e Y for
compatível, se o fator RH de X e Y for compatível, se X tem idade entre 18 e 65 anos e
se X pesa mais de 50kg.
Você deve definir uma base de dados de teste contendo os seguintes fatos:
1. tipoSanguineo(NOME,TIPO): NOME é o nome do paciente e TIPO é o seu tipo
sanguíneo (a,b,ab,o);
2. fatorRH(NOME,FATOR): NOME é o nome do paciente e FATOR representa o fator RH
positivo (indicado por +) ou negativo (indicado por -);
3. idade(NOME, IDADE): NOME é o nome do paciente e IDADE é um número inteiro
representando a idade do paciente;
4. peso(NOME, PESO): NOME é o nome do paciente e PESO é um número de ponto
flutuante indicando o peso do paciente.
Seu programa deverá possuir um menu que permitirá realizar as seguintes consultas:
1. Quem está apto à doar sangue para alguém?
2. Para quem uma dada pessoa pode doar sangue e de quem tal pessoa pode receber
sangue?
3. Quem possuí determinado tipo sanguíneo?
4. Quem possui fator RH+ ou RH-?
Para a consulta 2, o menu deve permitir que seja inserido o nome da pessoa pelo teclado.
Você pode assumir que todos os nomes serão digitados com uma única palavra em letras
minúsculas.
Seu programa deve ter uma opção para adicionar informações sobre novos doadores em
tempo de execução, guiando o usuário do programa a inserir as informações a partir do
teclado.
Iniciando Aplicação
Para iniciar a interação com o sistema de doação de sangue é necessário fazer a chamada ao predicado ‘menu’, como visto na imagem abaixo:
[pic 2]
O ‘menu’ retornará opções como:
- Adicionar Doador: Adicionar mais doadores a base de dados do sistema.
- Remover Doador: Remoção de um doador da base de dados do sistema.
- Listar: Listas as operações que podem ser realizada com a base de dados.
- Buscar pessoas aptas a doarem.
- Listar possíveis doadores e receptores de um X qualquer.
- Pessoas de determinado tipo sanguíneo.
- Pessoas de determinado RH.
[pic 3]
Estrutura
BASE DE DADOS:
Mapeamento da tabela foi feito como podemos ver abaixo.
[pic 4]
Seguindo a premissa do quadro Doadores/Receptores.
Para a inserção e remoção de dados durante a execução do programa tivemos de utilizar do ‘dynamic’ ele nos permite alterar nossas base de dados de acordo com nossas necessidades com o programa em execução, tendo a possibilidade de adicionar ou excluir dados da base de dados. Abaixo se consegue ver exemplos da implementação:
...