Wszyscy wiemy, w jaki sposób dyskusja o tym, który system operacyjny jest najlepszy, wywołała wiele wojen ogniowych. Twoim celem jest teraz dostarczenie decydującego „dowodu”, że twój ulubiony system operacyjny jest lepszy ... ach, nie, znacznie lepiej, dostarczenie decydującego „dowodu”, że inny system operacyjny jest zły.
Zadanie: Napisz program, który wykonuje pewne obliczenia i działa poprawnie na co najmniej jednym systemie operacyjnym, a niepoprawnie na co najmniej innym.
- program powinien wykonać co najmniej kilka obliczeń, więc musi odczytać proste dane wejściowe (najlepiej na standardowym wejściu, lub jeśli z plików, jeśli chcesz, ale niewłaściwe użycie małego endiana / dużego endiana byłoby nie tylko tanie, ale także oczywiste) , i zapewniają pewną moc wyjściową w zależności od danych wejściowych. Obliczenia powinny być znaczące i uzasadnione, na przykład rozwiązanie prawdziwego życia lub problemu matematycznego.
- powinieneś określić oba systemy operacyjne, wskazując, na którym będzie działał poprawnie, a na którym nie. Oba systemy operacyjne powinny być dobrze znane i mniej więcej w tym samym czasie (więc nie ma DOS 1.0 w porównaniu do nowoczesnego systemu operacyjnego). Zaleca się krótki opis przyczyny różnicy (zwłaszcza jeśli podejrzewasz, że wiele osób nie zdaje sobie z tego sprawy) w tagach spoiler.
lubię to
przyczyna różnicy musi być subtelna, więc nie,
#ifdef _WIN32
lub podobna, proszę! Pamiętaj, że Twoim celem jest „udowodnienie”, że ten konkretny system jest zły, więc ludzie nie powinni (natychmiast) dostrzegać twojej sztuczki!jeśli w twoim kodzie jest bardzo dziwna lub bardzo nietypowa część, musisz uzasadnić to w komentarzach, dlaczego tak jest. Oczywiście to „uzasadnienie” może / będzie wielkim kłamstwem.
Punktacja:
To nie jest golf! Kod powinien być dobrze zorganizowany i prosty. Pamiętaj, że Twoim celem jest ukrywanie w nim błędu, aby ludzie go nie podejrzewali. Im prostszy kod, tym mniej podejrzliwy.
Zwycięzca zostanie wyłoniony w drodze głosowania. Najwięcej głosów po około 10 dniach od pierwszego ważnego zgłoszenia wygrywa. Ogólnie rzecz biorąc, odpowiedzi, w których kod jest łatwy do odczytania i zrozumienia, ale błąd jest dobrze ukryty, a nawet jeśli zostanie wykryty, można przypisać błędowi, a nie złośliwości, należy głosować. Podobnie, powinno być warte znacznie więcej, jeśli błąd powoduje tylko niepoprawny wynik, a nie tylko powoduje awarię programu lub nic nie robi.
Jak zwykle odmawiam sobie prawa wyboru odpowiedzi jako zwycięzcy, jeśli nie będzie ona wyższa niż 10% lub 1 punkt poniżej tej z największą liczbą głosów, według dowolnych subiektywnych kryteriów.
make (1)
działa poprawnie na zasadniczo każdym pudełku unixowym i nieprawidłowo na niektórych oknach Windows. Nie z powodu systemów operacyjnych, ale z powodu systemów plików. Każdy system plików, który utrzymuje daty modyfikacji plików z niską precyzją, może nie działaćmake
poprawnie na szybkim komputerze.