From ef94e11ebd55fd3f9800355fc2cf2b605e55f67b Mon Sep 17 00:00:00 2001 From: Roger Bell_West Date: Mon, 4 Nov 2019 09:09:36 +0000 Subject: Solutions for #33 --- challenge-033/roger-bell-west/perl5/ch-1.pl | 16 +++++++++++++ challenge-033/roger-bell-west/perl5/ch-2.pl | 22 +++++++++++++++++ challenge-033/roger-bell-west/perl6/ch-1.p6 | 13 ++++++++++ challenge-033/roger-bell-west/perl6/ch-2.p6 | 19 +++++++++++++++ challenge-033/roger-bell-west/postscript/ch-2.ps | 30 ++++++++++++++++++++++++ 5 files changed, 100 insertions(+) create mode 100755 challenge-033/roger-bell-west/perl5/ch-1.pl create mode 100755 challenge-033/roger-bell-west/perl5/ch-2.pl create mode 100755 challenge-033/roger-bell-west/perl6/ch-1.p6 create mode 100755 challenge-033/roger-bell-west/perl6/ch-2.p6 create mode 100644 challenge-033/roger-bell-west/postscript/ch-2.ps 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 -- cgit