From 2186d86136a090719221085b16afac4f8f7ac775 Mon Sep 17 00:00:00 2001 From: TabolinIA Date: Fri, 19 Dec 2025 12:27:43 +0300 Subject: [PATCH] ikz --- TEMA9/Mod0.py | 11 +++++ TEMA9/Mod1.py | 38 ++++++++++++++ TEMA9/Mod2.py | 31 ++++++++++++ TEMA9/Res22.txt | 81 ++++++++++++++++++++++++++++++ TEMA9/Ris2.png | Bin 0 -> 15670 bytes TEMA9/input.bin | Bin 0 -> 99 bytes TEMA9/test.md | 129 ++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 290 insertions(+) create mode 100644 TEMA9/Mod0.py create mode 100644 TEMA9/Mod1.py create mode 100644 TEMA9/Mod2.py create mode 100644 TEMA9/Res22.txt create mode 100644 TEMA9/Ris2.png create mode 100644 TEMA9/input.bin create mode 100644 TEMA9/test.md diff --git a/TEMA9/Mod0.py b/TEMA9/Mod0.py new file mode 100644 index 0000000..3d6f8fb --- /dev/null +++ b/TEMA9/Mod0.py @@ -0,0 +1,11 @@ +# Модуль 0 +import Mod2 +import matplotlib.pyplot as plt + +sps1, sps2 = Mod2.read_file() +plt.plot(sps1) +plt.title('График sps1') +plt.grid(True) +plt.show() + + diff --git a/TEMA9/Mod1.py b/TEMA9/Mod1.py new file mode 100644 index 0000000..5c9a574 --- /dev/null +++ b/TEMA9/Mod1.py @@ -0,0 +1,38 @@ +# Модуль 1 +import math + +def func1(t1, t2): + """Объединяет два кортежа и сортирует""" + sps1 = [] + sps2 = [] + for x in t1: + sps1.append(x) + sps2.append(1) + for x in t2: + sps1.append(x) + sps2.append(2) + spis3 = list(zip(sps1, sps2)) + spis3.sort(key=lambda x: x[0]) + sps1_sorted = [x[0] for x in spis3] + sps2_sorted = [x[1] for x in spis3] + return sps1_sorted, sps2_sorted + +def func2(spis): + """Вычисляет статистики списка""" + sred = sum(spis) / len(spis) + mini = min(spis) + maxi = max(spis) + spis_sorted = sorted(spis) + n = len(spis_sorted) + if n % 2 == 1: + med = spis_sorted[n // 2] + else: + med = (spis_sorted[n // 2 - 1] + spis_sorted[n // 2]) / 2 + + if len(spis) > 1: + kv_sum = sum((x - sred) ** 2 for x in spis) + std = math.sqrt(kv_sum / (len(spis) - 1)) + else: + std = 0 + + return sred, mini, maxi, med, std diff --git a/TEMA9/Mod2.py b/TEMA9/Mod2.py new file mode 100644 index 0000000..8de3b8e --- /dev/null +++ b/TEMA9/Mod2.py @@ -0,0 +1,31 @@ +# Модуль 2 +import pickle +import os +import Mod1 + +def read_file(): + while True: + file_name = input("Введите имя файла: ") + if os.path.exists(file_name): + break + print("Файл не найден! Попробуйте снова.") + with open(file_name, 'rb') as f: + KRT1, KRT2 = pickle.load(f) + sps1, sps2 = Mod1.func1(KRT1, KRT2) + print("SPS1:", sps1) + print("SPS2:", sps2) + sred, mini, maxi, med, std = Mod1.func2(sps1) + print('Статистики SPS1:') + print("Среднее:" ,sred) + print("Минимум:", mini) + print("Максимум:", maxi) + print("Медиана:", med) + print("Ст.отклонение:", std) + with open('Res22.txt', 'w') as f: + f.write("sps1 sps2\n") + for i in range(len(sps1)): + f.write(str(sps1[i])) + f.write(' ') + f.write(str(sps2[i])) + f.write('\n') + return sps1, sps2 diff --git a/TEMA9/Res22.txt b/TEMA9/Res22.txt new file mode 100644 index 0000000..f98bc7a --- /dev/null +++ b/TEMA9/Res22.txt @@ -0,0 +1,81 @@ +sps1 sps2 +20 1 +20 2 +21 1 +21 1 +21 2 +21 2 +25 1 +25 1 +25 1 +25 1 +25 1 +25 2 +25 2 +25 2 +25 2 +25 2 +26 1 +26 1 +26 2 +26 2 +29 1 +29 2 +30 1 +30 1 +30 2 +30 2 +31 1 +31 1 +31 1 +31 1 +31 1 +31 2 +31 2 +31 2 +31 2 +31 2 +32 1 +32 1 +32 2 +32 2 +34 1 +34 1 +34 1 +34 1 +34 2 +34 2 +34 2 +34 2 +36 1 +36 2 +37 1 +37 2 +38 1 +38 1 +38 1 +38 1 +38 2 +38 2 +38 2 +38 2 +39 1 +39 2 +40 1 +40 2 +42 1 +42 1 +42 2 +42 2 +43 1 +43 1 +43 2 +43 2 +44 1 +44 1 +44 2 +44 2 +45 1 +45 1 +45 2 +45 2 diff --git a/TEMA9/Ris2.png b/TEMA9/Ris2.png new file mode 100644 index 0000000000000000000000000000000000000000..deca07b7dbfbb3f328da220c477d557a35ed36df GIT binary patch literal 15670 zcmdUWcT`i`+vcH45l|Emq$vU-O+W?d3W_x8El5#%M|w|`D~N(9ElQUny-JZ9Y*Y~` zp@?)4siB1u2$_Aj_x{%UX69RKX8s#j)a0Cf_SyA)pZ9s69i@9$je(AX4uT*C^*gHi z5JZlGAhJmsYH;Oh@2^?#pRCUj2fTiEUfxa~?owhB zm&K$+cpZIwJiTSb#ohi>Ld?UJ7ty z)Ri&X5W~49(z@05OD^U+G-jr%x+fD92F}ync~$?&Qq)kn#Q3>!MQtu&h|X9nf5*6~ zNn?yoO!qW>)7KcoEIp9M)+$lDm5I5d7>W5a*xl16JRk9b=wPZ|E#*XL|q`FhzGBqa21-n^Nk zi5A-!!WzE+HXjskb>axNfz6 zX_1SB#vJ5^Z1t*nb?~GA%vc6YJ*o7Z`h;k^BrcA2>VLOD$e+*8n6N`z2nZV&dn&16 z(X1wr!%cc#6ste3X-7j#D_Sc}*2v%Nd-7FHMoyW`&k1x^*!y}hbHQsLkKu`hMn$vY z$i3&Y^YdN(I!Y^wNsFroIMSg<9e&WP(cB7% zX5#iJbwhqp!3;VfA+_QlR$=>fBVn;@Z6y`)@BN4t`7bVUS4T z`{DBY;jTZcI*6Q*<7s***>QV$Bq>PF3=grL4h_PCiq3;B2S=e0I_assCViXE0GAXk(c5*5hN5{w8+`4@m zu`_|h><5AdmFpWAj9Gb1G>>iU?9_q9)vlzIz*ZEw$IiH8LKS2s>&FEU6 zX~TPGgb^0{6?M3*6mS!y!`fggOUraDn8T$$O>tkGfiK5Z=LD=NJ*&u%HX>N397F{u z^^ur0Bzo63gPMw}4%0lJ9(>{QWnIOCHI*GjEQ@(bW~Q>2m)GpP5~=Pq8(SA>TG@`r zXpMGle!*aqvqJFpz*u%6UR*}T6lY+O8-9!_DN)!Yy;6%wVe94A>ezmj&2PinEnL`+ z+}K<(LZU|%dn55iwd>%@bg8DV?}X=PhSjp7hE~kp@3Uhu#reht*yMZ!Jz1s@FfE8w zj?c#Ni_=CnGtMub8{AN%I)AlB=gHd|x6#frB+-Rv3i=oPExqrpN~F|b#^QBsPubFD zj}jWR(#l`Z#Q(-nb>OD`9vJQ1HePNyzhXVSq0Qld1a|lH?rs3r&5WQ$A^*&xg~rYA zMLWn0X`qTVU$IL~)G`lT>foe2{~oms8>1?v%{gL$R1O*P{bO!B-+ z2W#Qn4S5Iwp3p75y2;1%K3(G@`ea@`=?VlAt~Wc9do&**iUkwHKo0hfNiF^R@^W2q z>w5}9H=hVsCqyOFc#()ZOYD`OBN*ZbOU#GBwsy|vR1DdTCe4F^@R4@0z%}oeS_*so z{`Mx17>1p$vHnP|(4nf`qB}Mm!;tAry~%U9c1)qme}8)=D6W%q&_fys`o22WfPKA; z*f;bvbiT`~Cl!J%o<Ko-O&M6_w7^w~?cy?z5i(3z+IX=zAyfpbh!Q&f2itU}?l6c%_=Kej}WE zVNkJ}vlE9T1uI-zjgcPDAG-OD{EhQD!xDdI<|sNR(r%lQ&m9BNXU<$Ve6?7H4et`Yqhn$k>Z;KK4uA*aJ^y_$ z7}sR7w7dAww>Vkz^MJ@qLDHjwcS)HG<4q0NGApH`tgNh$gu*!o0qx|RjJ(d%TwHDp zXD+t{?XT3jC;*cpipyFYdhehkeBpvBG8WOA`%W-D;M3v+2E%gdR5ns<@p^xrPFZ!% zi>yv$;aTWn*dkAZ%0O+`l=SY%6&2V@_TLLPC<{|_MP1r18d;rl>QsM1;s#cHTZ#PQyJ=ke9%eRuONS_t~V9E~~si-2F6`^sjO zkggCs7`*&l4wulzgZxFTuCF={P}f4VJDG@xNW#OJ){ZW5j7W)jZRySjx)54g+SQc2 zvUz&Yv=~q(^@>wmG{;qq2!^u)I`ZqPO>F?O2zxZ|y<J*n-1{cd&|tMQ_7c0SPyX_FlX<<*Lf;?Omf2Zb zuq@Vh>F*GIvpSVRc0Fn7=$KFGsY&S`eF9Xtlt$C|YB4qHpH#?acT9YG<3&=Y<8mD9 zuJE^J`+n=`L4WulqjpT0uK^|P{_En%$Vgv_1=@3Wqc}h=1laE)R zpg#U%CyyR=?%X+oF*=Cs+K@QHn|sv!?{|TJht1jot#}4@r19!W6O0RsiN41r4-Vw6 zL4`?;Zlg8WpZ=q6wdy;oW4V2`SU7fi1`0d>)!-nS+ zc~mU`rY`hmtCfUKO-(VMJzKPc8+or5JK6y75MJ>rwdclchh)IoBsKau0O=0ft@Xq# z>Ldn5Oo@;C+57$vC##?UfsY?QZmhTQEUlx!E(zkCcr9Tw`$~lCs zBgWH}mokRDwV-a-M!KkUB0WwG4kolW2tNx4F-zhryuJ5D zDyHe-Kw~nM>$}3aE`QsF725FE2UEg-U+g9>q73Ur*oW(4d~`g28(j@~Wn)i90ik}L zlJ>J>(@+nzi!a^ZFDolThb{d1*!Q;XB(OG~nI?*(g8fPd-}%}!q8SsX*jj^UO&!_c z{mc2Tv5&tjq}jxyHs<)NOaYNm<};Jxr0ZEJ&5<}>5dTbG2CdLA4lDR_>#ue;gVKaa zxNk*Itkhe$fdJxAvEPbm)5tXZS<)%||Ubhe0p_ zp(yf;d>bpaQRC^C^RsvN()Rnr*FukKv7Ylc^SZe6R}~|DoJ%nOPw+(a(G!g|HO?Dt zqC|rWS1z`Im)gU{kJkzpDK`&?8V*n?nG&ez;IJ;T>abu5FHp_+zCmV<{2m=61c@hF z=$>a1|0NbE*vWwp>8hL^u7Cn()`qGD0$mke&!-=dU4*M^98faGCB|a9WV>)1@l8~9 z_-)H!MU6h$wxD9yHMgT8x_VAeM226!ttD+eckjC{b`U*bprU-|5jchxK`+QsDiQUC)_r7K3VR43^gqP=!FRK%l>Q#pyYvHJ0M$Mct{W!{p z^r`KipOPC}3Nxfh7kCU)!gX$zsifnLgSN7jA3nLOi)^3XRV2MbNOJqucZBEtJZ;FrtSX-sUvwH!H-I)jE;= zRdycq$&3(dG3iUhF-`p?V?VZIGJ^1Af3Mgd(y=(kxOU^{*L^a_dgN5sQP-Y` z9xEy(`$l>X z(C*zOtGo}MQMB|m4Kgj)rDP#iR@TlB4`*gUc#;Hyf`*;>xw(#_vgS*0^f}upT$Z31 zN@!mmc|Ql>L4xnn;0VGVLNRGUZ}CiuV!FrQ)d#4>aPY%11q|z&kN|e-TUwUxm@EN+ zn3I#!{fB*P1q#E!U<$lT&jMlPhvl{bWRTHZC^R_d0$&H1i(+9^J4 zo)&N3ykX|#6p@gqMn0OEnZeuS=_3$@9@ve|B35#v`}$+@1%!Zf#Zu|F{{X3Kg-XYw zkPpOxnNPtNZU@cvJlhQLYx9)kJ96#6kR)Q|gRgXeroazBboloA+!071WydPU0aWJ1 zSjhP9Ur2VoP18uz3iWiiBez0qz3lyf)lFedM)$p&jBYGtUjyZvrl%h~lvV1g6p{GW zfNK_({^c1?Nttgoc_}e5F-V{sgTaVcHQ)0maVv#28Vg%HI~S%46$?DQQbTq5`gJo9 z5MQ`-sWaPG7nzpNwzD?%8JM6uTB=;#%J2udQOnX`JD9g`tDHBu@q2~%1?|awR!~XF zYI=HlD;3f~hV9ewnM09`T$e^`+={AkHKXqRGY9Xq-ejqy1oal*tJ4=JWi9`zGwAE@ z=NA=SNoZrBrR}Y)AE-!PVk@~GyCRyO%?>`PmTJCf6Sdd4`$kV4^W7N9c+%fvW79me z5Pcl=>eZ{hY_(X#J_xVy$w=%z?!ydYAmCbZwNtLi5-0p8LS+vm$S9%IrSKB9Ey|Z) z{^+uY-ESQGN|qe+imY5BJ@7aC7*{a@GOAsDdXjJU37chkgDC{1(G{Qe$7l2AFo9YLLoW0sX0AA(+LHRBR?h3C3KLW$1iGdB<72(51GDum~a=)?= zk4sLEVm_;fY?QWU2K%sOy^>yIHr!2ZYx~O$t`#xHAItE@YD*#cMkJUZ`sDa;i~W}L z@Py#9y`91qk~>8dLBZrDNKcxhO9S}O_ZynIZnjUOmwU%orynGq7*=Q+_6DN3qp$8U8u39|` zb2FI5jPvVyZ$%LTEqAMcb%>UppXETBRQY#A)0$}LPU`R=$qvJqPqDh%ETEEL_i<)r z|67Pz?aph)Aat$2x@$l=B^A|(g-DCB4*(_6+dt7pnvKVo#*Go)kC>EUD;k|>a!(8w z=6%OwLiVLPxAIlEN2c`G?AxO@G#1iN2odFKz&=L}!O$bxaG`P*U#(;@^|_~~XZ1Xp zWjN^Q<-WzVk+`s8)2y2mbM>0cU<48WeK+7w}nJXUix3-9vGeJcO+79e9EMO zTFgcgjd(pg+F#P4`NuELm{u@8N*j&nvYY=3KPL>E*cf}WB>CNK))BvpI*nt0RlS(T z_4J7=tAHkwo7a0sFhzN&h3Rdn=~kP>Tx#%TKq_L1zSe{U#f3nKI1R6A2&h9+7)B%sNv z8lKMhm}4(Abx|47c1|oUH1Ok2-2f}()rXDViU6(#;#LN;o!VECB^l_^b-zjBQLYta z19u?r3No}loh;;Gq~k&wvyJ~lD1gQU^xzHv3!K6%un#1s=)x;@F~4b8&C9hqIB3Lw z@_@dxf@$CsEBkOSg192JS8-YQog1O}$^>H1h72IHPHM3>?Y3zdpn>H@HHoyPoK8+uYj&d2|R*O;h`I$ zHMX2`=Xy)Xb9GYfKd& z0H2U33|koSgbv}5<15_a9VMRultQt>?)ccHi$dt5wQ`C&7akx{7S@P z=Jt86a&!8qIE*nOAJ&QN%rg0gT9vMm$uPlv|GhbOy>h4Rd=w3BLT?ic(x9_oKwIux zmRS;Vb>bKwL8*~&opE7Rrp93zCADpN5_=S$mkzfmAeHcODIOB|o?0S8K7_9Df{JA`Z;|b8S<6NX6;UjpprVl3ZauwA}h-T6d>;~(XzosQe zkX5Dt20R0s9BMobmtQ_yIn5>}asMMgA1JisH3(+SgSMB2^z`%yNl8fpfcp1UQnYP9 zp&(QLdu6o&S5y5B`eA4eBd!u8#97B^t*;;VE%mxVz2C~EB)blmvL=Bc3;(nbz;}D~ z-eOyr{}ni&wy`@C+kg=iiLS1Mc56hBA(P3DLoeu2fD6zrDa+HzC^e@VDlwmDL|t0r zzi?sL@Fuh-f^QR(LXpYT(|>peg5Ebu$mY{5EDNQR&VXi01i>+gKqKY1eyHf*yLZ)- z0}AQ=I3qY~s`rMHYPW-GCHrWY>|NHU|E1dwtH0x;|{NK_G!HFjIw)<0s_k}`bzovU%Z>oEdev_;FM}jOh z`{DbCK9FI&ES!=8fAn>AGaH;h7DBWOEsh50^G{h>Gr>73CI)K*3F@Sa09t?0c^{!Igp%wEI ziA+XHt(bxay6Z${OXdj0+yHxv$HWwIuA!11?^kA9N_Kqm8`wmXGd0}bSgJEkK*-f6 zCJ7>HXpIc)v$co+?gtJyg{kPS*{TCpZl=W1GuJYXqrO4ZymzgrsUdmaCovr!9*Nz- z6tlS$E?;|k8U}|AY)F!unyRA2p==6^7Kj73J$V)GI6bpUQ3DHE3r1F!r?rdmKM|i) z0yK~PkZClBl=)hR(s)+lgof}iFTQ@Q&?s&l34NyqyZWxpW(Ru>TXl`C=a7upd8QT` zU_?*`+&Xl`;-5wL+>ezrlgrc)ouB+I>v)m~6R<5YAgF|rL#lL_~FW2TCVpfO~Z3a$TC))7Yg~gxs!_+Cuz#B!Qf8m|relu3B5LiBx?CK#IJ%3bN9RDQSy zZ<(FHLblwJ#?xO8_JTcw>H)d^wd>v(S>8l3O=>@PzA@(W07*i-oN#e{eM=z{p+0DV z4MBn??|Jf{XdyEW&ETKl{_c@vV`5xC8yOx}iNssd(l{Psgm!pDlWcC;#hu~0^jYkw z$2N%x(gM!$h;VYxc>ned2@UP>+SFF%Jftw-FQ+0GJeuk=tJT#;@9i4Cs%hW`&cyOe z%z3E?1x4iKTzHN_c2QQoF1M~DI;0_HN#xKeFv{U`=!C9M+L2q^Hba&d!|T5U9*{1A zoHUb?JgOSkbGID0_q@}6|zv|ty;f0j^4Js++8?`Spez zz)?eLR4r!j?bSj04^H(@^!4@GF7)NDwrOf;*!Jb90}@yGGo3AOP5ZRhJyK>zob6zyAIjAf?YICNtulP{72 znt@Z^!xc9C;^I0zr##OCAKu`*B#Z zswwsF3`ARNhtf#+yzT8{Et8Yh*MU4_%P&JQ)RsuVZ~XG^>FAc85V5nfi%UrnmXMHG zoi8$L0Xd#LdCNO@o;G81Em7V0=Yy$j+pKrXY>dOAL`XHx)PxnZZ_*#n3D33X3ZgWs%mOoT>ih_Hh2RuOm>3@t^udW zb@-YrI>`{BC$!mocWCq!wQm)$Mo{GC{{k6g*9vaEHQF_>p-yl}54?RqB;v_`6dHMc zd3tgKB$S6OTxGuXxxE1nQD9x~oaA(t0h1C0wZwyk<(!7;2YgWCdQBbGmJ4`x^} zLdxD?$6jj}5=rDYfAPmn0BlVJ2ib}8kLF8KImLbaO>tRsakCkNS%3=#1nnbMW4(nq z=^?Hkqg97w(6aTih;@rQ|6Jk*h6k7AvAx@ce(wLrE;1qeiJjMlGSvs4!|}VI*>IhX z0w8n!=!aQ<6qRNVJt zqk>RDa81KVFLD~-Nhf2#FYg+t28O04!}jgaM;cnWdw+|$ARk%&<#_s;}pHr zKYH{M7VwhHEzpIBCqFW?bJ)U$7mmUlBWQUGe1O|%JOlq&M;?7=hf5QS$!LxsV@o(= zIW;fTatt0VC$b!RKz26Kpiq&glZ@MAsd9tlsu|#+!-2-h|00gcirmTiY)Vf3PbqP- zHZaMkT0l*3TT;AaZvou^C_;W#`K}Q?uM0c`T;P2#L*a&oP=c=~1|dM_(vkB{l6|#f ziA%Jqrabg0qR(izktV!2hb7n zGGrGL;kO?BuqJg}g%&{Lb{{J@&_ly+{(f&kYU5Xx&4Fn?4nQs77Rh;%tjfzrP=BJC*>d=(9*m+gvER|%R;*2yl!HSdGa@0T$_z0qD>l7D4BRypE zYcm?=n7Jl_{EuAVQA@>P(|YDb7?>qnrQsvYEF|LQ}&XJe?p>b3y*Ex8;DQKL>q!WwNqs z3(ypI#t~Y9eoWJ#JX56yxleR4*ByXRKgwl?9O49UQB6p!=q2Du{;WiW1J(+XiLW5@ zY>j5`13HJO=;#E$m7g8>AuDk?|J7oA>N%B&KO-4eJpdtE>t=U*(|oJ@97tgPFj>}x zr&{I}co^{Sl1_aW%xc}!icKqS0=30lVNq!u&`cnD8aBVn!J*IUsDX}xo%x&IMxaF) z!W1J2bA$g7U!Vh$euNny$#V`>aQMzS#tgXn+wAfI<-tf()7KY3WUYI%s>(Mw_CLsN zTOE!EpyAeG$kYVLoSHoV-CaV2Lu~1Z5QE4Tm(sf1+(1LbMR)dJULCkjXA47VokGR* zyx8DtcN2^{n>MApKF;uWZz-AT8=mIvSs~n0O~zbZ4S4vb8FLu7&CEJ1sbuaU6Wbjl zoBRm=q>o9Ye(TXEK8WzHyXUo1J*468UK(;(M|al9^1n^nyROOn$EzxNj5iuY+_u_Y zd8ib)z7I*LqcZrBi)KQ!zthA(fW-2*PxYPAH8f0+dBsOQsj%~l4@BJ9DRH5N0Sn~+ z6o|(-lWE<(o0OW$8H+&;SP42WPyfTXFRu+ogm1J@d*te9M9a$@$j97|t=`+XzIStd8Pch3zi zl9H0bAO88{=!7jy1Q{DOr7%3!MAOx^n43Z-aKlzX<%2^{x*ywwu_l^ z2d+@+RhOjTiuq*wo^;Vuf_D=DfY<~4&fJJY2G)h5up$IbKdEsCetE|noKYN4b~znH zRwzB-M;($!v&b_LA{-9xM>Y?7e+&0v08IW}C9(^JhxL)bLD!yydU;{<)^d+hIkkrVHNQ0kT?S4g zZ-x9F707XJo`8BY`CwMuT7;aJBf*I4$Xd0?P%011c$vjn=oZ$}f*tre5_%fs^-Lr8 zlU)=h6{d2bm(~@=r&xY9+bHZQqA}uRG?QQG^l*R%~>PmKfrXhXo1)0 zn8F#kZSlT)OsIvSK?IaRp=AQ7N5&!MLg<`CR5_$%TAh;gCcd{7oEpl2a#MRML>AiuF;bH8Bx zMJ!_lYy>jj028`xbECjC=}smlo!QmWW52q{zOr+@2>@H^aB8bnR z%fPYW5zr~vIYHULpdL9-Pij#8(Ip37C@Tzt9o&Dtd!?)LH6=NOQaJ&=oy*978Rvx_ zw}+F&_I%LIB6s3*TKc#jnGg)5pk(0Bf4*uwMM#Go(Cb*}>CaQjXGq5&)H)67hvcRP zUg2oaVj-HCBGBJSPD*7*c)lk&9|38(wh4exji=_cWn16Qz85Pd3^eki^fw!Z8D zvKhmCZP`Z)rI%`XhBef?-DV1x_2uG1-?dMCZ9w%k{+v~r2NN<1`>N5{!;PDDGnIE? z*8=TA2q<*8zNu|CviK$~J>$z1f&fTPfF|&PR}|OdJ$!JC%q)L{15_+8M95dE6P(TV zkiu_+Yy}*CL%S!)Gh>6i$H*Rb(lI zbpz*dU8L=KSFVbdFuUIkIFklJiV@JC=bD(}lH`N+rAGzKlVG}Dfn^gb0Z84~5-LE~ zB?zbLN-gB-4hc(kK#x_OZlJG!K3+gOZg|)<>gm&$K)-y)*f=TRz4k(z-Tqsk>e@n^ z6Zm019-0gX``2Z#xOd7OglTYsR0u@BMWyu`&z?Q|)$>L^u(FYKxL*k*pu__Zigf+y z&HkFwy|;mC#;nGvI&pEk!pjH6B)P4@+m$3*gvX~|_x918Y>hcJ3^$g2baJy-ZG zMOvq{aYKWc`fv27GSl*i;_ImGJi5IPPTU0~g@OLgw*!ZTrVG&kdXB9oy2k*>1KsrM zybo^NLSJ9scI9U^19eMZpMGdjQbtA@4*PJR+aL+o9%m;fIoEy?X|}%2y1rB7oZl^D zDZ(PANyzzfr`GR2H&JOt*CNcStZf0vraZafOzUKnY|`0-O(zj0&F)K=Q@iHk0Lg9a z!|8HaddZ-pKkEYNcE&84vR<28rX?M1QA< z3=z3Ao}F!iekBQ-Gto+J5On1^$Pu#x$*?;o7)WM8FIDvuM2KWFFSZ>i<&vhoQh8BJm1z{gxA6zd=0AtccbER(7B&OTEF`&Yd{<4&m z0WKDtD*%r!?8~iwQ1M?Vj5=3HzXL1kr+UshK)@OVJOe;!u-J?c*8cKb^>$INrNG@( z01!bM84y%M^vXpYys$PJu>2pBHo*3+It^G08v*Iah=|UAlE%>8`^#sPAu#+fxA}j0 z=A?C4_)*m?_V&i+rb5^<&<6>Li4C?f{uh0pE*xO*)s4L_ig@!38V0FZDuUwm>mxw< z0-?NjIYBR31vlQOaw1dO!GVgY&yoC+lKKY+2l7F#_@OAeBzAUoW)>FyzbX5_DTo*w zvm{0&$X86`aNl}8tAO}4sP_Ut|J5bZTgzYX4w+5<)g{1cQP!0oNf_tv(M_P2jBp|h zJ~@+#rlX~O)y5sHHIee{A0P&>SXKpWi@`9!@xp&|=q8gb=x}d7*QV_SGY7{dfL&ge zVGa=?*u0FeOR%KV(#^s`bPk+wD8YY74&MUjIBxx{^$;&XRL9-_9MMr~(eMTR?QcVr zS4PwSe_)4ppZ&vFjnS9A%gycR%hil2uu`%Ao?2k_o=JWUC4o-`>#NkD+Z-@F;8wLt zBx46G*tcN9H+!vrW$Oa`PjujfUIvqIPj-EQw?k)OadB~i8c(R9tnXq@j~-ggVita& z#ASy-2&_s=raF$3Kput&%g789z*z*RmEnrd^#FL6yncN~SXj7g;}%cY?pr+RaDwz6 zq>A#xTuOid9UBw^H1NhgK2>;-B0~V(enn~1Hlhe%)xoG!f+AKD55Ca2fMXnk+bg3b z-6_)MfHJI31PW>vR@V9q@0~G!b08NT>`W9cVK{rul;Rj;6*U8g?cOs08G8tm;Y`Kg zwI6@hdFSERJ~NpE5pn%@fq}A8Fa6Ovi9z?nIBbJjV?*kO=-I}V_a1v_L0w;S))Z+!}Fr~%C zRm`VOm9R_Mn>LraLq2u)jBnn2j0Xm$VQ235Zv@C44Pp-Q;$0>M(hf#La4u{q=Tlq| zMbS1`GYj*@77c?NMnF$oV;MNdGP7u+t84AM^3w>JZyB~Xw+cDlQ~>D*Y>`QL>>FJr zyUqlmL2wAjud_`%WJ0g3SInaRPyHJ&ZXhnQ8w=ZCsosv^R`|&w?VegOUy%#^`YmAI zY=PLQp1t8WJ_0-BGE~aazdTy2BPk{2f;F*7(en-7_X^$I*w_j^aw)QTK(<}ISWrI( z+(}4fdZCLw&>8C+8s;=S)-K9els$XZ*|3Cg@!f!d@2i4y>}hiTNkA42NaT7wJg~1j zIY2+_)vqnRaE={q8C1}Cu+i1pjLYwdf#WK74AF0l!L>7x^NQn3Scnt0J9UhR2PbuA z;e#cw_|!N8xmQj&c9EV@&&|&MVH(=q-9_wUhbEAurq{QL8VsugRyc`M z-?IsxsZtIve3k~a;iG6E{EN>3CrK)S3*uYMTOMmLi8TuadY(COnqqK%V+TWODjofc z_EdE6gx*Y{x3{+)IFUkdG59_M9&_mE=^2{3%FC;ayapDK1*tddwIBBi%o+R&%2Cw9 zS{1(2dwb)F0`}7$5SRa9>IW;~sgR_kz7GC{QS$;uL~HT#qWdqR)QBUJasBuvegI$^JHmOX&VJRwjel)HalLn zm{spIV71VEPX}A*IUYE#4tuX}^Oj9P9o{_(4q8ORAu~U}8gS;woScFJuTAxfM4TXD zM+@yf{uMNsgNXXBL<$*c3a*uy*XyP+679cg;rWqjwbVU++#j4r>`RQ|kOnr5j_99V%SvzTzB& zA>1l4v%=1jK(F@}EQf~ZKj2uKPm{C${1u>4HCDh%N-R=zpcl>1L2e+6&tZT8 z3Fk$3cWj?-sDY?@VOK%WC}^yqsp-Yw?d9IL9SNKH5mo~h5$Z8~2BK*KO}LBi9eM_5 zII*v>&hJv&07OxsZWh2QXN~)7$;H+}12JBb zxW3dS_?%U!fp{&3xZ)AC4*=Y%(?Ma_b2jms8uu}03;!`+Md=t)dhlwm=E-7M(baeS z>({TV^Z9n{1AUi4WZu^$nUkBlkW#k0nL#RcxLP!KW*|`CYJYFf44i0sbrLU^nEW24 zoj(sBF(S$u&94JRV>z(*_Mo1HH%q`e2GM4;v?w=4w*%i(T<1LxAC4PL@n~KMdqInn zbACeOTRKoYU#}$-3m<`#_4zYtNqt+C|D9zKlF*+KEgS219twJkArWx|v`NXa{G=x^ zFEdv(P;Yo?7u!@|wYpev5UWVYXW`)~3&;IHkRP>b)FHffcNCT0G-jd$(-a6iD-csJ$-Wou*Do{)w$W!qa1&T@nRjGN)0YyZC j@*+UKmbbdME>J`X$WjA}>jK4;fF?+mOvzwqo1zB*%X1Y$ literal 0 HcmV?d00001 diff --git a/TEMA9/test.md b/TEMA9/test.md new file mode 100644 index 0000000..8e2c48f --- /dev/null +++ b/TEMA9/test.md @@ -0,0 +1,129 @@ +# Тест по Модулю 3 +Таболин Иван, А-01-23 +Вариант 10 +## Задание +1) Создайте модуль М1, содержащий две функции: + - функция 1: аргументы - два кортежа с целочисленными элементами, не обязательно одинаковой длины; в функции должен быть составлены два списка: SPS1 с элементами из двух входных кортежей, причем элементы SPS1 должны быть упорядочены по возрастанию величины, а также список SPS2 с элементами, равными 1 или 2, причем значение 1 берется в том случае, если соответствующий элемент в SPS1 взят из первого кортежа, а значение 2 - если из второго; + - функция 2: аргумент - числовой список; по этому списку в функции должны быть вычислены среднее, наименьшее и наибольшее значения, медиана и оценка стандартного отклонения, +2) Создайте еще один модуль М2, в котором должны выполняться операции: + - запрашивается и вводится имя бинарного файла с данными; проверяется наличие файла и при отсутствии - повторение запроса; + - из указанного файла считываются два кортежа: KRT1 и KRT2. + - применяется функция 1 к этим двум кортежам и отображаются полученные списки; + - применяется функция 2 к списку SPS1 и отображаются результаты расчета; + - в текстовый файл с именем Res22.txt записываются результаты расчета по функции 1 так, чтобы в каждой строке был один элемент из SPS1 и один элемент из SPS2, разделенные пробелом. +3) Создайте модуль М0 - главную программу, которая вызывает М2 и отображает в виде графика полученный из функции 1 список SPS1. +4) Подготовьте бинарный файл с двумя кортежами, содержащими, соответственно, 40 и 50 случайных целочисленных элементов из диапазона значений от 20 до 45. Проверьте работу программы с этими данными. +## Решение +Модуль 1 +```py +# Модуль 1 +import math + +def func1(t1, t2): + """Объединяет два кортежа и сортирует""" + sps1 = [] + sps2 = [] + for x in t1: + sps1.append(x) + sps2.append(1) + for x in t2: + sps1.append(x) + sps2.append(2) + spis3 = list(zip(sps1, sps2)) + spis3.sort(key=lambda x: x[0]) + sps1_sorted = [x[0] for x in spis3] + sps2_sorted = [x[1] for x in spis3] + return sps1_sorted, sps2_sorted + +def func2(spis): + """Вычисляет статистики списка""" + sred = sum(spis) / len(spis) + mini = min(spis) + maxi = max(spis) + spis_sorted = sorted(spis) + n = len(spis_sorted) + if n % 2 == 1: + med = spis_sorted[n // 2] + else: + med = (spis_sorted[n // 2 - 1] + spis_sorted[n // 2]) / 2 + + if len(spis) > 1: + kv_sum = sum((x - sred) ** 2 for x in spis) + std = math.sqrt(kv_sum / (len(spis) - 1)) + else: + std = 0 + + return sred, mini, maxi, med, std +``` +Модуль 2 +```py +# Модуль 2 +import pickle +import os +import Mod1 + +def read_file(): + while True: + file_name = input("Введите имя файла: ") + if os.path.exists(file_name): + break + print("Файл не найден! Попробуйте снова.") + with open(file_name, 'rb') as f: + KRT1, KRT2 = pickle.load(f) + sps1, sps2 = Mod1.func1(KRT1, KRT2) + print("SPS1:", sps1) + print("SPS2:", sps2) + sred, mini, maxi, med, std = Mod1.func2(sps1) + print('Статистики SPS1:') + print("Среднее:" ,sred) + print("Минимум:", mini) + print("Максимум:", maxi) + print("Медиана:", med) + print("Ст.отклонение:", std) + with open('Res22.txt', 'w') as f: + f.write("sps1 sps2\n") + for i in range(len(sps1)): + f.write(str(sps1[i])) + f.write(' ') + f.write(str(sps2[i])) + f.write('\n') + return sps1, sps2 +``` +Модуль 0 +```py +# Модуль 0 +import Mod2 +import matplotlib.pyplot as plt + +sps1, sps2 = Mod2.read_file() +plt.plot(sps1) +plt.title('График sps1') +plt.grid(True) +plt.show() +``` +Генерация входных данных +```py +import pickle +import random as rn +krt1=tuple(rn.randint(20,45) for _ in range(40)) +krt2=tuple(rn.randint(20,45) for _ in range(50)) +file=open('input.bin','wb') +pickle.dump((krt1,krt1),file) +file.close() +``` +Выполнение +```py +import Mod0 +Введите имя файла: input.txt +Файл не найден! Попробуйте снова. +Введите имя файла: input.bin +SPS1: [20, 20, 21, 21, 21, 21, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 32, 32, 32, 34, 34, 34, 34, 34, 34, 34, 34, 36, 36, 37, 37, 38, 38, 38, 38, 38, 38, 38, 38, 39, 39, 40, 40, 42, 42, 42, 42, 43, 43, 43, 43, 44, 44, 44, 44, 45, 45, 45, 45] +SPS2: [1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2] +Статистики SPS1: +Среднее: 33.375 +Минимум: 20 +Максимум: 45 +Медиана: 33.0 +Ст.отклонение: 7.171277096157519 +``` +![График sps1](Ris2.png)