From 29d7e0a587708fcfe15b6f1c5b16caeb1c82b01f Mon Sep 17 00:00:00 2001 From: Abigail Date: Thu, 28 Jan 2021 20:45:58 +0100 Subject: AWK solution for week 4, part 1 --- challenge-004/abigail/README.md | 1 + challenge-004/abigail/awk/ch-1.awk | 47 ++++++++++++++++++++++++++++++++++++++ challenge-004/abigail/t/ctest.ini | 2 +- 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 challenge-004/abigail/awk/ch-1.awk 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#606[J+'-NC2%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)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,I73.(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] -- cgit