From 89f63ad43319cf2c115afd5bba1c40d749bbba2a Mon Sep 17 00:00:00 2001 From: Milan Mladoniczky <6153201+tuplle@users.noreply.github.com> Date: Wed, 23 Oct 2024 22:25:41 +0200 Subject: [PATCH] add cvicenie 5 and assignment 1 --- app/images/icons/assignment.png | Bin 0 -> 14297 bytes app/styles/_categories.scss | 3 +- codelabs/cvicenie-5.md | 96 +++++++++++++++++ codelabs/cvicenie-5/codelab.json | 25 +++++ codelabs/cvicenie-5/index.html | 102 ++++++++++++++++++ codelabs/projekt-kalkulacka.md | 2 +- codelabs/projekt-kalkulacka/codelab.json | 4 +- codelabs/zadanie-hadanie_cisla.md | 84 +++++++++++++++ codelabs/zadanie-hadanie_cisla/codelab.json | 26 +++++ codelabs/zadanie-hadanie_cisla/index.html | 93 ++++++++++++++++ docs/codelabs/cvicenie-5.md | 96 +++++++++++++++++ docs/codelabs/cvicenie-5/codelab.json | 25 +++++ docs/codelabs/cvicenie-5/index.html | 102 ++++++++++++++++++ docs/codelabs/projekt-kalkulacka.md | 2 +- docs/codelabs/projekt-kalkulacka/codelab.json | 4 +- docs/codelabs/zadanie-hadanie_cisla.md | 84 +++++++++++++++ .../zadanie-hadanie_cisla/codelab.json | 26 +++++ .../codelabs/zadanie-hadanie_cisla/index.html | 93 ++++++++++++++++ docs/images/icons/assignment.png | Bin 0 -> 14297 bytes docs/index.html | 47 ++++++-- docs/styles/main.css | 2 +- 21 files changed, 902 insertions(+), 14 deletions(-) create mode 100644 app/images/icons/assignment.png create mode 100644 codelabs/cvicenie-5.md create mode 100644 codelabs/cvicenie-5/codelab.json create mode 100644 codelabs/cvicenie-5/index.html create mode 100644 codelabs/zadanie-hadanie_cisla.md create mode 100644 codelabs/zadanie-hadanie_cisla/codelab.json create mode 100644 codelabs/zadanie-hadanie_cisla/index.html create mode 100644 docs/codelabs/cvicenie-5.md create mode 100644 docs/codelabs/cvicenie-5/codelab.json create mode 100644 docs/codelabs/cvicenie-5/index.html create mode 100644 docs/codelabs/zadanie-hadanie_cisla.md create mode 100644 docs/codelabs/zadanie-hadanie_cisla/codelab.json create mode 100644 docs/codelabs/zadanie-hadanie_cisla/index.html create mode 100644 docs/images/icons/assignment.png diff --git a/app/images/icons/assignment.png b/app/images/icons/assignment.png new file mode 100644 index 0000000000000000000000000000000000000000..7efb7f29c0ba68a2bb21eef40980c65a6ddfc244 GIT binary patch literal 14297 zcmeHuc{tSH`}diqC}j8`$}(CMDNC}1(5AFeNZBQ1-;$AKrhH_}k|;~4gk&p9gzTg& zmF#1Nu@y1KHny30&Zs{0`TqWRuIss;=enNf_xPvY-tTkHec$K4U-#?2&k?M1_V`A& zEo=aQjany;o(EtJ{O=mDo(29hjrqC&fZ`*qqlfe`rei%`_zUjzIttmO$1o%E%h}G_ zFV7EsJ0-jSaqWfR_xsKtu2;U&F7qsCkHix*_Ahtxc#a(v%YJ2}wcEnavccKf2Rn>U zJ2&i3>>;|F3@eY0&R|p-^~UYCO+{pPLTgXr`J?~6f2`WeKetm}^f!l7h0$v^%-**w z>6fZ=4ZnQs=uyVl`nrVhWFeLlFZYJ42+8wtpSzveH-{E;j?(CIy!P;UP|&`Mx^;CY z2?95>T(EWaLEE-{(0MJKEbet=ZQeJ#V@IQJ?p88AH@S2DmDV!hL^%F~%Bgxm(MXR> z;TZUIvb+A}$@&B|NR=`;dQ_s3=6IHT236j?Nn+cR=pjFUH1kP%Rv*4|cp0Ur3d+8v z1O=V%@H|PF081nmxIo_X-Cp^~7p1Js$=%ARMO156bMFY|1T_GBr~{%;zQ#;}XQrj` zUhZ9At1-i2?F~QP5D#mbc+TjPEIU|P0C#H6L)LOB6|zG?mQkF5x&z@VozhN@JeQ(L zkXF0xYYw>1ja&wzJObe8(e65+u~P;F1r4 z9N@|tBrfRcq5ycm7OwDlRu)8V-~ij6j9LDlo@lEz(%iGID4Y_0DO^9?8RzIT6g!4# z``rBb1ot{2C_C3Z#HR+?3W~H?1meeg?QjF3Y`$|EOo6#kIJWR^A%@OmDMB5;Ri^8l zKKI~e=8!({tPf*aPhC4HOZcw=#Tb55xck7#vO7t`=rKAHSM81l8O#u(RkUvQH+RMe{1pe_VM<6T!VT)Sj%}* zG~*ABw(`{-SAK|34W0LyIY}w!G(3tlkB%a*Tl-!AxY)7iBQHh3n;w@$iQT*Zs?&VC z-xlAIbusUv>MMWV3h*s!U=ak!XmAheIIxz>X@|@5?bhR}JEr{FuCsE<@uM}Rm-FO% zWI64LI<@&~DH+LIsW~%M`tZHMOCgYO0c$twNH7-S`99lA+g|OjBEA)c%Q^XuRp*31 z-`(cR2SA#-+#w;<_x2n|qn|UGKa3(Hc%v52_y_s$eMC$IRv>FAk$&Uod7s4@15%&x z-(0L3$Lg%bh)D6LSd|fpZRi>|V2l|*K*GGgt-Z;2j|kz=dRI_L%xhh|A<9uF{__LB z`Wog3((O5$P-M}+l|YxoJbZ2QbG+&`VsbTH#$)8Gthyf~8-ropT8)@65;H^nZSiQ^ z4TDv9W`QfZA!*7yh+C9E}vc!2#IvFQP#Eko?ES_uk|CvN;dLV);dn z*^TFg9>_fInSYgTOnD)-mPKP;0DQItIEFj?06BZ3MzmAe~s=SfH9JonY@T3krlKB~9%$JCzF;=TL4il0q|2yF7kp3J#`?sS%?Kh{f*F3W6_uv02Ifd zs9mc0aMCEapZ?c#9L815BT9bgzrI+KyO-K0_x#BAqu=HL=54ci@eUr^tdtL7j+qtU+3-s7S{lC=XHqAlgjodG0X8r$I-F zb4hX+E1eeY@b((SX*O!HZ3-;BrcTJ1iava-ojkb&6 z4?(LjC-X>)+Qr{3J^Bu8 za#ejwG(D5B@*2pyE*aI|8$C7nA*Qi@SJG9w(v_gijQ88E7pjAY25pjpV}_G_&M%cX z^0@(yx37|wMDi@EhDWQbRMyXP;CPg;^CqiU6@4GctQox-3C;H`H)>bggCm@(pH#0qd_E(?TnnO|sJHv$ch6heBwjx-A{!uhZU*BtK9?M{t;!^xu zDRdOf+0~ra^^7Q?>+jj|Y3~syUex%bpF5@6ZBT#DF7v(Z<-n!}rL_{_u*jx_Y=PR5{(v#dc+Rm@&Ul=+CTxP~QO@#Qr>!#fBm>M^d zt3IM~0=jV6mi^-MZSCt?GSiECOWe6F1BHAd=L#ooA|h>$OM0Ep7J9{?ldQQsUD1G; zWnz(2=JqI~q~$DW?nEH+VRJ$exl|Im$*D^4&BtdKOD9>gK!F=T>&xH_a04rQO{g zNLl}|jEFCD?A+sYE1(>hgB=K@XxFQ#U9D_LQ34Y-eDb!c2mlV;4s&oc;lkuo!wq&o zRo&@fkzcPy3*}o%SY@0mv{;>(Sied-(ND|$r+~Z19D)zXsjSgU2x`|&BOnEtqgLu$dvQ)^M_JHRhEMv z!ps^LjaRl}+RtN*S;`X?@mwF(iEk>FF+>1pm4hIKWovkXJA(4h2LvBsh`S_~kq00} zH$X5=i&4$Eu*3~W)Q3>`TAtBY?@D=NTDvlVAJN9PJIMUsC+Hlm#%q=U@pxhefp_Uf9m0TUVQS#t(Uu#li#e zUvtffc-PU!q2e&X>bgtsek%?cLysbHk7>eD3lz?|Ek`Eb%)9>d7L~3$Uf=wPNjH36 zU7TJ|{5!oiuHDSzMRpI5A- zx$7IKA$ymc8t+_kxgRqeI7pWq7iBFk^~CQcpaWcMtdP}pMmfLr6#x~6GZf=|&z7AK zQPUHgOAg^V{G(G5y>!=0{kJ#PET+gjzmUD9gS_UqQ_6r_t)mSsH4s|I(Hk1Pu?2-& zS;S5u&D%btzUu%Ah;f;qDvAwuwvXrDlm7u9^p87pQZdBN?n{F z7~rwES1~lA$avN4at`0dNSG64hVu6DW!N{z@Vx$!sR)^cn|-9xa~Bm&v59lBAJ?sf zqtXL9{jjU*l`0#_2cZdmgw$ZzRnjwEqKD9V?BNT$=eQDDjP9cZhe_2Mn zeD|;|B-%NFapILrMc0D=HNT>X_iH7QFS+MaPYx}fG5fWKv2U}wc8NM$%G8EkK@o3^ zA%R#9T4iB>n+4a z6nTUmfeFh=J4|@HQ_!J$=n{=S-`C|IPgEu;t=9}2X>DZJP2xe@&;N!T3$S)HMxr@3 zF(kCc_3qiaZ=CCBPPj`#Amf`Jw*u=j~g@a}Ng+y|sH8(Ieq9U=?Onf}l5O1!vx5hxeQ; ztI-OQom%i-;s3(l73@JRbLgtu1Se(2kkV8pl2gW8-Z4bzM;XyCO}EanvB#5O!K5#0 zwYPqQH#CGIi$=jgTJ=SWtixzXK9wJ}kXP*pROOuRbmp6yxb7K9zn*P4^!XerBqHBu z#WP7^h)BnL>yoW%w;eZ@z0JmadLVWdX+DjtI#UzESL4d{(8zhqwm*Ptc`4e&m||Mf zcyVZirC{>X{0_<^=~FPhc;}Wm>^8{R6Moa2kB=|Twpp7S?Ob&ES3d~pH+(tKBil{oJ5=ZAu1?MHCkG3fZ|%8Og|4o1^*TH9NketObB7eN z_f6S>voON?MTZGw+QpB2|HS+w8G;{0dT8Q$U`YS=`R4|i7xuBxw|pTtIdo3M*t)*2 zAPt|pZ(=`w({>HFX1`Zt)>jj;wzB3;`74m$;~O31GcsFSEpHzoieGZ>d}N^ZLcEp zk;5wA(&IB>gi5UfX64BVvrx-zJxPgk>ZIEjPe8Oi9jE#kKUMd5XuM*q@$cgB{btQd zXH>t^f~r8Q(yT0nAijrc`F@cS!~Tl|@UdvP;LT{>5rNaAm>-a}3EWTK1l?uIxY`2j zd3Z2?AhV^E98u|I)x}P-+|9oVk?;$F_RKoArl#hx@1aKq@hrH}PYT)9Fe8k#X4=pT ztn%k#Kdi>#akH5z5me`k%k`ICbvcf7v6M$sv?q(f*3GasoWp!r*+0>LF#9cEa!A5u zfiDWc*kF285_(eNY_Zc&9l4ATt-Z>X)($6iJ9F0^Sr{`;(X99UF-735imXLUGaO-WcFr<0r z0q1viH>f|HM#j$_7viCReSWFsp=(!$^-w}?XvAaD71X-rVc33eIqBs-vo53EXHL)v zCm^@w$`KtdI^W-Gj1&5slAXEv7l&e|*4aJ>U2O9WW@?qpEi}e+R7J-idTER>jKx1e zvetRlUOH}P*p^`Edkb{>wkayPASl5iRsaMcSGLh2%T%d(y6oGnC~2-Kx=^IUUL&FN zlZkVXJ&4NyF4mQutL%cMR2;ow?bO5z?*`u^&eXA+-eigS#kWCi{?rKZ`TJ$3)afVi zOHZnShR}+Jq_M!DcU3}BHxW3cl?+oYhy*H?e|{K-zzM@zigU%h5P-`eTCWxZV+qWU z|EWWXEO@b<15~f((gL7^n+1?y^|s7&AYE|g06$K2v6iQ`CdWTWQ?u7pS3T+De0v9G z;PGASg|EYnZ_Kb_IVSO|Bo9LXX)3zbwM^o3@@<0cxCowb2i-+*z)a~;bg0{%kiD6F zry3*ebN3aG85#*m2g6XeTQK|5o@Mq%)3|y6pXwSp8ZrVlV>+$GP(0*1j{vq~Lk-0J zvYBQ-c8iQFkoJT7&5UxPuCy4Xvs;+Gr-tOIq{0F%SfMX->t%Qb#*z=DWLfDW2BiK@ z`!|L$jop^vJgB+JYAaA!HtF1+_F73Ze!oLUxle&xQDLoC?H{8H9Ogat^uA7#oIR>{njQN+K!m+WZeDiV_4sVc%Q(8i=9FXniv#hH@g! zVXjRx?RiV0wLF9FZ`~83UGw_v?iIg+dy+R6=v*dSOfE>6Q!04rFrq~|WOiSP1Gl+_ zv4^12C?Y)bsF0vl^N)byLe$VWJn_qqj=rn;M772S*toTuYYx~|K zr^B|i)==(pj&&8tFMH~G|Jkn{vZRgzDe~(wX3m0oO~2=6&hY#YvSwzrJ`*g)K97~8 zzSz7m@svmVPP{AJ%wqfX{bG%)V&UzhVom+y%A+45q9b z8$1OSg9I<@Kt72lFTAlIGlWJQxpxd5I-01r5^lXdr6W8o&kiA(T?7+PycCnWeE}{T zVcie+Y2-^$eqr0H?OosGuC2ZmR^slA@ORYP0?}C;aUQ2O#rnpN?G3-X^R->u{!^P8 z_}i81SIkmTblu!EdF=@q>f)5QGo-CdZs@zXG2h@`ElJ6?S8d5GQSFTJ@Ke~gS}sN* zGaSA}uvuohdyPezOqT>)vW;chA9m*#XXs@-Q8GPGo2};2rAjigS1nZkA=&Kk!btvW zQkuZuS)90RJULa?uG)8K!9GWUfA&DLu?wLnm_*lCr)JVxrq^LpS0ULhdu+sJb$5m< zKY639_$4&Rf#}FHyp94x;#X*_4_{n&x;4{)r|#%mlk2uvSPiiKQD1W4%qao5&OFG- z*U{2VHm@$Rp;jMhrr{fkdlH{s1x#d+L=*!aY;4u^vr0x zB2D_ceVfnQ)A+UQH~(ef2{oh1mj@o}9*0%T@fo|;23^a#AVG^yu!9*QslN}#(w=8s zukE(hKG)0GrY7ZM4hG_wy&C99_EjIOhF%=$4(Z?K3!52iYHKRD0IbMkW=D?We6#_x z=!VHC>(GN)=&Lu1%6N3%t8=cm2Mr=rLCOu$9X665B$=(0O0d3($t_!->qC0rL|ZW3 z16z$7>_L`qMkeMUS5$b&$k zrhZ_H1asQp7=wCLKD7IT%I~k%l{RmxJEBlX+*Q6f z!Ff0qX}AJtq1~TYvk2Br zmRh2Yd8Nmw7F~eEB~H0d0(L#kMlbBGfkz+~oS?nBID!|RmAv-|S)(QC<;K(|-?cS8 zO)Eu{$*H`_3n>^ERxj zD@Sx*FjOt{|7#Yw&}7n!ZM}P)NHiQS%X7aT??q^P2Wa~eN!E!*T;8LziOSZWmx^GY z_o+Aw&Ym_}CKo82SB%jX)&3~VD$ceaTB3m2Vu8)bOOpp1O5x#=kng}<>zb$<(oNx4 z&meOpyT46PGf9YhvTdHA!I`FVU7r^NmvIb0=qP3KH_3StZ`@<{m6?^SdAx$tKsW68 zD#dTR+?XIQH-=Kj8(;H7PffC8xltpBgWZ6Gyv@=E%{SSS1oVqn)vj-!+)9m6{SIwM znXMWMBR$6bfSkO;u0C37C>*i(Okja`Y}!m_!Uq+7uDYW`wB&xdIu&@n<|uqDgf0HU zG*I%Jb&2XJrMBn zR|yGoe;7hT!B$NA4im4IA0r((Kpxy;i!2$iTrYCq94tZP8N+&Z%Vl=Pe7quv#5t^5 zpDDTkxN`5pWaV#71VCpk5KVX$#b3+pnJzyvi}cQ?|4SmVjegYL6gQmYS9zyoSW3>W zBe_9RH%S&A-0h}&T1hwqW(gRlHsdw*?HOxhe}t-ob;)eVd|$V7HABjPK*f&E7$AMI zKLq}en71~4YAAN9`MVVpDf~D+u6H-$eR|}FAaAT0E%~qoz>Huk_3qnY-E2esd3rI~ z$*FA6dWx2oTQln5`_3+)Xs(j|bnElf5^SRKP*b;4{V2^M5LVkO#=J#s3&qOLP_uT0 zkG1BUvCsFRvyx`IcRK=~iE))Qiz*fpt%TFQJ!jz1xUa7lAz8j<|5Y8clH~TjGP*}S z7v-Hug~cD1H{W~1`F>|gIIXOYHd^4=a69H>^`gU|Fvz^WSAJ$BMqR4F4gCeX*Xn4r z)!-MgG$)hAgeLAl;h|AlpEjPQ{DWR0gk57AEn& z!@?wAt~*K`fZFFt3t){y&gMvj-{s?zA~g7C@{1=FM!?c2IC+V-!ek$GmA#{CQsdn z@0ND7xSnAO8SBS*`R5i%=(a--a}S%Zc<#eur_I~KZR~5O)kCT7jw;|b(K`Z@nC(f7 z-zp+yT1CJ120l@(-|Z!!=0oj(4`Y0D+Q-j>*hH=S8^0AL&r_F@NceTZD*@voRrDxA zDJfeP)g!$uX`xSfD#@cDX^V=cs&NU+G_Jb+^OQ!~T}s4rgW z1J}bHSHf|96S;YGFO&}UVrmwP3WULf+2W%mO>I0WXdV=QuAi^;rrdmar-ptKEwbzd zD{fJ;>z?w2BvyS~q{HxG9XzD@9og%fvay91gqqtv>hAohC|RnTtU~b6{sOUI9 z`wcUjk2IE}1SnRe2-u#hqE~{t-auPZaje;cdwAdaRhu%^B-v6!arl~}|Ixu%f5DR# ze;qIj9!z!^Y|t9g^h=pXFsAmF?Om@Mi3JXu$bn1n6p*gGcv{!lb3QCtM~ylvRx&KN zdQy*R?!ZvX`!=6aX-tQu+2dgEk~A||WcNvfVlELn?(z!b>&3h-fI+X_-hgmn$UD|} zmlH@56$~k`0zKwMW$ZfHhVriXy!}LP>3pa9H54@?FV^xBs!hU{*33|<#3?3|Z#VPV zDYD1P70dtVZA3CdtuY}X%*;=Uz*+&bpip-cUGVgwx7k>B*RxYKEAEcDR~xR-n)!gi z<@n{<-Ffp`dl;^hFc+F7dAI#APPvUy&)pd&m=G|f#+xhM{MBZsQP`cdGx4# zw<}p}#4&uyr*(}pZedUz_Qbq!rQG?;|2U+M0P}F++xG6z{^H#ivaU9LcTKxQ`5Z{{ zFiqVE+K;14oRvLPFO*Q*sOsd0?hX9*7lPY6-O32P9hR>!Kw*|>gLXwp zv;UW$U>nJ{oDLUsh0;~qQCoJ5_gPth9qNB1(n|hxL~s0oSxmm}OPZpsa+agf)R%#J zl8EUh7LCc4l~fH=rH`v1$kFmdTRp#!BOX57I@0UEd{9gCh7FT??LTtwL=C(dvgtHE z`v83c9v_&D`;I+vZ<1}NMy-K_CE(K!U0p>4}ur3!S3U~SC<7opF_6&OQiq*%VmRHaRho9=WFna)3eo> zUV?YSd+w^c=SpwPa=~T?j1@krz4>!IMw76c_@zou=*HOry_m#m#&IJK5VDQwJW;O^ z;L5R!NKj@Dba;PyCWt)Cft!&16(A@7Vl7uED7EqO)%SzBn$&}{JgBg|k_DIJlpAyX zgnM*~1o zV5EcQxnnnrgQvDUjo9g-kjR<2D}1!8NOPmRU#_WjS9LInU?TF{-L-^4`?THeaAdCy zUt-|=ZAEQ9)Lr2NKO%c-7Rw1U{31J=Y;|@Le4l2VFM6VsW)SMnxlgw?jE72w&BdS5 z74;P%-<95En&X&Qv`dANqv!=<1nrMa5#b&3jDZ^miY@mo*3+xY5U4-)cAsgy7Os8j{ZwCU@++_f3LXBtOh zswp@3t30tvEb;3u+e0k#zWu%B^`&|B1?3IAVQDdrUiE?eQ< zrwWeo&(-_0bT2Kb;$FF+Ka5xP6#;Ck+5LcKdfT+pOWXQ(ehgOR(w7%b^6pk--|ymL3&*d3}9pT`lj}_<9&E?&oLgPWiqVyOkg9AW}qWAM&T{`g>B+ zPx^PF`l1Zj?9Licg4qDPfb_fciA1sh9M=lZdXGQ?jrA*4&j1bqMAxpQL$`7OxYqoh zQve(=2Vgzow<;Vs*m?(l<5t)tY^Q_6tJpRx2LM}F`0M{){(s*1f6Ic|9J5xA(n7Br z)9Rl%O0)O??^nV``=G^)y(}8nmn&BbXkU#&SeO1Pc7dqx?+1A6WHFGFFLxcNZlPh9 zQdWgj$QZyZ+&x}xj{uZu^$4}yhgU;FLu*Fi>%4pJxqhx+cC2O| z-H2X0czFwR5Qv&`+IL^Tmwl`RC;XVjbxkuUTq6A(>UNCyjzl;4hdRJpH(%3}72sXA zy#yrSLX98nDmCyX6aV2MBzU`q#rWD?3<_wd7MAIbmO7Ky|K>7f@HR|kRKZ@O5Gn#3 z9sP76JF9HYS@Jhf`$3TC+?6E5ysSlD2ZA)=#g9gJZ8eGU_QBt(MSTP=XST@gB%*|X z24FTK|_qIT;8#At^0yRdh}AFE_rbcVEb4~P3p`xsxR$; zH$`fGsVbI?c+pxID6-GQZ%RLOR1)HNdK1Z5QGlXc-2n4 z=i->PPMKetCv|-2PL2rzAY8~9OIS zqZlF918HAQmA9do1n$SBH#rB&45Z=x$f9OIcCTQicJ}*<1l0Hry=^w7ZuWV! zFdt|9>A6bN^^)GX%&1*Rhz4ZuIy0eCp;kRy5sEG-oDi)l4nPo!ddb&+VZJlbAW?WU zS{3RRlq(<3qsOW5!r`&>bRc03z|FZQ_jxLXL|gF*YfH>)0wC&Dn~|J6rqW=tAtlB~ z7Jw5u$Mp`FZI;JQqN$17ttP*ewHzhf^+nQ zpX=UV8qGk!U!$oi3-@28_nW0I!B-j!OD*TxA2&%4s>9W%N5*t4Pc08A74dwAIysMO zo3$r2Tw|CRxI0D2>3)Agut|95+q8~8THUW4(u}m<7{9sI-9@SCRIFy>zJz4tQCRV4``ksQ2C+!k!RlwZ%(Y0bUR0 zU;(|!RQHNq6l7Zo>f`>&BnKQqM}PyAtCNRsX_Hv9ywLY;2M%@u5ZKX?gFRhhWjLfN6qJlFY6ajD9iXdok@U^$PNr*k0=VK7Xm3{}i~M<-d)<3kDME zSFMI#Wsq*hDcGwgNuE`LeavO6CX109d7-fioBd`SB^VVS8rwNHp&DLYqQS!Y>2}zp zT;A0A7Dq+sJm>AuC?Hsyb$lkHIX=~$ zz|Ft^^eIBJ{^ZmI9sj~okwavM8h_Snr4PIZCry=V%aX;PH=djHx#X4`OjSnM&fp7W zttW7PX?8KYN$wSaVx01?qZv3Zy)2yyq3c(>KVfGkzXf?WS~zw`3lSIH*MKXPyn%1i z;5U&TYVUL_u*b`N89WiA;^7;?`-hoA&(BCO5Zs@R7bs?K;vKT*#8byU(cw`gyrKSD zk6~*o!Qkc=aGQx?o+*^j@moOT&d^qcjpBn?-1;8{qdC@t$I(Ho7_|#c$(Gl%O->21 zgGepfR|S0!pGzMY>$ziP7Az=S&2@8in!%O;?ECJ1oNw^^9x+B>PVys*!)JOxr#wO zoG!15R;w +## Úvod + +Na tomto cvičení si preberieme prácu so súbormi. + +### Obsah +- otvorenie súboru a jeho čítanie +- zapisovanie do súboru + +> aside negative +> Ak používate ako vývojové prostredie lokálny a editor a následnú kompiláciu cez terminál. Použite príkaz: +> ```shell +> gcc -std=c11 -o program -Wall -Wextra main.c +> ``` + +Pre vypracovanie týchto úloh odporúčam lokálne vývojové prostredie (napr. CLion alebo VS Code) a nie webové prostredie. + +Riešenia na jednotlivé úlohy budú uverejnené najskôr nasledujúci deň po cvičení. + + +## Úloha 5.1 + +Napíšte program, zdrojový kód, v jazyku C použitím štandardu C11, ktorý otvorí existujúci súbor **_data.txt_**, +načíta všetky údaje a vypíše ich na štandardný výstup. + +Dáta zo súboru načítajte po riadkoch a každý riadok hneď po načítaní vypíšte. Snažte sa implementáciu spraviť tak aby +v jednom momente bol načítaný len jeden riadok. + +> aside positive +> Nezabudnite si pred spustením program vytvoriť súbor _data.txt_ v tom istom priečinku ako zdrojový súbor _main.c_ . + +### Obsah súboru _data.txt_ + +```text +Na prvé cvičenie prišli všetci. +Na druhé už o niečo menej. +Na tretie už o málo menej. +Na štvrté prišli tí, ktorí sa chcú niečo naučiť. +``` + + +## Úloha 5.2 + +Napíšte program, zdrojový kód, v jazyku C použitím štandardu C11, ktorý zapíše do súboru výpočty, ktoré zadá používateľ. +Program bude sčítavať dve čísla, ktoré zadá používateľ a vypíše ich výsledok na štandardný výstup a zároveň zapíše výpočet do súboru. +Program si pýta dve čísla pre výpočet v cykle do nekonečna pokiaľ používateľ namiesto prvého čísla nezadá znak _'q'_. + +Výpočet je uložený do súboru ako trojica čísel oddelená medzerou. Každý výpočet je uložený do nového riadku. +Výpočty ukladajte do súboru _**vypocty.txt**_ do rovnakého priečinku ako je váš zdrojový súbor _main.c_ . +Ak súbor neexistuje, vytvorte ho programom. Ak súbor pri otvorení existuje prepíšte jeho existujúce dáta novými. + +> aside negative +> Dávajte si pozor na zatvorenie súboru pred skončením programu. + +### Príklady vstupov / výstupov programu + +Ak vstupy od používateľa pre výpočty boli v nasledovnom poradí: + +- 5 a 3 +- 8 a 7 +- 21 a 56 + +Program by mal vytvoriť súbor _vypocty.txt_ s nasledovným obsahom: + +```text +5 3 8 +8 7 15 +21 56 77 +``` + + +## Úloha 5.3 + +Napíšte program, zdrojový kód, v jazyku C použitím štandardu C11, ktorý načíta súbor _vypocty.txt_ a pokračuje v jeho zapisovaní. + +Program na začiatku načíta súbor _vypocty.txt_. Ak súbor neexistuje vytvorí ho. Ak súbor existuje načíta postupne z neho všetky výpočty +a zvaliduje či sú správne vypočítané, t.j. či z načítanej trojice čísel v riadku súčet prvých dvoch čísiel sa rovná tretiemu číslu. +Ak kontrola narazí na nesprávny výpočet tak na to upozorní používateľa vypísaním načítaných čísel a chybovou správou, +program však pokračuje ďalej. Keď program načíta všetky existujúce výpočty vypíše koľko výpočtov načítal na obrazovku. + +Program následne pokračuje v rovnakej činnosti ako v úlohe 5.2 s opýtaním sa používateľa o dve čísla a vypočíta ich súčet. +Výpočet potom zapíše na koniec súboru. Existujúce dáta nesmú byť prepísané. Formát súboru _vypocty.txt_ musí byť zachovaný +ako je v úlohe 5.2. + +> aside negative +> Dávajte si pozor na mód pod ktorým otvárate súbor a na zatvorenie súboru pred skončením programu. diff --git a/codelabs/cvicenie-5/codelab.json b/codelabs/cvicenie-5/codelab.json new file mode 100644 index 0000000..98e8c3f --- /dev/null +++ b/codelabs/cvicenie-5/codelab.json @@ -0,0 +1,25 @@ +{ + "environment": "web", + "format": "html", + "prefix": "https://storage.googleapis.com", + "mainga": "", + "updated": "2024-10-23T20:34:45+02:00", + "id": "cvicenie-5", + "duration": 0, + "title": "Cvičenie 5 - Súbory", + "authors": "Milan Mladoniczky", + "summary": "Cvičenie 5 Súbory", + "source": "cvicenie-5.md", + "theme": "", + "status": [ + "published" + ], + "category": [ + "cvicenie" + ], + "tags": [ + "beginner" + ], + "feedback": "https://github.com/interes-group/pevs-BIAX10029-codelabs/issues", + "url": "cvicenie-5" +} diff --git a/codelabs/cvicenie-5/index.html b/codelabs/cvicenie-5/index.html new file mode 100644 index 0000000..1eb603f --- /dev/null +++ b/codelabs/cvicenie-5/index.html @@ -0,0 +1,102 @@ + + + + + + + + + Cvičenie 5 - Súbory + + + + + + + + + +

Na tomto cvičení si preberieme prácu so súbormi.

+

Obsah

+
    +
  • otvorenie súboru a jeho čítanie
  • +
  • zapisovanie do súboru
  • +
+ +

Pre vypracovanie týchto úloh odporúčam lokálne vývojové prostredie (napr. CLion alebo VS Code) a nie webové prostredie.

+

Riešenia na jednotlivé úlohy budú uverejnené najskôr nasledujúci deň po cvičení.

+ + +
+ + +

Napíšte program, zdrojový kód, v jazyku C použitím štandardu C11, ktorý otvorí existujúci súbor data.txt, načíta všetky údaje a vypíše ich na štandardný výstup.

+

Dáta zo súboru načítajte po riadkoch a každý riadok hneď po načítaní vypíšte. Snažte sa implementáciu spraviť tak aby v jednom momente bol načítaný len jeden riadok.

+ +

Obsah súboru data.txt

+
Na prvé cvičenie prišli všetci.
+Na druhé už o niečo menej.
+Na tretie už o málo menej.
+Na štvrté prišli tí, ktorí sa chcú niečo naučiť.
+
+ + +
+ + +

Napíšte program, zdrojový kód, v jazyku C použitím štandardu C11, ktorý zapíše do súboru výpočty, ktoré zadá používateľ. Program bude sčítavať dve čísla, ktoré zadá používateľ a vypíše ich výsledok na štandardný výstup a zároveň zapíše výpočet do súboru. Program si pýta dve čísla pre výpočet v cykle do nekonečna pokiaľ používateľ namiesto prvého čísla nezadá znak ‘q'.

+

Výpočet je uložený do súboru ako trojica čísel oddelená medzerou. Každý výpočet je uložený do nového riadku. Výpočty ukladajte do súboru vypocty.txt do rovnakého priečinku ako je váš zdrojový súbor main.c . Ak súbor neexistuje, vytvorte ho programom. Ak súbor pri otvorení existuje prepíšte jeho existujúce dáta novými.

+ +

Príklady vstupov / výstupov programu

+

Ak vstupy od používateľa pre výpočty boli v nasledovnom poradí:

+
    +
  • 5 a 3
  • +
  • 8 a 7
  • +
  • 21 a 56
  • +
+

Program by mal vytvoriť súbor vypocty.txt s nasledovným obsahom:

+
5 3 8
+8 7 15
+21 56 77
+
+ + +
+ + +

Napíšte program, zdrojový kód, v jazyku C použitím štandardu C11, ktorý načíta súbor vypocty.txt a pokračuje v jeho zapisovaní.

+

Program na začiatku načíta súbor vypocty.txt. Ak súbor neexistuje vytvorí ho. Ak súbor existuje načíta postupne z neho všetky výpočty a zvaliduje či sú správne vypočítané, t.j. či z načítanej trojice čísel v riadku súčet prvých dvoch čísiel sa rovná tretiemu číslu. Ak kontrola narazí na nesprávny výpočet tak na to upozorní používateľa vypísaním načítaných čísel a chybovou správou, program však pokračuje ďalej. Keď program načíta všetky existujúce výpočty vypíše koľko výpočtov načítal na obrazovku.

+

Program následne pokračuje v rovnakej činnosti ako v úlohe 5.2 s opýtaním sa používateľa o dve čísla a vypočíta ich súčet. Výpočet potom zapíše na koniec súboru. Existujúce dáta nesmú byť prepísané. Formát súboru vypocty.txt musí byť zachovaný ako je v úlohe 5.2.

+ + + +
+ +
+ + + + + + + + + diff --git a/codelabs/projekt-kalkulacka.md b/codelabs/projekt-kalkulacka.md index 4c70626..0814e4a 100644 --- a/codelabs/projekt-kalkulacka.md +++ b/codelabs/projekt-kalkulacka.md @@ -1,6 +1,6 @@ summary: Projekt Kalkulačka id: projekt-kalkulacka -categories: cvicenie, projekt +categories: projekt tags: beginner status: Published authors: Milan Mladoniczky diff --git a/codelabs/projekt-kalkulacka/codelab.json b/codelabs/projekt-kalkulacka/codelab.json index 717262b..7dfbd01 100644 --- a/codelabs/projekt-kalkulacka/codelab.json +++ b/codelabs/projekt-kalkulacka/codelab.json @@ -2,7 +2,8 @@ "environment": "web", "format": "html", "prefix": "https://storage.googleapis.com", - "updated": "2024-10-16T23:03:52+02:00", + "mainga": "", + "updated": "2024-10-23T22:14:24+02:00", "id": "projekt-kalkulacka", "duration": 0, "title": "Kalkulačka", @@ -14,7 +15,6 @@ "published" ], "category": [ - "cvicenie", "projekt" ], "tags": [ diff --git a/codelabs/zadanie-hadanie_cisla.md b/codelabs/zadanie-hadanie_cisla.md new file mode 100644 index 0000000..eadce57 --- /dev/null +++ b/codelabs/zadanie-hadanie_cisla.md @@ -0,0 +1,84 @@ +summary: Zadanie 1 Hádanie čísla +id: zadanie-hadanie_cisla +categories: zadanie +tags: beginner +status: Published +authors: Milan Mladoniczky +feedback link: https://github.com/interes-group/pevs-BIAX10029-codelabs/issues + +# Zadanie 1 - Hádanie čísla + + +## Úvod + +Úlohou je naprogramovať jednoduchú hru pomocou jazyka C, štandard C11, v ktorej sa hráč snaží uhádnuť náhodné +číslo generované hrou tzv. tajomné číslo. +Používateľ interaguje s hrou pomocou príkazového riadku / termínálu, t.j. štandardným vstupom a výstupom. + + +## Priebeh + +Na začiatku, hra vypýta od hráča interval v ktorom vygeneruje náhodné číslo. Rozdiel hraníc intervalu musí byť minimálne 10. +Hráč následne môže napísať číslo, ktoré si myslí, že je tajomné číslo. Po zadaní čísla hra pokračuje nasledovne: + +* Ak hráč zadal číslo mimo stanoveného intervalu na začiatku hry, hra vypíše hráčovi "Zadané číslo je mimo stanoveného intervalu", + následne hra vypíše v akom intervale sa môže tajomné číslo nachádza a dá hráčovi možnosť hádať znovu. +* Ak hráč zadal číslo, ktoré je väčšie ako tajomné číslo, hra vypíše hráčovi “Tajomné číslo je menšie ako tvoj odhad” + a dá hráčovi možnosť hádať znovu. +* Ak hráč zadal číslo, ktoré je menšie ako tajomné číslo, hra vypíše hráčovi “Tajomné číslo je väčšie ako tvoj odhad” + a dá hráčovi možnosť hádať znovu. +* Ak hráč uhádol číslo, hra mu pogratuluje a skončí. + +Hra končí ak hráč uhádne tajomné číslo ale sa dobrovoľne vzdá a ukončí hru tím, že napíše znak 'Q' do vstupu pre odhad. +Hra počíta koľko pokusov hráč zadal a pri ukončení hry ich vypíše hráčovi. + +Ešte pred ukončením programu zapíšte záznam o hádaní do súboru _hadaj_cislo.log_. Záznam o hre má nasledujúci tvar: + +**tajomné_číslo počet_pokusov uhadol/neuhadol** + +Napríklad ak tajomné číslo bolo 8 a používateľ ho uhádol na 3 pokusy záznam v súbore by mal vyzerať nasledovne: +`8 3 uhadol`. + +Program do súboru iba pridáva záznamy o hre nikdy nepremazáva existujúce dáta. Ak súbor neexistuje vytvorí ho. +Súbor sa môže nachádzať v rovnakom priečinku ako zdrojový súbor _main.c_ . + +Dbajte na dodatočnú komunikáciu/výpisy hráčovi o priebehu hry, prípadne aký vstup očakávate od hráča. + + +## Implementácia + +Pri implementácii zadania musíte vytvoriť aspoň jednu vlastnú funkciu, ktorú následne použijete v inej časti programu. +Pri implementácii môžte použiť všetky výrazy, techniky a funkcie, ktoré sme doteraz prebrali a samozrejme aj nejaká tvorivá +práca navyše môže byť ocenená bonusovými bodmi. + +> aside positive +> Pomôcka: +> +> Náhodné číslo je možné vygenerovať pomocou funkcie _rand()_, ktorá vráti náhodné číslo medzi 0 a konštantou _RAND_MAX_. +> _rand()_ je funkcia z knižnice _stdlib.h_. Pre použitie je potrebné túto knižnicu najprv zahrnúť do zdrojového kódu na +> začiatku súboru main.c - `#include <stdlib.h>` +> +> Ak chceme vygenerovať náhodné číslo medzi dvomi hranicami napr. medzi číslom A a číslom B tak vieme použiť vzorec: +> `rand() % (B - A + 1) + A` + + +## Hodnotenie + +Zadanie je ohodnotené 20 bodmi. Odovzdaný program musí byť skompilovateľný, inak je hodnotený 0 bodmi. Pri vypracovaní zadania sa +kontroluje originalita zadaní, a všetky zadania so zhodou vyššou ako 85% sú hodnotené 0 bodmi. Pri hodnotení vypracovania +sa bude prihliadať na nasledujúce: + +- použitie vlastnej funkcie +- využitie cyklov (for cyklus prípadne while cyklus) +- využitie podmienok if - else if - else +- práca so súborom +- korektnosť kódu +- komunikácia hry s hráčom + + +## Odovzdanie + +Vypracovanie zadania odovzdajte do určeného miesta v MS Teams (Assignments > Zadanie 1 - Hádanie čísla). +Odovzdávajte iba súbor _main.c_ so zdrojovým kódom programu. +Vypracovanie je nutné odovzdať do **31.10.2024 23:59**. Neodovzdanie je hodnotené 0 bodmi. +V prípade otázok, alebo technických problémov ma môžte kontaktovať na MS Teams alebo emailom milan.mladoniczky@paneurouni.com . diff --git a/codelabs/zadanie-hadanie_cisla/codelab.json b/codelabs/zadanie-hadanie_cisla/codelab.json new file mode 100644 index 0000000..2c8056d --- /dev/null +++ b/codelabs/zadanie-hadanie_cisla/codelab.json @@ -0,0 +1,26 @@ +{ + "environment": "web", + "format": "html", + "prefix": "https://storage.googleapis.com", + "mainga": "", + "updated": "2024-10-23T22:09:19+02:00", + "id": "zadanie-hadanie_cisla", + "duration": 0, + "title": "Zadanie 1 - Hádanie čísla", + "authors": "Milan Mladoniczky", + "summary": "Zadanie 1 Hádanie čísla", + "source": "zadanie-hadanie_cisla.md", + "theme": "", + "status": [ + "published" + ], + "category": [ + "zadanie", + "bodove_hodnotenie" + ], + "tags": [ + "beginner" + ], + "feedback": "https://github.com/interes-group/pevs-BIAX10029-codelabs/issues", + "url": "zadanie-hadanie_cisla" +} diff --git a/codelabs/zadanie-hadanie_cisla/index.html b/codelabs/zadanie-hadanie_cisla/index.html new file mode 100644 index 0000000..9892111 --- /dev/null +++ b/codelabs/zadanie-hadanie_cisla/index.html @@ -0,0 +1,93 @@ + + + + + + + + + Zadanie 1 - Hádanie čísla + + + + + + + + + +

Úlohou je naprogramovať jednoduchú hru pomocou jazyka C, štandard C11, v ktorej sa hráč snaží uhádnuť náhodné číslo generované hrou tzv. tajomné číslo. Používateľ interaguje s hrou pomocou príkazového riadku / termínálu, t.j. štandardným vstupom a výstupom.

+ + +
+ + +

Na začiatku, hra vypýta od hráča interval v ktorom vygeneruje náhodné číslo. Rozdiel hraníc intervalu musí byť minimálne 10. Hráč následne môže napísať číslo, ktoré si myslí, že je tajomné číslo. Po zadaní čísla hra pokračuje nasledovne:

+
    +
  • Ak hráč zadal číslo mimo stanoveného intervalu na začiatku hry, hra vypíše hráčovi "Zadané číslo je mimo stanoveného intervalu", následne hra vypíše v akom intervale sa môže tajomné číslo nachádza a dá hráčovi možnosť hádať znovu.
  • +
  • Ak hráč zadal číslo, ktoré je väčšie ako tajomné číslo, hra vypíše hráčovi "Tajomné číslo je menšie ako tvoj odhad" a dá hráčovi možnosť hádať znovu.
  • +
  • Ak hráč zadal číslo, ktoré je menšie ako tajomné číslo, hra vypíše hráčovi "Tajomné číslo je väčšie ako tvoj odhad" a dá hráčovi možnosť hádať znovu.
  • +
  • Ak hráč uhádol číslo, hra mu pogratuluje a skončí.
  • +
+

Hra končí ak hráč uhádne tajomné číslo ale sa dobrovoľne vzdá a ukončí hru tím, že napíše znak ‘Q' do vstupu pre odhad. Hra počíta koľko pokusov hráč zadal a pri ukončení hry ich vypíše hráčovi.

+

Ešte pred ukončením programu zapíšte záznam o hádaní do súboru hadaj_cislo.log. Záznam o hre má nasledujúci tvar:

+

tajomné_číslo počet_pokusov uhadol/neuhadol

+

Napríklad ak tajomné číslo bolo 8 a používateľ ho uhádol na 3 pokusy záznam v súbore by mal vyzerať nasledovne: 8 3 uhadol.

+

Program do súboru iba pridáva záznamy o hre nikdy nepremazáva existujúce dáta. Ak súbor neexistuje vytvorí ho. Súbor sa môže nachádzať v rovnakom priečinku ako zdrojový súbor main.c .

+

Dbajte na dodatočnú komunikáciu/výpisy hráčovi o priebehu hry, prípadne aký vstup očakávate od hráča.

+ + +
+ + +

Pri implementácii zadania musíte vytvoriť aspoň jednu vlastnú funkciu, ktorú následne použijete v inej časti programu. Pri implementácii môžte použiť všetky výrazy, techniky a funkcie, ktoré sme doteraz prebrali a samozrejme aj nejaká tvorivá práca navyše môže byť ocenená bonusovými bodmi.

+ + + +
+ + +

Zadanie je ohodnotené 20 bodmi. Odovzdaný program musí byť skompilovateľný, inak je hodnotený 0 bodmi. Pri vypracovaní zadania sa kontroluje originalita zadaní, a všetky zadania so zhodou vyššou ako 85% sú hodnotené 0 bodmi. Pri hodnotení vypracovania sa bude prihliadať na nasledujúce:

+
    +
  • použitie vlastnej funkcie
  • +
  • využitie cyklov (for cyklus prípadne while cyklus)
  • +
  • využitie podmienok if - else if - else
  • +
  • práca so súborom
  • +
  • korektnosť kódu
  • +
  • komunikácia hry s hráčom
  • +
+ + +
+ + +

Vypracovanie zadania odovzdajte do určeného miesta v MS Teams (Assignments > Zadanie 1 - Hádanie čísla). Odovzdávajte iba súbor main.c so zdrojovým kódom programu. Vypracovanie je nutné odovzdať do 31.10.2024 23:59. Neodovzdanie je hodnotené 0 bodmi. V prípade otázok, alebo technických problémov ma môžte kontaktovať na MS Teams alebo emailom milan.mladoniczky@paneurouni.com .

+ + +
+ +
+ + + + + + + + + diff --git a/docs/codelabs/cvicenie-5.md b/docs/codelabs/cvicenie-5.md new file mode 100644 index 0000000..3c99ed5 --- /dev/null +++ b/docs/codelabs/cvicenie-5.md @@ -0,0 +1,96 @@ +summary: Cvičenie 5 Súbory +id: cvicenie-5 +categories: cvicenie +tags: beginner +status: Published +authors: Milan Mladoniczky +feedback link: https://github.com/interes-group/pevs-BIAX10029-codelabs/issues + +# Cvičenie 5 - Súbory + + +## Úvod + +Na tomto cvičení si preberieme prácu so súbormi. + +### Obsah +- otvorenie súboru a jeho čítanie +- zapisovanie do súboru + +> aside negative +> Ak používate ako vývojové prostredie lokálny a editor a následnú kompiláciu cez terminál. Použite príkaz: +> ```shell +> gcc -std=c11 -o program -Wall -Wextra main.c +> ``` + +Pre vypracovanie týchto úloh odporúčam lokálne vývojové prostredie (napr. CLion alebo VS Code) a nie webové prostredie. + +Riešenia na jednotlivé úlohy budú uverejnené najskôr nasledujúci deň po cvičení. + + +## Úloha 5.1 + +Napíšte program, zdrojový kód, v jazyku C použitím štandardu C11, ktorý otvorí existujúci súbor **_data.txt_**, +načíta všetky údaje a vypíše ich na štandardný výstup. + +Dáta zo súboru načítajte po riadkoch a každý riadok hneď po načítaní vypíšte. Snažte sa implementáciu spraviť tak aby +v jednom momente bol načítaný len jeden riadok. + +> aside positive +> Nezabudnite si pred spustením program vytvoriť súbor _data.txt_ v tom istom priečinku ako zdrojový súbor _main.c_ . + +### Obsah súboru _data.txt_ + +```text +Na prvé cvičenie prišli všetci. +Na druhé už o niečo menej. +Na tretie už o málo menej. +Na štvrté prišli tí, ktorí sa chcú niečo naučiť. +``` + + +## Úloha 5.2 + +Napíšte program, zdrojový kód, v jazyku C použitím štandardu C11, ktorý zapíše do súboru výpočty, ktoré zadá používateľ. +Program bude sčítavať dve čísla, ktoré zadá používateľ a vypíše ich výsledok na štandardný výstup a zároveň zapíše výpočet do súboru. +Program si pýta dve čísla pre výpočet v cykle do nekonečna pokiaľ používateľ namiesto prvého čísla nezadá znak _'q'_. + +Výpočet je uložený do súboru ako trojica čísel oddelená medzerou. Každý výpočet je uložený do nového riadku. +Výpočty ukladajte do súboru _**vypocty.txt**_ do rovnakého priečinku ako je váš zdrojový súbor _main.c_ . +Ak súbor neexistuje, vytvorte ho programom. Ak súbor pri otvorení existuje prepíšte jeho existujúce dáta novými. + +> aside negative +> Dávajte si pozor na zatvorenie súboru pred skončením programu. + +### Príklady vstupov / výstupov programu + +Ak vstupy od používateľa pre výpočty boli v nasledovnom poradí: + +- 5 a 3 +- 8 a 7 +- 21 a 56 + +Program by mal vytvoriť súbor _vypocty.txt_ s nasledovným obsahom: + +```text +5 3 8 +8 7 15 +21 56 77 +``` + + +## Úloha 5.3 + +Napíšte program, zdrojový kód, v jazyku C použitím štandardu C11, ktorý načíta súbor _vypocty.txt_ a pokračuje v jeho zapisovaní. + +Program na začiatku načíta súbor _vypocty.txt_. Ak súbor neexistuje vytvorí ho. Ak súbor existuje načíta postupne z neho všetky výpočty +a zvaliduje či sú správne vypočítané, t.j. či z načítanej trojice čísel v riadku súčet prvých dvoch čísiel sa rovná tretiemu číslu. +Ak kontrola narazí na nesprávny výpočet tak na to upozorní používateľa vypísaním načítaných čísel a chybovou správou, +program však pokračuje ďalej. Keď program načíta všetky existujúce výpočty vypíše koľko výpočtov načítal na obrazovku. + +Program následne pokračuje v rovnakej činnosti ako v úlohe 5.2 s opýtaním sa používateľa o dve čísla a vypočíta ich súčet. +Výpočet potom zapíše na koniec súboru. Existujúce dáta nesmú byť prepísané. Formát súboru _vypocty.txt_ musí byť zachovaný +ako je v úlohe 5.2. + +> aside negative +> Dávajte si pozor na mód pod ktorým otvárate súbor a na zatvorenie súboru pred skončením programu. diff --git a/docs/codelabs/cvicenie-5/codelab.json b/docs/codelabs/cvicenie-5/codelab.json new file mode 100644 index 0000000..98e8c3f --- /dev/null +++ b/docs/codelabs/cvicenie-5/codelab.json @@ -0,0 +1,25 @@ +{ + "environment": "web", + "format": "html", + "prefix": "https://storage.googleapis.com", + "mainga": "", + "updated": "2024-10-23T20:34:45+02:00", + "id": "cvicenie-5", + "duration": 0, + "title": "Cvičenie 5 - Súbory", + "authors": "Milan Mladoniczky", + "summary": "Cvičenie 5 Súbory", + "source": "cvicenie-5.md", + "theme": "", + "status": [ + "published" + ], + "category": [ + "cvicenie" + ], + "tags": [ + "beginner" + ], + "feedback": "https://github.com/interes-group/pevs-BIAX10029-codelabs/issues", + "url": "cvicenie-5" +} diff --git a/docs/codelabs/cvicenie-5/index.html b/docs/codelabs/cvicenie-5/index.html new file mode 100644 index 0000000..1eb603f --- /dev/null +++ b/docs/codelabs/cvicenie-5/index.html @@ -0,0 +1,102 @@ + + + + + + + + + Cvičenie 5 - Súbory + + + + + + + + + +

Na tomto cvičení si preberieme prácu so súbormi.

+

Obsah

+
    +
  • otvorenie súboru a jeho čítanie
  • +
  • zapisovanie do súboru
  • +
+ +

Pre vypracovanie týchto úloh odporúčam lokálne vývojové prostredie (napr. CLion alebo VS Code) a nie webové prostredie.

+

Riešenia na jednotlivé úlohy budú uverejnené najskôr nasledujúci deň po cvičení.

+ + +
+ + +

Napíšte program, zdrojový kód, v jazyku C použitím štandardu C11, ktorý otvorí existujúci súbor data.txt, načíta všetky údaje a vypíše ich na štandardný výstup.

+

Dáta zo súboru načítajte po riadkoch a každý riadok hneď po načítaní vypíšte. Snažte sa implementáciu spraviť tak aby v jednom momente bol načítaný len jeden riadok.

+ +

Obsah súboru data.txt

+
Na prvé cvičenie prišli všetci.
+Na druhé už o niečo menej.
+Na tretie už o málo menej.
+Na štvrté prišli tí, ktorí sa chcú niečo naučiť.
+
+ + +
+ + +

Napíšte program, zdrojový kód, v jazyku C použitím štandardu C11, ktorý zapíše do súboru výpočty, ktoré zadá používateľ. Program bude sčítavať dve čísla, ktoré zadá používateľ a vypíše ich výsledok na štandardný výstup a zároveň zapíše výpočet do súboru. Program si pýta dve čísla pre výpočet v cykle do nekonečna pokiaľ používateľ namiesto prvého čísla nezadá znak ‘q'.

+

Výpočet je uložený do súboru ako trojica čísel oddelená medzerou. Každý výpočet je uložený do nového riadku. Výpočty ukladajte do súboru vypocty.txt do rovnakého priečinku ako je váš zdrojový súbor main.c . Ak súbor neexistuje, vytvorte ho programom. Ak súbor pri otvorení existuje prepíšte jeho existujúce dáta novými.

+ +

Príklady vstupov / výstupov programu

+

Ak vstupy od používateľa pre výpočty boli v nasledovnom poradí:

+
    +
  • 5 a 3
  • +
  • 8 a 7
  • +
  • 21 a 56
  • +
+

Program by mal vytvoriť súbor vypocty.txt s nasledovným obsahom:

+
5 3 8
+8 7 15
+21 56 77
+
+ + +
+ + +

Napíšte program, zdrojový kód, v jazyku C použitím štandardu C11, ktorý načíta súbor vypocty.txt a pokračuje v jeho zapisovaní.

+

Program na začiatku načíta súbor vypocty.txt. Ak súbor neexistuje vytvorí ho. Ak súbor existuje načíta postupne z neho všetky výpočty a zvaliduje či sú správne vypočítané, t.j. či z načítanej trojice čísel v riadku súčet prvých dvoch čísiel sa rovná tretiemu číslu. Ak kontrola narazí na nesprávny výpočet tak na to upozorní používateľa vypísaním načítaných čísel a chybovou správou, program však pokračuje ďalej. Keď program načíta všetky existujúce výpočty vypíše koľko výpočtov načítal na obrazovku.

+

Program následne pokračuje v rovnakej činnosti ako v úlohe 5.2 s opýtaním sa používateľa o dve čísla a vypočíta ich súčet. Výpočet potom zapíše na koniec súboru. Existujúce dáta nesmú byť prepísané. Formát súboru vypocty.txt musí byť zachovaný ako je v úlohe 5.2.

+ + + +
+ +
+ + + + + + + + + diff --git a/docs/codelabs/projekt-kalkulacka.md b/docs/codelabs/projekt-kalkulacka.md index 4c70626..0814e4a 100644 --- a/docs/codelabs/projekt-kalkulacka.md +++ b/docs/codelabs/projekt-kalkulacka.md @@ -1,6 +1,6 @@ summary: Projekt Kalkulačka id: projekt-kalkulacka -categories: cvicenie, projekt +categories: projekt tags: beginner status: Published authors: Milan Mladoniczky diff --git a/docs/codelabs/projekt-kalkulacka/codelab.json b/docs/codelabs/projekt-kalkulacka/codelab.json index 717262b..7dfbd01 100644 --- a/docs/codelabs/projekt-kalkulacka/codelab.json +++ b/docs/codelabs/projekt-kalkulacka/codelab.json @@ -2,7 +2,8 @@ "environment": "web", "format": "html", "prefix": "https://storage.googleapis.com", - "updated": "2024-10-16T23:03:52+02:00", + "mainga": "", + "updated": "2024-10-23T22:14:24+02:00", "id": "projekt-kalkulacka", "duration": 0, "title": "Kalkulačka", @@ -14,7 +15,6 @@ "published" ], "category": [ - "cvicenie", "projekt" ], "tags": [ diff --git a/docs/codelabs/zadanie-hadanie_cisla.md b/docs/codelabs/zadanie-hadanie_cisla.md new file mode 100644 index 0000000..eadce57 --- /dev/null +++ b/docs/codelabs/zadanie-hadanie_cisla.md @@ -0,0 +1,84 @@ +summary: Zadanie 1 Hádanie čísla +id: zadanie-hadanie_cisla +categories: zadanie +tags: beginner +status: Published +authors: Milan Mladoniczky +feedback link: https://github.com/interes-group/pevs-BIAX10029-codelabs/issues + +# Zadanie 1 - Hádanie čísla + + +## Úvod + +Úlohou je naprogramovať jednoduchú hru pomocou jazyka C, štandard C11, v ktorej sa hráč snaží uhádnuť náhodné +číslo generované hrou tzv. tajomné číslo. +Používateľ interaguje s hrou pomocou príkazového riadku / termínálu, t.j. štandardným vstupom a výstupom. + + +## Priebeh + +Na začiatku, hra vypýta od hráča interval v ktorom vygeneruje náhodné číslo. Rozdiel hraníc intervalu musí byť minimálne 10. +Hráč následne môže napísať číslo, ktoré si myslí, že je tajomné číslo. Po zadaní čísla hra pokračuje nasledovne: + +* Ak hráč zadal číslo mimo stanoveného intervalu na začiatku hry, hra vypíše hráčovi "Zadané číslo je mimo stanoveného intervalu", + následne hra vypíše v akom intervale sa môže tajomné číslo nachádza a dá hráčovi možnosť hádať znovu. +* Ak hráč zadal číslo, ktoré je väčšie ako tajomné číslo, hra vypíše hráčovi “Tajomné číslo je menšie ako tvoj odhad” + a dá hráčovi možnosť hádať znovu. +* Ak hráč zadal číslo, ktoré je menšie ako tajomné číslo, hra vypíše hráčovi “Tajomné číslo je väčšie ako tvoj odhad” + a dá hráčovi možnosť hádať znovu. +* Ak hráč uhádol číslo, hra mu pogratuluje a skončí. + +Hra končí ak hráč uhádne tajomné číslo ale sa dobrovoľne vzdá a ukončí hru tím, že napíše znak 'Q' do vstupu pre odhad. +Hra počíta koľko pokusov hráč zadal a pri ukončení hry ich vypíše hráčovi. + +Ešte pred ukončením programu zapíšte záznam o hádaní do súboru _hadaj_cislo.log_. Záznam o hre má nasledujúci tvar: + +**tajomné_číslo počet_pokusov uhadol/neuhadol** + +Napríklad ak tajomné číslo bolo 8 a používateľ ho uhádol na 3 pokusy záznam v súbore by mal vyzerať nasledovne: +`8 3 uhadol`. + +Program do súboru iba pridáva záznamy o hre nikdy nepremazáva existujúce dáta. Ak súbor neexistuje vytvorí ho. +Súbor sa môže nachádzať v rovnakom priečinku ako zdrojový súbor _main.c_ . + +Dbajte na dodatočnú komunikáciu/výpisy hráčovi o priebehu hry, prípadne aký vstup očakávate od hráča. + + +## Implementácia + +Pri implementácii zadania musíte vytvoriť aspoň jednu vlastnú funkciu, ktorú následne použijete v inej časti programu. +Pri implementácii môžte použiť všetky výrazy, techniky a funkcie, ktoré sme doteraz prebrali a samozrejme aj nejaká tvorivá +práca navyše môže byť ocenená bonusovými bodmi. + +> aside positive +> Pomôcka: +> +> Náhodné číslo je možné vygenerovať pomocou funkcie _rand()_, ktorá vráti náhodné číslo medzi 0 a konštantou _RAND_MAX_. +> _rand()_ je funkcia z knižnice _stdlib.h_. Pre použitie je potrebné túto knižnicu najprv zahrnúť do zdrojového kódu na +> začiatku súboru main.c - `#include <stdlib.h>` +> +> Ak chceme vygenerovať náhodné číslo medzi dvomi hranicami napr. medzi číslom A a číslom B tak vieme použiť vzorec: +> `rand() % (B - A + 1) + A` + + +## Hodnotenie + +Zadanie je ohodnotené 20 bodmi. Odovzdaný program musí byť skompilovateľný, inak je hodnotený 0 bodmi. Pri vypracovaní zadania sa +kontroluje originalita zadaní, a všetky zadania so zhodou vyššou ako 85% sú hodnotené 0 bodmi. Pri hodnotení vypracovania +sa bude prihliadať na nasledujúce: + +- použitie vlastnej funkcie +- využitie cyklov (for cyklus prípadne while cyklus) +- využitie podmienok if - else if - else +- práca so súborom +- korektnosť kódu +- komunikácia hry s hráčom + + +## Odovzdanie + +Vypracovanie zadania odovzdajte do určeného miesta v MS Teams (Assignments > Zadanie 1 - Hádanie čísla). +Odovzdávajte iba súbor _main.c_ so zdrojovým kódom programu. +Vypracovanie je nutné odovzdať do **31.10.2024 23:59**. Neodovzdanie je hodnotené 0 bodmi. +V prípade otázok, alebo technických problémov ma môžte kontaktovať na MS Teams alebo emailom milan.mladoniczky@paneurouni.com . diff --git a/docs/codelabs/zadanie-hadanie_cisla/codelab.json b/docs/codelabs/zadanie-hadanie_cisla/codelab.json new file mode 100644 index 0000000..2c8056d --- /dev/null +++ b/docs/codelabs/zadanie-hadanie_cisla/codelab.json @@ -0,0 +1,26 @@ +{ + "environment": "web", + "format": "html", + "prefix": "https://storage.googleapis.com", + "mainga": "", + "updated": "2024-10-23T22:09:19+02:00", + "id": "zadanie-hadanie_cisla", + "duration": 0, + "title": "Zadanie 1 - Hádanie čísla", + "authors": "Milan Mladoniczky", + "summary": "Zadanie 1 Hádanie čísla", + "source": "zadanie-hadanie_cisla.md", + "theme": "", + "status": [ + "published" + ], + "category": [ + "zadanie", + "bodove_hodnotenie" + ], + "tags": [ + "beginner" + ], + "feedback": "https://github.com/interes-group/pevs-BIAX10029-codelabs/issues", + "url": "zadanie-hadanie_cisla" +} diff --git a/docs/codelabs/zadanie-hadanie_cisla/index.html b/docs/codelabs/zadanie-hadanie_cisla/index.html new file mode 100644 index 0000000..9892111 --- /dev/null +++ b/docs/codelabs/zadanie-hadanie_cisla/index.html @@ -0,0 +1,93 @@ + + + + + + + + + Zadanie 1 - Hádanie čísla + + + + + + + + + +

Úlohou je naprogramovať jednoduchú hru pomocou jazyka C, štandard C11, v ktorej sa hráč snaží uhádnuť náhodné číslo generované hrou tzv. tajomné číslo. Používateľ interaguje s hrou pomocou príkazového riadku / termínálu, t.j. štandardným vstupom a výstupom.

+ + +
+ + +

Na začiatku, hra vypýta od hráča interval v ktorom vygeneruje náhodné číslo. Rozdiel hraníc intervalu musí byť minimálne 10. Hráč následne môže napísať číslo, ktoré si myslí, že je tajomné číslo. Po zadaní čísla hra pokračuje nasledovne:

+
    +
  • Ak hráč zadal číslo mimo stanoveného intervalu na začiatku hry, hra vypíše hráčovi "Zadané číslo je mimo stanoveného intervalu", následne hra vypíše v akom intervale sa môže tajomné číslo nachádza a dá hráčovi možnosť hádať znovu.
  • +
  • Ak hráč zadal číslo, ktoré je väčšie ako tajomné číslo, hra vypíše hráčovi "Tajomné číslo je menšie ako tvoj odhad" a dá hráčovi možnosť hádať znovu.
  • +
  • Ak hráč zadal číslo, ktoré je menšie ako tajomné číslo, hra vypíše hráčovi "Tajomné číslo je väčšie ako tvoj odhad" a dá hráčovi možnosť hádať znovu.
  • +
  • Ak hráč uhádol číslo, hra mu pogratuluje a skončí.
  • +
+

Hra končí ak hráč uhádne tajomné číslo ale sa dobrovoľne vzdá a ukončí hru tím, že napíše znak ‘Q' do vstupu pre odhad. Hra počíta koľko pokusov hráč zadal a pri ukončení hry ich vypíše hráčovi.

+

Ešte pred ukončením programu zapíšte záznam o hádaní do súboru hadaj_cislo.log. Záznam o hre má nasledujúci tvar:

+

tajomné_číslo počet_pokusov uhadol/neuhadol

+

Napríklad ak tajomné číslo bolo 8 a používateľ ho uhádol na 3 pokusy záznam v súbore by mal vyzerať nasledovne: 8 3 uhadol.

+

Program do súboru iba pridáva záznamy o hre nikdy nepremazáva existujúce dáta. Ak súbor neexistuje vytvorí ho. Súbor sa môže nachádzať v rovnakom priečinku ako zdrojový súbor main.c .

+

Dbajte na dodatočnú komunikáciu/výpisy hráčovi o priebehu hry, prípadne aký vstup očakávate od hráča.

+ + +
+ + +

Pri implementácii zadania musíte vytvoriť aspoň jednu vlastnú funkciu, ktorú následne použijete v inej časti programu. Pri implementácii môžte použiť všetky výrazy, techniky a funkcie, ktoré sme doteraz prebrali a samozrejme aj nejaká tvorivá práca navyše môže byť ocenená bonusovými bodmi.

+ + + +
+ + +

Zadanie je ohodnotené 20 bodmi. Odovzdaný program musí byť skompilovateľný, inak je hodnotený 0 bodmi. Pri vypracovaní zadania sa kontroluje originalita zadaní, a všetky zadania so zhodou vyššou ako 85% sú hodnotené 0 bodmi. Pri hodnotení vypracovania sa bude prihliadať na nasledujúce:

+
    +
  • použitie vlastnej funkcie
  • +
  • využitie cyklov (for cyklus prípadne while cyklus)
  • +
  • využitie podmienok if - else if - else
  • +
  • práca so súborom
  • +
  • korektnosť kódu
  • +
  • komunikácia hry s hráčom
  • +
+ + +
+ + +

Vypracovanie zadania odovzdajte do určeného miesta v MS Teams (Assignments > Zadanie 1 - Hádanie čísla). Odovzdávajte iba súbor main.c so zdrojovým kódom programu. Vypracovanie je nutné odovzdať do 31.10.2024 23:59. Neodovzdanie je hodnotené 0 bodmi. V prípade otázok, alebo technických problémov ma môžte kontaktovať na MS Teams alebo emailom milan.mladoniczky@paneurouni.com .

+ + +
+ +
+ + + + + + + + + diff --git a/docs/images/icons/assignment.png b/docs/images/icons/assignment.png new file mode 100644 index 0000000000000000000000000000000000000000..7efb7f29c0ba68a2bb21eef40980c65a6ddfc244 GIT binary patch literal 14297 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