]> git.deb.at Git - debienna.git/blobdiff - Archive/Kata4Lösungen/Perl/index.mdwn
refactor some old sites
[debienna.git] / Archive / Kata4Lösungen / Perl / index.mdwn
diff --git a/Archive/Kata4Lösungen/Perl/index.mdwn b/Archive/Kata4Lösungen/Perl/index.mdwn
new file mode 100644 (file)
index 0000000..88bb3e2
--- /dev/null
@@ -0,0 +1,99 @@
+
+
+# Part 1
+
+
+[[!format txt """
+#!/usr/bin/perl
+
+while(<>)
+{
+        split;
+        next unless ($_[0] > 0 and $_[0] < 31);
+        $day = $_[0];
+        $spread = $_[1] - $_[2];
+        unless (defined $min_spread)
+        {
+                $spread_day = $day;
+                $min_spread = $spread;
+        }
+        if ($spread <= $min_spread)
+        {
+                $spread_day = $day;
+                $min_spread = $spread;
+        }
+}
+print $spread_day, "\n";
+"""]]
+
+# Part 2
+
+
+[[!format txt """
+#!/usr/bin/perl
+
+while(<>)
+{
+        split;
+        next unless ($_[0] > 0 and $_[0] < 21);
+        $team = $_[1];
+        $spread = abs($_[6] - $_[8]);
+        unless (defined $min_spread)
+        {
+                $spread_team = $team;
+                $min_spread = $spread;
+        }
+        if ($spread <= $min_spread)
+        {
+                $spread_team = $team;
+                $min_spread = $spread;
+        }
+}
+print $spread_team, "\n";
+"""]]
+
+# Part 3
+
+
+[[!format txt """
+#!/usr/bin/perl
+
+sub dm($$$$)
+{
+        my $file = shift;
+        my $label_col = shift;
+        my $alpha_col = shift;
+        my $beta_col = shift;
+
+        my ($spread_label, $min_spread) = ("", 100000);
+
+        open (IN, "<$file");
+        while(<IN>)
+        {
+                split;
+                next unless ($_[$alpha_col] =~ /^[0-9]+/);
+                next unless ($_[$beta_col] =~ /^[0-9]+/);
+                my $label = $_[$label_col];
+                my $spread = abs($_[$alpha_col] - $_[$beta_col]);
+                unless (defined $min_spread)
+                {
+                        print ".";
+                        $spread_label = $label;
+                        $min_spread = $spread;
+                }
+                if ($spread <= $min_spread)
+                {
+                        $spread_label = $label;
+                        $min_spread = $spread;
+                }
+        }
+        close (IN);
+        $spread_label;
+}
+
+print "part1: ", dm("../K4Weather.txt", 0, 1, 2), "\n";
+print "part2: ", dm("../K4Soccer.txt", 1, 6, 8), "\n";
+"""]]
+
+
+ [[!tag CategoryCodeSnippets]]