Po drátě 4: Řešení úlohy č. 8

V prohlížeči vidíme na stránce pozadí s fotografií slečny děrovačky se strojem děrovačkou. Na děrovačce (stroji) leží položený zpola vyděrovaný děrný štítek. Po kliknutí (a podržení myši) na čísla v pravém horním rohu se zobrazí děrné štítky této úlohy.

První úkol je tedy přečíst děrné štítky. Na to je uzpůsobený HTML kód stránky - veškerá grafika je pečlivě v CSS, aby zdrojový kód samotný byl triviálně převoditelný (např. sed-em) na štítky v ASCII, vhodné pro další zpracování. Heslo 'Punched Card' na wikipedii obsahuje jak popis štítků i s kódováním základní abecedy a s ukázkovou fotografií skutečného štítku. Z fotografie lze tak odvodit i kód pro závorky, rovnítko a plus. Zbylých několik znaků (asi 3) se dá buď uhodnout nebo nalézt stránky popisující kódování podrobněji. Jelikož se v historii používalo na štítcích kódováni více, HTML stránka obsahuje komentář "EBCD variant", aby nebylo pochyb, které kódování hledat.

Druhý úkol je zjistit, co je výsledný text zač:

      PROGRAM HESLO                                                     PRG 001
      CHARACTER P(6)                                                    PRG 002
      READ(*,'(6A,3(X,I1))') P, I, K, N                                 PRG 003
   10 P(I) = CHAR( N - I + ICHAR( P(I) ) )                              PRG 004
      I = I + K                                                         PRG 005
   20 IF (I-6) 10,40,30                                                 PRG 006
   30 I = I - 6                                                         PRG 007
      GOTO 20                                                           PRG 008
   40 WRITE(*,*) P                                                      PRG 009
      STOP                                                              PRG 010
      END                                                               PRG 011
APDVBM 6 5 4                                                            DTA 001
Ze stejné stránky na wikipedii se dočteme významy některých speciálních sloupců, např. že posledních 8 sloupců se používalo jako identifikátor štítku (tj. neobsahoval data). Bylo to výhodné např. v situaci vysypané krabice na schodech. My vidíme, že prvních 11 karet tvoří program (PRG 001-011) a poslední obsahuje data. Program je v jazyce (i verzi) tehdy používané: Fortran 66. Po přeložení se mlčky ptá na vstup. Pokud mu odpovíme obsahem posledního štítku ('APDVBM 6 5 4'), vrati heslo DREVAK.

Komentář

Po osmdesátých letech v minulém Po drátě (ZX Spectrum) nešlo odolat pokušení vytvořit úlohu z let sedmdesátých. Co bude asi příště?

Autorem úlohy je Milan a moc si vyhrál jak s pátráním v historii (konzultoval úlohu i s pamětníky), tak s CSS.

Re: Po drátě 4: Řešení úlohy č. 8 JS (18. 11. 2009 - 15:15) Sbalit(1)
Hezke. :-) Jako mainframe programator to ocenuji, ale COBOL by byl stylovejsi.
Re: Po drátě 4: Řešení úlohy č. 8 Akres (12. 11. 2010 - 16:06) Sbalit(3)
No jakože pěkné pěkné lidičky :D ale takový dotaz. Jak to přeložím? Překlad se mi zasekne na tom posledním řádku a odmítá jít dál
Re: Po drátě 4: Řešení úlohy č. 8 Liskni_si (12. 11. 2010 - 16:08) Sbalit(1)
Poslední řádek jsou vstupní data, ten do zdrojáku nepiš.
Re: Po drátě 4: Řešení úlohy č. 8 rainbof (12. 11. 2010 - 16:09) Sbalit(1)
ehm. hele nejsi trosku spozdeny ? nebo mi neco uteklo ?

Dne 12. listopadu 2010 16:06 Akres <diskuse@podrate.cz> napsal(a):

> No jakože pěkné pěkné lidičky :D ale takový dotaz. Jak to přeložím? Překlad
> se mi zasekne na tom posledním řádku a odmítá jít dál