aboutsummaryrefslogtreecommitdiff
path: root/challenge-033
diff options
context:
space:
mode:
authorRoger Bell_West <roger@firedrake.org>2019-11-04 09:09:36 +0000
committerRoger Bell_West <roger@firedrake.org>2019-11-04 09:09:36 +0000
commitef94e11ebd55fd3f9800355fc2cf2b605e55f67b (patch)
tree46e3c5ec2e72cdd671a991a4eb9e0b37dfa870d1 /challenge-033
parentf305be816a6bc96d552ec0151441a8d13ffa0deb (diff)
downloadperlweeklychallenge-club-ef94e11ebd55fd3f9800355fc2cf2b605e55f67b.tar.gz
perlweeklychallenge-club-ef94e11ebd55fd3f9800355fc2cf2b605e55f67b.tar.bz2
perlweeklychallenge-club-ef94e11ebd55fd3f9800355fc2cf2b605e55f67b.zip
Solutions for #33
Diffstat (limited to 'challenge-033')
-rwxr-xr-xchallenge-033/roger-bell-west/perl5/ch-1.pl16
-rwxr-xr-xchallenge-033/roger-bell-west/perl5/ch-2.pl22
-rwxr-xr-xchallenge-033/roger-bell-west/perl6/ch-1.p613
-rwxr-xr-xchallenge-033/roger-bell-west/perl6/ch-2.p619
-rw-r--r--challenge-033/roger-bell-west/postscript/ch-2.ps30
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