Schrift
[thread]8899[/thread]

RDW 2007/8: Festbreitentext



<< >> 9 Einträge, 1 Seite
Ishka
 2007-04-03 16:31
#75626 #75626
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Momentan habe ich 13 Aufgaben vorrätig. Vorschläge für neue Rätsel nehme ich immer gerne an (bitte als Mail und als Betreff für Vorschläge rdw-vorschlag enthalten lassen (in klein).

RDW 2007/8 - Raetsel der Woche Nummer 8 des Jahres 2007
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Regeln:
~~~~~~~
* Bitte nicht vor Ablauf der ersten sieben Tage nach Veröffentlichung
Hinweise, Spoiler, Lösungen oder Lösungsteile posten!

* Verständnisfragen dürfen selbstverständlich auch vor Ablauf der
sieben Tage in diesem Thread gestellt werden. Diskussionen über
Lösungsansätze gehören aber nicht hierher.

* Die Verwendung von Modulen ist generell erlaubt, wird jedoch
das ganze Problem von einem Modul erschlagen, so macht das
die Lösung langweilig -- und das ist nicht unbedingt der
Sinn dieser Rätsel.

* Erst wenn die sieben Tage abgelaufen sind, werden Lösungen in
das Wiki:Wiki gestellt und hier verlinkt.

* Sobald die Lösungen veröffentlicht wurden darf hier
natürlich über sie diskutiert werden.

* Sofern das Programm Parameter bekommt, diese bitte vollständig,
sofern nicht explizit anders gefordert, mittels @ARGV auslesen, damit
die Lösungen besser (und vor allem einfacher) vergleichbar sind.

* Die Lösungen sollten nicht von jedem Einzelnen gepostet, sondern
per E-Mail an mich geschickt werden, damit ich sie testen,
"bewerten" und zusammenfassen kann. Die Adresse dafür lautet:

ishka <---Minus---> rdw <---At---> kettenbruch <---Punkt---> de

Im Betreff sollte 'RDW' (also wirklich RDW und nicht Rätsel der
Woche oder andere Ausformulierungen) und die Nummer des Rätsels
stehen. Hilfreich wäre neben dem Quelltext der Benutzername
im Forum sowie Perl- und OS-Version (siehe auch perl -v).


Die Aufgabe:
~~~~~~~~~~~~
Schreibe ein Programm, welches in einen Text Zeilenumbrüche
einbaut, so daß alle Zeilen die gleiche Maximallänge haben.

Genauer gesagt soll das Programm via @ARGV zwei Parameter
bekommen, wobei der erste sagt, wie lang eine Zeile maximal sein
soll und der zweite ist der zu zerlegende Text.

Bei welchen Zeichentypen zu trennen ist und was mit den Zeichen
dann passiert, überlasse ich eurer Phantasie :)

Beispiel:
~~~~~~~~~
@ARGV=(16, 'Hallo Welt');
Ausgabe:
Hallo Welt

@ARGV=(6, 'Hallo Welt');
Ausgabe:
Hallo
Welt

@ARGV=(13, 'Und auch noch ein etwas längerer Beispieltext');
Ausgabe:
Und auch noch
ein etwas
längerer
Beispieltext
\n\n

<!--EDIT|renee|1175603935-->
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
Taulmarill
 2007-04-03 16:54
#75627 #75627
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
Gibt es eine Vorgabe, wie das Programm mit Worten umgehen soll, die länger als die vorgegebene Breite sind?
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Ishka
 2007-04-03 17:17
#75628 #75628
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Nein. Auch hier soll man es so machen, wie man es selbst für richtig hält.
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
murphy
 2007-04-03 18:36
#75629 #75629
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Da könnte man doch den Silbentrenner aus einem früheren RDW einbauen :-)
When C++ is your hammer, every problem looks like your thumb.
Ishka
 2007-04-04 18:48
#75630 #75630
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Stimmt, gute Idee :)
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
Ishka
 2007-04-12 16:48
#75631 #75631
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Hat noch wer vor abzugeben?
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
murphy
 2007-04-12 17:43
#75632 #75632
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
man 1 fmt hat meine Motivation für diese Aufgabe vernichtet ;-)
When C++ is your hammer, every problem looks like your thumb.
ptk
 2007-04-12 21:50
#75633 #75633
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Und meine durch CPAN:Text::Wrap...
lichtkind
 2007-04-13 17:36
#75634 #75634
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
hej das brauch ich auch für den editor
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
<< >> 9 Einträge, 1 Seite



View all threads created 2007-04-03 16:31.