From f4fec9e326a4a10e10974e0c465ab6d2a51365d8 Mon Sep 17 00:00:00 2001 From: lfirmin Date: Wed, 6 May 2026 17:05:05 +0200 Subject: [PATCH] push ex01 --- ex00/Main.cpp | 1 - ex00/Makefile | 4 +-- ex00/btc | Bin 60688 -> 0 bytes ex00/btv | Bin 0 -> 60648 bytes ex00/obj/Main.o | Bin 5560 -> 4896 bytes ex00/output.txt | 2 -- ex01/Main.cpp | 21 +++++++++++++++ ex01/Makefile | 36 ++++++++++++++++++++++++++ ex01/RPN.cpp | 66 ++++++++++++++++++++++++++++++++++++++++++++++++ ex01/RPN.hpp | 23 +++++++++++++++++ test.c | 13 ---------- 11 files changed, 148 insertions(+), 18 deletions(-) delete mode 100755 ex00/btc create mode 100755 ex00/btv delete mode 100644 ex00/output.txt create mode 100644 ex01/Main.cpp create mode 100644 ex01/Makefile create mode 100644 ex01/RPN.cpp create mode 100644 ex01/RPN.hpp delete mode 100644 test.c diff --git a/ex00/Main.cpp b/ex00/Main.cpp index bf678b8..9a7857a 100644 --- a/ex00/Main.cpp +++ b/ex00/Main.cpp @@ -10,6 +10,5 @@ int main(int argc, char **argv) BitcoinExchange btc; btc.loadDatabase("data.csv"); btc.processInput(argv[1]); - std::cout << btc.isValidDate("2000-02-29") << std::endl; return (0); } diff --git a/ex00/Makefile b/ex00/Makefile index b31ee8e..0fb259b 100644 --- a/ex00/Makefile +++ b/ex00/Makefile @@ -1,9 +1,9 @@ CXX = c++ CXXFLAGS = -Wall -Wextra -Werror -std=c++98 OBJDIR = obj -SOURCES = Main.cpp BitcoinExchange.cpp +SOURCES = Main.cpp BitcoinExchange.cpp OBJECTS = $(addprefix $(OBJDIR)/, $(SOURCES:.cpp=.o)) -NAME = btc +NAME = btv all: $(NAME) diff --git a/ex00/btc b/ex00/btc deleted file mode 100755 index 5d703c97bced2e59576e72b23ad316eed08aad69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60688 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⋐ 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 HQq=w*=_od8 diff --git a/ex00/btv b/ex00/btv new file mode 100755 index 0000000000000000000000000000000000000000..6b35e40b74c047f75bfcb1bfba280f4cd1107e81 GIT binary patch literal 60648 zcmeHQeP9&TwV%xgM2jXMSVYuSK|vv8L--QZ@Ugg&4`UK6QgGPpZpdn~8#fyS1*Hw} zNJBJQKd7~qzNeL1t-Oj#6*V9=yjEMRw53*URID4L7LnR$sr!ECe$3pR%%lkN_Wi+V zICIZA_uO;OJ@?#m@67Jr;+;J+!{yTCm8o5#QK@)1#}o@fVxPDHDAp!wC*fbWc9zx$ z|X=cj^kws)q1SG#e&}g_lfo-RO^v#idXP@#p_eyUeWJ~#6*|Slgve^#iHI~QBT4= zVNVIAJxNFUn<(X4U;$`!NocKCE%>c)2Ct?`NNvzn{%$;YB<+=odg~W6F`5--i3SYF z*|aNBPnt@gdIiFqTA66iX&l-_za=C;p=(S{xN>~an3~||nsB6H+2~~x$B!OglwTjs zFJyF5(~Up!smtch(=aS;gcIVlj8(iWV5pcDW8%L~r;9XPpr@3iZFbNU6F|Nc$a zDZe8g(wpiK4_zcr47pLJF(e*tkK47gQA>_1X}3G{o7&;E{iYAv&~G}cWb@BKC_caj ze*l8*@E=1FJA4C_u*3faow38Oc98P}2mA^LIVU^lztlm08ecnoHap093P!i%AMPOk zQwKXd zgFY~ut^83A`1c&-ya#>Gu_}r3V;JB5+UeTj+c`0h8pQQJ>`eILR$i8PP1l#yMk9KC z+#ieUx~7*@%+Z6PSZGPOJ|2oy%$Z&jjf5)vl{Fzwv!^VWJF7fCLDvJzmU%p$!b*RA zH~^WkaAZkIpgivJ1giZpJs$Iim~Kdqc!#3Dt1S@&+u@q z9jiO)Go9Bgj~9g^!5TZgz0N9+#{eCXsm9kgRHFCZT5hnyNqSi&h9eZx!;$(BM&2I@ z>akFzzs4U4geps6w21~wBpM9qFkz^?Krbt2Du7Nwi+S zqAnDvg)nBuFYPW|SlO)dv7|zZhT%vc7OD+J;tq=Q1}BE01NEb*BodCBLwHzSnGmkm zqtIWBJGn#Y%(C)mxz7CK2;9G@DjW%V1AIh0m^|_7So8)c7}WhWHPHa31?H1quf$x8 z=mCE`P|f;X6bQv)xC_>l(#%OQL@*=`0fp>_kX4wlBos&b6|(a_J~b5=L>#cpn!}tl z`jTbK^tw>2J{s}YgyYNgr3GkxE^9!{f+L9<<5*x}!%!YCoS0&^Sj@j%kA!Z}d1PUM z1$Hh=rJU zaIP<_q39c8P9WM4CmBcJt`h>$+B$zMWOSBiJ%i};5t1}eVtzA57%g@ULOwzF1(O-F5{`VBmj9-@=z(j@s~}X zu8++x&@P)@GHtqEm|tYvjWurz^T%=Y{P|!m$}gOxO`ku1>a-HwlRs9asQ3AW9xUV; z*vHTx{g;J1e$W5yqxHouN>WXj!>~ljV0AK4=Jm6%`#FK#yKpD*JYOKpOyp!TKPo+M z`PVdXUjrOn#9txk#V8L9hfmV99IZ;=w%mRrS=t0aBYDfa z??L9%SNjivd-bvFkileWcZ+g->*XKFtZw~=99iCV8>geQ#@>-IyA}M2oQ3_nSHb5h_znd>Qo$z_ z{AdNgU%}@q_-+M1M#1L^{V6>ZCSX*VAHvvLp~5foNy3xo$!p!M{Eo~nQcZ?vRqz-{ zeuWYFdYahvOSpLcyPGU^Q*Of~PqpuWkk3Um^*Lail(}``8=>e~QANr{L*)L|%gx z{2+-0bSrpq^v0+o6#Ul}{sIL*Siw(J@TV#GVg)}$!TS{a=?cD7!OOEsBF|UwXDIxO z75teBzFNVbrQqunyj#I9Q}Aai_*DvC-FK~1@aHQ0tqOjag5RLvMJQp^jS60bDu&;r z;Llg&Y*z3WDEO@k{z3)crr<{@_~W<7EpXfd$1QN&0>>?I+ycifaNGi4jRii*J@a#4 z;|Dpu=IlR3HO;rCEuN9w?Q7hb^8#xiIj$_CX$O+S%K>uF(ulvBCUiPhUq}(?M9h4N(VZ>Wt3?%aiH^hqf8s4 z1D$@OOdFyDomU!V+PEI*oNAP5V|1X?W0Yw_bfEKWqf8s21D*Yi^2x01GRnEE{P7pE zzqAoT|BW(jfY5)VOdB8c-zd|D2mLq7w9!HTjWTU;(0`*$8yocBDAR@p{Wr?AkwO2B zGHqbcf1^wr7xdpK(}o58H_Eh8LH~_1ZBWpEqf8r<1D!6TOdFB|oge>8_TSCQZy9CU zfS~_InKmBizfqJkfprHQl4ii&#{!fmh#1x@;FO* zw52@UQa-~{9%Lz>WGQD`%Ky4H)&76Cls~kT-?fzAu#|sqDZgwf|I$)^)>3}LQhwA@ ze$Z0>fu($xrQBjEuTjgM4@;U}xyIM@wy$yD{?ZDsr_J*}zLtxB1+PsGst4!6s{Guu zR-=dj+j8-bfbq3t-%DUpcYF{+?^Se<(0f9%BloOT#P@=L;J=>nkGqz@$S-_N`+eI# zy41J5JJaWS(f7(1@qrL9TnNZXc2u!>A?s6oUUl)B8i;JTaGtO6;@^dF>uY*9-p|*3 zaUWDm{NzwFnFu1-y_mfSe6B^PYqU@GJ8uAyZswt0x$j#atb>TAXIB90YkHy%An0q( z8a{#v_9i@Sjf|ENABS%Ka1u55BJMsW9h=${S7RRgng^9Z5nt0E2=gDnJVT2}=Zhqx z#oJ0)dQ}1Ux6yqAVv(<9-fbwi`C3k@VnTmIlxIj<%RFGI78Cap))&SI@(OfL3MpW$ zT;MPg*t~|6_cgX*`O7iHH!-<^o^pS6qA7QnB6lzDpMm1kDAW9UXx_Bf*E}x~^j$cR z875xW6($qE}5xkS3ccO}D z&5OGK=LI=zSmX1WRvv0<=x$tj$kj0UTPwShN%%w|1|}>9W;2tR{qYhKwgZGxMtBka z^)kb?Cu*Tdt10z4lJPu^T;jX1HQv!;gqXbgX(A!{rX zjZx8}=X{9U1U)xe+#IYMN$qMF#n;$qcHu52d2l(d#4k>58rZ2SdDdm4YN>KIg&-W2!@_Yn6_ z;F`Q!Bzgs*Wo63Co~C4r7!ODa?#~mIpJSD`%F35Y7HXMQrp${fKOrf&?}R52?pv(# zHd#3XER8F-YB%@8zx{6M)3|b*c8f61;}8REMtn@OcWX;&-!*Nyz8#2YO*>F_?f%~O z_s??eZtQT4+}+rA<|Oa7oBJ}Gblpsq8tR+9TN*nu*R(a9*F0~FFR;TGZaZsD*Ok8Q z3HSEy?50c{^eJ2C3rJ*lsn)McP1{)=R>DQwJ{sTCA_>o5?$ zrf1htd}?}P6+jQSTtisWVlET9-Pf|F1DL1z=&|rtgf;}47~e%}jr(2XbS#o}KF6GH z%|;<81bS8O-`YOO?Z4(e!nNGRNL;X(KCPc7lbz@BifxSP3C7gE9kC(#G-ch?)^bv+ zWewv%@nO^=^bVj8NY5>b@iFL4M1D{=XkE7+a+k&yLw-|LgMTi{t0zJG$xwn z;Uok4$@XA4Ok$%)@BZDvhO>##oabwNA5mg}&$XLOGl49IIYRLzcg_85Eo37~#0!`x zW2Bl<6lO43z7AaDKV3eAPb^4$rOsV_2m0GdOS$2vhI%tmq3aUDmo)9P*o4}f-Ske^ zSv{-eQZ;i$Gj#gL!Bl*Q@TyyY7c*itjF@-~^?l#kNgn>qsS8tAlL7=`%$+pt_bJJAPqoF2&Tn#_p4r4kZkW;?L1* z-bC9&rfBR=Hdq&d%dieN77!EVP>=dK`yghy9bEE@zNSAW-uVOqng<=yiGlUe10Ft^ zpJa1VtRN|q=0mDQ*;BI@D;%rF;`V-*nWszw4}5?W`FxC2WSCH7Jqc)16r+vm8J^cCO!J^Ot})Crz|g9hG-&p2fHP>hW3sP@xTTaAoo&b+FXZ0OrQBmm zc?lTSw=SO$kwbA3p@oU~ET7t=k^6+%qdoCWE~3H|(PW6o7894RCfh&8N>0A5WRcUm zrWn(XbA2CNVh$CfM;7WzlX?!Qi8-uwN(_xvh1Qg1Ut&%9d_Og4x2ANEaJeG1CvHbE zWliaeR^%eGfvpclgve%9ZPt`2Xst8K+~zJ`r-iL4GPtwFtRBIgwUoPNI%9QSB@U7H zb_>MqNaD!Bn&k3;F=V$(FURP)M$2)$kPTdW;=9ZY$dX0SWL|a+A)5!?u+Z?bM}XnJ zPvKVKZpq%xxY`pVrKIf6QM?uSdl5%Auc1y?q^6uja6wgIPI2~4HmqV>;_&;jp0x- zQOeA4xVxf?MP#k^#JyCjCHv0{s7SV-%m}nAdWzxN6W>5Xz3qyqD{NCl8zQ#t@a|t^ zZp{R?H5Ju`4LWuv&BfS95ft~xXWyfO1M^^oc`$~h2eYy-YsdJbQzRMvq@6{|K1uH0 z+KVY~1m8TaMN?^>azB{WZ!dNe54vE)6=RToFz5iHZ<(HQ+$g{R^zC_E&7}B0doq&9x_YV01s&G zks-`$g`yy_dA5l4#JicJ+7mbMGWKQjXm7Szu-y#w>NafQSpc&_yiSe`gb)bZbv| zh}PKVhMOpB*KpJPqRw`z!*@ihVXeetUH@hbXbvEc<5p@%E4}zrHzV6jJ;;Cqd-waA zasIX=_s%wDDk-yr$mq+3?~_h&eU^1tPE?F@2G0BY-Zi4n{PpJH2Yb@pXaU~b(9u-_ zl{-iwZg|SLq?^A)UM#4j0uKQx$0!WV91}tsS9WL(n_HoZVI8&KXk#Dih@_I|PJ|-6 zph#N}&-L!|P4>3MBQVk~IKyr+I!}=z%^=e08bm%wha}BBXIX++BbSW$NX7*YhNZL< z$$ax1_!}yVvpC{!%H-196Q4`b&h7;*+7rKHw%ALz!!e49(oX4KvS-GeqhaDSW)_J>nc)+5)Y|L87KUw^`8X7QnU`~n5=r4(C zj#9!wcA||nt@hotka8;cQ>qHT5P^IxD`NST4*rU-=`|YT@3AIQa$AfqSqiP1=hJ-8 z2!oXlhC@lC4ZyJ&vmvIsd1#xR7z!O7<_QHjH2W!IN?eWny&VZV^~VoFrwP(`&g zjj1IGpbeUf;Ijj!!YK__ zaUMS*i-%EQPh{4kBCw@7ToeUrN)@OF?CHjMd2eJCtaD&5&O`I7{KBv6G(3 zR&?@6%pbMA0-F8c>OkPy+an4fY?^&Klls&$hx&wwj2a@|3}byw?Ps4J{RB5nRK<%} zgyucXG3QiI-)fp;T~oVCG0@O~)>3RPsQo5d@7vf}$X^l%adwNNk0G1`tEAvu#W=mY zyYeK4J_U?y0Pl0G+^seIgn6nNrq5(^8BsfB9nDURfT=BOl4)!7k|s78+K3Zk7AY7R zIjH~W14UQsY*a^ztTF-y!z@cZ;G@&C7B4nD7!w}4{>XzUGtGaob42XPz`?2gsl%*@ zGi`9T!VmaL9Oi&zW-^qi>5=W z-zJ`<7A+nsd|k1PuofjoCf3$3(Cs#)Lc7rpy3f+?4NPAeGd6C>kXX0{OEGQt;unIz zZ1W@?@YBSnOo}a)5Ye7k&vHeSo2CtBGMY^P`5vp{-QC&99HU3uLwVZ>LsSQohlh8R z5dfX^$WPIO>M}jDxE_$f^Z+#V=r8nOUYolnCequk$>eaS#|I}^YC zi*W#!IJblP&)OP6x2ZXnIR@&|Do0v)Z3Kq~%4k}sD^sYpb$;%PO6v> zwbAsZ;r&bEG#rETGqWDE`=9g>0CU-#-TaY}oZbJ$hT-4O?#r3+)U1m|D(T&aGrN0_ z28|z-LLxk(0Ug73vT4p{)etQIV*6MO4ja4OY&Owe6|M?5;GRB!w%ARSQ?l$fLEe2f zb2}ECS8fLXR^l&d>L#by2q|4(XKv9#KE_0!#(f9DG&O*G->?j=8!FqTiIDsSo!euG zTD<=dV%b_@5qaSC6p_-y?AL@IDV-V(jdfD4ZqVU3(nb_eS=Sf_p6cwOWY?6aD?M0| zdkIdr)R4s!X0)MhEof1sc3A|XZ$e0sDtc?_T;YBaJ5jckOA^myjd;sv@r@onA$9AyzX z3)tHeG0KT1y?~uR9;dB-fXil-2Z$SfHW}=jB>QM$M+S?U_cCb|_cxexHiWZlEXURd zHxp$24_P?d;cNHqV*O~DBlgM6oFNiPF&j%<=OgS`Y2F52l@0T9&^zyBc&5@;(u3_* zn#hvSgYB<6aL`Y^8AwqDPe(9wFqzCgXRz%z4m^0b;}`QL@bsP~h?IRY3%tgPINhgJ z1lua6<8})CQpX&ri#Wtti?=m}d2V70gvC5FnP%}S2xueS&%kpC*qB*AKFYKTmYY<| z%u-vugZjmezcA^Ua!fOpX-mx_tnVq-n+zG9S24V4y*(^Nwy60-gmW@rhJyjmXV2qJ z0~*77G7&Hq_QSiD+L8*s%v=qM2-Drb#-4drG1EyM(UX}%@x`dk#{6A+lq2mn(rk`G zX^KakqBPmH2u35r;*Um@8SMZYLGE&0Q{Z^2zny^EUFR#};jAep-=fq;2&U|+AAiLu zJMqyUX{tD^E&I&~L2okHEEBVvyqnaeg0jEHm2FzXr6@apYbRAeSTd&&Er6e1bfW^IhvKUFZEHtHXSs&9?r`gIRioe*1EApJXfu z9St35{{G)n|0q)_9^q>#b#b+5bB1KZY?;5i0Yxl{^>6=x>Ww=~*~9I_$e!hzjFun3 zuvnw6WzBFS9Cn+5n~pZx6R$(#lzQSsgvDmD!f*v=U z=njlKT4K&LhR@ROuE8k`yxw0yv};`*WaB(04;F;ZY#jWwRIoGJ)OEWB-BC}%%vE-T z>0QS9$ri2l#30O2bLHq^CBE=rOT#z;P>r`mBxD5Dx7o(PQllCA6vEZF)eqeBmC%xDM|W|LWh7#NK%2yo7A?am43XI8wbVWqwjV z#Ai?rqIkneve4PZtjVTa4*Ulii~DA_vrCAb6-`O1nY;R@YK7+F!H9?5xoa9#teGl|4rMv&qC|jWrSMu#V}8*Jz|Hk->F+jbY43 zjmr5#bH>Z0Z|fm zh3LVg78_aGvLbRaJk$7N?%9^-h)jZN3?oLSoLNtymnLk2WHr=MJTW!vN9%Nc!#a5B zZ@B=R{quL6M0=Evm5H8-)t|5`}V};Bz%&0f9^ePxlgvy%wn(a4)JZh^__|Ie6ydP=c|lQRH519*KrFR zx4>}=9Jj!63mmt=aSI%`z;O$t$pS8XyPh`|i^eW;<2x5?g6>E(?xyb#bytOJLit+I zANS`6>X(vwf)8K(=?+Kg8shGYFL6s`JQ{V^_+v{#ZofOyP+J*_|m+U|?pBze{Ins(z1*Xfy)@zr_SEx_FQd@@;t`(Znh$%TMLfN{VrJCjLz4*7#$ zCXJP5dxAdXe{0S?5;^d-BJ$ti%>04@Yv54Zww@UN4}2LJ~kdw&UV zGvEh+5$x**;-h)j?g2kOr{4y+0`O0O10nZsfJJ~AIEbnM90M2!TnKn4;99^ffG+~> z0sJfA6v*p?qrZiK=K-z&TnG37;FEwm0sjEF53t|fWU?RLw;c~S3a|ojHsFnbHGn?` zTo1Sl@DacS;7foxe}eviF~EK&;M5Ip6yUY5K~KOt0pox_2fPz-FW?ryF97!dy8jHj z0nP;+h>wWe3RndAIpBQ2%kgw;1>n7a_W^DL+y>YU_&Q);JWx9Xcn09muVK6ZrvSzP z7Xq#WTmg9Ao2U<10k{qDTEN!_F601C0o(|<5b!y`6@b_O z75xU>3AhdLHNe*a_X8dR)ZRmVJoB0eI0bM%;6lKg09OG14DdccdS`AM;IIVh1HOb~ zHhf{W_BNm!@FScc&Y2Hoz%>_@7;_8_P7;vOL%6{rcw6Co~B^6o0L4$>e#&F{3Yf zkN)AW2!HdRK|6F#aB|+vlLud(`?VW#R%w?Gx#)ti!_EPg)yL;8w6N^v^(N-$N*6lrl2wGdsgK z<}~GBZq}~={l}n>R_Q^L9vAhU=y!tNhWaDb`isr_TR{I6=$ESWr6zq3=Mb7cl=i1>zrUb8cq{EYanQ}`}lpV^p|`B&nk_Fe-0lJ;cse%u>6XWV7T34*>2 z^k+%VwTc|{EAuh4z4f4%{R;Di_-YhB^0O|^N9|3)$=84W#@>#s|Gm&z{~@31`ynf< zNNI=cTyEN#o<+S5K07;7J3B#t-$4&*XQ7~vgT1r%o@CmF`hC7RZ~A3ned)#TMuDEO zJDH^S*bMv5GxeMex&}In7t&`Ine-aa`+z=5tsgMy>p>p?`q?UdzDa)s^nsu|`SnZx zhW>$|U#rT`@UsTUj{T57Tm$)b{Tl}Q1E{|c^w)5o^%E?DvX3-gFPVB)K+eg?YnOtJ01jm80b#^M0s2x=yvhN4f#c& zmw{e``xF~o!)-u3^TBg3c&@PWOf~I9dEtxTDOGtgE@KSTkNZIX6!ddc`qgIrZJ>99 zK3S#5O#17f55&VITJ8-!XPWdwpl5>a6z7K`Kl}{xo#>Qj?g#y1Res!*Pxg`hi)!)nlHgYGoW4}d-wbf>tn6Z8e3JNf%Q(SEhs&kUV)lI)y?Jp2LF zcN*tmpx^62cccCc&|5)&Qk743++_MfHF(a!UdCz8uLIo;I#N8-S4+(Ln?N4`x>M}i zCFpiGrr5O@^bFL$5BFKwFo+tvZZ+G!25-{wCx00=N;N{|@wPai2vSC#gqCOXm8l#_S9wU#9bpJeR(?QQy=^>Lo6dU&oK#!>O49-A(odWtY(An$4QjaUl`U^qt)8@PnUjh0Q(Czl& z)MPU0Dl8eTY4^CY@w286yRu)%(4J)Xe{*GjJ5&31M)rpp+N~LM|I-X4wGU7iQ+o}HZS@`D-`sbhY z59&>y1dht#?b+Hxu2GL=Yj3!+JF>J@8QHjhFyq|rEbX(53vmBbX7)YV+V3(;asNnG zHu&2}!aLbq%z0xrz^{Jq%EpHm|LUs2@n*&W7t;JUiRm_CdQ@VW#b$EU`rex&_BSRR0vp_U5_0(LBXd&Y^cWN7b@44M=~ zKh2dpKl`T4hg>H@)C*Jz6c%}=eB~C9zgH!HpGy87 zRmX7N6pz#z`^_xE$TIy#ms+OZv{Qf4m7sr<9>)J z&lhyc3+TcQlU?|lk|^D5rW_oXTpl(F1{}e#t3%MSEn^p*ZO}zq9J*wC>TeSfUR2ZS zZlx0a@)^I{1Yw{k3vrtKts;7sLYKs^!g5KM)Vo?34%=0B$@WR(R`m-} z-i_RbuB0eSJ@<=pP|!aUWoZ{)>#O^Bu^1Pt!~!?R6bo1?;9>#m1Y9LxtAHB?+$><5 zfV&0k5OBYM__1tuNa(ULEttYZgVKxSzlC#^K{V;3mvg(JEJ13kmC<0n7Qz_0q%iMS%z zHMhWTwBW}Iyo^JVzXUff{JwDA9UMdY(M93Kh1n?M21DYX75JleWt@}vb+~b9ry6lc z;vd3|o&K8{|LNNGmUf>9p5%9&&m~;Nf%Z3nmvL3by-X0tSkt8ZuR{*C zE9144?_~c=!SBLT)DaCrK?T_9Glv=W6m9)tg%P)lnVi9zH4cOs{xlDzoM8Uu+?POK7o%+OT|xzUy}TDyc{p% zEUgQKub9N~*d4KJQI@@)^yM|gKV&B7lYOD>lDrop7+48B@%zd-cB&xu!@@-PPuW4J zri~Q%l>&c}k0YeaTr4ES-!_Nig?njt055rj2nJpe{AHp+cJ=}aeVy+B$SEDcxn+MV zu)2`^wZ$AiiUaM3z@xX?;8uYU;K#t*wfmNkv!|FdRtx^`B0!M*Ll*n@#ez)ue+hdE zGie(IK4=;DuVKL^{x8@=5j@8d@^2UTVOMg5)PHh6&R=yI$4mZ$<2B7q*@dNFe-QjX zFXsGbbD+&b;zI3KPT&Z7)=Aeh!1pIhEM`T_Wq$oi@b47uN;?n2ISmZ!?e~xjZ%g=%K1t9tJ$n!XY z-rb-p8-dSGpV`2ZoR>;DpY)T51>QRDBaz?{|IH$v+{deFzZUp5;fDff*AC+P)Q#Yb z3k3gK;7QItG4AII{Ko>{aS2CA|7^gG-8{V&c#`v)m=~7{Ie!Mef5s5ay6z_=znEB4 z1pinhswDq?p{Mk#D}X2YTZG^%1pjLS{|6yJm`_`X#FhAOoWmKV&HpCwbA{cc|Ifj~ zMEom+9i+eQ5O|+3r0AaZ4NOtuA0pbV5&FCVylhLL7#MQ8Jw5&~#(=MmsZPSsq_ zDD8YE7AC^KW*M(A@B=dXYjWQt#A{K(|B{e{BD->6a69{)>42XMJhh7-fo7MCdm9CQ z%2bYrJF#oH+g|>B;7QJR#W+g-0|H-qC9AH8P8oTHuNQ=a=xZoEO?~ zjvpfQyoi&v`vtyiJV!`9U2rgxGezhr$6}$tTlN1V@RCP}W?;VqK5#zQ|8o!Lrgw?x zdKP$UcfFX8GR~Zjc}{ridK3fRuH7|){|-yPhQMAVXSEn#IgYmpymel8qdwWW7EC}G#H#~tv0bHMk*0zvx!3ihB& zj_+{b?d*J;z`rl%qe#=W?Ly82XooI(*Nm>y;b0`kntyHp-cJAj7W|jb3ZxBUxoiLWm z86f0bD)1Kye3?c5tpb0l@Xu=nKfTP_ANy1J`{sEfzMTp@8+VKSe+ayto*xSS^TfP6 zN60T7$K~u0_L1>ztH4|5>1gO}C%@PM-wHhGxp@w6P|o)Qz|+3Knm;E6zctUVM;s?P zPl|bQs?h%+@OiM$vOA=~IQ$HFJ3XhNpCsoy!k@8xuyvmuw{$Ax`lJPZhY zNZ3cVdmZq0?LH#-=g;OHmHavAza9U%z*D={{BWzl&ldAHDD1YX*j~;?;7N}4d>|?C z1ECjP_j91#HI?%Z#dy;78VA~`(>VU485|+?zhB_3^F_lvr*^IDLZQH~#dy+n1qa%5 z0$(il%i9G0MzlwAx)8a$$@qc^dNq>nAej3kic8#-PcR(^$7t_ za;))xm%t}P99t>cz43C+Z}sQBz`F&H3f>d^*8Nw}EH1~Iuihl^)_u^Q1pX#5UrrH? zybZivyN3k-&&P8{zu;evaiaBQ@$DQT*O%LXCp%dEc{ut{`HXdcI+fvtP!*I1VsTG? zRMT~TWmu2k~-dj51B1arNA(b4sQgEnhKnX1TXQub4V*wih)P%$-#ppP=i3 zWy?GsPhq9M9vy+s;mDGbKzZEbfl@Gj%pZ=|mjt}!e*EK|K*sjRLf*1j!?pT;(aQ&Aiov+3pVpV;Jse z)lqwBX$2aY#OJ|;C82mtI1+N6b!E_WET5nViLsEswgmII06vGwWI!51i6= zrlw(VJVp8(J%Ap>d32ySGLcQz^7z+5p&Lvx+|4uAaAu0CN9}-K zPeCvw+7BTlPt$ApjP(==N2?N^X0sM}$6-OP4|$iWZbj7*&(mPk@vvzKBTMnNJYExb zo=BBty(}qgO0n5eJ{2w*q7Srx37gD7M7G)^E#|N)?ZLw-8)9_d<$XKl$qAfRYTAZd_$8zi~r5wbx4WC@Fh;Zj)7L+V$LV9M-BzOwG zfnf=9P?oHuM++>iQz;U%d@)eN(RECHb_&68L~p1M1zDew{2pc3X0Tli zCCr9hk0={3^kAz$yy$R}_6Zo-now1*0}D~ujKr&B(HpR-3G(IHCgdNpkl`<MKsUsD%nc^@+uPAKU3AjA_0y)eHpe;kh` zU)EMwYT+cdd-GX6P7-MAQHER`RgNSeaSfd}{5U8vH~i_D*b~V&V>p6f35d;t!uybh zkR#$9!WDAY8oQho!4|&9)A4BPzHhvBgGz3C3{FyNYk6YOYyNnY(}8=ez52$QmWBcH zjDzp6W4!2c7U=%pxsa!jG>k>-{;hgFW>jDD9{g407Z0@p{>;DlCD)`lyaG-C#|K$Csm%%#ywdY_NI^Bu@&`mlIeISGbz# z*+`5_`&Opc^Bp=N{>qaH<0QDZY5Y}ZFh-+kN!FF#gz@O71S#?C$^!LF{FtTSf2y@J`Ds9F$@?)W@e4LIhTc+2AV)aoV`mu8&%xKXWY#HmtLTzm1k7R37 zMIj0ur{#zq|EA4R#^YqcIA^q(`Ao5BO})1&)#7?hxRSQLemu9LhsDOuaBLA(Ii|x= zCq^JWt2k}h%!M3ohllRUsSA6IPmf1xLXjo$>XZYRe7t0wu85!<4%*Ks(yX^d`lxcm z^sdM}7S$~;p>=p}xmUM8De`)qwov7l>kbbH%J7_%kLgj_hn7b!=Ga9s?5UjA_q2Is zAw6)V2ac%^gzz29*sbtfJw3~pdgf1?Q8*15splD$#}lrmVM|)6ZMBo3rb7lK^ zU^-(ORKnAiIXb?RyVsO~`|B}Fqm8q#)VC_I-W=5=_p;Y2So)2e;TTSIJkEr!N`h~s zP2%_)uDUE7H`Z)^nu}-Cc#{hCY+tQ%KJ3FzqnG2^-rw@*nU@#V#i9XvX^Fm={RoqC z<{n4?$Y*+?-G+Dq-dCa2&5xH{*kf3>Z$3K55Hl`VQ<{=5q%ABvZDHj@u-@_nrS4br zDo9!yMa&oPYvA>{9#g{Z=sN&+z%#wlS%K6{c|qicS_?+avx@NE7JIrZUS&Ksr!d$C zdnX$2)0E*zg1t{O>;H5hS!l;=mU=xNCGmU*Vd~4CB#g%!s(9Mqtxd72JWo)9o_VTa z9}BI6Qcl~P(wSxD(Q-ZIjWn8uJpz^V%CBJdPxl;NoDr*!Lnc~|7wPz>(xW5j+A8fS ztcm(5Q}NSluSXMI)A1A>z2iwTz3Xc|P)c8{?D;+u5;(7(^4bWN3^<|PnH(M=^_mNS z&JIY*_=_b+Fk$dogw0f;E&5Ts;TxzSwZ`ej>yc?l71bB(kWi&TgOo95PgwXip=Y#U zu1n`7f$Q`@^>uocKU`zvUpO-1FYW6UbEeBz=F@a?I99%@NDgw$GHj2hp$tQzYqIWav>kd$+GPDi5HK zU@0iVS#!`Ea99qMnedfl?x`;lu|wfw<|XO_kKR1xtL`JqLp0>0HnaH4=eAfvuz!F9 zj!k)i=9s@s#^;z$uaxsMeeUSC3CmHQfgt8NB(T&bd^!!wc#+(YVC~~Q|FWABN=?=M zgcvb&=UCVLXab#`9-two@%F zbK$5TEFsi;b^Z)VudJ_EgKruJ%zVw<{=_70=?~f2d_@jJ9gfzsPwp0#;KR<=;Hx2} z4jY>*@v1W1ZIbxtSk(5I+Z$L~x-`|bSbvYnTT$Zl2uFjZVt#rK=Ywq%@X`wXrfE+# zX{AZ|B*9UJG`_#5&pxu4iiOekZTYm!IwfAF?AT4E zz!^~}4a=7GFe#ny4bb}x>c_bqJ}2m~1v1}xI2PN6I`*9pB^C6s0r~YMIB=wxRpGCc z?}Dde0NM9%7$3)RcygVl15tcWL&_^E)!|577av@v_f&e_SkUQxTHj-#55I|bYrf=D z2?rM~pM}T$IQ3`GBj!bJz=0Azbywd|iw}oQpN_9u;V-??Bbpw088-N72@t8T?4{|D zfql1xdg|@;(Qc=AH%v!5W~XT8;Xl&J9$Q)Y_$_`|xhh5OG;RR=YNcQojdaF=M1`bf5u^#>CZt}yJsyCq1S90+hPo*0%injB zQ2xG?Y+u%w{l7=lpC$y#-;0v4P1uv_pN2nc{T~5GHj(l*HwtvQ*}wQk$kfX^{`Y~b z)_1!(zl5!_V?s=x1wMqbT7UC7oIyg#FRI}iC;27eW)#)>ZKA$}tNu;Wa-Ns>`OtNnf{>Kke<7K{R}7exuI^bC}YeF^WgbXfWi=hC!yE%iq=aEgRmNjc@Rw*L>%PR5^bQ{#7&idXPT($A#` z*}jDIyGQh0(z3q%ou>JszT|VNpNsnB`?9|L{h`I8ex5Ka&0o5tJZYAn0!Lkx_2uuo z)lp!;)oSU#tS{kU(AE0J_h7GL)s5ei<0Z3wSw0h$NtSHCxK-3!#o~1#Ord$7dSWD?2BCn>P567g5Jb+W)gG|`a)*jeDh`IWv14*-o4U8 zU74_VvGo-Ij4q9=gw6J_{(wJVmwDs*m#aKYJ$#Y&&o-NQW^4dp4Xp;jW3*lpyioZ! zw5kSF$@)sLOfr8$7QmKaacH#jBjZ-Eg8-)307f#o1v>AhM&}J<6Qgsci$yspV=C@o zO!Ookm#3|hw1ZLAnnJwGVJg5a+46Wx2i9a(tP?;^y#L2LW&f0I^tz==TuaZ1nnXlH zNA6*7QT$XHT{G;X{ z)%fR_UlYdxa7>%{amYfy6W%M_pJ4oUv-35|C2A?BvVYOMfqBF;>*P za-#Ryn~2>~JR#cC92SPD;qYFelCH~B c79mROY%ANfR6HcU&^Ba`yYc8vT!-iU0bWnh7XSbN delta 1092 zcmYjQUr19?7(ajRotvAxyYtWdlT0aWIR=~5mO@j@flCm}l<39Qk{pRMTom?DsfiKg zt{;(6f)s@K(92NNC->G%sRUAw5alyZ3zeY_Va@oA!`3 zht@b_K7|qLd>lz@xe9Ij1r%Ysw(X_L>ZbPau=ckSuH!nZGPQsZ`VMS@S$qti&&*;o zKG)>;`+fcnJVRm!m2jRE5qF|*Hc$PA;*oX zEVFL9PuyLB6Q>iYcrq~(xg8&hja(ZH1QKKYvEjtkj#z3Ca^@DbH+4LoyqQ7+m%4kC z!()*v5VTBXHZAiwdX)8^2S2LH#=l%Xf(FiCg>?qiv%#ZX&^y_>puYe+R#(+!VOOQV z4gt2g0!f2yWQ<*4#|2MCz^CDc)rIGvojJc2G}VG;Ti1N$8obZzyNc00exh=9@-SKpk#x&`*7fQ!4{7&vcY zouGef;QZM2uwbjfE0DF9;#zobiyvIr8OHM9Vm?+f(UMyje_+y3@kuME5Hd?Zlpv|5 z?50*gkK&Q5`5Qn?Erqn=vFIxX_#vx=EN3~#q7$$qMCK{9IKre&fpL}=DQvKGQGtDy zmKdjo$!^{^t$Oe$SXW!|Z}_9Ol2HX(oZ;em{ZGftDNHznmUl&Y_fg0?LzZv+da&4n HcE$Z47jr62 diff --git a/ex00/output.txt b/ex00/output.txt deleted file mode 100644 index 404aae1..0000000 --- a/ex00/output.txt +++ /dev/null @@ -1,2 +0,0 @@ -dsd -2000-02-29 | 1 diff --git a/ex01/Main.cpp b/ex01/Main.cpp new file mode 100644 index 0000000..b5ef2fe --- /dev/null +++ b/ex01/Main.cpp @@ -0,0 +1,21 @@ +#include "RPN.hpp" + +int main(int ac, char **av) +{ + if (ac == 2) + { + RPN rpn; + try + { + std::cout << rpn.compute(av[1]) << std::endl; + } + catch(const std::exception& e) + { + std::cerr << e.what() << '\n'; + } + return 0; + } + std::cerr << "Error" << std::endl; + return 1; + +} diff --git a/ex01/Makefile b/ex01/Makefile new file mode 100644 index 0000000..fc149a7 --- /dev/null +++ b/ex01/Makefile @@ -0,0 +1,36 @@ +CXX = c++ +CXXFLAGS = -Wall -Wextra -Werror -std=c++98 +OBJDIR = obj +SOURCES = Main.cpp RPN.cpp +OBJECTS = $(addprefix $(OBJDIR)/, $(SOURCES:.cpp=.o)) +NAME = RPN + +all: $(NAME) + +$(OBJDIR): + @echo "๐Ÿ“ Creating obj directory..." + @mkdir -p $(OBJDIR) + +$(OBJDIR)/%.o: %.cpp | $(OBJDIR) + @echo "๐Ÿง  Compiling $< ..." + @$(CXX) $(CXXFLAGS) -c $< -o $@ + @echo "โœ… $@ ready!" + +$(NAME): $(OBJECTS) + @echo "๐Ÿ”— Linking $(NAME) ..." + @$(CXX) $(CXXFLAGS) $(OBJECTS) -o $(NAME) + @echo "๐ŸŽ‰ $(NAME) is ready!" + +clean: + @echo "๐Ÿงน Cleaning object files..." + @rm -rf $(OBJDIR) + @echo "โœจ Objects cleaned!" + +fclean: clean + @echo "๐Ÿ—‘๏ธ Removing $(NAME)..." + @rm -f $(NAME) + @echo "๐Ÿ’€ Full clean complete!" + +re: fclean all + +.PHONY: all clean fclean re diff --git a/ex01/RPN.cpp b/ex01/RPN.cpp new file mode 100644 index 0000000..2ca7a63 --- /dev/null +++ b/ex01/RPN.cpp @@ -0,0 +1,66 @@ +#include "RPN.hpp" + +RPN::RPN(){} + +RPN::RPN(const RPN &other) +{ + this->_stack = other._stack; +} + +RPN &RPN::operator=(const RPN &other) +{ + this->_stack = other._stack; + return (*this); +} + +RPN::~RPN(){} + +int RPN::compute(const std::string &string) +{ + std::istringstream iss(string); + std::string token; + std::string ops = "+-*/"; + int b; + int a; + while (iss >> token) + { + if (token.size() == 1) + { + if (isdigit(token[0])) + _stack.push(token[0] - '0'); + else if (ops.find(token[0]) != std::string::npos) + { + if (_stack.size() <= 1) + throw std::runtime_error("Error"); + b = _stack.top(); + _stack.pop(); + a = _stack.top(); + _stack.pop(); + switch (token[0]) + { + case '+': + _stack.push(a + b); + break; + case '-': + _stack.push(a - b); + break; + case '*': + _stack.push(a * b); + break; + case '/': + if (b == 0) + throw std::runtime_error("Error"); + _stack.push(a / b); + break; + } + } + else + throw std::runtime_error("Error"); + } + else + throw std::runtime_error("Error"); + } + if (_stack.size() != 1) + throw std::runtime_error("Error"); + return _stack.top(); +} diff --git a/ex01/RPN.hpp b/ex01/RPN.hpp new file mode 100644 index 0000000..9037b7c --- /dev/null +++ b/ex01/RPN.hpp @@ -0,0 +1,23 @@ +#ifndef RPN_HPP +# define RPN_HPP + +#include +#include +#include +#include + +class RPN +{ + public: + RPN(); + RPN(const RPN &other); + RPN &operator=(const RPN &other); + ~RPN(); + + int compute(const std::string &string); + + private: + std::stack _stack; +}; + +#endif diff --git a/test.c b/test.c deleted file mode 100644 index e878e68..0000000 --- a/test.c +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include - -int main(int ac, char **av) -{ - int month; - int days; - if (ac == 2) { - month = atoi(av[1]); - days = 30 + (month + month / 8) % 2; - printf("Nombre de jour : %d", days); - } -}