Desafio você a escrever um código para criar um diagrama de portas lógicas (estendido) de arte ASCII para a forma da soma dos produtos de uma equação.
Use a seguinte notação para representar portões:
E INPUT───|&&
|&&───OUTPUT
INPUT───|&&
OU
INPUT───|OR
|OR───OUTPUT
INPUT───|OR
Portões com mais de 2 entradas
INPUT───|OR
|OR
INPUT───|OR───OUTPUT
|OR
INPUT───|OR
NÃO
INPUT───│>o───OUTPUT
Conjunto de caracteres
Observe que │
não é um sinal de canal ASCII, mas um caractere de desenho de caixa . Use caracteres de desenho de caixa, como ─ │ ┌ ┐ └ ┘
para conexões.
Exemplo
Entrada A'*B'+B*C
Resultado
A────│>o────│&&
│&&─────┐
B────│>o────│&& └│OR
│OR─────A*B+B*C
B───────────│&& ┌│OR
│&&─────┘
C───────────│&&
Vencedora
O vencedor é a resposta com mais votos positivos em 5 dias
popularity-contest
ascii-art
Mukul Kumar
fonte
fonte
─ │ ┌ ┐ └ ┘
. Eu acho que você está se referindo ao conjunto de caracteres do MS-DOS . Além disso, seu exemplo não deveria ter uma únicaB
entrada dividida entre os dois portões AND? E podemos supor que não haverá necessidade de cabos cruzarem qualquer lugar?─│
em vez de─┤
.Respostas:
C ++ 11
Feito finalmente. E isso me levou a maior parte do dia.
Antes de listar o código e a amostra de saída, algumas notas rápidas:
Coisas que este programa suporta
Coisas que este programa não suporta
char
buffer bidimensional .Código
Saída de amostra
Saída de amostra (com CP437 ativado)
fonte
#include <vector>
C ++
Ufa! Feito em 1 dia 12 horas !!!
Esse código lida apenas com matriz
ENTRADA (TIPOS)
Somente adição de termos com duas variáveis multiplicando
Pode lidar com qualquer número de termos, variáveis.
CÓDIGO: -
RESULTADO
fonte