diff options
| author | Roger Bell_West <roger@firedrake.org> | 2019-11-04 09:09:36 +0000 |
|---|---|---|
| committer | Roger Bell_West <roger@firedrake.org> | 2019-11-04 09:09:36 +0000 |
| commit | ef94e11ebd55fd3f9800355fc2cf2b605e55f67b (patch) | |
| tree | 46e3c5ec2e72cdd671a991a4eb9e0b37dfa870d1 /challenge-033 | |
| parent | f305be816a6bc96d552ec0151441a8d13ffa0deb (diff) | |
| download | perlweeklychallenge-club-ef94e11ebd55fd3f9800355fc2cf2b605e55f67b.tar.gz perlweeklychallenge-club-ef94e11ebd55fd3f9800355fc2cf2b605e55f67b.tar.bz2 perlweeklychallenge-club-ef94e11ebd55fd3f9800355fc2cf2b605e55f67b.zip | |
Solutions for #33
Diffstat (limited to 'challenge-033')
| -rwxr-xr-x | challenge-033/roger-bell-west/perl5/ch-1.pl | 16 | ||||
| -rwxr-xr-x | challenge-033/roger-bell-west/perl5/ch-2.pl | 22 | ||||
| -rwxr-xr-x | challenge-033/roger-bell-west/perl6/ch-1.p6 | 13 | ||||
| -rwxr-xr-x | challenge-033/roger-bell-west/perl6/ch-2.p6 | 19 | ||||
| -rw-r--r-- | challenge-033/roger-bell-west/postscript/ch-2.ps | 30 |
5 files changed, 100 insertions, 0 deletions
diff --git a/challenge-033/roger-bell-west/perl5/ch-1.pl b/challenge-033/roger-bell-west/perl5/ch-1.pl new file mode 100755 index 0000000000..f9790fc768 --- /dev/null +++ b/challenge-033/roger-bell-west/perl5/ch-1.pl @@ -0,0 +1,16 @@ +#! /usr/bin/perl + +use strict; +use warnings; + +my %o; + +while (<>) { + my $a=lc($_); + $a =~ s/[^a-z]//g; + map {$o{$_}++} split '',$a; +} + +foreach my $k (sort keys %o) { + print "$k: $o{$k}\n"; +} diff --git a/challenge-033/roger-bell-west/perl5/ch-2.pl b/challenge-033/roger-bell-west/perl5/ch-2.pl new file mode 100755 index 0000000000..7f665002e7 --- /dev/null +++ b/challenge-033/roger-bell-west/perl5/ch-2.pl @@ -0,0 +1,22 @@ +#! /usr/bin/perl + +use strict; +use warnings; + +my $n=11; +my $m1=length($n)+1; +my $m2=length($n*$n)+1; +my $fmt='%'.$m1.'s%1s'.(('%'.$m2.'s') x $n)."\n"; +printf($fmt,'x','|',(1..$n)); +printf($fmt,'-' x $m1,'+',('-' x $m2) x $n); +foreach my $row (1..$n) { + my @a=($row,'|'); + foreach my $column (1..$n) { + if ($column < $row) { + push @a,''; + } else { + push @a,$row*$column; + } + } + printf($fmt,@a); +} diff --git a/challenge-033/roger-bell-west/perl6/ch-1.p6 b/challenge-033/roger-bell-west/perl6/ch-1.p6 new file mode 100755 index 0000000000..54a95996ff --- /dev/null +++ b/challenge-033/roger-bell-west/perl6/ch-1.p6 @@ -0,0 +1,13 @@ +#! /usr/bin/perl6 + +my %o; + +for lines() { + my $a=lc($_); + $a ~~ s:g /<-[a .. z]>//; + map {%o{$_}++}, split '',$a; +} + +for sort keys %o -> $k { + print "$k: %o{$k}\n"; +} diff --git a/challenge-033/roger-bell-west/perl6/ch-2.p6 b/challenge-033/roger-bell-west/perl6/ch-2.p6 new file mode 100755 index 0000000000..d036faf1d1 --- /dev/null +++ b/challenge-033/roger-bell-west/perl6/ch-2.p6 @@ -0,0 +1,19 @@ +#! /usr/bin/perl6 + +my $n=11; +my $m1=$n.chars+1; +my $m2=($n*$n).chars+1; +my $fmt='%' ~ $m1 ~ 's%1s' ~ (('%' ~ $m2 ~ 's') xx $n) ~ "\n"; +printf($fmt,'x','|',(1..$n)); +printf($fmt,'-' x $m1,'+',('-' x $m2) xx $n); +for 1 .. $n -> $row { + my @a=($row,'|'); + for 1 .. $n -> $column { + if ($column < $row) { + push @a,''; + } else { + push @a,$row*$column; + } + } + printf($fmt,@a); +} diff --git a/challenge-033/roger-bell-west/postscript/ch-2.ps b/challenge-033/roger-bell-west/postscript/ch-2.ps new file mode 100644 index 0000000000..b0d2c2c551 --- /dev/null +++ b/challenge-033/roger-bell-west/postscript/ch-2.ps @@ -0,0 +1,30 @@ +/n 11 def +/scale 25 def +/fs 12 def + +20 650 translate + +/Helvetica findfont +fs scalefont setfont + +1 1 n { + /x exch def + /ns 30 string def + x ns cvs + x scale mul dup 0 moveto ns show + neg 0 exch moveto ns show + 1 1 x { + /y exch def + /nv 30 string def + x y mul nv cvs pop + x scale mul y neg scale mul moveto nv show + } for +} for + +0 scale 2 div neg fs 2 div add moveto +scale n 1 add mul scale 2 div neg fs 2 div add lineto +scale 2 div fs 2 div add fs moveto +scale 2 div fs 2 div add scale n 1 add mul neg fs add lineto +stroke + +showpage |
