From 7df5fb8d1668df31672f2cafcfbd4f323cf9839f Mon Sep 17 00:00:00 2001 From: SaraikinaVK Date: Mon, 8 Dec 2025 15:41:22 +0300 Subject: [PATCH] test --- TEMA9/Figure_1.png | Bin 0 -> 15396 bytes TEMA9/M0.py | 43 +++++++ TEMA9/M1.py | 37 ++++++ TEMA9/M2.py | 107 ++++++++++++++++ TEMA9/Res3737.bin | Bin 0 -> 40 bytes TEMA9/histogram.png | Bin 0 -> 15396 bytes TEMA9/test.md | 300 ++++++++++++++++++++++++++++++++++++++++++++ TEMA9/test1.txt | 2 + TEMA9/test2.txt | 1 + 9 files changed, 490 insertions(+) create mode 100644 TEMA9/Figure_1.png create mode 100644 TEMA9/M0.py create mode 100644 TEMA9/M1.py create mode 100644 TEMA9/M2.py create mode 100644 TEMA9/Res3737.bin create mode 100644 TEMA9/histogram.png create mode 100644 TEMA9/test.md create mode 100644 TEMA9/test1.txt create mode 100644 TEMA9/test2.txt diff --git a/TEMA9/Figure_1.png b/TEMA9/Figure_1.png new file mode 100644 index 0000000000000000000000000000000000000000..23e23dea79b99a6ad79f4556eb4abbcb09aca987 GIT binary patch literal 15396 zcmeHuc{r5q+dpmEq#}yYE(yt2m>E4PBoxX%ic~{PLKwzqLxi3@mh9Qa5<}K7^u$ov zXYA_}+4prYnD@MUp6C00fA9PL^ZWgd_c-3;c)x!XbI@q&SC)I>K|xY>b>3qDA>czATMF+(rfsUz`E>l_T#Fs5& z(e_=1M)n^Eeha&Kw=U`c93ys-*lRQ0Q=W?X-H$tm+jH(YO?I7EXuI|7{{8#c{^fw~+ntjayF=i8b{qb2aD2v&x@4a_}oJUf?>!dN=Lt>^w7DEv+aSsqA9^KBrEJ zHtXc(sEb*1@>s662;|(jqH$TTnJen!|!}5N7E@-vx3vn_|l-&%R+Vro7xn6J!I>Y#@;WndfC|LrN={! z;ztz3ORyd@G|7%P8}2y5yP1uD9Ezc#8LaUf-94VnHmjh*fl$*v$5@t`L$rW}hfHSi zWRazt;9{)E+|wOWC!Y?NvDc>dtGGV&XI*`Frd!v>u$|($kUrd!VOkR|lW>Dr$hJ0R%u+2PRvGiHMuQORm#PyFSv@LI*?NU04zS5E6PHk7Rv|ZT zif0DL*qVsywV`Lf9Q9u~(kyFtvXC`dY}Fs2Xz$R=CF=38F*EnDnB7*5dUl8*7T2NC z5ZWJvK}&u7@uqMzEghY!j#*d@Q{?0PWevTiJ0f>J{7Ll4$PcMcMHgq3o0>(Q)S6SQs1d-|s* z8?|gR@@|e$nLV~9o(yfpeL>6pqU=JPaS@S%rK0E0Cst_|6c0w&Mucid$fe5NZ-}E4 z#xh!SPooOXI}YX++7Wsd78a6_NY}2OESan8TVL$3rO@AKNf}3+cf8B6hWkGnNw-+D zaae9PwCGNYF8AS)7WSC_UAuY;CRPs?;1!ra+w>tB;>!HZdTSry$0sui`}{;#JgS4j zVq6>{oNhN}a*4RcU9x)&i($D(cll#-S#7;EEX$;V9zyyE0bc4ss%>j#QnyPl6=zJ) z=`M1XpiY0@pGF(8$EE4-G{@ra-a>wJxFy%oR2|g9T=3{zaqn7Y_%@U# zY8rRvg5U`>MJ~7O0X+fazU zsiz`UDgpKyYK_%;c*5w2?$Nz^6Lj$jy{xg!;z~b>%r+lUqf}6^eees&mQj01Mk`f z*2eVXwADWAw_UxB;@+dnqLbgT>^ArDonUy*Kw#q>&}-d9W;bU3j1}&v+V*JiTRM>n zlIznxm>T9o7u-4a<4!vPDq-Q2w4=swNb|8mR2)I?Q~+d z{%f69&3Z+<-Nq0N{?>Nlt!Jpa=C1sXL6P|u8CxRxUUd?<84G$D`m6{oXS`IN?B`aE6Snrd@aIFXuOXu%~Rf z7VlT?3sugJ=J|*CwK|Hr%8T~gdZ&oz1x6jJyW_T>+5Oq&ijeW2V?sE|z-KEQ+>gF6*BJua?RxP0edQ+Z)c4zQsVhRk) zOz4S39BB?}V8(s?+}H1eA)_v%spQJ*>cRsJPdGe|1y^uhiJ34IRx_VV#tmH!GZFM z4t*8zE*~Xvl}tX5YS~tDCwW@~`s(%th#&jLXHh5K+u90v$sIP^{tdU}F?YM&rN?b( z17@g6D2DJyHGTKIlLyPO?mRjCeFmhB!B(vVZu)aPF6@Py&vWwExo?#668g^d)Pgdz zbh&cYYG#h+t?`U-x z_G&UQFE|okdOn6Qnra!oRMr0J;Y41mLbNUmLneM;+^!EbzWdhFSV^U$#7>*@VUJpI z-o8S8)zhLK;|Yl(%T7y$aJ{u&o>@*_^#JFvBQB$I=?~QZ(h&7R|xsn4t%a4Qx ziP4O);JfK~&#k#l{jmxs64la@I+GYsGc0xv;Cpyu?^f!v{=kQUNQ4H?lx?{EOgxFz*|*zr z&T+B*p1|)Cn^T(7-x5sqHLjHB456?~>f9T3%SRXwXXM09I(iE|!tq7pMc0-cQLxT^?_8@((`z#7TSC-Vrfu=Q&x} zA9&;>S!5zV@nNJ*^oe+_sx7+IuL9;y*R#JLSvV!_n~QN3OtaX<9GP~-S&R<`4;;sl zX5>DazL`{RMx(--BF#mt8@j~FQF^)fwyfJT8F*s)$Qj#IE@fdIirbX4ph9fROSyNZ z9Zd8>7kMapG9iO|E6#`{81S0VLxP@-zd#$so(mpS(I{`#RT@cL`es>t}Fni)+kY(JEmVvqs0aPfY~_V>YyYzJjX8`8sXK zihCuAF!)aEyRM$An%3ccz1AmCc5*RR_q(*6ibhpk&ut&!h|J&91K-6Fts)@ge?7_wWk^^3)0${ z1wP`Tq+O!M;WdAYRZIUd)byu~+SH~Ix5S}n!WTvj({A%TUl(J28M8hUh4?+4wMJC=BI8 zoN*>Keg7FOeM0{UlVDx_6D|F5ZdmxL(w6ZtN|^{0?By^0MH@Ic{3%Wq6XN>G6@UEx zEJ0t4Sa5!KgK{`uozKn#dJ}iy&)@D>v^P6l(DkUR3tHkLNr ztqH&0)bKFw+jZvXH5cb8jrUWdJ--_DHdAXdDa%<20Q&yh;ht@cuIFrUN_x7jg9#M< zwC>YzQ~v8=m#7<0;cMkvUzM#*;I)T}oo3F$7&R$<&D@ftT3U0q+MxIVoaym&)4bq( zmt#E*88tu+G7s9a_M-?+r(tgFur7l&Z)vFyW`BI8^?r05;wRg?7I5) zY|^=;?w!||G-H$AULw_O;nvsD9))mrV-%GI=Uo>$g_hUVwsIDZ2 zxY({hvCs@Yq3stNyWk(b(nC@_)Z{ncf4hOc(Q-91faY_0wDepgYdvbXI|rRiRg@T2 ziY!Xh^QbdWmuy{wOfKJS>&k<_n$pin%`<@`SN(Eugw)9 z+D&8YkUkeTH8r&xou9d2bdcJ!U&-lyl;_GwHhY~VeT`@3^|KAr*}{ky z>v2ScIy2k$M|E$|ajxbT_vV$%N#U>aEnxc?4*SHPXqCxO_#(8PSFR5gl6^B zCF3VW(xu6zYnQJ|gv6`&a>_HY8P@1~O~l*UZma;yLYtuDHd9m^q9HRddH!zdlBC&0 zZ-29=hsm5@Q=wef+6w`!?}cYuZU8Xn;5fa3lUjMubLqPSv)iQ#K=(oRQWeIsp!>0Z zU9@r)(yL4)L+EF1-RVG)VK3K{{LZXH!Ks4PWjR-?7zA0rYzYHb%F|M%$QWYXtn(t_ zldAHWihnUE|31(CZ=;e3+{z<~!SR`yQoGLocx|J&8F;cw$KqO3vaPBrHw&2UMyhOH zB;>JAVydc?3rJ%IxKUZEXgGejm12<>3DnysvAAk62Qh<|3tYl{08_OdKx8_6-X`WT z?0l~-$~fxV3Edd8)o7q&9MY2YQVn)CQv7|3PF|8+j-w_;*t%rsGi{ntHj7k~YRKoM z(_>dJl69hOX8&9tOVkL@9fmBXYo2Iq3uFh!fe^#WavqG?P6vzK3F<+C*Ap)1ne?=^ z?U%h<<7*Rf*80l(+|LdB+a%)ewX*Fmri6&@B`ViTp>OG5RqqzKXU=M_di72%{+`;< zu&LElv&o?2x~}jpY}yd8O&@>SwJ@E`})zCAduW$UOYxQ(C_D1=-CZN8?&w`-l)y+P>wluZ#iZ zC3{cj)dATPb?1koEKj-*)kT|jC6|_#o~xDMexgOTImI&}&cjbZjSN+Ai8T=&ZkDLq zuE4N+)TOYVO04xhZ0;aZOrV@v5h=;NpPScF*oi8#JSWxr0le$XQh!i^QGTx{i)NFa z!LKgtY>@sCItbN?-3_)Hv1pX zCXQI7Z~te1@xN`|{fm}vu&r?$iWWffi=3PsANh8+akS>s&@rG-_X9vl* znlZE>&aNfEg%ltO6|Rh?TXp2(XxEteHBskt&V^{lsC-;fcA4zzGtdTMVRUpfUh2qb zJYU|AXN#dWncaCh-RU=&DebTO+$X=!uM3tf)7&V13FWI?=Y>bS6<-f%uNCHv2(c!Q=MQIbX-O4f-M zc@ZE+!sT#!t205QSJ2IgO_s7I71UO~{Cd=?!gr4(p#j?T zy&JdeJbB`6dh-0c`Bg1S1uI=$Zayu@gmw7Wl@o&ZT6YYOmbMA8Cu_nNzZKp$daP43 zZfN><%4`{%s(V!x<8ew*A(A)8X8g}|edk-QuM}Q^U)T<)>-RRMMJ`j==ASuai}P5E z>E*G_-(V^4!{mUAnG+O-2gD0Z!^uZ*C!esyj3DhZ?e^kHWQf;W2%_NBs_T!NqT3 zk#~c(BGm`Jj@ts`@Mv|WN~i~_&nJ%qec0clyfUqRJ`Q%XDqZ@Se#Y{ z;ptTKPB`nVwXgdNGsjx_nJUb>45C;iTPshMIL;3@9xVkTwF*+5Vd~HKIgA?K_r^P0 znmSL<2ql+i9zYel;i^{Mg^NeI4Zh9p4^*yv zR4plhP;lAf*;OL`AS_j76!e&+B53=yI4AX&7C-~8lOKor3d+{(RMzGhv=7w94v9rz zc`Y%BLaL+yXCdlOqiVyYUjr$Hjo;M9%LcW^?= z1@A(`1{ehahz8rapIXBkZ5aPUvKt7SCxGy_lcJ=j`-4JY@Bu+BcPe)?w-Z3|u$=7r zn4$CeJRI9Vc#(*G1iyrf!c$z`3wQbClMR!Q_--7Ip20xu-GNba7)c7tH;D<2_L%(| zVgsYV@pdmnB`7_<%{NUmnr9)w%OafKKVv`YcVa`_g^W<1{bvrrQnvW#ka$C$Be7Y% zrjokVTX;mw{`w}k;>H(Fu7kUM4nESTi9spngMee%K2gvsqAucg=iuYE+yCy)zDEOn z3wk}3cd1N&3YWLNnf)G+yF=4;bsFSTi9dtjc$}ezxw*NFDa)ZsSU?xGV1Ud&BA%uI zY&777xA+q7g}n`-92lU`kwWL$0fRgU;Y^tRovR=COtlgyQ`+TS)u60kZu~WhrziJ4 zLR#MBNPCl=_%cvh{J-|az`y`8ryLI|-@kiIWZ6c6Y~=vMe!0NDyASkFKXR<6($6SF zw4#3w3)c1fi#F>pb3ZoO3vJhtYuQ(*#)FcRDw+QL&rzjQEXu;6qn=^InF=wkeJ}gi zu&iG}W;0Af7Ra4%#~k*3pz)hl*cEj1BWfoSm`Hn^)y7tl>;zK$pTqM7+EQNV(oe3F zYGkS|wq}|`23k@dhsxvte|GcFD_&8>-wPJgU5{%pFXF3Gm5#*#Z|08--`3%MSrvP= z_=0~Y{)WU^JQ7oPuJ90)i|6W;O{1hku4Kb6RWtz$v#b1wMc}1ZPhCDV5;v=rTqX}j zKKP*d9#p25U*N0lyK<1g0;_<;1L){!4)tMXkG@{PAbrIF*$QfOG*nG(HVM{5AG3^2 ze2`PC&{%-)UG%&UXW00{mFv#+zv{zBd?ltPh5A7zSDr*3C}ZpJ#5ianHd8+E>6Xkb z(f<+71d0p-mLTv>A|f#q=U3(~-SRPzSZov_5P#yna41E}yOf6G3W0X%hc)dFx_uQ; z38IW-?exbCcpsxp=KKSd20fAmUG%=yfiMf~d?IGPK`k3%z*Q3&ncuvy{U@{|3|1$4 z%Se%7_5Tg+mJvZs_|cccKQ&hq+YI?$VvG9UO%}+#N7HcMeiP58Z&$OrMe&U>XBY2z zchgg2enO>q$xB;C*x4e=dBRXs)_d2>81Coh z8ap8i2?`3vN6>xfbJEnkQxuWLhIF*egwMs%$oo;|(sAi5OZ;lFtW}3ZfBfzC^D;RW zcK>(^N|~~(i2H2n{k8`>HEDl0d*X~EMJ4U~A$>?azLAj(x!-VM2B)n`xsC|RT}}*b z8Q@0|7sjAFb!BCxPmUtDNh&%mRVA0KVpOu27|Safg;0kxA{irpqs`2DQo@)G^UvOG z;Xgp_;GUXZ_B!)tI}38H#7(2yFKiT{a(d}P$$D1aL1Gs7(vV_!aK~DJV$aD?=0v9= zVSf1f#2{3LX_*6zYgXWdD6t$|%*gLJwS`--$*BnR?Y}!Kk$J&`NCEuRr_S>)O!U9m zvotRVbs>B|+QW6Hh{`!YV|_(qndy&%A)zd7f-e0ofH%aGR0;M0(}`p_JiTpnRr$YR0uQ>0yE|8RRTr{`9z;Pne zc@&#bq+VMJ%O232fM@i}VW4!iOARwXPuNpt$iRQMVT(`}`xy~lrQy(=JG~N=Pivm7 ztgH-&4$Xk^o4CGZ(mwCXPuM-E;&qp!zhtbw9`1B|Ji{4jsRX?ESO*1tcc<`Pl#r5o zFXWMyv$3+HrCCMu=|MQ#Oc6CfrK-JuQ#*9B;l-gOt_pYptIyB3-C(11e!j_nLTbJs zouuVU5>KMobcvbu(LLPM(S#OHjl|NImF)`~ii)HcD8}|SBf004TZ`l4< z8KmS0%*ty{)UbT=e*X2Djb+@0|ulZtI4SIGPu?1ne|sA*R@8E#GBUp zx+JUrmew7<>tc7h)i+c2OL`R3>f3XN#^cnj2G19$N;V%S^#$4bxukEA{qeR)XYz3} z?<$ht&EU6OKQPO zXw{T*9UzgglH7+GrgD1shFcf99MY98aPM~nJ@3cH<)W2>GC#A#fX%>sWIUGL-5@|p zEkI4=U_%MDy?|Pc9(_HYkeOMjK)H9!&h8*|Hm`&frJ%D(>yFx`*4<1!nvJm2mWYsb zjJ$wah$25kyH5X+mj8@Re}+{HHL*z@?)vChvOE|m8A_h3KAm$lvLF>v(P|~LEA~!w z)CC?Rrrcyb%R8#~e+arqzgiPp9b*K7E1F*eDL?}k*KR;y?*1Y(PM%;RxM3#*sl)#= z4gaK~+EWMzQZL`;oM&CN96&RhFtmaWXX|Z_Sr>HJKr2;-Wy$9hhW;z-?ok`$X^H-vPy_PnB`1SmcUa5(Y*J|%{BT7et zRnK8lh!Z9Vy^>O77&i&-wOGWWD3!?o*w==T_0;Gw#2i$K(5^-{sY!nIOTf~qfay=i z+2VN-dqkJy2ap*Z3eaiU(-Y~v5%|!jgn(SI<)L~!=CqxsZf$Z}+TFX-QqYHB3W?0Z zBO;{LnZ9T8#9x7(u%!)1mrVaMlavR{2@O!mKJc@Z^#Q&`2#$1QkYFj(zHcVYMfUOu zY3POPK3N0e=^Ash8~|4%mu}~N7zew#S%ea+L$k&$%d5bgTW{IV*rhyvZPoRp*7wz~ zVzH;O>A-rVE;-Cj;7Ogf4S~+cQn3Pl!r}ML0(^Ox{#UYoV+eCP+EX{?-u|n)i18{1 z`K)spxFP$%>Pr}h5S#%wDh=t2mqrcC(pD$Tn27HW@lk`{q-zh7BpgUMW2FjdQOe}V z?0n?Rk6_&x{5JTap%6l^A7(xf0a}PrYl$9Kn)pLlTd78{p<{l8p#?ITR5$eUlA)Bc z^_3*VqP)ZggQ@XKM{8-a$G%J!I982UVBnQ{tBuc%r2heAvz-zKm~8sl>eKp43r+fw zq1sXBvJEUOELPU0NET6Sz^~?A_TU}WZv6-=Q45H-q*knZtyY7MGrk(J=9t`mv9GB_ zxRv>#3<#?vgk_nB$L43wfp<8?9j0J$ygdm>fPAMJnn1ea<}py*jJoV$#3s7dInOK$$~fe z`z_$R@QwZ<-rX4=zMZ0l4n5h(#jiF!C`_*qGi4s*cGIN}q^hHcJju7g{)ZjK-D?E; zOzV=greNN+(8u33#+blM8Aj=n7+H(lid|VFN+T;k)}JEWxgT3pU=6;>#xfG=IDV*z zd^?%z;6qiJ59E9GF{4yp{=`Wh%<99L^RZ|{$f8tBjYS>h2|kb#p05;Gbu*?%5iZ>m zygUNb(h>Lb0UerUj$mTnn1>g`C4L@n&oM1gz&#%XYK8r-m-DpeCa3Tquu)WG-7fDV zv6&?Q!4ug8}9)C%`W@8-(m*KU%J$2b?vLJ=iVw2_XpV$+8ta(q^BDE6bCn6 z3|jB(UFQ!{nbnwyj#3DZ1@8qd(>irMH^_iJA9=!VHKx~At?E!*xsL|w_=r#YhiWMy zZ~@cMreKdZ%$CP2#EIedhUC^?i;x=zv()wMpwMmA9h6DU?Z=qCBvPY)O#V6c>JUcy z#0^c%$+!d!ls~S&NyL5p`usTElYUPpqT~_CsNc*k3{15nVIO{4Vxb2M=HE+RS6Rb! zG@XfG(a{#VjW~$GsLkc~a+$vA{s8xYDr--}ceTU=Z}jo5qvE3AIhr{h;w_5!iD@;- zsa0ndekc?GvldCC3XiP=6S|MrGAUzur0O%s5BgVk7YxO?R|4gJm$<&^bWY7#TCdx^ zK(OzIC6(d$G#zpK?~FE|vhdL@owUX|eT6VFAD?vi{zBlCvvMm+`?rwGGl|^ZBaWn` zkejDM$vyMH8>z2#rcMG6PhWLcpl%r{{?w?~;X>3+*q2!{`>hSAB+Iph)*y@Z*)Uq> z-LjQt3VQHp&LN7n(vd14n1@&$4KiDYvpDEG$s<0W5q$vM$+nHQG2Vxh)Y4FMHL{YK zk&7>Me7F)|?w%5qLfjb$!`0Q)`8i(GXZi|ei+$PJVzM>xXi|%ky2YZ$M(`_pe!YC= zwn4uB=Em7EN7Jp1P+s*Z9n1mcG&h;sZZL+l0xeOc{iwuwG

GbG}<5Qudf8c(Ja2hV+)j4+ESCM$uH{*ESASQ@VB#t?K!RfsM{eWFipXPfVS&14 zA``)bpONqnEQ?-bVb+)Wt-icIOe2uMRSWh}b7jaM6xj|Pw zxbfr1MRO)`&yBZt;x-xR^-TYUE@p^pw-f+zCgAf%yFhac$+~NO3vG9TwVS9%Qy1lC zU+1J}7NzCFE{f11=dqgyLx03Q+jVN!v&OFDVP<-ujD=k3E_RX50Inqo8rDpkiHVcW zq8LvP9C*DXxkXe8Q&?%~nI@xdNMdv8W|CGh*$zhxo@f4(rXi3qrdlMo;Fxz#$z z$EJkAxA#oCs$f5kIg|*sa>aQuk_yZbmvEXMVhRA?P^eHywvSrb}oET;5m>DLpHd_D($^tTc{ zV|%MaNgfPh31sx7jXWw@P0&c_f$*h;WVxA0pTH!kHT{WzP0&v@G`2fHAO8Qcf9uq^ zY46I-_pp>2bMDn6MwFdG3a34xJ8%`|hf-lu@% z({W%Ww1@D}H@1P1&I&ASCpWN>jX*%A3q&CH%4&b`oq;`~@3q=4oDv2c|L4Hz@Besy zv{^!-$F;u@CKf%9#(FLffQQf@*#~qkHZ!(P7b^CM65{0dw{A6eF=u?p-E$;>Zx{l? z!B~knC>v{>sI=iz-(^)UuT!T&uFQaXNJEUHZHU^i^cVdXp=aQ z?*#xxCO7m}!G;C1O+%pkon2p`kZ4HS&HWCEloeio!f)siC|kKE>lpSNM&{0!*RF_w z3FXS6?Y0kbyo$q%76RMqZoDRh>Ej=PtYDcCpx}qpnoGJXPdlLY{@m~*a}~XC5kdHf zPoxUjkJC3Rf+AFaA!X2=WoSW^M>eq_N_>A#?Aim56-KNSfuT?FFj;p<3fQ84(BY!L zHOSb$u;+j}Ow~QQ1uyZAK(nzuSFQRe=FO@=GJyF%*=!NGZ%{N`l{R zQ}o(mL7ANctErj_y$uai&Hdcm+_bEvN7Fhjpw3xtWg)(R!G7`?3|In;tV3>?sMJA| z+HIM#ny49UViq&WELTt}S?cr8AXKrKQ$O`!%<6X@8TZBUAY&O0qt&;^c5$Q~nwX0w zlm$0!L|jLRRLeN#kSd@w;nJg$MOHOeK)QDDFPb?uUXlSYWO<(jB=tTpXr7YNW$PAb zmbU=og5CLq1k`cFB1?yt?hHNX{x>n}3auqB#gJKNrptL0qe)=Q^dq(pg*;_KD|!Hy zpJk(auUVLsIi!$GUqq610ILt*gyw{qRe(JI$3Tv(b9)*%4+Rq&Bd0K>O?q1Lo0lG4 zlhUnNMErn=1p0hVP6hQ5)~9Lr5aO ze&?IZoQbz$Px#tub;P~?g|K~=97C{)LbQ?KK28o%*l8K}6ft-mVn3 zMaHhmeeZ(F<%MXe{sl!rntEhsndRffe8du}t+v8=$dnrw=D4p3i(&hf@?!l$9TtwP z7Mk>Z0Fj^oj2x#uoZtK_A&*frhFSWZ$M4;^_%K;yB;PxR6fSq5YnxcqwcO*}=DO5H zL=- 0: + t = "вправо" + else: + t = "влево" + + print(f"тип: {t}") + + if mx != 0: + cv = sx / mx * 100 + print(f"CV = {cv:.1f}%") + + print("\n" + "=" * 40) + print("КОНЕЦ") + print("=" * 40) + +if __name__ == "__main__": + main() diff --git a/TEMA9/M1.py b/TEMA9/M1.py new file mode 100644 index 0000000..b24abaf --- /dev/null +++ b/TEMA9/M1.py @@ -0,0 +1,37 @@ + +import math as m + +def f1(d): + "Функция 1: среднее, дисперсия, откл, медиана" + if not d: + return 0, 0, 0, 0 + + n = len(d) + mx = sum(d) / n + + v = sum((x - mx) ** 2 for x in d) / (n - 1) if n > 1 else 0 + sx = m.sqrt(v) if v > 0 else 0 + + sd = sorted(d) + if n % 2 == 1: + med = sd[n // 2] + else: + med = (sd[n // 2 - 1] + sd[n // 2]) / 2 + + return mx, v, sx, med + +def f2(d): + """Функция 2: коэффициент асимметрии""" + if not d: + return 0 + + mx, _, sx, _ = f1(d) + + if sx == 0: + return 0 + + n = len(d) + sc = sum((x - mx) ** 3 for x in d) + ma = sc / ((n - 1) * (sx ** 3)) if n > 1 else 0 + + return ma diff --git a/TEMA9/M2.py b/TEMA9/M2.py new file mode 100644 index 0000000..99cf04f --- /dev/null +++ b/TEMA9/M2.py @@ -0,0 +1,107 @@ +import os +import struct +import math +import matplotlib.pyplot as plt +import M1 + + +def read_file(): + "Чтение файла с выборкой" + while True: + filename = input("Введите имя файла: ").strip() + if not filename.endswith('.txt'): + filename += '.txt' + + if os.path.exists(filename): + try: + with open(filename, 'r', encoding='utf-8') as file: + content = file.read() + numbers = [] + for part in content.split(): + cleaned = part.strip(',;:') + try: + numbers.append(float(cleaned)) + except ValueError: + continue + + if numbers: + print(f"Прочитано {len(numbers)} чисел из файла {filename}") + return numbers + else: + print("Файл не содержит чисел") + except Exception as e: + print(f"Ошибка при чтении файла: {e}") + else: + print(f"Файл {filename} не найден") + + +def create_histogram(data): + "Создание и отображение гистограммы" + if not data: + return + + # Определяем количество интервалов + num_bins = min(15, int(math.sqrt(len(data)))) + + plt.figure(figsize=(10, 6)) + plt.hist(data, bins=num_bins, edgecolor='black', alpha=0.7) + plt.title('Гистограмма выборки') + plt.xlabel('Значения') + plt.ylabel('Частота') + plt.grid(True, alpha=0.3) + + + plt.savefig('histogram.png') + print("Гистограмма сохранена") + + + plt.show() + + +def save_to_binary(stats, asymmetry): + "Сохранение результатов в бинарный файл" + try: + with open('Res3737.bin', 'wb') as file: + # Записываем все 5 значений + for value in [stats[0], stats[1], stats[2], stats[3], asymmetry]: + file.write(struct.pack('d', value)) + print("Результаты сохранены в файл 'Res3737.bin'") + except Exception as e: + print(f"Ошибка при сохранении в файл: {e}") + + +def main(): + "Основная функция модуля M2" + + sample = read_file() + if not sample: + print("Не удалось получить выборку. Программа завершена.") + return + + print(f"\nХарактеристики выборки:") + print(f"Размер выборки: {len(sample)}") + print(f"Минимальное значение: {min(sample):.4f}") + print(f"Максимальное значение: {max(sample):.4f}") + + # Расчет статистик + mean, variance, std_dev, median = M1.f1(sample) + asymmetry_coeff = M1.f2(sample) + + print(f"\nРезультаты расчетов:") + print(f"Математическое ожидание: {mean:.4f}") + print(f"Дисперсия: {variance:.4f}") + print(f"Стандартное отклонение: {std_dev:.4f}") + print(f"Медиана: {median:.4f}") + print(f"Коэффициент асимметрии: {asymmetry_coeff:.4f}") + + + create_histogram(sample) + + + save_to_binary((mean, variance, std_dev, median), asymmetry_coeff) + + return sample, mean, variance, std_dev, median, asymmetry_coeff + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/TEMA9/Res3737.bin b/TEMA9/Res3737.bin new file mode 100644 index 0000000000000000000000000000000000000000..5eeb03abad153cdee6a2d64908c36ed81dde3c15 GIT binary patch literal 40 qcmWd>1cHf?4vS5rfXLjz%s*&CMu@Nj0|+!kI(Rm@@1Cr+&mI8Pb_;O; literal 0 HcmV?d00001 diff --git a/TEMA9/histogram.png b/TEMA9/histogram.png new file mode 100644 index 0000000000000000000000000000000000000000..23e23dea79b99a6ad79f4556eb4abbcb09aca987 GIT binary patch literal 15396 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 1 else 0 + sx = m.sqrt(v) if v > 0 else 0 + + sd = sorted(d) + if n % 2 == 1: + med = sd[n // 2] + else: + med = (sd[n // 2 - 1] + sd[n // 2]) / 2 + + return mx, v, sx, med + +def f2(d): + """Функция 2: коэффициент асимметрии""" + if not d: + return 0 + + mx, _, sx, _ = f1(d) + + if sx == 0: + return 0 + + n = len(d) + sc = sum((x - mx) ** 3 for x in d) + ma = sc / ((n - 1) * (sx ** 3)) if n > 1 else 0 + + return ma + +``` +## модуль 2 +```py +import os +import struct +import math +import matplotlib.pyplot as plt +import M1 + + +def read_file(): + "Чтение файла с выборкой" + while True: + filename = input("Введите имя файла: ").strip() + if not filename.endswith('.txt'): + filename += '.txt' + + if os.path.exists(filename): + try: + with open(filename, 'r', encoding='utf-8') as file: + content = file.read() + numbers = [] + for part in content.split(): + cleaned = part.strip(',;:') + try: + numbers.append(float(cleaned)) + except ValueError: + continue + + if numbers: + print(f"Прочитано {len(numbers)} чисел из файла {filename}") + return numbers + else: + print("Файл не содержит чисел") + except Exception as e: + print(f"Ошибка при чтении файла: {e}") + else: + print(f"Файл {filename} не найден") + + +def create_histogram(data): + "Создание и отображение гистограммы" + if not data: + return + + # Определяем количество интервалов + num_bins = min(15, int(math.sqrt(len(data)))) + + plt.figure(figsize=(10, 6)) + plt.hist(data, bins=num_bins, edgecolor='black', alpha=0.7) + plt.title('Гистограмма выборки') + plt.xlabel('Значения') + plt.ylabel('Частота') + plt.grid(True, alpha=0.3) + + + plt.savefig('histogram.png') + print("Гистограмма сохранена в файл ") + + + plt.show() + + +def save_to_binary(stats, asymmetry): + "Сохранение результатов в бинарный файл" + try: + with open('Res3737.bin', 'wb') as file: + # Записываем все 5 значений + for value in [stats[0], stats[1], stats[2], stats[3], asymmetry]: + file.write(struct.pack('d', value)) + print("Результаты сохранены в файл 'Res3737.bin'") + except Exception as e: + print(f"Ошибка при сохранении в файл: {e}") + + +def main(): + "Основная функция модуля M2" + + sample = read_file() + if not sample: + print("Не удалось получить выборку. Программа завершена.") + return + + print(f"\nХарактеристики выборки:") + print(f"Размер выборки: {len(sample)}") + print(f"Минимальное значение: {min(sample):.4f}") + print(f"Максимальное значение: {max(sample):.4f}") + + # Расчет статистик + mean, variance, std_dev, median = M1.f1(sample) + asymmetry_coeff = M1.f2(sample) + + print(f"\nРезультаты расчетов:") + print(f"Математическое ожидание: {mean:.4f}") + print(f"Дисперсия: {variance:.4f}") + print(f"Стандартное отклонение: {std_dev:.4f}") + print(f"Медиана: {median:.4f}") + print(f"Коэффициент асимметрии: {asymmetry_coeff:.4f}") + + + create_histogram(sample) + + + save_to_binary((mean, variance, std_dev, median), asymmetry_coeff) + + return sample, mean, variance, std_dev, median, asymmetry_coeff + + +if __name__ == "__main__": + main() +``` +## основной модуль +```py +import M2 + +def main(): + "Главная программа" + print("=" * 40) + print("АНАЛИЗ ВЫБОРКИ") + print("=" * 40) + + r = M2.main() + + if r: + d, mx, v, sx, med, ma = r + + print("\n" + "-" * 40) + print("РЕЗУЛЬТАТЫ:") + print(f"n = {len(d)}") + print(f"min = {min(d):.4f}") + print(f"max = {max(d):.4f}") + print(f"mx = {mx:.4f}") + print(f"v = {v:.4f}") + print(f"sx = {sx:.4f}") + print(f"med = {med:.4f}") + print(f"ma = {ma:.4f}") + + if abs(ma) < 0.5: + t = "~симм" + elif ma > 0: + t = "вправо" + else: + t = "влево" + + print(f"тип: {t}") + + if mx != 0: + cv = sx / mx * 100 + print(f"CV = {cv:.1f}%") + + print("\n" + "=" * 40) + print("КОНЕЦ") + print("=" * 40) + +if __name__ == "__main__": + main() + +``` +## Вывод для test1 +```py +C:\Users\Yarik\PycharmProjects\PythonProject1\.venv\Scripts\python.exe C:\Users\Yarik\Desktop\labi\python-labs\TEMA9\M0.py +======================================== +АНАЛИЗ ВЫБОРКИ +======================================== +Введите имя файла: test1 +Прочитано 10 чисел из файла test1.txt + +Характеристики выборки: +Размер выборки: 10 +Минимальное значение: 12.5000 +Максимальное значение: 17.4000 + +Результаты расчетов: +Математическое ожидание: 14.5900 +Дисперсия: 2.4766 +Стандартное отклонение: 1.5737 +Медиана: 14.5000 +Коэффициент асимметрии: 0.2955 +Гистограмма сохранена в файл + +``` +![](histogram.png) +## Вывод для test2 +```py +C:\Users\Yarik\PycharmProjects\PythonProject1\.venv\Scripts\python.exe C:\Users\Yarik\Desktop\labi\python-labs\TEMA9\M0.py +======================================== +АНАЛИЗ ВЫБОРКИ +======================================== +Введите имя файла: test2 +Прочитано 15 чисел из файла test2.txt + +Характеристики выборки: +Размер выборки: 15 +Минимальное значение: 95.0000 +Максимальное значение: 110.0000 + +Результаты расчетов: +Математическое ожидание: 102.2667 +Дисперсия: 23.3524 +Стандартное отклонение: 4.8324 +Медиана: 102.0000 +Коэффициент асимметрии: 0.1178 +Гистограмма сохранена +Результаты сохранены в файл 'Res3737.bin' + +---------------------------------------- +РЕЗУЛЬТАТЫ: +n = 15 +min = 95.0000 +max = 110.0000 +mx = 102.2667 +v = 23.3524 +sx = 4.8324 +med = 102.0000 +ma = 0.1178 +тип: ~симм +CV = 4.7% + +======================================== +КОНЕЦ +======================================== + +Process finished with exit code 0 + +``` +![](Figure_1.png) \ No newline at end of file diff --git a/TEMA9/test1.txt b/TEMA9/test1.txt new file mode 100644 index 0000000..4a8400b --- /dev/null +++ b/TEMA9/test1.txt @@ -0,0 +1,2 @@ +12.5 15.3 14.8 13.2 16.1 +17.4 12.9 15.8 14.2 13.7 \ No newline at end of file diff --git a/TEMA9/test2.txt b/TEMA9/test2.txt new file mode 100644 index 0000000..887f746 --- /dev/null +++ b/TEMA9/test2.txt @@ -0,0 +1 @@ +100 105 98 102 110 95 103 107 99 101 104 96 109 97 108 \ No newline at end of file