aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-06-14 09:06:59 +0100
committerGitHub <noreply@github.com>2024-06-14 09:06:59 +0100
commit39373826e39baabba2c424b0aeb5f1e5a293ccca (patch)
tree6ac107905d70ae704e499d5973e3a2d4ce2805b0
parent5dbbdfd95c706903cbf41c6152697544f66d1562 (diff)
parent6ccb7df2da52549ac03b8d1c079d0b754cf73081 (diff)
downloadperlweeklychallenge-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.go24
-rw-r--r--challenge-273/deadmarshal/go/ch2.go18
-rw-r--r--challenge-273/deadmarshal/java/Ch1.java17
-rw-r--r--challenge-273/deadmarshal/java/Ch2.java14
-rw-r--r--challenge-273/deadmarshal/modula-3/ch1/src/Ch1.m323
-rw-r--r--challenge-273/deadmarshal/modula-3/ch1/src/m3makefile5
-rw-r--r--challenge-273/deadmarshal/modula-3/ch2/src/Ch2.m335
-rw-r--r--challenge-273/deadmarshal/modula-3/ch2/src/m3makefile5
-rw-r--r--challenge-273/deadmarshal/perl/ch-1.pl18
-rw-r--r--challenge-273/deadmarshal/perl/ch-2.pl13
-rw-r--r--challenge-273/deadmarshal/raku/ch-1.raku15
-rw-r--r--challenge-273/deadmarshal/raku/ch-2.raku12
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');
+