From 829d7359d7d8fbd3287731b0278ab70b148d491c Mon Sep 17 00:00:00 2001 From: yolou Date: Thu, 23 Oct 2025 14:56:55 +0200 Subject: [PATCH] TP sur les piles ajout --- TP_DEV3.2/Piles/Arithmetik.class | Bin 0 -> 2040 bytes TP_DEV3.2/Piles/Arithmetik.java | 51 +++++++++++++++++++++ TP_DEV3.2/Piles/Arithmetique.class | Bin 0 -> 2074 bytes TP_DEV3.2/Piles/Pile.class | Bin 0 -> 983 bytes TP_DEV3.2/Piles/Pile.java | 69 ++++++++++++++++++++++++----- 5 files changed, 110 insertions(+), 10 deletions(-) create mode 100644 TP_DEV3.2/Piles/Arithmetik.class create mode 100644 TP_DEV3.2/Piles/Arithmetik.java create mode 100644 TP_DEV3.2/Piles/Arithmetique.class create mode 100644 TP_DEV3.2/Piles/Pile.class diff --git a/TP_DEV3.2/Piles/Arithmetik.class b/TP_DEV3.2/Piles/Arithmetik.class new file mode 100644 index 0000000000000000000000000000000000000000..caa2355d92711135e4a83da5a0fee413e82c353f GIT binary patch literal 2040 zcmX^0Z`VEs1_pD6d@crQ25oi*9WDkY25l||DF$6G22KV&5TOqeGXN2W>Tn*AFf!%FIi*25ICCE=f$z_Dw7Rt7m8MVrTGXWZ+CKF7eCH zO)5%dWDwQBqBDw-fg?FFC%H5ywTO{HT*K27iy}`(2Cm@z(xT*4w@i>*_#KNfOEPj( zOER(rCKPf9U zxrC8H7)z|6D1^imBLhc4Vo`CbXI=@8`0!+8U@uF|DNXfH14Xu{CQ@`j1I?O|fu*3d zI0MZDh*Q96fw>^RfRRB&16eavnvsDcGp{5JWCJ+Kd7`?qvbZEQmyv-vzZB#^h~1g_ z`T<3mc_qOmMX8Co){G2l$O#E*F0xe+zglxKq%x#2GVlf+URhk4Q<7MsV5`8$$RM7Z zn4RjJpO>6i5}sL-;hdjWT#}eqQjBIU)DSG@GBOB*BLLN1j124rAXnz(p@j>~pfE-T zj*P_O3`hoJOD!x-%qd1w3-e4ABZHWK!Qqufi6yC}MGBdD$@zJCr3zLGjO+~Qpfs4x z$e;pt1UMUJ=9T4Vr$Tch#A|Me$tC$kmFx_;j0|i(`T5zU1&j^7(kwJ<4>rzS+Pp8?qFb<$snW+VzBODVB5yPzMMf{dm97C0S3-(3|wYxNNjddc2PEvN^Ua_ zZBY)0@)j1x<^R`hV&DNO+`+)Ri-C`UVH*QK$aPF$*Xc2EGcYi4F>o+|3I<*V6$X9= zV+J7xdj??!Zw3*DFa|M(cm^JZR0e5=at0X&B?blt1qPP?3<3*WU}aEZU}sQf;9yVz+r-Ae=nhiF2`W*c=DlKIW?*GtU|6Q($7IH$yNy9`6(}wk z5*Qd5v=|r|^cff!Tp1V`)EOASVrEb}L{~^?8-wsn24iM3mgNk(xwG0fZ3=9mKQql=)q@+{UNJ(d`k&@0? zvztLYQfC)~1Ovl%2Fd*l3{XExF|dJM*ukL9(8Hj^Fo8jrVG4sD!wd!kuwR83xc)L2 zursJI^6~L;%P})EGczzVXoB@?F=T;4kb#jQgCU0@lR=Wff`Ng7kAaE7l7W%I3QW2I E03yiQr~m)} literal 0 HcmV?d00001 diff --git a/TP_DEV3.2/Piles/Arithmetik.java b/TP_DEV3.2/Piles/Arithmetik.java new file mode 100644 index 0000000..ad29ed2 --- /dev/null +++ b/TP_DEV3.2/Piles/Arithmetik.java @@ -0,0 +1,51 @@ +import java.util.Stack; + +public class Arithmetik { + + public static void main(String[] args) { + + // Exemple : 18 6 1 2 + 9 + / + 8 7 - * + // String[] args = {"18", "6", "1", "2", "+", "9", "+", "/", "+", "8", "7", "-", "*"}; + + Pile pile = new Pile<>(); + + for (String element : args) { + if (estNombre(element)) { + // Si c’est un nombre, on le met dans la pile + pile.push(Integer.parseInt(element)); + } else { + // Sinon c’est un opérateur on dépile 2 valeurs + int b = pile.pop(); + int a = pile.pop(); + int resultat = calculer(a, b, element); + // On empile le résultat + pile.push(resultat); + } + } + + // À la fin, il reste le résultat final dans la pile + System.out.println("Résultat = " + pile.pop()); + } + + // Vérifie si une chaîne est un nombre + public static boolean estNombre(String s) { + try { + Integer.parseInt(s); + return true; + } catch (NumberFormatException e) { + return false; + } + } + + // Calcule a (op) b + public static int calculer(int a, int b, String op) { + switch (op) { + case "+": return a + b; + case "-": return a - b; + case "*": return a * b; + case "/": return a / b; + default: + throw new IllegalArgumentException("Opérateur inconnu : " + op); + } + } +} diff --git a/TP_DEV3.2/Piles/Arithmetique.class b/TP_DEV3.2/Piles/Arithmetique.class new file mode 100644 index 0000000000000000000000000000000000000000..fe97499cb58c9a14a04af6eb012d9c35c8d75af0 GIT binary patch literal 2074 zcmX^0Z`VEs1_pD6d@crQ25oi*9WDkY25l||DF$6G22KV&5TOqeGXN2W>Tn*AFf!%FIi*25ICCE=f$z_Dw7Rt7m8MVrTGXWZ+CKF7eCH zO)5%dWDwQBqBDw-fg?FFC%H5ywTO{HT*K27iy}`(2Cm@z(xT*4w@i>*1RaYqOEPj( zOEL>fQ}sa3;bD+rkY!}x2eI`_OEPox!Or1fP-Rf#Venz_L<&%6>G(c{U;z+RS^Q=00Z28w%6O{Ca? z2Aee_14}_^aRwuU8gc|foMMfv0V>4Ez+8}Dz{nt?fmMhE#?$Mh4!X!z+tRb4n6R6l@h3 z85zWL6SGsD^YfAuOTsftGMw}Cic1pnN{Z3Ug&KnF1*i}sgD^NoP~FAIz+M1yWlkQB zpbleX;K)cU&VXbWYX@XWlj{OnX{ZiRTwEit(yzo?R(A(xSX%_l!UyR?9jfyXm1FSW=y zC$YFVwV07%26B8t&4AEjJbbQZk&`RTkC;X{ zC+6e?XO^T|voqu|GN@ws51ZQ<8RYP*V^Cy}VvuG40Tu>EP%*;5$RNkSz#z-O$iT?J zz`&}toq=&90|NsigFFKR0~=V7nSql*fk6?f^Z^5i&%jW%n}I2EI|H+imaon}J7zN$ zQ5M-n3?VwAEJjwWlB_!zSY|Q^Yl9f9I~druF|da(XE4y-#=voafpZ%Jml+!pn_ZM$ zlntbm+l)h7lmn{1g@tkX|23N!ct9$5F!1hT;A3Fe#=sA99~0PpdJNnQ3=CWh91Nh+ zf|o&sfuF&IL5RVDL72gZL4+ZkL5v}hfrlZTL7JhGL54wzfq_ARf#pAg00S#KgEBh< z6FY-4BO?RD9}q|77lY0Z237`6P(cdytrG(y0~5#&tsM-k;Vf%>nAd>AgpGlnL4X0` z3Lyp-1_lO2237_o26hHz1`Y-luuW_XjP4*+oS5}p&7==z~Y>rlFG=y?~|FA>Q|bZlv)&$n3Mz3T2NY? z!N?%0foTUwA8&9;Vsf@`VgXb+n?{JMHAsTFAisc-K}16nQy(J(tA-}jLAeDbm0&kS zF*0b_xLRSVw!;)+WZ(+UFD*(=b;|@fkuxAOCshv=1Uw9a3_^?y0w6YWaPTm2Gw|>* z@G}UoGwAX#=rQOsGDy1?6{VIIDdZ$76lCV4Dx?;dC=}$RX6B_TD6%sc@GuxM81XR3 zFvud5TA?T|%S=gCP-J9a0a=e?X>et6Nop=519N_92_u6j!~>c6`T<3mc_qOmMX8Co z){G3oU{|6FGcvFjfE4BAp#^zxNl|8Ay0vB)gCYYcg)lHMF))FA#lXnG%K+l>F))EV z$iTqB!oUa$2L?t4VQ`XSVqj!oU=Y^Y&cLW8V6>NkX)6P>7V}mHmW>Py42%pS3=9lH z3@i)`4D1Xn3|tJn4BQMt4Ezj?45AET3`}4{;u)A3m>3usw6wM`uxM>zVBWWYfoBr~ zs}S2Z2KJ300g!}tuvX+21{RhCsM$K zGcYhPGcbxm{UE`>$RNoe1+_E_YN?^tHU^HF47?!wIJYsdGj4!cXygN9F+#0Q*~-A8 zy#X8`Ab-g*urn|)s4=iJXfW_IXfg;g=rKq$=rgD?7&7QH7{TlpgxW97zzB+QXvi5b tFoHvl7v#5D4D2k+8CaOtz|Cd@OIm`>U}a$9c3@;+f|?`8AP-ii0059EwCex> literal 0 HcmV?d00001 diff --git a/TP_DEV3.2/Piles/Pile.java b/TP_DEV3.2/Piles/Pile.java index 8d1abcd..3f870df 100644 --- a/TP_DEV3.2/Piles/Pile.java +++ b/TP_DEV3.2/Piles/Pile.java @@ -1,4 +1,62 @@ -public class Pile { +public class Pile { + +private E[] tab; +private int etage; + +@SuppressWarnings("unchecked") +public Pile(){ + + +tab = (E[]) new Object[50]; +etage=0; + + + +} + + +public void push(E element){ +if(etage == tab.length){ + + +System.out.println("Erreur la pile est pleine !"); +return; + + +} + +tab[etage]=element; +etage++; + + + + +} + + +public E pop(){ +if(empty()){ + +System.out.println("Erreur : la pile est vide !"); +return null; + +} + +etage--; +E valeur = tab[etage]; +tab[etage]=null; +return valeur; + +} + +public boolean empty(){ + + + + return etage==0; + + +} @@ -8,13 +66,4 @@ public class Pile { - - - - - - - - - } \ No newline at end of file