diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-06-14 09:06:59 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-14 09:06:59 +0100 |
| commit | 39373826e39baabba2c424b0aeb5f1e5a293ccca (patch) | |
| tree | 6ac107905d70ae704e499d5973e3a2d4ce2805b0 | |
| parent | 5dbbdfd95c706903cbf41c6152697544f66d1562 (diff) | |
| parent | 6ccb7df2da52549ac03b8d1c079d0b754cf73081 (diff) | |
| download | perlweeklychallenge-club-39373826e39baabba2c424b0aeb5f1e5a293ccca.tar.gz perlweeklychallenge-club-39373826e39baabba2c424b0aeb5f1e5a293ccca.tar.bz2 perlweeklychallenge-club-39373826e39baabba2c424b0aeb5f1e5a293ccca.zip | |
Merge pull request #10258 from deadmarshal/TWC273
TWC273
| -rw-r--r-- | challenge-273/deadmarshal/go/ch1.go | 24 | ||||
| -rw-r--r-- | challenge-273/deadmarshal/go/ch2.go | 18 | ||||
| -rw-r--r-- | challenge-273/deadmarshal/java/Ch1.java | 17 | ||||
| -rw-r--r-- | challenge-273/deadmarshal/java/Ch2.java | 14 | ||||
| -rw-r--r-- | challenge-273/deadmarshal/modula-3/ch1/src/Ch1.m3 | 23 | ||||
| -rw-r--r-- | challenge-273/deadmarshal/modula-3/ch1/src/m3makefile | 5 | ||||
| -rw-r--r-- | challenge-273/deadmarshal/modula-3/ch2/src/Ch2.m3 | 35 | ||||
| -rw-r--r-- | challenge-273/deadmarshal/modula-3/ch2/src/m3makefile | 5 | ||||
| -rw-r--r-- | challenge-273/deadmarshal/perl/ch-1.pl | 18 | ||||
| -rw-r--r-- | challenge-273/deadmarshal/perl/ch-2.pl | 13 | ||||
| -rw-r--r-- | challenge-273/deadmarshal/raku/ch-1.raku | 15 | ||||
| -rw-r--r-- | challenge-273/deadmarshal/raku/ch-2.raku | 12 |
12 files changed, 199 insertions, 0 deletions
diff --git a/challenge-273/deadmarshal/go/ch1.go b/challenge-273/deadmarshal/go/ch1.go new file mode 100644 index 0000000000..72e876ca87 --- /dev/null +++ b/challenge-273/deadmarshal/go/ch1.go @@ -0,0 +1,24 @@ +package main + +import ( + "fmt" +) + +func percentageOfCharacter(str string, c rune) int { + count := 0 + for _,v := range str { + if v == c { + count++ + } + } + return int(float32(count) / float32(len(str)) * 100.0 + float32(0.5)) +} + +func main() { + fmt.Println(percentageOfCharacter("perl", 'e')) + fmt.Println(percentageOfCharacter("java", 'a')) + fmt.Println(percentageOfCharacter("python", 'm')) + fmt.Println(percentageOfCharacter("ada", 'a')) + fmt.Println(percentageOfCharacter("ballerina", 'l')) + fmt.Println(percentageOfCharacter("analitik", 'k')) +} diff --git a/challenge-273/deadmarshal/go/ch2.go b/challenge-273/deadmarshal/go/ch2.go new file mode 100644 index 0000000000..e58655dc17 --- /dev/null +++ b/challenge-273/deadmarshal/go/ch2.go @@ -0,0 +1,18 @@ +package main + +import ( + "fmt" + "strings" +) + +func bAfterA(str string) bool { + i := strings.Index(str,"b") + return i != -1 && strings.LastIndex(str,"a") <= i +} + +func main(){ + fmt.Println(bAfterA("aabb")) + fmt.Println(bAfterA("abab")) + fmt.Println(bAfterA("aaa")) + fmt.Println(bAfterA("bbb")) +} diff --git a/challenge-273/deadmarshal/java/Ch1.java b/challenge-273/deadmarshal/java/Ch1.java new file mode 100644 index 0000000000..267c218829 --- /dev/null +++ b/challenge-273/deadmarshal/java/Ch1.java @@ -0,0 +1,17 @@ +public class Ch1 { + public static void main(String[] args) { + System.out.println(percentage_of_character("perl",'e')); + System.out.println(percentage_of_character("java",'a')); + System.out.println(percentage_of_character("python",'m')); + System.out.println(percentage_of_character("ada",'a')); + System.out.println(percentage_of_character("ballerina",'l')); + System.out.println(percentage_of_character("analitik",'k')); + } + + private static int percentage_of_character(String str,char c) { + int count = 0; + for(int i = 0; i < str.length(); ++i) if(str.charAt(i) == c) count++; + return Math.round(((float)count/str.length()) * 100); + } +} + diff --git a/challenge-273/deadmarshal/java/Ch2.java b/challenge-273/deadmarshal/java/Ch2.java new file mode 100644 index 0000000000..a606950072 --- /dev/null +++ b/challenge-273/deadmarshal/java/Ch2.java @@ -0,0 +1,14 @@ +public class Ch2 { + public static void main(String[] args) { + System.out.println(b_after_a("aabb")); + System.out.println(b_after_a("abab")); + System.out.println(b_after_a("aaa")); + System.out.println(b_after_a("bbb")); + } + + private static boolean b_after_a(String str) { + int i = str.indexOf('b'); + return i != -1 && i >= str.lastIndexOf('a'); + } +} + diff --git a/challenge-273/deadmarshal/modula-3/ch1/src/Ch1.m3 b/challenge-273/deadmarshal/modula-3/ch1/src/Ch1.m3 new file mode 100644 index 0000000000..b78a09364d --- /dev/null +++ b/challenge-273/deadmarshal/modula-3/ch1/src/Ch1.m3 @@ -0,0 +1,23 @@ +MODULE Ch1 EXPORTS Main; + +IMPORT SIO,Text; + +PROCEDURE PercentageOfCharacter(READONLY Str:TEXT; + READONLY C:CHAR):CARDINAL = + VAR Count:CARDINAL := 0; + BEGIN + FOR I := 0 TO Text.Length(Str)-1 DO + IF Text.GetChar(Str,I) = C THEN INC(Count) END + END; + RETURN FLOOR((FLOAT(Count) / FLOAT(Text.Length(Str))) * 100.0 + 0.5) + END PercentageOfCharacter; + +BEGIN + SIO.PutInt(PercentageOfCharacter("perl",'e')); SIO.Nl(); + SIO.PutInt(PercentageOfCharacter("java",'a')); SIO.Nl(); + SIO.PutInt(PercentageOfCharacter("python",'m')); SIO.Nl(); + SIO.PutInt(PercentageOfCharacter("ada",'a')); SIO.Nl(); + SIO.PutInt(PercentageOfCharacter("ballerina",'l')); SIO.Nl(); + SIO.PutInt(PercentageOfCharacter("analitik",'k')); SIO.Nl(); +END Ch1. + diff --git a/challenge-273/deadmarshal/modula-3/ch1/src/m3makefile b/challenge-273/deadmarshal/modula-3/ch1/src/m3makefile new file mode 100644 index 0000000000..9f66e4a51f --- /dev/null +++ b/challenge-273/deadmarshal/modula-3/ch1/src/m3makefile @@ -0,0 +1,5 @@ +import("libm3") +import("libsio") +implementation("Ch1") +program("ch1") + diff --git a/challenge-273/deadmarshal/modula-3/ch2/src/Ch2.m3 b/challenge-273/deadmarshal/modula-3/ch2/src/Ch2.m3 new file mode 100644 index 0000000000..421b09e8e0 --- /dev/null +++ b/challenge-273/deadmarshal/modula-3/ch2/src/Ch2.m3 @@ -0,0 +1,35 @@ +MODULE Ch2 EXPORTS Main; + +IMPORT SIO,Text; + +PROCEDURE FindChar(READONLY Str:TEXT; + READONLY C:CHAR; + READONLY Backwards:BOOLEAN := FALSE):INTEGER = + BEGIN + IF Backwards THEN + FOR I := Text.Length(Str)-1 TO 0 BY -1 DO + IF Text.GetChar(Str,I) = C THEN RETURN I END + END + ELSE + FOR I := 0 TO Text.Length(Str)-1 DO + IF Text.GetChar(Str,I) = C THEN RETURN I END + END + END; + RETURN -1 + END FindChar; + +PROCEDURE BAfterA(READONLY Str:TEXT):BOOLEAN = + VAR + IB:INTEGER := FindChar(Str,'b'); + IA:INTEGER := FindChar(Str,'a',TRUE); + BEGIN + RETURN IB # -1 AND IA <= IB + END BAfterA; + +BEGIN + SIO.PutBool(BAfterA("aabb")); SIO.Nl(); + SIO.PutBool(BAfterA("abab")); SIO.Nl(); + SIO.PutBool(BAfterA("aaa")); SIO.Nl(); + SIO.PutBool(BAfterA("bbb")); SIO.Nl(); +END Ch2. + diff --git a/challenge-273/deadmarshal/modula-3/ch2/src/m3makefile b/challenge-273/deadmarshal/modula-3/ch2/src/m3makefile new file mode 100644 index 0000000000..798c627ef3 --- /dev/null +++ b/challenge-273/deadmarshal/modula-3/ch2/src/m3makefile @@ -0,0 +1,5 @@ +import("libm3") +import("libsio") +implementation("Ch2") +program("ch2") + diff --git a/challenge-273/deadmarshal/perl/ch-1.pl b/challenge-273/deadmarshal/perl/ch-1.pl new file mode 100644 index 0000000000..044da5f05e --- /dev/null +++ b/challenge-273/deadmarshal/perl/ch-1.pl @@ -0,0 +1,18 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use POSIX qw(round); + +sub percentage_of_character{ + my ($str,$char) = @_; + my $count =()= $str =~ /\Q$char/g; + round(100 * $count / length $str) +} + +printf "%d\n",percentage_of_character('perl','e'); +printf "%d\n",percentage_of_character('java','a'); +printf "%d\n",percentage_of_character('python','m'); +printf "%d\n",percentage_of_character('ada','a'); +printf "%d\n",percentage_of_character('ballerina','l'); +printf "%d\n",percentage_of_character('analitik','k'); + diff --git a/challenge-273/deadmarshal/perl/ch-2.pl b/challenge-273/deadmarshal/perl/ch-2.pl new file mode 100644 index 0000000000..5a9f32d508 --- /dev/null +++ b/challenge-273/deadmarshal/perl/ch-2.pl @@ -0,0 +1,13 @@ +#!/usr/bin/env perl +use strict; +use warnings; + +sub b_after_a{ + (-1 != index($_[0],'b')) >= rindex($_[0],'a') +} + +printf "%d\n",b_after_a('aabb'); +printf "%d\n",b_after_a('abab'); +printf "%d\n",b_after_a('aaa'); +printf "%d\n",b_after_a('bbb'); + diff --git a/challenge-273/deadmarshal/raku/ch-1.raku b/challenge-273/deadmarshal/raku/ch-1.raku new file mode 100644 index 0000000000..8b2ecd76e0 --- /dev/null +++ b/challenge-273/deadmarshal/raku/ch-1.raku @@ -0,0 +1,15 @@ +#!/usr/bin/env raku + +sub percentage-of-character($str,$c) +{ + my $count = $str.comb($c).elems; + round(100 * $count / $str.chars) +} + +say percentage-of-character('perl','e'); +say percentage-of-character('java','a'); +say percentage-of-character('python','m'); +say percentage-of-character('ada','a'); +say percentage-of-character('ballerina','l'); +say percentage-of-character('analitik','k'); + diff --git a/challenge-273/deadmarshal/raku/ch-2.raku b/challenge-273/deadmarshal/raku/ch-2.raku new file mode 100644 index 0000000000..bd2bb29664 --- /dev/null +++ b/challenge-273/deadmarshal/raku/ch-2.raku @@ -0,0 +1,12 @@ +#!/usr/bin/env raku + +sub b-after-a($str) +{ + ?($str ~~ /bb/) +} + +say b-after-a('aabb'); +say b-after-a('abab'); +say b-after-a('aaa'); +say b-after-a('bbb'); + |
