aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2021-01-28 20:45:58 +0100
committerAbigail <abigail@abigail.be>2021-03-04 18:57:14 +0100
commit29d7e0a587708fcfe15b6f1c5b16caeb1c82b01f (patch)
tree52a2f02e9eb68d513df78fb8288d0facb8ce4c9a
parentb815fb60bba7f4a991ec8db7129ce40adda4d6d9 (diff)
downloadperlweeklychallenge-club-29d7e0a587708fcfe15b6f1c5b16caeb1c82b01f.tar.gz
perlweeklychallenge-club-29d7e0a587708fcfe15b6f1c5b16caeb1c82b01f.tar.bz2
perlweeklychallenge-club-29d7e0a587708fcfe15b6f1c5b16caeb1c82b01f.zip
AWK solution for week 4, part 1
-rw-r--r--challenge-004/abigail/README.md1
-rw-r--r--challenge-004/abigail/awk/ch-1.awk47
-rw-r--r--challenge-004/abigail/t/ctest.ini2
3 files changed, 49 insertions, 1 deletions
diff --git a/challenge-004/abigail/README.md b/challenge-004/abigail/README.md
index 9913133e26..daf44cedce 100644
--- a/challenge-004/abigail/README.md
+++ b/challenge-004/abigail/README.md
@@ -7,6 +7,7 @@ of your script. Say, if your script size is `10`, it should print
`3.141592653`.
### Solutions
+* [AWK](awk/ch-1.awk)
* [C](c/ch-1.c)
* [Perl](perl/ch-1.pl)
diff --git a/challenge-004/abigail/awk/ch-1.awk b/challenge-004/abigail/awk/ch-1.awk
new file mode 100644
index 0000000000..090ab7b2dc
--- /dev/null
+++ b/challenge-004/abigail/awk/ch-1.awk
@@ -0,0 +1,47 @@
+#!/usr/bin/awk
+
+#
+# See ../README.md
+#
+
+#
+# Run as: awk -f ch-1.awk
+#
+
+BEGIN {
+ for (o = 35; o < 35 + 60; o ++) {
+ c = sprintf ("%c", o)
+ ord [c] = o - 35
+ }
+ # Pi, encoded in base-60
+ l = "$T2/ZF.CU[H=&:\\X*^)?$KCV+Z@7<-*@+\\@'*H$J@;#SA3Y^.(OG7<':]P.6" \
+ "-DVB4B'02VUR$/;J?2)A4L^C)XC'?S).0\\8M-S[=,X-\\@DP^+4:J5,*&UN[G" \
+ "(LNP32+DU2*L&JN-0N'W.;/P&@2II.(W0FOW'>#*[U(UDI?%$N7OIQ#60<YD" \
+ ",6(LL)#SNX#4)3JI%#/9Z<M7.RKT#G-+^Q/K#+ODLP)3M''/$QS(2V/)?A$E" \
+ "'2'4AG*;;QJ0$.*WCX-C.PW^&^FCZS#\\>6[J+'-NC2%<A7/'.>KD,L-KB>?C" \
+ "/IQ2[%(K#Q0U.&ON.E+0>B5\\%>+S3I*U1KH\\#LG9C[&Q/^W&-X854=,VQA5W" \
+ "##=5*V(T28+%-#P12M,OMV+.,?.4./$X572$%XEAI8(^-O%4$8'QOJ+VU+*2" \
+ "(;0L#.%O3E^7.)LFG8*LB@M\\)+,:WK)K108X)<S+UH&TR3(V#Q(8?S%'.^\\J" \
+ ")>L:-Z'>KE-=(?)20P'5'J-F&9)=I$,*Z#(0-'UB8=*D7GL:-?1NSH,VP5LN" \
+ "*LGZ2'&LWN$0$@?7RN.7TMOF/&:L%]%:7U+W%/*-$)$K6;JR+A*:5@%Q^>0," \
+ "'X[LF7$9/S4N&F->G$)VXSD3-F&1^/#>17M,+W9@3%&7E6;V&/L.FW-O*OPV" \
+ "*-,B>9(U<@MJ)C/.?B+T>2AZ.=#X&&-AT9,))8*0*F#QG784#/XKBK/J[;=W" \
+ ".%5\\R2+.E40A)&=:W9/47DX,)#VQFO/,$Z9^,\\Q^$.#B0VB'*^#\\;O&6X\\?C" \
+ "/##QF%.DG=LO,K96%T+@=LGN-?W9IB&2AK(#'EFPDO,I<XL&.P;%<=#C[S\\^" \
+ "+N6R=8+-OWG\\%Q^'^W(XW[:U&KT/M<*,U,N&-[44:+*CWCP[.LFZV6,J<4@2" \
+ "'*SP\\@./VIQG#51T'<)<*;)]'?A'2[+.@U\\))]H$U<)JU#@4)#DP34,[4@=K" \
+ "-@^DX8*Y-0JW%0J5ZR,52=,'%C3X@+%'A<=0)P@L@**:%I.+(I9#7J#\\&/W0" \
+ "(UY>73.(B=&Z+[,1A,.V8F&'&A5'%9*5[X)6#I,T7X)#.7B=&A*Q=5*TEZJN" \
+ "-IVV%Q-?A0YZ'^K@CK/0C\\\\9&0W%8V,A=QY[$'YU1Q&>YT#;%BICA9%MCT\\N" \
+ "#W%8'9%H7N%<#G8J/4.-^M*3(H78?*)#ZQ32,ALV@T$)S@'(/S9?5;-%&X&@"
+ printf ("3.")
+ for (i = 1; i <= length (l); i += 6) {
+ out = 0
+ for (j = i; j < i + 6; j ++) {
+ out *= 60
+ out += ord [substr (l, j, 1)]
+ }
+ printf (out)
+ }
+ printf ("\n")
+}
diff --git a/challenge-004/abigail/t/ctest.ini b/challenge-004/abigail/t/ctest.ini
index c3ee0bbf5e..110f4abcc4 100644
--- a/challenge-004/abigail/t/ctest.ini
+++ b/challenge-004/abigail/t/ctest.ini
@@ -7,7 +7,7 @@
no_input = 1
-[1-1/c]
+[1-1/awk,c]
skip = Program size is different
[1-2/perl]