aboutsummaryrefslogtreecommitdiff
path: root/challenge-026
diff options
context:
space:
mode:
authorLubos Kolouch <lubos@kolouch.net>2019-09-22 12:50:56 +0200
committerLubos Kolouch <lubos@kolouch.net>2019-09-22 12:50:56 +0200
commitb65067b778ddc88a8dd94ca2a2cad5a1838c58cb (patch)
tree31780e93284093c854c19b70e1db380e0a749a79 /challenge-026
parentb5cd9d2d75a95ea07ff03ef00aa74722ff0fe866 (diff)
downloadperlweeklychallenge-club-b65067b778ddc88a8dd94ca2a2cad5a1838c58cb.tar.gz
perlweeklychallenge-club-b65067b778ddc88a8dd94ca2a2cad5a1838c58cb.tar.bz2
perlweeklychallenge-club-b65067b778ddc88a8dd94ca2a2cad5a1838c58cb.zip
Challenge 026 Lubos
Diffstat (limited to 'challenge-026')
-rw-r--r--challenge-026/lubos-kolouch/perl5/ch-1.pl49
-rw-r--r--challenge-026/lubos-kolouch/perl5/ch-2.pl48
2 files changed, 97 insertions, 0 deletions
diff --git a/challenge-026/lubos-kolouch/perl5/ch-1.pl b/challenge-026/lubos-kolouch/perl5/ch-1.pl
new file mode 100644
index 0000000000..ce3a21d98e
--- /dev/null
+++ b/challenge-026/lubos-kolouch/perl5/ch-1.pl
@@ -0,0 +1,49 @@
+#!/usr/bin/perl
+#===============================================================================
+#
+# FILE: ch-1.pl
+#
+# USAGE: ./ch-1.pl
+#
+# DESCRIPTION: Perl weekly challenge 26 #1
+# https://perlweeklychallenge.org/blog/perl-weekly-challenge-026/
+#
+#
+# OPTIONS: ---
+# REQUIREMENTS: ---
+# BUGS: ---
+# NOTES: ---
+# AUTHOR: Lubos Kolouch
+# ORGANIZATION:
+# VERSION: 1.0
+# CREATED: 09/22/2019 12:28:35 PM
+# REVISION: ---
+#===============================================================================
+
+use strict;
+use warnings;
+use feature qw/say/;
+
+sub get_common_chars {
+ my ( $word1, $word2 ) = @_;
+
+ my $count = 0;
+ for ( split //, $word1 ) {
+ $count++ if $word2 =~ /$_/msx;
+ }
+
+ return $count;
+}
+
+die 'Usage: script word1 word2' unless @ARGV == 2;
+
+say get_common_chars(@ARGV);
+
+# TESTS
+use Test::More;
+
+is( get_common_chars( 'chancellor', 'chocolate' ), 8 );
+is( get_common_chars( 'chancellor', 'chocolat' ), 7 );
+is( get_common_chars( 'abcde', 'fghi' ), 0 );
+
+done_testing;
diff --git a/challenge-026/lubos-kolouch/perl5/ch-2.pl b/challenge-026/lubos-kolouch/perl5/ch-2.pl
new file mode 100644
index 0000000000..96b5be4b04
--- /dev/null
+++ b/challenge-026/lubos-kolouch/perl5/ch-2.pl
@@ -0,0 +1,48 @@
+#!/usr/bin/perl
+#===============================================================================
+#
+# FILE: ch-2.pl
+#
+# USAGE: ./ch-2.pl
+#
+# DESCRIPTION: Perl weekly challenge 26 #2
+# https://perlweeklychallenge.org/blog/perl-weekly-challenge-026/
+#
+#
+# OPTIONS: ---
+# REQUIREMENTS: ---
+# BUGS: ---
+# NOTES: ---
+# AUTHOR: Lubos Kolouch
+# ORGANIZATION:
+# VERSION: 1.0
+# CREATED: 09/22/2019 12:28:35 PM
+# REVISION: ---
+#===============================================================================
+
+use strict;
+use warnings;
+use feature qw/say/;
+use Math::Trig; # mainly for Pi
+
+sub get_mean {
+ my @angles = @_;
+
+ my ( $sin_sum, $cos_sum );
+
+ $sin_sum += sin( deg2rad($_) ) for @angles;
+ $cos_sum += cos( deg2rad($_) ) for @angles;
+
+ return rad2deg( atan2( $sin_sum, $cos_sum ) );
+}
+
+die 'Usage: script angle1 angle2 ...' unless @ARGV >= 2;
+
+say get_mean(@ARGV);
+
+# TESTS
+use Test::More;
+
+is( get_mean( 0, 0, 90 ), 26.565051177078 );
+
+done_testing;