#scene.no size-optimized c-compo - Banner ----------------------------------------- Revisjon: 1.0 (2003-09-14) - Lag et program som skriver ut ordene på kommandolinja som stor tekst. - All output skal sendes til stdout. - Fonten skal være eksakt lik som i eksempelet. - Ordene skal komme under hverandre. - Kun ascii-tegn fra og med 32 til og med 126 er gyldige. Tegn som ikke er gyldige skal ikke skrives ut. - Kun de 10 første gyldige tegnene skal skrives ut fra hvert ord. - Linjer skal ikke slutte med mellomrom. - Det er ingen begrensing på antall ord som skal skrives ut. - Terminalen er minst 80 tegn bred. - Programmet (main) skal returnere 0. Generelle regler ---------------- - Koden skal kompilere og kjøre korrekt under gcc3 (Cygwin, OpenBSD, Linux, IRIX, MacOS X) og Microsoft Visual C 6.0 SP5. - Programmet skal fungere både på big- og little-endian-maskiner. - Programmet skal kunne kjøre på hvilken som helst CPU som tilfredstiller resten av reglene. - All output skal sendes til stdout med mindre det spesifisert noe annet - Programmet skal returnere *eksakt* det samme som eksempelprogrammet, også ved feil. Returverdien fra main() skal også være den samme som i eksemplet. - Inline assembler er ikke tillatt. - Programmet skal kompileres slik: - cl program.c (visual c) - gcc program.c -lm -o program (gcc) - Det er ikke lov å kjøre eksterne programmer fra programmet. - Warnings er selvsagt tillatt, og oppfordres. - Hvis det er en konflikt mellom oppførselen definert i reglene og oppførselen i eksempelprogrammet er det eksempelprogrammet som gjelder. Det er fint om folk sier i fra om dette slik at reglene kan bli oppdatert. Optimalisering -------------- - Hvis en funksjon (også main()) skal returnere en verdi kan man *ikke* anta at en manglende return fører til at funksjonen returnerer 0. - Programmet kan anta at globale, uinitaliserte variabler blir initalisert til 0 (pga at de havner i bss). - Programmet kan ikke anta hva uinitialiserte variable på stacken er, og skal heller ikke anta hvilke rekkefølge variabler ligger i (dvs ingen smarte buffer under/overflow-triks). - sizeof(int) = sizeof(void*) = 32 bits Størrelse --------- - Størrelsen på programmet måles i antall bytes c-sourcen er på. Newlines teller som en byte. Deadline -------- - Deadline er søndag 21. september kl 1900, og er forholdsvis absolutt. :) - Alle bidrag skal sendes i mail til geir@bjerke.org. Bidraget skal leveres som .zip, .rar, tar.gz, tar.bz2, .gz eller .bz2 - Navnet på bidraget skal være .c. - Subjektet i mailen skal begynne med "[#scene.no banner compo]" - Bidrag som bryter en eller flere av reglene blir diskvalifisert. Dette her er linje 1024