Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6426[/thread]

RDW #3 - Rätsel der Woche Nr. 3

Tags: Ähnliche Threads

Leser: 1


<< |< 1 2 3 4 ... 8 >| >> 74 Einträge, 8 Seiten
Crian
 2004-07-23 13:33
#84809 #84809
User since
2003-08-04
5870 Artikel
ModeratorIn
[Homepage]
user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
 RDW #3 - Rätsel der Woche Nummer 3
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Regeln:  * Bitte nicht vor Ablauf der ersten 72 Stunden ( = drei Tage )
~~~~~~~    nach Veröffentlichung Hinweise (Spoiler) oder Lösungen ver-
           öffentlichen!

         * Wenn diese Zeit abgelaufen ist, werde ich einen Thread mit
           passendem Titel erstellen, in dem die Lösungen gepostet werden
           und diskutiert werden können.

         * Die Lösungen sollten nicht nur gepostet, sondern auch an mich
           gemailt werden, damit ich sie testen, "bewerten"  und zu-
           sammenfassen kann.
           Die Adrese dafür lautet:

           crian <---AT---> perl <---MINUS---> community <---DOT---> de

           Im Betreff sollte 'RDW' und die Nummer des Rätsels stehen.
           Hilfreich wäre neben dem Quellcode der Username im Forum
           sowie Perl- und OS-Version, falls Du diese kennst.

         * Verständnisfragen dürfen in diesem Thread gestellt werden, aber
           Tipps und (Teil-) Lösungen sind hier unerwünscht.

         * Ich werde die eingeschickten Programme im Netz zur Verfügung
           stellen, so dass gerade lange Quellcodes nicht (komplett)
           gepostet werden müssen.

         * Zur Verwendung von Modulen: Ich möchte diese nicht generell
           ausschließen, aber wenn quasi die komplette Aufgabe durch
           die Verwendung eines Moduls ersetzt werden kann, ist dies
           vielleicht nicht der Sinn der Aufgabe gewesen.



Aufgabe:  Schreibe eine Funktion hexdump(), die Daten als Hexdump ausgibt.
~~~~~~~~
          Beispiel:

              hexdump("Ich bin Text");

          Erzeugt folgende Ausgabe auf der Konsole:

0000: 49 63 68 20 62 69 6e 20 - 54 65 78 74                Ich bin Text


          Der Aufruf
         
              hexdump(qq~Lorem ipsum dolor sit amet, consectetuer adipiscing
              elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore
              magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis
              nostrud exerci tation ullamcorper suscipit lobortis nisl ut
              aliquip ex ea commodo consequat. Duis autem vel eum iriure
              dolor in hendrerit in vulputate velit esse molestie consequat,
              vel illum dolore eu feugiat nulla facilisis at vero eros et
              accumsan et iusto odio dignissim qui blandit praesent luptatum
              zzril delenit augue duis dolore te feugait nulla facilisi.\n~);

          Erzeugt folgende Ausgabe auf der Konsole:

0000: 4c 6f 72 65 6d 20 69 70 - 73 75 6d 20 64 6f 6c 6f    Lorem ipsum dolo
0010: 72 20 73 69 74 20 61 6d - 65 74 2c 20 63 6f 6e 73    r sit amet, cons
0020: 65 63 74 65 74 75 65 72 - 20 61 64 69 70 69 73 63    ectetuer adipisc
0030: 69 6e 67 20 65 6c 69 74 - 2c 20 73 65 64 20 64 69    ing elit, sed di
0040: 61 6d 20 6e 6f 6e 75 6d - 6d 79 20 6e 69 62 68 20    am nonummy nibh
0050: 65 75 69 73 6d 6f 64 20 - 74 69 6e 63 69 64 75 6e    euismod tincidun
0060: 74 20 75 74 20 6c 61 6f - 72 65 65 74 20 64 6f 6c    t ut laoreet dol
0070: 6f 72 65 20 6d 61 67 6e - 61 20 61 6c 69 71 75 61    ore magna aliqua
0080: 6d 20 65 72 61 74 20 76 - 6f 6c 75 74 70 61 74 2e    m erat volutpat.
0090: 20 55 74 20 77 69 73 69 - 20 65 6e 69 6d 20 61 64     Ut wisi enim ad
00a0: 20 6d 69 6e 69 6d 20 76 - 65 6e 69 61 6d 2c 20 71     minim veniam, q
00b0: 75 69 73 20 6e 6f 73 74 - 72 75 64 20 65 78 65 72    uis nostrud exer
00c0: 63 69 20 74 61 74 69 6f - 6e 20 75 6c 6c 61 6d 63    ci tation ullamc
00d0: 6f 72 70 65 72 20 73 75 - 73 63 69 70 69 74 20 6c    orper suscipit l
00e0: 6f 62 6f 72 74 69 73 20 - 6e 69 73 6c 20 75 74 20    obortis nisl ut
00f0: 61 6c 69 71 75 69 70 20 - 65 78 20 65 61 20 63 6f    aliquip ex ea co
0100: 6d 6d 6f 64 6f 20 63 6f - 6e 73 65 71 75 61 74 2e    mmodo consequat.
0110: 20 44 75 69 73 20 61 75 - 74 65 6d 20 76 65 6c 20     Duis autem vel
0120: 65 75 6d 20 69 72 69 75 - 72 65 20 64 6f 6c 6f 72    eum iriure dolor
0130: 20 69 6e 20 68 65 6e 64 - 72 65 72 69 74 20 69 6e     in hendrerit in
0140: 20 76 75 6c 70 75 74 61 - 74 65 20 76 65 6c 69 74     vulputate velit
0150: 20 65 73 73 65 20 6d 6f - 6c 65 73 74 69 65 20 63     esse molestie c
0160: 6f 6e 73 65 71 75 61 74 - 2c 20 76 65 6c 20 69 6c    onsequat, vel il
0170: 6c 75 6d 20 64 6f 6c 6f - 72 65 20 65 75 20 66 65    lum dolore eu fe
0180: 75 67 69 61 74 20 6e 75 - 6c 6c 61 20 66 61 63 69    ugiat nulla faci
0190: 6c 69 73 69 73 20 61 74 - 20 76 65 72 6f 20 65 72    lisis at vero er
01a0: 6f 73 20 65 74 20 61 63 - 63 75 6d 73 61 6e 20 65    os et accumsan e
01b0: 74 20 69 75 73 74 6f 20 - 6f 64 69 6f 20 64 69 67    t iusto odio dig
01c0: 6e 69 73 73 69 6d 20 71 - 75 69 20 62 6c 61 6e 64    nissim qui bland
01d0: 69 74 20 70 72 61 65 73 - 65 6e 74 20 6c 75 70 74    it praesent lupt
01e0: 61 74 75 6d 20 7a 7a 72 - 69 6c 20 64 65 6c 65 6e    atum zzril delen
01f0: 69 74 20 61 75 67 75 65 - 20 64 75 69 73 20 64 6f    it augue duis do
0200: 6c 6f 72 65 20 74 65 20 - 66 65 75 67 61 69 74 20    lore te feugait
0210: 6e 75 6c 6c 61 20 66 61 - 63 69 6c 69 73 69 2e 0a    nulla facilisi..


          (Diese Aufgabe stammt von Esskar.)

          Ich bitte darum, dass die nicht-Golf-Lösungen folgende Regeln
          beachten:

          1) Falls das Programm mit Parameter gestartet wird, so wird dieser
             als Dateiname interpretiert und das Ergebnis der Funktion
             die den Hex-Dump erzeugt auf STDOUT ausgegeben.
          2) Falls das Programm ohne Parameter gestartet wird, so wird der
             zu hexdumpende Text von STDIN gelesen. Die Ausgabe erfolgt
             wieder nach STDOUT.
          3) Eventuell auszugebende Fehler werden nach STDERR ausgegeben.
          4) Die Form der Ausgabe soll mit obigem Beispiel übereinstimmen
             (falls es nicht irgendwo Tippfehler hat;).
             Um die Ergebnisse vergleichen zu können werde ich die Ausgaben
             maschinell miteinander vergleichen. Dehalb bitte um die
             Einhaltung dieser Regel.
          5) Bitte nennt die Funktion hexdump und nicht irgendwie.
          6) Es wäre schön, wenn die Golflösungen wenigstens die Verarbeitung
             in der Pipe zulassen würden.
          7) Es sollen keine Module verwendet werden (um use strict/warnings
             wird gebeten).

          (Das in 1 und 2 geforderte Verhalten ist durch einfaches Bearbeiten
          des Arrays @inhalt nach

          my @inhalt = <>;

          gegeben.)  


Ich werde heute Abend eine Textdatei mit dem Inhalt des obigen Beispiels auf den Server laden und dann hier Bescheid geben.

Fieser Weise ist meine Lösung schon fertig, und esskars wohl auch ;-)

Aber am Golf werd ich noch basteln 8)

Wenn ich meine C-Lösung wiederfinde, poste ich die Montag auch noch, ich hab sowas früher schonmal programmiert :-)

Den letzten Teil in Klammern bitte ich jetzt hier nicht zu diskutieren, ich weiß dazu könnte man dies oder das sagen, aber vielleicht ist es ja Absicht, dass es dort so steht und nicht anders.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
DS
 2004-07-23 13:41
#84810 #84810
User since
2003-08-04
247 Artikel
BenutzerIn
[default_avatar]
Hm, der Beispieltest kommt bei Indesign als Platzhaltertext, was genau is das? (nicht dass ich zu faul wäre zum googln)

Und dann einfach mal ein spontanes Danke an Crian, weil hier damit endlich wieder was Positives passiert. :D

"dass die nicht-Golf-Lösungen folgende Regeln" vs. Punkt 6
Crian
 2004-07-23 13:42
#84811 #84811
User since
2003-08-04
5870 Artikel
ModeratorIn
[Homepage]
user image
Ich hab jetzt hier:

http://wiki.perl-community.de/bin/view/Wissensbasis/RaetseL20040723

das Rätsel ins Wiki gestellt. Dieser ganze Wiki-Kram ist mir noch nicht klar. Bitte sagt mir mal wer, wie ich das auf der Raetsel-Einstiegsseite verlinke, wie ich dort die Anzahl auf drei setze, wieso ich beim Bearbeiten von Raetsel 2 unten eine Box habe, wo ich Titel etc einstellen kann, dies bei Raetsel 3 aber nicht der Fall ist etc.

Braucht man denn erst eine Fortbildung um dieses Wiki genau zu kennen? *grmpf*

[quote=DS,23.07.2004, 11:41]Hm, der Beispieltest kommt bei Indesign als Platzhaltertext, was genau is das? (nicht dass ich zu faul wäre zum googln)[/quote]

Das ist ein Text, der aus verschiedenen Sprachen zusammengesetzt wurde, so dass man beim darüberschweifen nicht festgehalten wird und liest, egal aus welchem Land man kommt. Deswegen ist er gut geeignet, um Designs auszutestetn, da man dann nicht immer wieder am Inhalt hängen bleibt.

[quote=DS,23.07.2004, 11:41]Und dann einfach mal ein spontanes Danke an Crian, weil hier damit endlich wieder was Positives passiert. :D[/quote]

Bitte :)

[quote=DS,23.07.2004, 11:41]"dass die nicht-Golf-Lösungen folgende Regeln" vs. Punkt 6[/quote]
Ja schon klar, ich denke ihr wisst aber, was ich meine ;-)\n\n

<!--EDIT|Crian|1090576007-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
esskar
 2004-07-23 14:26
#84812 #84812
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Den Text nennt man Blindtext
renee
 2004-07-23 14:58
#84813 #84813
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@Crian: schau mal im Messenger nach den PMs...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pq
 2004-07-23 15:00
#84814 #84814
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Crian,23.07.2004, 11:42]Ich hab jetzt hier:

http://wiki.perl-community.de/bin/view/Wissensbasis/RaetseL20040723

das Rätsel ins Wiki gestellt.
[/quote]
wie hast du denn die seite erstellt? manuell oder per formular?
Quote
Bitte sagt mir mal wer, wie ich das auf der Raetsel-Einstiegsseite verlinke,

musst du nicht; geschieht automatisch (wenn du die seite per formular erstellst)
Quote
wie ich dort die Anzahl auf drei setze,

indem du die seite Wissensbasis/RaetselDerWoche editierst und in dem formular
eine drei anstatt 2 einträgst...
Quote
wieso ich beim Bearbeiten von Raetsel 2 unten eine Box habe, wo ich Titel etc einstellen kann, dies bei Raetsel 3 aber nicht der Fall ist etc.

vermutlich, weil du die seite manuell anstatt per formular engelegt hast.
Quote
Braucht man denn erst eine Fortbildung um dieses Wiki genau zu kennen? *grmpf*

sorry, aber du musst halt auch sagen, wie du die seite erstellt hast.
kann ja sein, dass du es mit dem formular gemacht hast, aber es ist was
schiefgelaufen. dann kann ich das formular aber nur reparieren, wenn du beschreibst,
was du gemacht hast.
ansonsten kannst du immer auch gerne eine kurze mail schreiben, 'bitte erstell
doch mal kurz 'RaetseL2004....', und dann wird das gemacht.

ansonsten scheint sich das aber erledigt zu haben, renee hat es wohl geändert.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
esskar
 2004-07-23 15:04
#84815 #84815
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Nachtrag!
Die function sollte nicht nur text, sondern auch mit binaeren Daten arbeiten können!
kabel
 2004-07-23 15:09
#84816 #84816
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
system () solltest du auch verbieten ... LOL ;-)
-- stefan
renee
 2004-07-23 16:31
#84817 #84817
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@esskar: kannst Du mal ein Beispiel posten für ein Ergebnis mit binären Daten...??
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Crian
 2004-07-23 17:26
#84818 #84818
User since
2003-08-04
5870 Artikel
ModeratorIn
[Homepage]
user image
[quote=esskar,23.07.2004, 13:04]Nachtrag!
Die function sollte nicht nur text, sondern auch mit binaeren Daten arbeiten können![/quote]
[s]Da bin ich dagegen. Daraus kann ich aber gern ein weiteres Rätsel machen. Ich wollte endlich aml wieder etwas einfacheres bringen :-)[/s]

[quote=kabel,23.07.2004, 13:09]system () solltest du auch verbieten ... LOL ;-)[/quote]
system und Konsorten sind eh immer verboten.\n\n

<!--EDIT|Crian|1090589845-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 3 4 ... 8 >| >> 74 Einträge, 8 Seiten



View all threads created 2004-07-23 13:33.