Wzywam was do napisania kodu, aby stworzyć (rozszerzony) schemat bramki logicznej ASCII-art dla sumy produktów w postaci równania.
Użyj następującej notacji do przedstawienia bramek:
I INPUT───|&&
|&&───OUTPUT
INPUT───|&&
LUB
INPUT───|OR
|OR───OUTPUT
INPUT───|OR
Bramy z więcej niż 2 wejściami
INPUT───|OR
|OR
INPUT───|OR───OUTPUT
|OR
INPUT───|OR
NIE
INPUT───│>o───OUTPUT
Zestaw znaków
Zauważ, że │
nie jest to znak potoku ASCII, ale znak rysunkowy . Użyj znaków rysunkowych, takich jak ─ │ ┌ ┐ └ ┘
połączenia.
Przykład
Wejście A'*B'+B*C
Wynik
A────│>o────│&&
│&&─────┐
B────│>o────│&& └│OR
│OR─────A*B+B*C
B───────────│&& ┌│OR
│&&─────┘
C───────────│&&
Zwycięzca
Zwycięzca jest odpowiedzią, która uzyska najwięcej głosów w ciągu 5 dni
popularity-contest
ascii-art
Mukul Kumar
źródło
źródło
─ │ ┌ ┐ └ ┘
. Myślę, że masz na myśli zestaw znaków MS-DOS . Ponadto, czy twój przykład nie powinien miećB
rozdzielonego pojedynczego wejścia między dwiema bramkami AND? Czy możemy założyć, że nie będzie potrzeby krzyżowania przewodów w dowolnym miejscu?─│
zamiast─┤
.Odpowiedzi:
C ++ 11
W końcu zrobione. Zajęło mi to tylko większość dnia.
Zanim wymienię kod i przykładowe dane wyjściowe, kilka krótkich notatek:
Funkcje obsługiwane przez ten program
Czego ten program nie obsługuje
char
bufor.Kod
Próbka wyjściowa
Przykładowe dane wyjściowe (z włączonym CP437)
źródło
#include <vector>
C ++
Uff! Sporządzono w 1 dzień 12 godzin !!!
Ten kod obsługuje tylko tablicę
WEJŚCIE (TYPY)
Tylko dodanie wyrażeń z mnożeniem dwóch zmiennych
Obsługuje dowolną liczbę terminów, zmiennych.
KOD :-
WYNIK
źródło