Ta łamigłówka programowa jest inspirowana innym pytaniem, które zostało tu zadane wczoraj, ale które zostało usunięte przez autora ...
Wyzwanie:
Utwórz wykonywalny plik binarny (plik binarny Windows .EXE lub Linux) za pomocą Visual C # (lub ulubionego C # IDE), który wypisuje następujący tekst na standardowe wyjście:
Main() is the main method of C# programs!
... bez użycia 4 kolejnych liter MAIN pojawiających się w dowolnym pliku źródłowym!
Uwagi:
- Jeśli twój kod źródłowy zawiera tekst
remainder
(na przykład), zawiera 4 kolejne litery GŁÓWNE, jednak jeśli zawieramxain
4 litery, nie będzie kolejnych, więcmxain
byłoby to dozwolone. Nie wolno uruchamiać żadnych programów poza C # IDE ani zmieniać ustawień C # IDE w celu uruchamiania innych programów (ale tych, które normalnie działałoby, takich jak kompilator C #).
W przeciwnym razie możesz po prostu powiedzieć: „Piszę program Pascal za pomocą C # IDE i wywołuję kompilator Pascal w krokach„ wstępnej kompilacji ”mojego projektu C #”.
To byłoby zbyt proste.
Użytkownicy IDE, które można rozszerzać za pomocą „wtyczek” (lub podobnych) lub którzy mają wbudowane edytory plików binarnych (edytory szesnastkowe), mieliby zbyt dużą przewagę nad użytkownikami innych IDE C #.
Dlatego te pióra nie powinny być również używane.
- Używanie innych edytorów innych niż ASCII (takich jak edytor okien dialogowych) jest wyraźnie dozwolone!
- Użytkownik zadający oryginalne pytanie zaproponował użycie odwrotnego ukośnika w nazwach funkcji w następujący sposób:
static void M\u0061in()
Ponieważ odpowiedź ta została już odczytana przez innych użytkowników, nie będzie już akceptowana! - Użytkownik zapytał, czy można po prostu wpisać plik .EXE do edytora kodu źródłowego i zapisać plik jako „.exe” zamiast „.cs”. Odpowiedź: Nie wątpię, że jest to możliwe, ponieważ zarówno prawidłowe pliki binarne systemu Windows, jak i Linux zawierają bajty NUL. Jeśli jednak znajdziesz poprawny plik binarny, który można utworzyć w ten sposób, masz prawidłowe rozwiązanie.
Nazwa tej strony to „Programowanie łamigłówek i Code Golf” - jest to „Programming Puzzle”, a nie „Code Golf”: Wyzwaniem jest znalezienie działającego rozwiązania przed wszystkimi innymi użytkownikami, a nie znalezienie rozwiązania krótszego niż wszystkie inne rozwiązania.
Dlatego wygrywa pierwszy post opisujący działające rozwiązanie !
Powodzenia!
Nawiasem mówiąc: Mam rozwiązanie działające pod Visual C # Express 2010.