From f7668394b028db184e160f041e5c6ee75f3bd1a8 Mon Sep 17 00:00:00 2001 From: Zara28 Date: Tue, 8 Oct 2024 22:46:32 +0400 Subject: [PATCH] dozorova_alena_lab_5 --- .gitignore | 3 + .../ConsoleApp1/ConsoleApp1.csproj | 10 +++ .../ConsoleApp1/ConsoleApp1.sln | 25 ++++++ dozorova_alena_lab_5/ConsoleApp1/Program.cs | 84 ++++++++++++++++++ dozorova_alena_lab_5/README.md | 24 +++++ dozorova_alena_lab_5/image-1.png | Bin 0 -> 25038 bytes dozorova_alena_lab_5/image.png | Bin 0 -> 21515 bytes 7 files changed, 146 insertions(+) create mode 100644 dozorova_alena_lab_5/ConsoleApp1/ConsoleApp1.csproj create mode 100644 dozorova_alena_lab_5/ConsoleApp1/ConsoleApp1.sln create mode 100644 dozorova_alena_lab_5/ConsoleApp1/Program.cs create mode 100644 dozorova_alena_lab_5/README.md create mode 100644 dozorova_alena_lab_5/image-1.png create mode 100644 dozorova_alena_lab_5/image.png diff --git a/.gitignore b/.gitignore index 697082a..30c9ddf 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,6 @@ /dozorova_alena_lab_2/ConsoleApp2/.vs /dozorova_alena_lab_2/ConsoleApp2/bin /dozorova_alena_lab_2/ConsoleApp2/obj +/dozorova_alena_lab_5/ConsoleApp1/.vs +/dozorova_alena_lab_5/ConsoleApp1/bin +/dozorova_alena_lab_5/ConsoleApp1/obj diff --git a/dozorova_alena_lab_5/ConsoleApp1/ConsoleApp1.csproj b/dozorova_alena_lab_5/ConsoleApp1/ConsoleApp1.csproj new file mode 100644 index 0000000..74abf5c --- /dev/null +++ b/dozorova_alena_lab_5/ConsoleApp1/ConsoleApp1.csproj @@ -0,0 +1,10 @@ + + + + Exe + net6.0 + enable + enable + + + diff --git a/dozorova_alena_lab_5/ConsoleApp1/ConsoleApp1.sln b/dozorova_alena_lab_5/ConsoleApp1/ConsoleApp1.sln new file mode 100644 index 0000000..e182357 --- /dev/null +++ b/dozorova_alena_lab_5/ConsoleApp1/ConsoleApp1.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.10.35004.147 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp1", "ConsoleApp1.csproj", "{FF70279D-C317-4A3D-B2C2-0FFD9FB4B22E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FF70279D-C317-4A3D-B2C2-0FFD9FB4B22E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FF70279D-C317-4A3D-B2C2-0FFD9FB4B22E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FF70279D-C317-4A3D-B2C2-0FFD9FB4B22E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FF70279D-C317-4A3D-B2C2-0FFD9FB4B22E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {1501FAF9-199B-40BA-9918-AC5952D318BE} + EndGlobalSection +EndGlobal diff --git a/dozorova_alena_lab_5/ConsoleApp1/Program.cs b/dozorova_alena_lab_5/ConsoleApp1/Program.cs new file mode 100644 index 0000000..0b99f9a --- /dev/null +++ b/dozorova_alena_lab_5/ConsoleApp1/Program.cs @@ -0,0 +1,84 @@ + +using System.Diagnostics; +internal class Program +{ + private static void Main(string[] args) + { + Console.WriteLine(""); + + var value = new int[] { 100, 300, 500 }; + + foreach (var i in value) + { + var a = Create(i, i); + var b = Create(i, i); + + List times = new() {}; + + for (int j = 1; j <= 10; j++) + { + var sw = new Stopwatch(); + sw.Start(); + + MultiplyCreateTask(a, b, j); + + sw.Stop(); + times.Add(sw.ElapsedMilliseconds); + } + Console.WriteLine("Результаты вычисления для количества потоков от 1 до 5 для матрицы cо стороной "+i+": "+string.Join("\t", times)); + } + + } + + private static int[,] Create(int x, int y) + { + var rnd = new Random(); + + var res = new int[y, x]; + + for (int i = 0; i < y; i++) + { + for (int j = 0; j < x; j++) + { + res[i, j] = rnd.Next(0, 100); + } + } + return res; + } + + private static int[,] MultiplyCreateTask(int[,] matrix1, int[,] matrix2, int maxCount) + { + int[,] res = new int[matrix1.GetLength(0), matrix2.GetLength(1)]; + + var semaphore = new SemaphoreSlim(maxCount, maxCount); + + for (int i = 0; i < matrix1.GetLength(0); i++) + { + for (int j = 0; j < matrix2.GetLength(1); j++) + { + int ci = i; + int cj = j; + + var task = Task.Run(() => + { + try + { + semaphore.Wait(); + + res[ci, cj] = CalculateValue(matrix1, matrix2, ci, cj); + } + finally + { + semaphore.Release(); + } + }); + + } + } + semaphore.Wait(maxCount); + return res; + } + + private static int CalculateValue(int[,] matrix1, int[,] matrix2, int i, int j) + => Enumerable.Range(0, matrix1.GetLength(1)).Sum(k => matrix1[i, k] * matrix2[k, j]); +} \ No newline at end of file diff --git a/dozorova_alena_lab_5/README.md b/dozorova_alena_lab_5/README.md new file mode 100644 index 0000000..7b16850 --- /dev/null +++ b/dozorova_alena_lab_5/README.md @@ -0,0 +1,24 @@ +# Лабораторная работа 5 +В рамках этой работы проверяется скорость расчета умножения двух матриц в некоторое количество потоков +## Описание +Основной принцип умножения матриц: строки умножаются на столбцы, таким образом получаются элементы. Для распараллеливания этого процесса вычисление некоторых объектов матрицы выносят в отдельные потоки, которые работают параллельно + +## Запуск +Для проверки гипотезы и реализации параллельного умножения в консоли на языке c# был реализован тестовый контур: для каждого вида матриц (100*100, 300*300 и 500*500) запускался процесс вычисления произведения в количестве потоков от 1 до 5 с использованием SsemaphoreSlim, который контролировал выполнение в заданном количестве потоков. Для каждого вычисления засекалось время в миллисекундах. +## Результаты +Что мы получили +
+![Результаты вычислений 1](image.png) +
+Результаты спорные, так как при повышении количества потоков нельзя сказать, что повышается скорость вычислений. Это связано с тем, что работа с потоками сама по сбе требует ресурсов и времени. +Повысим количестов потоков до 10: +
+![Результаты вычислений 2](image-1.png) +
+Для небольшой матрицы видна разница в сравнении с прошлым результатом, но не так сильно, как для больших. Повышение количества потоков позволило существенно сократить время вычислений + +## Видеодемонстрация +Видедемонстрация по [адресу](https://drive.google.com/file/d/1YaQTg8OM5sVT6q4hkJvopGHFy-SM_Zjn/view?usp=sharing) + + + diff --git a/dozorova_alena_lab_5/image-1.png b/dozorova_alena_lab_5/image-1.png new file mode 100644 index 0000000000000000000000000000000000000000..7c9f98cf3d4013fbfe8ff7844db4e2437df4bf18 GIT binary patch literal 25038 zcmb@t2UL?;*Y~ZX!Z-?y;vhvpML`s#Nfm+(5CIub=|!4|5F#KwMMXuViF7GZL5h?} zOXvYbLTCXgAq0pLYC;W!kp9KF%k#YVJkNd4_pWy>7Kt-Uq zNdK~9#|{zmt5=2?0{to?FNbnn43*_zCade0Im5Vncb}qM^&-mP2{hlfIZRS*E zG_}&J@RptPEb3%|;=rhe_JPDJ8(sRP_Ae(MT~J?p*JXKa-1Mxbx%#ikVmp65S_vBgcpTR@4bAvow z{;dQ2t=%J%_cu6y1IGWHZhv+uO3_9AEu{lIQ@aa;^F-z~(#^OczWHS-CE*1H3CW3{9G`?YO-`%hAbJD>gq7vBa7td21;s%%XCYvanz z-N`GO!tUB6mNl0rTTA>E2lxI4-Y-~3@lh_3N`G-3>HksRxIR3TC+0YP7&IX!qT-hA#k^C1-{Kur` zW(oS1r>Ez#$Cz|l&+AjxU$Gmk{l`Kr!Q2Y}3ky!Lp$Qi18V=3pf`k@lF0$fB+(xm* z`~QN2@6^06_rneL7@eiO`m1j62*wk*XwF50$d~oMK=W_i?|fYKH~;!Ob`$%@$wPF`@&)RoXh|m zgG**Nk>pX-*>&z0nHxHf83DT!&XBMDSUqF0k5+r=K}|UF&*!n+4?Hfb(J&C|;>}09 z>iHSh|4jR!^7|?zxTA@=PNlMg(sRSn*BRG%eBb5ezEb4G12rWED6@9pE?rXD9}ykq z4)F@P`w`Yu7=68AF1W>L#R9EKDxQ*O5a~h8_a;N;u|$Yd^A`w>3q3Q+x935005C`k z-Pw<$E*+0XE?Uxu(3njR5-Ah248_e2WXZF@lb)}<)&RzURA1!WO~Zk6^tk53_ontC z9T*ygFbo02T-r}Im!G$1qQ9tx(De|}ovke;#k$Vm=?B)B8>6Jh*8Cy<5A!^NNWQ#C zW6Wk)MRZ%a`Pr_dbNVk*013^uy`^Wo0Nri)bEW=rFUnQ6H@oEeN=bO|C8>SZgWkle z1UXl;?&q#UKb1^5OT)9h9ESZfjd@cKD7&inn3Qca^3a>BS5^9L!=BIw9df^PqK9L6 zMo44-!~-ckZ96tTqvbwZzHU86CC=y_PJJD3ep_uku&?yYid3w+s6sh$djL(2Y?{@I zGl6g#f^yWTm;=soGdo#%gIB>)tD zEdBtmw$?=$+Ep&o=P@B!$!!pAaCLS&mMq_za#aW#_b4Uzb-rakskcVV>9%KN;Sy+` zdhUC0v`Yr!bBTN)9)pTJW8Li*xY4pW$n7n+=Z#1^c8p+;4e90*&}doQ6zg0k?db1b z9QA|oQ!G-;5pEOEh1m1uoN2Dy^i`0FHFK|+le%$vr-+y3S@#}w=u)CcPaT2u`obA~I!9%6N^qQFH}+n?79@ysQD8LqL@w|4|4g`0bqf2vqlxu@9Y z%}0nxNK~-m_OQizTwxQ~;3Q=9hEo48=!oU4!0T zsD&E!QRHaqP79;diLjWg)Y0vs-Cxx=aQL=X_GhT#C5Wrk1xMLmy)304iV;{LCka@F zf738VvD1!J(mImr@=Q2w_4{G0il?s_vB*4gVedEgaw*C4QJ}wZA@(5svYE`+>XXlO zC}oCOIwwQl_L-v1YqlH#gr8h}oVPAdTZZ0mHnY6sCPp17h}B91R^>mqL{tqp4BJ97 zZ*iqkBP&e_Q>xie6?MX{?8tRk=-`4oNv@Pp1qt4^m%unzK%Che(v6c3YRkju;yA_4=ca%%8wk_LnODbDX9GQ{{HgIm<&;Dta2=Z zc!zc5$aTnZ|KC6Cg3X=V;;gacpR-P{^V8bXs(KS!${ zOgx+=Kj)C3F2xK=-u~UR#dSFNbicWKh1V`!p?5HhV=QigWRSC#I=Qvon^A@D2J~}B zBEC{XGWgkL7)MUo7|?C_bK8mL6y3NMr|XKUy&cNk<1z+%Li1p+&+Bz^cRnd@ABgU% zBdUu3=J)PQ)`SB`U6C6d7dI&qK|9jv->{F3;wJxY(C+qnKc9rl{?u{+KWuI$}c%JTd-GBt3LH z(g9`{+UDuAA^uA|TEyNc_>07ByGxUBD$w{uzY~By9~~g$gTZUijK|H>bj@bo1Q1#c z;pshJm^*3y&a)m0d~HH-WqC+oPTEsym<{fa91NtT2J{pbdv>d5r2NI-Fs!-*}r^ai_VqeVhaeMvb7I&^*J zE!59{)VhR90AiCKxJ*sIhF!K!vO-tQuN;Gqcx*;}d|}d3NUevNQK9p++kG`|H3ZB% zyR9MIAR1%+6#{`7R}STL_^GsUe&32t#O4R#i&2XTOKP(>6NOhWnfi8{F=h+2>ze-M z@p+pded{#61-fH*`@D>GM!)#Md0p4oe1+q+QLm%@>88Z|oq8H;=|pcio^wxc6H`}F@yRj!Xv0JXYR8hV z#|%pQ@!pVO`_!`e(;}aU!VMLw26tD5*VPo&XYN353ZGkBFeSm`y)PpoJ+Fb^wMqbo;5?7W-zh%7L?(y-B zFpOOfu{i4}*qL%0BOU^a`i`ySn=cG}F%W7@ntWb!hyfj)m0mUOX?xJRCiDWdQ6Fdl z_+0m16};%BFxz6h&cB*qa=k}PA-F|lIWyn8dM4IZ+ia>S?jeKO0BGE}8!jGlzHlplWNMB^~!i1+&fyoSw+yv#{lmc+903Q8aU+C_gc znS7_b_GD(sim7NoreN1f%d~R4#qC|y`=C69Y4vLdig9{`ti?TvFq*ROHEz$mRoGIgND&C!{+v?u(S{%Qrhi2}p%GxbvOCMzVP&B()2+7j1vSPp63 z>k-o7Y!}-N5iT+R?z7}Mc4w%3x4?lsD*DPuqS7(=dj3qvHz{t;_VL8JA#iz;NU!8V zDtENHrJu!WKf^-h>LS%6N7udMb82!C8}W3p-t=CvgFSfqR+gH6yjcGSj4@vjK^8qt zSu!=C>SeZ#<+Lq||L%7XD;+yCB&~8?oM@Yzawd50`iV@}RH<|Z=6;K4?J$5@KEatO zuG`5rczNGo8Vsa{e)RDVrsq=hbf4!$Hr6W=N6Cx>Uh*>L_wD9NMDKn(Xo0@)G(_@H z$ARnxuzb*Rn?5XHRM~gGPx~+6o3!jSShtSK_U@RY2(<^)$!9TV zAvMY(9Y@tZ;N)Z6-zimr9lMqZ_c-qp+m+fsc~qCmq4L4g^joq9Syy_a9ptC??~9LV zFb!36v7g4Hn0DpOIH%cV<||QKAzm8iqju-<;<;FxhU{|LY!#-*If-mgoojMkdMYkt54aW99@aJBkY!??o2u$L&A#MZR7)z0LAQoYmbA8LOr6&4Ht(``W*w_* ziP2g`rSRVt2z)AY9R<;{mUIm)oYyryfhp7oZCYAYH7FHX8ERci?r;*^fPgrarGh08 zP_?+^#`408FRRSMtd?$MN0d4Ll*IdL!~D)kKxP{FGJjMl{X42*)!OTGWWREvdA58v zw7f2op3}#@!_U^x^TYtEGWu!;&>^!f&0cF%If85z0 zb5ray5Ucy1>?WMvP}6F+GV!dFn6Q0mdEsNjU1zaWX_U6`?cL>|@8y}H9qwG;rOpPd zng!r#AYrsN(nSH9rW;^Nld4n&4n8|hRM-0zt_^Je$?mrQ^7wcI*6ey^2LF-#md8P8 zm*+!6`Hpup*3mAZBH)7ro!|=9^Nq>%rW*3;zY$87A=$f=y2qkw!R^+_09z)9jhQ0qJDt@ZXB4Az*M@E>7k=+~aoXb2%mP`=)?hC8n zky7zzf-7LR6vrzj@6Z#p9&rZlX?=)U*9ISTPQ3NKS(VC&4s~#ig=&<9+$6mgZ72^V zRz*b`UkJ>C_33FNyjs?(U+p8-Y-7Bf%18@P<>C*m8DD%ftSP@kiow;}zOEfPL3r*UxOGGSH0@>*{PIy#{}`33(>kLv8rJPX%OgO61Yj?6doHKeSWu3aKNutzlZr#_(6txiY&O zu6w_V&+!ZQ@=@|A3hoh~n9^a+HH>Q>b@#qQC(6tO7`GCJALR|5PxaeOv0m&=UAjXH z_?#G^DmrupqghqX5?N4ZA58s5-6N**z=7}qXNx->m>#Fo(H3|Mxlxu`rh)UEec<-M zR`!e!YE0*gwD_*KOIfo1AU|VDFSzMbT?^p+HFsyePt>jmUWLBpeblDqe5SQT)|fNF zE`R=F5B7<+MEft6*P&T7(;T{LF7wD9_BH2`$uVHh2cu(NJ*k|YdG}j(rAyCpwU}jJ zlQi`7X5Zx-0?`Vo3RNF9%9s6nudRpg%doSfIyr|ukPnib)&Eee1g{GixCz2( z)CO(tG{TQ*8X@0;v8HfbVe>}`wO&xpZhRxqt+_|(>JTWVKdL^6c>C;N)GtAoWM0(M z@D#pmWQ!u6h3~%NvLy#MLB6e2Mm`Nv>o)ux)hG5+9yp?QapKVTVbxk#UcKSO=C-p3yZ-}Bz&VX;ga8Xy)I@jZ`|aGH*^%ZK)jjf^La-F{@J0p2^gaj{oGeiN z$Ku=4%tYp~Eq%^SFU=R$eQ=vdxp=M`^y2<&+?;$hKzVE|xuL|KydSz*PS!h2?@ow9 zC$Y*i)R0sBh`cE-Y!7B)A`rI zEA8Q|g#AJmB`_hS$(IFhqjvb%UT`C2?xx`4R7Mm^-22ar%?W{`yeifmD_^@9`3AB! z8N!)+q(JgZfxrX0AnJ_pM8I`qskWfONn*MpaL&4JoJ3`3Y`YJE zq)u{2Q-3?taF4ni#H`$Kre!A@2aMeza)VlCtgl2voP+A-=@mOM0W=@!01;;I^#{u( z2v+aHc_JFhl2*YEElBNSDf++QW&xEmub#bNsGwMZ-~u*3({KBZqS~`rsJ_MuU7C9s z)T3o`Zs=V;B)U-vPGG%*Y`0U7`n2HIVAcshS5@PLu0-$UPcs)(%7GQ!1H|(3uItgf zY{ykk4yjo3pN z(X51O7>;cyu#!3=Qe8IKu>%K!2g1pGIsS)b+1$6Ss?H0CW^dM7GY`Gz=0=a5{rKys z%_yZbv`c1bg`om$NP*B@AIYTbX@bqnOJ^W{=?e0=1z0_A^)P!&&lU!9bhf85a)zyA zc*`TR;@!vQj!_j?DjdL%5y-Kt{4J}Oz;)Hil-v{=qGh!+GjqH_x*Fi&?4?-^OV)@u z!4OYQ+yte-YH{c5<&!ATFJ9zwHGRRe1R2AFscT&KBqjG0$1*LjWFjs=e@V+;-gxRE zLRXc7{bGQX0#v0a+EHe^;g75F-%Vw%?J8mVJv-;{Df0YY1x#&FY-2{~-O2lM$Ly*5 zADHZ-ZMCnAN~E5wA+24pYE3uT8s1rTX}=bsGUmn72UbLbT<9k4D6|?}!A;qIiu)E# z^%`#aqSHkOxt^GOC5r4HhfWq5_BZs&0)O83_Us+p!WsN&u{*YALRt3A@*L*?6efh5 zSuGR!yKG^fKKr<$g~poU2~rvuj;W6gbw^PGIleuod@lkXiM5B-@fKMw?#|Xgd4o4{ z&ZF#d-A=n_OS;_KS&t{f{FP#lJKCxF#~KCBdKjn1>kJ>*2XbHLACN826?hKR+udjR zF7YZLH7kIAxu^eL(|s|?TJP_i=fK;3Q#`B6XJRVsk9&v>syO|hWc_)OTirT_>_pXkW?u`otNM zX@0L)Zs#vHOYb=Th*%Na=4Aze&*TFYQ7`Q)R6icujB)NdqP)*_SzB^rdSX zvW|8~P0Y$SNA4lwioEhjV6e<$rI)FeX<|2oQgvWdL4FWTW;V^#XeB5WNWz(8Kcgv( zg?t|}7@G|V(V5gyqr@E>x^cB;1!*yUjuQvG5%%>|~mSU)!Ce0lVOO4+`GOD234N;;r@20LNfm47Z zAmDp)Yb-qakg*HBqRuF^?b~m<%jRLqmHu$^gRN6El6nq3k96N6p#t$6JdHE*SxxBt z;DzWipx>oHOOhQpRsQiK#H=zAM7^KZ>X}UYHtz623l?ve)H6gNteQMs_Bv{O`_fm) z>)OuihxXxib#LB(R;@Z}BT9V5-vs;Sm@yZZkL8>>|Hr-9Z2V={LR=N1Y&P~l!%0V+ zy8ei<V}y9`}qx4#8+Jz26uRsbbDTocraB*F2Br%zw&mztXt9p zVxi(Tq87bq#ZR*SC3zd*ZQHpAPxFm3HZtC?5!Z^Da5p?JBpC!tjPB|&nK*)&&!ma{%yiKv$SZqE&*2@A6LXlKHJNlV2~NsXd;mZb{H zsvWZL#b$YOY0h9PxsMSIZYp)WE1%NC=>33bUt)k^18k*Pu&E~Fn%73)I5#Z50I31* zJ5tyA)J)@H)cXCeHuT>ES-_63V{pKD{*A@+tfW8jsWrg<++Z6})MG!V*$V50109T= zDOF%VMuGU3P38umSZwjK=KcM8|BaM_Z>0Wd>i$PQ`E5qf zV0C8a^os|PCa+uHg8l;Udt~h)0G|SI-hKWr^{J~3D}ebwps#XSPi?BT?f+q==7YQ3 zNq7u*em)2drCP1xXScSQ4aSuu_o$`xfOnMvG5?sJe|GIrh}N6O z(rMeg=|p7@fNpPs82R!KYPany)T)NZECZ4imQFCrI%la=T0Ju;h0727UT7qrbbOb5 zZyO%ZAfMJ>h2{x37vDLA#9+(@HIZuA)okuo{UM28fGc?`vopNqR}#_{atc1nq0y_( zMo!!>c)|BtCgmCLVc7vHGo+Mi1s(drnRT=as3D(0BuCL461F{7t5b0&kVPPf?kHo6 z@Vxl|KWQfKB^}NtLz^TvhM!L%?2t;vZAB?Zw2vRAx%-^=bnfvzf-nx}<6nGv4m0a+ z{iO^?X()!hjZY^?GrqqLC(4bZMG`Eg`VdocJx=G`NaJ(P!7XweH%8*w)- z9lCr4J)ri(W{+?_7lejMna(=LlynadzF8g7BN$wTXrC`#okzNN@|a^i-U@PevXtz) z<3UEez}YC~^^{Ws zLXC~iYXP3w_w8!{nL&CzuP<>?hWzS4o_pz% z4JWA!auUXUU&-gNN&NhL_0F6q=)pj!r+;KLZodxC)^C){*}WTbRsL@Tx=n8XZH~I? z%;eeR9?kY8jCk}gov69lnI-^!iCgWU0&Z9ndy_R6_lu*XC1@OLr5^0B6Nv=#ZYT~e z=R|H@+^3@W{l;4(pX3+qcVTbE?R#=!>(np_Y0Gt>E2Nt+UePPVI79T)FaaS{Bjp~G zXaVR|=iY~ey6<^C)zy9pz8Gx=*0J5X%H}z3y@bv7>>eVv$wvCJIzFlty2+E~mcJ`o zPfpGIi&ShU&IqTZ2Y2KmESLc|11)e`dGd7?MBnY|XILrUYIZ_nLWk!J^lssj6t_C_ zdMq>i_5>b~>+7OAR0H}_xQ!Grbytm)-0gRk5_dsXQVpJQ@#I!0 zmWdtaJhScgGs~^G-{X64W@G8h9CoI?RGsSAqLY1f#QH3WC={}(kpJW>Cl^3&Kqx#8YD+Z8T4G{;A869oZpkyV`A-I~GF ze1CYl@qr1i9Ll$dYxsWIC4dVn?iPYj4m(9^C!8-!iH5Cj&;HGZIL5wB}CNlr3H!xc;u0pn%JK)U18^BEXp* z@~_a)851FFP#)yI95djI+E#8H%)d&fJaAD0Ua z(;xV-katiVYZj-q!0y%gAjUF7w!`n{DEL(58z?rphuU=K%M%XEM6vhP;prF~h=NZ6 z)dCYmx6;6coS6B<__m+V=n&Ba_)!VJ5&v+tRL(EX3jFC@(mkRkSGf|gzHhXpIh=*o zHGbYl!SsVibClfs;AX4xVPpU=(H$bD|X)pqMM84aU|D+0} zI;T*c)KxLUJUyQ@9e!n{Y@33hPc)ardROOr_b7#ZnDzepX@9`)I?_j{bLEdtZ#yMF zP)N)fyjm%8q4AhSYM*~YL%#qq*56s|>YR~lDmgq}kZLACjIVO?>M!jF2Xvr#F6KJj zOq1MFu#WOw&XN6xULCm+Sgp2xoBj*eW9E3I+0vV{V@CI6D#b!isRTN^`Llh_;!{O@ zjD)~Q8+Up(cGq1*{+=pSfc@0j?>TbBo5JGZ4FK01&O@)~`jo2KW&JcUuO$lA1EP`% zHfjSozy{8K;DxfBi2iJ#EL3jP_m-^0byMz97QO3l{(|Jb)GK3Z8Q{H$5^$4H`jK4> zo2jLSsZ3>J=6p?XgP!qr)H{B9Y$C@@bGfRzzX2F5!f6b|>7Sns{;D?TQ*pKqQdSH^ zNZ~upkeq9z_YFo1S9~z^g9tkCuk0a1?)4f z@e!W3fxW&&N7zYuqk=L9$lNY1yfENJtf8MVI{P%Hh?M$Ze)jUeFC@G7$-_!P+7i2X%Tj9m_j#~e3^|@vLpWH4VIRg1Yw41aG)|+a(LrBm z5ubY}Rx`R=$?Hbji5%Nhne_Q8`n#|Y8yplWuIo~-k%Ed_5s~P3<)mW- z`zWf;-±(I6|w?iN)2@m!g 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 literal 0 HcmV?d00001 diff --git a/dozorova_alena_lab_5/image.png b/dozorova_alena_lab_5/image.png new file mode 100644 index 0000000000000000000000000000000000000000..9c9a4873ce89cfb3b6f9d8888207b5e4b2c4e826 GIT binary patch literal 21515 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 TlcbIq@Ub~}(IVgcdc^+$hkIUK literal 0 HcmV?d00001