Mystery Code

Tutorials.at
Verfügbare Informationen zu "Mystery Code"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: DrPhil_Guth - exbs - vpascal - Moritz
  • Forum: Tutorials.at
  • Forenbeschreibung: Programmierforum
  • aus dem Unterforum: Off-Topic
  • Antworten: 15
  • Forum gestartet am: Mittwoch 19.04.2006
  • Sprache: deutsch
  • Link zum Originaltopic: Mystery Code
  • Letzte Antwort: vor 16 Jahren, 4 Monaten, 22 Tagen, 21 Stunden, 44 Minuten
  • Alle Beiträge und Antworten zu "Mystery Code"

    Re: Mystery Code

    DrPhil_Guth - 28.05.2007, 19:39

    Mystery Code
    Hi!
    ein kleines "schmankerl" für alle C- Programmierer.

    Glaubt ihr, dass dieser code kompiliert werden kann?

    Code: #include <stdio.h>

    main(t,_,a)
    char *a;
    {return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
    main(-86, 0, a+1 )+a)):1,t<_?main(t+1, _, a ):3,main ( -94, -27+t, a
    )&&t == 2 ?_<13 ?main ( 2, _+1, "%s %d %d\n" ):9:16:t<0?t<-72?main(_,
    t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+\
    ,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/\
    +k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){n\
    l]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#\
    n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \
    ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\
    #'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")
    :t<-50?_==*a ?putchar(a[31]):main(-65,_,a+1):main((*a == '/')+t,_,a\
    +1 ):0<t?main ( 2, 2 , "%s"):*a=='/'||main(0,main(-61,*a, "!ek;dc \
    i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}

    Nein, nie, nicht und auf keinen Fall? Lasst euch überraschen...
    verwendeter compiler:
    gcc



    Re: Mystery Code

    exbs - 29.05.2007, 17:20


    LOL ... is das nen easteregg oda wie :D!?

    wo haste das her?



    Re: Mystery Code

    DrPhil_Guth - 29.05.2007, 18:12


    Also gefunden hab ichs hier:
    http://www.cs.cf.ac.uk/Dave/C/node4.html#SECTION00410000000000000000

    Aber ich glaub das ist nicht von der seite. Das ist glaub ich ein recht bekannter code vom "obfuscated code contest", bei dem man da HERAUSLESEN sollte, was das für ne ausgabe gibt.
    Es gibt nen link, aber der geht nicht mehr.

    Ich hab das auch mal unter "xmas.c" oder sowas gefunden.



    Re: Mystery Code

    exbs - 29.05.2007, 22:05


    Ich finde den code beeindruckend.

    Kann ich vorher nicht rauslesen, was da drin steht.

    du etwa ?



    Re: Mystery Code

    DrPhil_Guth - 29.05.2007, 23:53


    nein, aber ich glaub ich werd das zu meiner lebensaufgabe machen :)

    Man darf sich nur nicht abschrecken lassen, das ist genau das was der programmierer wollte. An dem Festhalten, was man kennt, dann müsste es gehn. Ich vermute allerdings dass da ein paar "syntaktische exoten" drinnen sind, von denen noch nie jemand was gehört hat. Des weiteren vermute ich dass die ganzen '#' zeichen nur zur abschreckung dienen
    Übrigens, mit nem editor mit syntaxhilighting gehts etwas leichter.

    Also was auffällt:
    -Die main Funktion hat 3 Parameter (blau) Das beschäftigt mich am meisten...
    -Die main Funktion wird ziemlich oft aufgerufen, (auch rekursiv), was klarmacht woher die wiederholungen kommen. (grün)
    -Das Programm macht sehr viel gebrauch vom folgendem konstrukt (kA wies heißt): (bedingung) ? rueckgabe_1 : rueckgabe_2 (werd ich nicht markieren, bitte selber schauen ;) )
    -Es gibt genau zwei ausgaben, bei denen offensichtlich printf und puts aufgerufen werden (putchar is auch drinnen): (rot)

    -Herzstück des ganzen ist ein riesengroßer String. (oliv)

    -Fakt ist auch, dass der Programmierer ein Rad ab hatte :lol:

    #include <stdio.h>

    main(t,_,a)
    char *a;
    {return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
    main(-86, 0, a+1 )+a)):1,t<_?main(t+1, _, a ):3,main ( -94, -27+t, a
    )&&t == 2 ?_<13 ?main ( 2, _+1, "%s %d %d\n" ):9:16:t<0?t<-72?main(_,
    t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+\
    ,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/\
    +k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){n\
    l]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#\
    n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \
    ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\
    #'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")
    :t<-50?_==*a ?putchar(a[31]):main(-65,_,a+1):main((*a == '/')+t,_,a\
    +1 ):0<t?main ( 2, 2 , "%s"):*a=='/'||main(0,main(-61,*a, "!ek;dc \
    i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}

    Ich glaub wenn ich das nächste mal zuviel zeit habe, lass ich das ding mal durch nen debugger (mit gaaaaannnzz vielen Breakpoints) laufen. :)



    Re: Mystery Code

    DrPhil_Guth - 30.05.2007, 02:01


    Hier, falls noch wer interessiert ist:
    http://www.de.ioccc.org/

    Da gibts code, den gibts gar nicht...

    bei manchem fragt man sich einfach nur... WTF??? :shock:



    Re: Mystery Code

    vpascal - 30.05.2007, 10:50


    Ich hab mir grad den gcc compiler für windows runtergeladen... Nur was muss ich öffnen, um irgendwo den Code einzufügen (tippen)???



    Re: Mystery Code

    DrPhil_Guth - 30.05.2007, 11:41


    Den editor öffnen, code markieren, strg+c, in den editor klicken, strg+v.
    Dann den code irgendwo abspeichern, und dann in der kommandozeile mit gcc -o name dateiname.c kompilieren.



    Re: Mystery Code

    vpascal - 30.05.2007, 12:41


    Nun, ich habe ja windows und irgendwie klappt das nicht...



    Re: Mystery Code

    vpascal - 30.05.2007, 12:59


    Naja, ich hab jetzt nen compiler, aber wenn ich die erstellte exe Datei öffne, dann blinkt das DOS Fenster nur Kurz auf und das war's...



    Re: Mystery Code

    DrPhil_Guth - 30.05.2007, 13:26


    vpascal hat folgendes geschrieben: Nun, ich habe ja windows und irgendwie klappt das nicht...
    Mit "irgendwie klappt es nicht" kann ich nicht viel anfangen. Sonst könnte ich dir helfen.
    vpascal hat folgendes geschrieben:
    Naja, ich hab jetzt nen compiler, aber wenn ich die erstellte exe Datei öffne, dann blinkt das DOS Fenster nur Kurz auf und das war's...
    Bitte lies Die C++- FAQ, Frage 1



    Re: Mystery Code

    vpascal - 30.05.2007, 13:50


    Ich bas gemacht wie's da steht, nur das problem besteht immernoch. Und ich weiss nicht wie ich das Prog aus der Konsole starten kann :oops:

    Ich bein eigentlich kein pc Noob, ganz im gegenteil, aber mit der konsole kenn ich mich nicht aus.. besondersd die von Windows nicht.



    Re: Mystery Code

    DrPhil_Guth - 30.05.2007, 13:59


    start -> ausführen -> cmd

    das ist die konsole.

    mit cd bewegst du dich in den Verzeichnissen (wenn du einen verzeichnisnamen halb eintippst und dann tab drückst, wird er vervollständigt).
    um ein programm aufzrufen brauchst du einfach nur den programmnamen eingeben. wenn du dich nicht im selben verzeichnis befindest, wie das programm, dann musst du zusätzlich vor dem namen des programms den pfad des programms angeben.



    Re: Mystery Code

    exbs - 30.05.2007, 14:55


    Zitat: Also was auffällt:
    -Die main Funktion hat 3 Parameter (blau) Das beschäftigt mich am meisten...
    -Die main Funktion wird ziemlich oft aufgerufen, (auch rekursiv), was klarmacht woher die wiederholungen kommen. (grün)
    -Das Programm macht sehr viel gebrauch vom folgendem konstrukt (kA wies heißt): (bedingung) ? rueckgabe_1 : rueckgabe_2 (werd ich nicht markieren, bitte selber schauen Winken )
    -Es gibt genau zwei ausgaben, bei denen offensichtlich printf und puts aufgerufen werden (putchar is auch drinnen): (rot)

    -Herzstück des ganzen ist ein riesengroßer String. (oliv)

    -Fakt ist auch, dass der Programmierer ein Rad ab hatte Lachen

    #include <stdio.h>

    main(t,_,a)
    char *a;
    {return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
    main(-86, 0, a+1 )+a)):1,t<_?main(t+1, _, a ):3,main ( -94, -27+t, a
    )&&t == 2 ?_<13 ?main ( 2, _+1, "%s %d %d\n" ):9:16:t<0?t<-72?main(_,
    t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+\
    ,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/\
    +k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){n\
    l]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#\
    n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \
    ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\
    #'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")
    :t<-50?_==*a ?putchar(a[31]):main(-65,_,a+1):main((*a == '/')+t,_,a\
    +1 ):0<t?main ( 2, 2 , "%s"):*a=='/'||main(0,main(-61,*a, "!ek;dc \
    i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}
    Es his im Text ja auch, dass dort nicht nur exotische Sachen sondern auch viele Regelverletzungn drin sein.

    Ich finde auch diesen großen string sehr interessant, der ja nun garnet nach dem aussieht was es zum schluss is.

    der eine parameter von "main" -> a = pointer auf dem "langen" string.

    ab verwirrensten finde ich den "_" ??

    sicher ist es auch hilfreich mal den code richtig zu formatieren.



    Re: Mystery Code

    Moritz - 23.12.2007, 16:22


    toller link!
    http://www.it-academy.cc/article/890/StandardParameter+der+Funktion+main().html



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum Tutorials.at

    C-Programm aus C-Programm starten ??? - gepostet von Stevox am Mittwoch 13.12.2006
    problem mit einer Angabe! - gepostet von niki1 am Montag 14.05.2007
    Tutorial weiterfüheren - gepostet von progger am Sonntag 23.07.2006
    Feststellen, ob taste gedrückt - gepostet von Moritz am Dienstag 16.10.2007
    Moderator - gepostet von matze(2) am Montag 21.08.2006
    Männlich- Weiblich zeichen - gepostet von DrPhil_Guth am Sonntag 23.04.2006



    Ähnliche Beiträge wie "Mystery Code"

    und heute gibts ein paar... - hilde77 (Montag 27.08.2012)
    Code für Buttons - Anonymous (Mittwoch 30.11.2005)
    Pokémon Mystery Dungeon - Sakura (Montag 30.07.2007)
    28. Spieltag - zepy02 (Freitag 01.02.2013)
    code - Elchi (Dienstag 21.08.2007)
    Frage:Freunde Code - Anonymous (Dienstag 29.11.2005)
    De Davinci Code Sakrileg - marvpunk (Mittwoch 07.06.2006)
    Mystery - Mystery (Samstag 23.06.2007)
    Golden Mystery - Golden Mystery (Freitag 24.08.2007)
    Ubuntu beim Summer of Code 2007 - gnomed (Montag 18.06.2007)