From 78599ba09248e48fa338e551a5af4825c43c8de8 Mon Sep 17 00:00:00 2001 From: jon bilbao Date: Thu, 13 Oct 2016 16:44:04 +0300 Subject: [PATCH] 1-10 task --- .besouro/20161013143006626/actions.txt | 0 .besouro/20161013143006626/zorroEpisodes.txt | 0 bin/.gitignore | 2 + bin/Spreadsheet.class | Bin 613 -> 3200 bytes bin/SpreadsheetTest.class | Bin 490 -> 1320 bytes src/Spreadsheet.java | 122 +++++++++++++++++-- tests/SpreadsheetTest.java | 32 ++++- 7 files changed, 147 insertions(+), 9 deletions(-) create mode 100644 .besouro/20161013143006626/actions.txt create mode 100644 .besouro/20161013143006626/zorroEpisodes.txt create mode 100644 bin/.gitignore diff --git a/.besouro/20161013143006626/actions.txt b/.besouro/20161013143006626/actions.txt new file mode 100644 index 0000000..e69de29 diff --git a/.besouro/20161013143006626/zorroEpisodes.txt b/.besouro/20161013143006626/zorroEpisodes.txt new file mode 100644 index 0000000..e69de29 diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..2079672 --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1,2 @@ +/Spreadsheet.class +/SpreadsheetTest.class diff --git a/bin/Spreadsheet.class b/bin/Spreadsheet.class index 92b411f05752a6cee6d06c9769e1b70d40aa0840..274b223c6eac8e68272d660cbbf1567c29746f25 100644 GIT binary patch literal 3200 zcmah~OH>=z8UC(j&lfKe6k2a-k9&Q%ic;Tk0%&B{FP8Z$ubl**O+2nN7eVR7??wyGcL2WpP(Y^ot z|M!3YbN>3DKfVuO0Ph%x2yB`vc#b_=oOc}GfG!ZfW-rz7YS=)2-0+CB&0_M?7*3G&8uz;5AnHJE;^0Q7o1U6eR zUrE!&e=0rM<6kg&)C^%qR4wFj2=}mF=$9wh$ChoDq*%+s6&*v{=8cx z>O@r-WF&0Y|muQ<;QajSWk}i zNNf3S&Y@s$a%0>*8$~hfLAQau>#`W6$wCtCOl4-?_D1{|Lr7WJiCxm9*Fqom3Dg%$ zGewnD21shP92`KufrA2#Yjq%HXU_2~9KwKrv1DgU&Y7zM-CsaDv^x^R0SsDr2oEy} zOwP0fP=#X-^o*0u%Hpi~tJGcd@=wc<^4Zd2js``Us#;z*8q1!jQ%vd8kq6s%OpFRZ z=H@FFcB9k8aTZ}nrsy#X<2cDyEBdzQ7tg!?yv$Jz;EN_E*o8ygCQj43TUwvB@KtGT zI=NY8YhX&?fzO9DT5_|qjwdaikl7^1b%hV+;YiK8OyWt|pBMfIt7!>($-+}I$%fuQ_9*V*ghdjzlj@_%ONV|oMk^CZ~))5@GX3s!h-D;9W|os@WYPm z88`49ft_o04HnGtyvGf8Y&qi;d^gWdjb`jwC&wM3<*u^RJF1db(}EjCU$k9XHYaOr zz#dkYBVywFL>xVM$ixq6Ff@8_P|AO7VF<$}exhCun)n&p@^C#~!D|LyUB4=B6n$sW z!q4#wD(6car)>c@H^2WZx2?}e9ea^Q75JrvFQYStU*R_fel4(7g}q+U!W*(Bje@kz zlD}?ybF9wR8c}d)iUm&CRKDb8oa3(C$?>YSx=-SxgPt{hKO+3)2Ii?=E_D9J_^emc zyNS0X-^)KU-twoq-^2PH&k=0lGpgPgXiyUH#n*f-}>~Q5?fQ)JIDptOq3`Z>7j|w2eFmQq>*#h ztbFbYJn;4ab(_$F?bKmud2itz2K5c!lB&43V$WD^zI&>qr!lu8jQMMt&=T(yQ2C#^K@AduVFwZ|}cbNkT#y^s=UXB)5;Q4^)xr zsF3QwBY2cJi0cAi%3I=?a<92fjp35n8nrLd!D4bWi5`^3eD|oTWAmLZE3yGz>3V$Q2 zjH#mcm{LkG5Qg~wqtcb?hNz;6<-5JIMS>na$&LlnsR=mHVG!O{l( zz8&T#m^85G6AbYg{TO>AUH`&}EIhw-VdGuqublE&Y8B6%*Y8YdcPIf%Z{XQ5lAzh= zDRU{k#ud1r7zNWG!*le>B}km-@m*TW)xrgMLL$WEhc@&zPYsFPmy%-^AGyVLSEq~b zpd}Tw11sMkk6rP;w@|0wA)U_>x`lLrJbF+-8rKyCD*y~BNXMM3G)L?vz889RDUuQH zxesyS9$uJ8Ctghapo|}-6E7ux%HMbKGDT&)UdGDjXKRUJJRFOg~Ejm zZG5SaYqbXo?)7YB%E)1(iaZJmb8p! zWsjm`LyzN@_ifydBO8u;?e!Zp@;T)AGz?#ld@y_=B& zR@&RMGuw9F(dY7IP#rqHKuh{Y*d!$t!wYo2Ex5|b%5BGY=r`}Wp0btWxpZqzd-;RJ zQGp~04Vw(X5@=obRPAL$$)DkPXf32H-M(HRddl!zrd1Eoz-%I z)+?njZ9$z{dS9v4U8;3fRr^F(jXPMA`iZXh=eWBzYV}x=GxS*z?#^)UD{6zO?hC|q ztePTqZ!x7-Mr`A`9Tqy!!}k$ECr7!v7(ZIlEyoX_A7dCNyPk{$9?*A!di4;05D^A1 z1tzN^ekmi)Rw7Oju?RTxuC!Q>&hX?j8iT3tcy2A9;bkTC5Q71|3>+aul+b;|?dJ;` fKpca_8Nv)=*WhO_;ioU*M{mMUl;PJX9>DrPgX8^X delta 35 rcmZ3%^@^G6)W2Q(7#J8#7^F9H$udr6W!7b6nrzHGft7)Qi9reg#BvB% diff --git a/src/Spreadsheet.java b/src/Spreadsheet.java index e4f120b..56b8813 100644 --- a/src/Spreadsheet.java +++ b/src/Spreadsheet.java @@ -1,18 +1,124 @@ +import java.awt.Event; +import java.util.ArrayList; public class Spreadsheet { + public String[][] matrix = new String[27][1000]; + public static char[] abecedario = new char[26]; + + + + + public Spreadsheet() { + super(); + + int a = (int) 'A'; + + for(int i = 0; i < abecedario.length; i++) + { + abecedario[i] = (char) (a + i); + } + + } + + + public char intToAbc(int num){ + return abecedario[num]; + + } + public int abcToInt(char a){ + int num=-1; + for(int i = 0; i < abecedario.length; i++) + { + if (abecedario[i]== a) { + num=i; + break; + } + } + + return num; + + } public String get(String cell) { - // to be implemented - return null; + + int row= abcToInt(cell.charAt(0)); + cell= cell.substring(1); + int column = Integer.valueOf(cell); + + return matrix[row][column]; } - + public void set(String cell, String value) { - // to be implemented + int row= abcToInt(cell.charAt(0)); + cell= cell.substring(1); + int column = Integer.valueOf(cell); + matrix[row][column]= value; + } - + public String evaluate(String cell) { - // to be implemented - return null; + String value=""; + + if (get(cell).startsWith("=")) { + + if (get(cell).startsWith("='") && get(cell).endsWith("'")) { + value+= get(cell).substring(2, get(cell).length()-1); + }else if (isCell(get(cell).substring(1))) { + String nextCell=get(cell).substring(1); + + if (isNumeric(get(nextCell))) { + value+=get(nextCell); + }else value.equals("#Error1"); + + + if (get(nextCell).substring(1).equals(cell)) { + value+="#Circula"; + + } + + + }else return "#Error2"; + + + + }else{ + + if (isNumeric(get(cell))) { + + value+= get(cell); + }else if (get(cell).startsWith("'") && get(cell).endsWith("'")) { + value+= get(cell).substring(1, get(cell).length()-1); + }else return "#Error3"; + + } + return value; + } + + + // si = + String '' --> devuelve el string + // si = + String a medias 'o' --> devuelve #error + // si = + Letra+Numeros A13--> devuelve le valor de esa celda + + private static boolean isNumeric(String cadena){ + try { + Integer.parseInt(cadena); + return true; + } catch (NumberFormatException nfe){ + return false; + } + } + private static boolean isCell(String cadena){ + if (cadena.charAt(0)>='A'&&cadena.charAt(0)<='Z' && isNumeric(cadena.substring(1))&& cadena.charAt(1)!='-') { + return true; + }else return false; + } + + public static void main(String[] args) { + + Spreadsheet sp= new Spreadsheet(); + sp.set("B13","=B16"); + sp.set("B16", "5"); + System.out.println(sp.evaluate("B13")); + } - } diff --git a/tests/SpreadsheetTest.java b/tests/SpreadsheetTest.java index 9e0936a..80b9790 100644 --- a/tests/SpreadsheetTest.java +++ b/tests/SpreadsheetTest.java @@ -9,7 +9,37 @@ public class SpreadsheetTest { @Test public void test() { fail("Not yet implemented"); - + + } + + + + @Test + public void testGet() { + boolean ok=false; + Spreadsheet sp= new Spreadsheet(); + sp.set("B13", "Jon"); + if ("Jon"== sp.get("B13")) { + ok=true; + } + assertTrue(ok); + } + @Test + public void testEvaluate() { + boolean ok=false; + Spreadsheet sp= new Spreadsheet(); + sp.set("B13", "-234"); + sp.evaluate("B13"); + if (sp.evaluate("B13").equals("true") ) { + ok=true; + System.out.println("iep"); + } + assertTrue(ok); + + } + + + }