aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2022-01-01 08:20:04 +0000
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2022-01-01 08:20:04 +0000
commit233b172f74dd306cbc79129f40399c259ec1fa20 (patch)
tree74fa8c526a568cdb49a4738eaa7421dfe1b0fc0d
parenta05a2a27aa6f75b2d53d8e5025832bcd30ca8cc3 (diff)
downloadperlweeklychallenge-club-233b172f74dd306cbc79129f40399c259ec1fa20.tar.gz
perlweeklychallenge-club-233b172f74dd306cbc79129f40399c259ec1fa20.tar.bz2
perlweeklychallenge-club-233b172f74dd306cbc79129f40399c259ec1fa20.zip
- Added guest contributions by Laurent Rosenfeld.
-rw-r--r--challenge-145/laurent-rosenfeld/awk/ch-1.awk15
-rw-r--r--challenge-145/laurent-rosenfeld/bash/ch-1.sh10
-rw-r--r--challenge-145/laurent-rosenfeld/c/ch-1.c12
-rw-r--r--challenge-145/laurent-rosenfeld/d/ch-1.amx12
-rw-r--r--challenge-145/laurent-rosenfeld/dart/ch-1.dart10
-rw-r--r--challenge-145/laurent-rosenfeld/go/ch-1.go12
-rw-r--r--challenge-145/laurent-rosenfeld/julia/ch-1.jl11
-rw-r--r--challenge-145/laurent-rosenfeld/kotlin/ch-1.kt10
-rw-r--r--challenge-145/laurent-rosenfeld/lua/ch-1.lua11
-rw-r--r--challenge-145/laurent-rosenfeld/nim/ch-1.nim10
-rw-r--r--challenge-145/laurent-rosenfeld/pascal/ch-1.p13
-rw-r--r--challenge-145/laurent-rosenfeld/python/ch-1.py8
-rw-r--r--challenge-145/laurent-rosenfeld/ruby/ch-1.rb8
-rw-r--r--challenge-145/laurent-rosenfeld/rust/ch-1.rs10
-rw-r--r--challenge-145/laurent-rosenfeld/scala/ch-1.scala9
15 files changed, 161 insertions, 0 deletions
diff --git a/challenge-145/laurent-rosenfeld/awk/ch-1.awk b/challenge-145/laurent-rosenfeld/awk/ch-1.awk
new file mode 100644
index 0000000000..27fc004594
--- /dev/null
+++ b/challenge-145/laurent-rosenfeld/awk/ch-1.awk
@@ -0,0 +1,15 @@
+echo '1 2 3
+4 5 6 ' | awk -e '{
+ for (i = 1; i <= NF; i ++) {
+ if (NR == 1) {
+ col[i] = $i
+ }
+ else {
+ result += col[i] * $i
+ }
+ }
+}
+END {
+ print result
+}
+'
diff --git a/challenge-145/laurent-rosenfeld/bash/ch-1.sh b/challenge-145/laurent-rosenfeld/bash/ch-1.sh
new file mode 100644
index 0000000000..06a75fd4d5
--- /dev/null
+++ b/challenge-145/laurent-rosenfeld/bash/ch-1.sh
@@ -0,0 +1,10 @@
+echo '1 2 3
+4 5 6 ' | bash -c '
+ read -a a1
+ read -a a2
+ for ((i = 0; i < ${#a1[@]}; i ++))
+ do ((result += a1[i] * a2[i]))
+ done
+ echo $result
+'
+
diff --git a/challenge-145/laurent-rosenfeld/c/ch-1.c b/challenge-145/laurent-rosenfeld/c/ch-1.c
new file mode 100644
index 0000000000..e48e7185b9
--- /dev/null
+++ b/challenge-145/laurent-rosenfeld/c/ch-1.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+int main() {
+ int a1[] = {1, 2, 3};
+ int a2[] = {4, 5, 6};
+ int res = 0;
+ int size = sizeof(a1)/sizeof(a1[0]);
+ for (int i = 0; i < size; i++) {
+ res += a1[i] * a2[i];
+ }
+ printf("%d\n", res);
+}
diff --git a/challenge-145/laurent-rosenfeld/d/ch-1.amx b/challenge-145/laurent-rosenfeld/d/ch-1.amx
new file mode 100644
index 0000000000..205afa9109
--- /dev/null
+++ b/challenge-145/laurent-rosenfeld/d/ch-1.amx
@@ -0,0 +1,12 @@
+import std.stdio;
+
+int a1[] = [1, 2, 3];
+int a2[] = [4, 5, 6];
+int main() {
+ int result = 0;
+ for (int i = 0; i < 3; i++) {
+ result += a1[i] * a2[i];
+ }
+ writeln(result);
+ return 0;
+}
diff --git a/challenge-145/laurent-rosenfeld/dart/ch-1.dart b/challenge-145/laurent-rosenfeld/dart/ch-1.dart
new file mode 100644
index 0000000000..cd35c50dfa
--- /dev/null
+++ b/challenge-145/laurent-rosenfeld/dart/ch-1.dart
@@ -0,0 +1,10 @@
+var a1 = [1, 2, 3];
+var a2 = [4, 5, 6];
+
+void main() {
+ int result = 0;
+ for (int i = 0; i < 3; i++ ) {
+ result += a1[i] * a2[i];
+ }
+ print(result);
+}
diff --git a/challenge-145/laurent-rosenfeld/go/ch-1.go b/challenge-145/laurent-rosenfeld/go/ch-1.go
new file mode 100644
index 0000000000..f217c4bd4b
--- /dev/null
+++ b/challenge-145/laurent-rosenfeld/go/ch-1.go
@@ -0,0 +1,12 @@
+package main
+import "fmt"
+
+func main() {
+ a1 := [3]int{1, 2, 3}
+ a2 := [3]int{4, 5, 6}
+ var result int = 0
+ for i := 0; i < 3; i++ {
+ result += a1[i] * a2[i]
+ }
+ fmt.Printf("Dot product: %d\n", result)
+}
diff --git a/challenge-145/laurent-rosenfeld/julia/ch-1.jl b/challenge-145/laurent-rosenfeld/julia/ch-1.jl
new file mode 100644
index 0000000000..dba1a8edad
--- /dev/null
+++ b/challenge-145/laurent-rosenfeld/julia/ch-1.jl
@@ -0,0 +1,11 @@
+#!/usr/bin/julia
+
+function dot_product(a1, a2)
+ res = 0
+ for i in eachindex(a1)
+ res = res + a1[i] * a2[i]
+ end
+ return res
+end
+
+print( "Dot product: ", dot_product([1, 2, 3], [4, 5, 6]))
diff --git a/challenge-145/laurent-rosenfeld/kotlin/ch-1.kt b/challenge-145/laurent-rosenfeld/kotlin/ch-1.kt
new file mode 100644
index 0000000000..c65f44cf65
--- /dev/null
+++ b/challenge-145/laurent-rosenfeld/kotlin/ch-1.kt
@@ -0,0 +1,10 @@
+fun dot_product(a1: List<Int>, a2: List<Int>): Int {
+ var res = 0
+ for (i in a1.indices) {
+ res += a1[i] * a2[i]
+ }
+ return res
+}
+fun main() {
+ println (dot_product(listOf<Int>(1, 2, 3), listOf<Int>(4, 5, 6)))
+}
diff --git a/challenge-145/laurent-rosenfeld/lua/ch-1.lua b/challenge-145/laurent-rosenfeld/lua/ch-1.lua
new file mode 100644
index 0000000000..3eb6ab38ac
--- /dev/null
+++ b/challenge-145/laurent-rosenfeld/lua/ch-1.lua
@@ -0,0 +1,11 @@
+#!/usr/bin/lua
+
+local function dot_product(a1, a2)
+ res = 0
+ for i, v in next, a1 do
+ res = res + v * a2[i]
+ end
+ return res
+end
+
+print(dot_product({1, 2, 3}, {4, 5, 6}))
diff --git a/challenge-145/laurent-rosenfeld/nim/ch-1.nim b/challenge-145/laurent-rosenfeld/nim/ch-1.nim
new file mode 100644
index 0000000000..83ad7f0e2f
--- /dev/null
+++ b/challenge-145/laurent-rosenfeld/nim/ch-1.nim
@@ -0,0 +1,10 @@
+proc dot_product (a1, a2: array[0..2, int]) : int =
+ result = 0
+ for i in 0..2:
+ result += a1[i] * a2[i]
+ return result
+
+let a1 = [1, 2, 3]
+let a2 = [4, 5, 6]
+let res = dot_product(a1, a2)
+echo "dot product: ", res
diff --git a/challenge-145/laurent-rosenfeld/pascal/ch-1.p b/challenge-145/laurent-rosenfeld/pascal/ch-1.p
new file mode 100644
index 0000000000..7a975b71a2
--- /dev/null
+++ b/challenge-145/laurent-rosenfeld/pascal/ch-1.p
@@ -0,0 +1,13 @@
+program dot_product;
+const
+ SIZE = 2;
+var
+ a1: array[0..SIZE] of integer = (1, 2, 3);
+ a2: array[0..SIZE] of integer = (4, 5, 6);
+ result, i : integer;
+begin
+ result := 0;
+ for i := 0 to SIZE do
+ result += a1[i] * a2[i];
+ writeln(result);
+end.
diff --git a/challenge-145/laurent-rosenfeld/python/ch-1.py b/challenge-145/laurent-rosenfeld/python/ch-1.py
new file mode 100644
index 0000000000..83de3797da
--- /dev/null
+++ b/challenge-145/laurent-rosenfeld/python/ch-1.py
@@ -0,0 +1,8 @@
+def dot_product (a1, a2):
+ res = 0
+ for i in range(0, len(a1)):
+ res += a1[i] * a2[i]
+ return res
+
+product = dot_product([1, 2, 3], [4, 5, 6])
+print(product)
diff --git a/challenge-145/laurent-rosenfeld/ruby/ch-1.rb b/challenge-145/laurent-rosenfeld/ruby/ch-1.rb
new file mode 100644
index 0000000000..c3ec644d2c
--- /dev/null
+++ b/challenge-145/laurent-rosenfeld/ruby/ch-1.rb
@@ -0,0 +1,8 @@
+def dot_product(a1, a2)
+ res = 0
+ a1.each_with_index do |v, i|
+ res += v * a2[i]
+ end
+ return res
+end
+print dot_product([1, 2, 3], [4, 5, 6]), "\n"
diff --git a/challenge-145/laurent-rosenfeld/rust/ch-1.rs b/challenge-145/laurent-rosenfeld/rust/ch-1.rs
new file mode 100644
index 0000000000..32e7a2fdc0
--- /dev/null
+++ b/challenge-145/laurent-rosenfeld/rust/ch-1.rs
@@ -0,0 +1,10 @@
+fn dot_product(a1: Vec<i32>, a2: Vec<i32>) -> i32 {
+ let mut res = 0;
+ a1.iter().enumerate().for_each(|(i, v)| {
+ res += v * a2[i];
+ });
+ return res
+}
+fn main() {
+ println!("{} ", dot_product(vec![1, 2, 3],vec![4, 5, 6]));
+}
diff --git a/challenge-145/laurent-rosenfeld/scala/ch-1.scala b/challenge-145/laurent-rosenfeld/scala/ch-1.scala
new file mode 100644
index 0000000000..f5e93606df
--- /dev/null
+++ b/challenge-145/laurent-rosenfeld/scala/ch-1.scala
@@ -0,0 +1,9 @@
+object dot_product extends App {
+ val a1 = Array(1, 2, 3)
+ val a2 = Array(4, 5, 6)
+ var res = 0
+ for (i <- a1.indices) {
+ res = res + a1(i) * a2(i)
+ }
+ println("Dot product: " + res)
+}