initial import from moinmoin
[debienna.git] / Kata4Lösungen / Perl / index.mdwn
1 = Part 1 =\r
2 \r
3 {{{\r
4 #!/usr/bin/perl\r
5 \r
6 while(<>)\r
7 {\r
8         split;\r
9         next unless ($_[0] > 0 and $_[0] < 31);\r
10         $day = $_[0];\r
11         $spread = $_[1] - $_[2];\r
12         unless (defined $min_spread) \r
13         {\r
14                 $spread_day = $day;\r
15                 $min_spread = $spread;\r
16         }\r
17         if ($spread <= $min_spread)\r
18         {\r
19                 $spread_day = $day;\r
20                 $min_spread = $spread;\r
21         }\r
22 }\r
23 print $spread_day, "\n";\r
24 }}}\r
25 \r
26 = Part 2 =\r
27 \r
28 {{{\r
29 #!/usr/bin/perl\r
30 \r
31 while(<>)\r
32 {\r
33         split;\r
34         next unless ($_[0] > 0 and $_[0] < 21);\r
35         $team = $_[1];\r
36         $spread = abs($_[6] - $_[8]);\r
37         unless (defined $min_spread)\r
38         {\r
39                 $spread_team = $team;\r
40                 $min_spread = $spread;\r
41         }\r
42         if ($spread <= $min_spread)\r
43         {\r
44                 $spread_team = $team;\r
45                 $min_spread = $spread;\r
46         }\r
47 }\r
48 print $spread_team, "\n";\r
49 }}}\r
50 \r
51 = Part 3 =\r
52 \r
53 {{{\r
54 #!/usr/bin/perl\r
55 \r
56 sub dm($$$$)\r
57 {\r
58         my $file = shift;\r
59         my $label_col = shift;\r
60         my $alpha_col = shift;\r
61         my $beta_col = shift;\r
62 \r
63         my ($spread_label, $min_spread) = ("", 100000);\r
64 \r
65         open (IN, "<$file");\r
66         while(<IN>)\r
67         {\r
68                 split;\r
69                 next unless ($_[$alpha_col] =~ /^[0-9]+/);\r
70                 next unless ($_[$beta_col] =~ /^[0-9]+/);\r
71                 my $label = $_[$label_col];\r
72                 my $spread = abs($_[$alpha_col] - $_[$beta_col]);\r
73                 unless (defined $min_spread)\r
74                 {\r
75                         print ".";\r
76                         $spread_label = $label;\r
77                         $min_spread = $spread;\r
78                 }\r
79                 if ($spread <= $min_spread)\r
80                 {\r
81                         $spread_label = $label;\r
82                         $min_spread = $spread;\r
83                 }\r
84         }\r
85         close (IN);\r
86         $spread_label;\r
87 }\r
88 \r
89 print "part1: ", dm("../K4Weather.txt", 0, 1, 2), "\n";\r
90 print "part2: ", dm("../K4Soccer.txt", 1, 6, 8), "\n";\r
91 }}}\r
92 ----\r
93 CategoryCodeSnippets