Standaryzowane testy zwykle zawierają skan-tron lub jakiś dokument odpowiedzi, który rejestruje twoją odpowiedź. Komputer lub człowiek sprawdzi następnie twoje odpowiedzi i określi twoją ocenę. Więc tutaj, biorąc pod uwagę skan-tron i klucz odpowiedzi, określ wynik i pominięte pytania, jeśli takie istnieją. Scan-tron to tylko dokument z wieloma liniami z odpowiedziami, w których użytkownik wypełnia (w tym przypadku jest zakreślony). Przykład:
---
1. |a| b c d
---
Jak widać, jest to pytanie 1 z a
wybraną opcją odpowiedzi, ponieważ ma wokół niego ramkę. Na wyzwanie, zostanie podana do Scan-tron z n
pytań ( 1 <= n <= 10
) tylko cztery odpowiedzi oznaczone jako a
, b
, c
, lub d
. Klucz odpowiedzi zostanie podany jako ciąg bez spacji i małymi literami. Przykładowy scan-tron z kluczem odpowiedzi:
Scan-tron
---
1. |a| b c d
---
---
2. a |b| c d
---
---
3. a b |c| d
---
Answer Key
abb
Możesz pobrać klucz odpowiedzi i scan-tron jako osobne dane wejściowe lub w wybranej kolejności, o ile można je zidentyfikować (tzn. Klucz odpowiedzi jest oddzielony od scan-tron). Wyniki zostaną zaokrąglone do najbliższej dziesiątej punktu. Przykładowe dane wyjściowe dla powyższego:
Score: 66.7
Missed #: 3
Inną możliwą do przyjęcia odpowiedzią byłoby:
66.7
3
lub jeśli pominięto wiele pytań
66.7
3 4 5
tak długo, jak numery pytań dla pominiętych są oddzielone spacjami i nie znajdują się w tym samym wierszu co wynik.
Zasady i specyfikacje
- Scan-tron może być wprowadzany jako ciąg wieloliniowy lub jedno pytanie na raz (dopuszczalny jest ciąg z nowymi liniami)
- Biorąc pod uwagę scan-tron i klucz odpowiedzi, musisz wypisać wynik w jednej linii, a pytanie (pytania) pominięte w drugiej, z liczbami oddzielonymi spacjami. Jeśli nie pominięto żadnych pytań, nie należy wypisywać numerów pytań
- Wyniki są zaokrąglane do najbliższej dziesiątej
Wybrane odpowiedzi są otoczone tym polem:
--- | | ---
- W skanowanym tronie każde pytanie zajmuje trzy spacje (góra i dół ramki zajmują dwie dodatkowe linie)
- Musi działać w powyższym przykładzie
- Załóżmy, że zawsze będzie tylko jedna odpowiedź w ramce
Zwycięskie kryteria
Najkrótszy kod wygrywa!
50
zaakceptowania, czy musi być50.0
?Odpowiedzi:
05AB1E , 43 bajty
Wypróbuj online!
Wyjaśnienie
źródło
Skumulowane , 68 + 1 = 69 bajtów
Wypróbuj online! +1 dla
-p
flagi (ten skrypt można wykonać jakostacked -pe "..."
)Pobiera dwa wejścia z góry stosu.
Kilka interesujących funkcji:
Daje to wszystkie litery otoczone rurami.
To daje nam wszystkie nieprawidłowe numery pytań.
źródło
Python 2 ,
9493 bajty-1 bajt dzięki L3viathan
Wypróbuj online!
źródło
100.
przez1e2
Pip ,
4946444845 bajtówUgh, to zaokrąglanie zajmuje tyle bajtów ... 44 bajtów kodu, +1 dla
-s
flagi.Pobiera dane wejściowe jako argumenty wiersza poleceń (strona scan-tron będzie wymagać cytowania i zmiany znaczenia nowych linii, jeśli uruchomisz ją z rzeczywistego wiersza poleceń). Najpierw wysyła pominięte pytania, a następnie wynik. Wypróbuj online!
Wyjaśnienie
Zrobię to w dwóch częściach: lista nieprawidłowych pytań i wynik.
źródło
JavaScript (ES6), 88 bajtów
Mógłbym zapisać 5 bajtów, używając przecinków i zwracając wszystko w jednym wierszu:
źródło
Partia, 242 bajty
Najpierw wczytuje klucz odpowiedzi na STDIN, a następnie
n*3
wiersze pytań. Uwaga: Wynik jest drukowany bez wiodącego zera, jeśli jest mniejszy niż1.0
. Nieodebrane odpowiedzi są drukowane z wiodącą spacją.źródło
CJam ,
4745 bajtówWypróbuj online!
Wyjaśnienie
Program składa się z trzech głównych części:
Po tej sekcji mamy tablicę
0
s i1
s, gdzie0
oznacza złą odpowiedź i1
właściwą odpowiedź.Po tej sekcji stos zawiera tylko listę dobrych / złych, a wynik procentowy został wyprowadzony.
źródło
Jolf, 46 bajtów
Nie mogę złamać 46 bajtów. Mam dwa rozwiązania tej długości. Wypróbuj tutaj!
(Wymienić
□
z0x7f
w następnym)W obu przypadkach 15 bajtów dla zaokrągleń:
mX*~1/-lζlγlζ_1
. Są one w większości takie same, z wyjątkiem tego, że jeden używa dopasowania wyrażenia regularnego, aby uzyskać wyniki, a drugi dzieli na potokach.źródło