From 74e6b09e63fee784147c8e41125e6aaf8d9ceabb Mon Sep 17 00:00:00 2001 From: ada-dmitry Date: Wed, 22 Nov 2023 09:20:14 +0300 Subject: [PATCH] added new method(global) --- PROJECT/func.c | 2 +- PROJECT/main.c | 8 ++++---- PROJECT/out_p/prog4 | Bin 16456 -> 16408 bytes Prod_with_G/func.c | 36 ++++++++++++++++++++++++++++++++++++ Prod_with_G/main.c | 42 ++++++++++++++++++++++++++++++++++++++++++ try/func.c | 36 ++++++++++++++++++++++++++++++++++++ try/out/app | Bin 0 -> 16320 bytes try/out/var | Bin 0 -> 16208 bytes try/test2.c | 31 +++++++++++++++++++++++++++++++ 9 files changed, 150 insertions(+), 5 deletions(-) create mode 100644 Prod_with_G/func.c create mode 100644 Prod_with_G/main.c create mode 100644 try/func.c create mode 100755 try/out/app create mode 100755 try/out/var create mode 100644 try/test2.c diff --git a/PROJECT/func.c b/PROJECT/func.c index 68fa35d..0405b0a 100644 --- a/PROJECT/func.c +++ b/PROJECT/func.c @@ -18,7 +18,7 @@ void find_zero(double *pa, double *pb, double eps, double *px) printf("Текущее приближение: %lf\n", *px); } -void ctrlc_handler(int signum, char *ch) +void ctrlc_handler(int signum) { printf("\nПолучен сигнал Ctrl+C\n"); printf("\nПродолжить поиск корня? (C - продолжить, A - закончить работу программы, R - начать поиск на другом отрезке): \n"); diff --git a/PROJECT/main.c b/PROJECT/main.c index fd93e1f..d1bb21c 100644 --- a/PROJECT/main.c +++ b/PROJECT/main.c @@ -5,16 +5,16 @@ double f(double x); void find_zero(double *pa, double *pb, double eps, double *px); -void ctrlc_handler(int signum, char *ch); -void choose_path(); -void new_row(double *pa, double *pb); +void ctrlc_handler(int signum); +// void choose_path(); +// void new_row(double *pa, double *pb); int main() { double a, b, eps, x, *pa = &a, *pb = &b, *px = &x; char choice, *ch = &choice; struct sigaction sa; - sa.sa_handler = ctrlc_handler(, ch); + sa.sa_handler = ctrlc_handler; sa.sa_flags = 0; sigemptyset(&sa.sa_mask); diff --git a/PROJECT/out_p/prog4 b/PROJECT/out_p/prog4 index fb1721baddded6040d5b168d6c3bd101e6f2fd08..9399eaf9487862650bf95f27891fdcf31b624ce4 100755 GIT binary patch delta 2213 zcmZ`*Yitx%6ux&K-5t8MJMH4Iy!L^$TS<3zOK~aewo3q=gcynmg7AZf4Nzj#hBon; zPQ?oAcEgqvuvLr@jj%r?KxV zBJ66l!PUgWn6((Z2Rf)EX1OZMRawZjn@`UM=bNi+<%tP)l9>x=qz8@qyP zn?}#+isyA}oqqjEx6A|4z7n?CueDQRC3f_0#UCX$(t`eZMu^nhjKS^XEpGGZ+(tS% zZ=2pM5WH_U=l$LLFoPEIF>=<-6gmw`{AI>q7f%}69lB*igrAGnQYTb9q-Zf$GZ=3$ z2-_Hz2eb8XJGV3t#&uD-md z*ty3YbZ(Lf`BSTS37&F)FdqjARY}`lVB^lgRzVvn^{GsFo+Ij;b^ZKJ@QpZ= zRzN|VT~&c5(l&RMvLj((LnZZVt4m2IijWj?|7cpFNz=3;`+bnhYUx#IDpP0=d|CEp z`+XNve?7q7uELf3nwA|t&mL_Rx=?nExl`}l!?igu@u({7L;+Gir>{Sv?-;v@Zkm*| zts)lS zq)@KgG7+Xr@6~;!jR2`3Tw&W}t;DqHueeqZl+H}LWwTQH%8-)!o;_g@lZ9*CfPPQ1 zKuT(8oGGTLrqG!xL}>ZF=gI^s4bDWv)km?$+Sw3=|1mREMH7dVW8} z(dg}h(l_jh6+@%5_PF0qArv@J_ww(W_BKYjhxj?7>kmykh1iAIgxGdd(=H=^hIkus z%PmdwpwAD11}kUzQS~HR$x?@YZlAzmE%w3<+)r2*oD*$CzvhuBM)NlDQbmxCQ=rX9n+4(C^}=QHQ6&rnq05qe{a z*F5hdyg)M@Yc0@S?GyL2bzt)vKvXze?W4OOUoF!Rh+!Wcg=kn7RenNwwIqYk684En zqjK;9g0%(?hF8!C+`{`jAj(@T*#sQ3JPuho30LGFy|3{_@My%30}GbA18_DXS+D|K zi-f&qWimxi;+0vl1YNmsT)H;#Ar zK z&-Oz;{wzHXRS8*m@PXc#hzTTUtdqdO1p2LyfV18WYp{pvBZ9fpS=d+~n|K>l{1&jL cLatt;TOrpF6ArU;hixxhZ-~(Z1d^5i0#l7QL;wH) delta 2279 zcmZ`*eN0k%RwszS9 z1Tn?h2%b!tf6XwJ`H_fdvdzV@Y(Y??EYWP}NH(LcM08`D5zO>??tAwkBk?A^=lst7 z-E+@9@7#Mk&`HNTXaDcvRisH`RWU`8 zguifsio?PC<$zAb$DxagLX@+joE3$W^c&%cqV@ zf$T#!Ha(dA-AqOORIn-nFYEI&($J?C93frG3TZH*uYg9M0e&*r=?0k7i?mkho0NV( z>!H(-N!Kd)3%G6&X}zLXD*cpVDN}e>W2tG+vu(Rtn)XAD@rMpQuBRtPrRUi~-9RF^ zHqRCjTU%2Ja=N+Au3!U+bKJhN)lAUK>l}aF{~BgjM+OnIrlpsEC=yCn?VUklQ8aCU zq{F*O^$v8l*lty*D*Ie1@UTftWjWGXA5@}cfOAY}Ho#*h5e}PDQiqmUli&zi-$(1I zCDvs40IgTiI=;lZ0;WwOO&y`hUz%REx|8d@gxr>McfwlhOBpRJ)Y~&nvMl%Av1I>+ z0|j1~vF`Mv7WWWhaaIw+M|zgwBg=3*6bq|r)37w;j3;sI?rx98`GT@HDIScVMT#5u zGf^_%mLbKA8<^fR+GduoS)84Wc!5jg*C_n;o8UbmiyC2E$X;Va6KQ{RyVM>0krlDj z`*T~06bt@>AaU#;Sxz+LM#hZOU`hAW^H7y8(N2h`AL^J+VeHROv0_Y&|BbtyxWIO` z9bHJ>vpKy-W-+!KDl2gi2?z;R2~JA1AWRHm7p;~ppH<7fV>mdd4xU1XBynJw$FA9H zXl|BbhTMEqq; zI>*j=;u&1AdtPqO#eM(DbMyu@*t1shye2Y`aZX8Y47FeHCRUFewFg#wl#@eExy{TQ z0jKNDlIGuK`7i>*O<6vH(vI>h$`dFVEq+UuzeV{e%DX5#=49E9elNj-D~}d~%PktO z{U*!DA?RL3>!8UkI%?5pA9A&ph04qL8-{+jlb(ZNw==K{{cU4}>NM+%y3MIcx|$Rd z);{CT;_oPqSF-rEaeXmG!pN|_^#O-=z6n3)jK^98jukkCNxO<1svu#QC~#ug%@lZP z2pk?Ky#pm4uMp;ElHZ)<3Pe0kp@kiCY+R5bIO%yDH@1ND{NV8Jp;74a?w}vSCGTZN zAAc~^IfUe(qQiS_6wVilI=pVaFZ4L@8oIBsd^1uATt1P8p~Tlft#Hieb!abuM*m7t zY~(ClSC|XFSIlKLb#xo_7v<4OI9=qWH84}O1JBnJMIxO7SCQyQU`_;`gCvJEU#k2A z_N@~;47lfXjNl+o;6+YiSA~_VB$>-*y^Y=&Uwa=P;d~qCTbJ>j+<%$tTJhD!tHA&!P% zt~9V%30g&5fs(QgdK|9nZSY*#3b0gyFJ0s4KTF{*};DwihDh zUb9x4$SdDM&%grO{(Ink!GJm0t;U%Q`w(d_TNs9e0T>DvLgq#*B!X5b-dMO;!C`zs dSc^hrql}dvsR)=y{i^LGoURDaR+y{E`xmwyQbGU# diff --git a/Prod_with_G/func.c b/Prod_with_G/func.c new file mode 100644 index 0000000..0405b0a --- /dev/null +++ b/Prod_with_G/func.c @@ -0,0 +1,36 @@ +#include +#include +#include +#include + +double f(double x) +{ + return x * x - 16; +} + +void find_zero(double *pa, double *pb, double eps, double *px) +{ + *px = (*pa + *pb) / 2; // метод деления отрезка пополам + if (f(*pa) * f(*px) < 0) + *pb = *px; + else + *pa = *px; + printf("Текущее приближение: %lf\n", *px); +} + +void ctrlc_handler(int signum) +{ + printf("\nПолучен сигнал Ctrl+C\n"); + printf("\nПродолжить поиск корня? (C - продолжить, A - закончить работу программы, R - начать поиск на другом отрезке): \n"); +} + +// void choose_path() +// { +// char choice = getchar(); +// if(choice == 'A') +// break; +// else if(choice == 'C') +// find_zero() + +// } +// void new_row(double *pa, double *pb); \ No newline at end of file diff --git a/Prod_with_G/main.c b/Prod_with_G/main.c new file mode 100644 index 0000000..d1bb21c --- /dev/null +++ b/Prod_with_G/main.c @@ -0,0 +1,42 @@ +#include +#include +#include +#include + +double f(double x); +void find_zero(double *pa, double *pb, double eps, double *px); +void ctrlc_handler(int signum); +// void choose_path(); +// void new_row(double *pa, double *pb); + +int main() +{ + double a, b, eps, x, *pa = &a, *pb = &b, *px = &x; + char choice, *ch = &choice; + struct sigaction sa; + sa.sa_handler = ctrlc_handler; + sa.sa_flags = 0; + sigemptyset(&sa.sa_mask); + + printf("Введите интервал [a, b] и точность eps: "); + scanf("%lf %lf %lf", pa, pb, &eps); + find_zero(pa, pb, eps, px); + + if (sigaction(SIGINT, &sa, NULL) == -1) + { + perror("sigaction"); + return 1; + } + + printf("Ожидание сигнала Ctrl+C...\n"); + + while (1) + { + sleep(1); + } + + printf("\nКорень уравнения: %lf\n", *px); + printf("Работа программы завершена.\n"); + + return 0; +} diff --git a/try/func.c b/try/func.c new file mode 100644 index 0000000..0405b0a --- /dev/null +++ b/try/func.c @@ -0,0 +1,36 @@ +#include +#include +#include +#include + +double f(double x) +{ + return x * x - 16; +} + +void find_zero(double *pa, double *pb, double eps, double *px) +{ + *px = (*pa + *pb) / 2; // метод деления отрезка пополам + if (f(*pa) * f(*px) < 0) + *pb = *px; + else + *pa = *px; + printf("Текущее приближение: %lf\n", *px); +} + +void ctrlc_handler(int signum) +{ + printf("\nПолучен сигнал Ctrl+C\n"); + printf("\nПродолжить поиск корня? (C - продолжить, A - закончить работу программы, R - начать поиск на другом отрезке): \n"); +} + +// void choose_path() +// { +// char choice = getchar(); +// if(choice == 'A') +// break; +// else if(choice == 'C') +// find_zero() + +// } +// void new_row(double *pa, double *pb); \ No newline at end of file diff --git a/try/out/app b/try/out/app new file mode 100755 index 0000000000000000000000000000000000000000..47dfc6fe57db71be2085fb33ea28922854f42999 GIT binary patch literal 16320 zcmeHO3v3+K6@BYCV8~}T!D&9UWJpPsG3RoNLZ!XW!;bRu zpBA~yo4LL5u0tp1Unr+nEpCrDFRfqP9;s=MCo(%~b}U<3v$Q^#P6n6g5GXDK2aTz< z*KAdA(@z+uQB`y~y!azoHOooAa#C&Rsn`PpKbi9OSKdCDoqFKw8wW^-;wBr?p+f#R zM9ouu5)RUF@^Poe38RvWzS!Z^N}q#(ryQT16;6@4kh2!Wqje~C)2cI_%{$t<< z4sWRkP%6$Nzzwf5cpnaG)Lm z#!jnLIG!e*cski~_0?9oC7g(Xg?7u$R!iH>RxBKcYAT+vV~QNnKv}BRu3xvR$yyS; zs#vQp)~+~PT@t)fS?jiJup-e^v^Ac#qp2+$n%a|z=$3GEJGI-|kxX!GmZMry5uL2S zi1FcEiK7CwiJGH4RH_>wm-}L7JU)d+Zc+R1!oPW%G$eiwKu z@;sC0$PoWtJjl;0!S^v<)u_#s;KC2CaBv#S?r}ck!sVVK&Aba2Uxc4_;TICXWz>bs zJwl?#7^j~L8Y5ErTsYm2QVzRt{X4>fei!cCkB;Cu7tTLPT99?&NNBl~Gf>VzIRoVk zlrvDyKsf{d^9;Q0zvLh0?$@f!o{29nR?7TJzg>n*TcW=;ZJ$^S3UeoZocmIb=|p}%~0)0R+Of8F!u-iFuE zt-_4`(0nHr^v}HuK_WqW8(s!t?w$B6B3F;vGmyIbsgBfLP#E&h?IOJsOrie+t$*bs zL>8VgyHA?~Z>%r}MkkoQlV|Enfy64aXsfxqVHH))?o;+; zv!`JVnEdl+3WaVxa{qU_2Qe`XbM*P!4qa*$Rov!akWy)+nvhTlf zAZGgS=*KD1zwLx*V`$Wx-M5dL-I>#5nK!$)4w*gL1IA1UU;xI~4UnV3spROU0pLSW zR-|Y4DD5(T8)6_2gCs4YF^vW`3?i84V*WS#WB$bhw@i0D1jqw5tNt2rAqZUiE_%Vm zXu!*i+5PjwG!pZpA7EfU@9smO`}X&twbs$fAA$nd?aV%Qj{c^I*;6@xfzEVjw65RW z8#-)uBlf+ae$XM%ENC9|5a?+*`y)pH8 zC2#g@KxaaOl&O_ z8Tm8G_fGr^J39ncM}fviBj%!N-Bo*H{&5JL#OY^3@hLzNmrFSVVzIRoVk{J&>_z7kv)R*Q-F?v9$aqBZ;v@& zS1!yxls%q30)x9rYUJ*O!hWdrWsew5cB*|5eF;2U7LxqILq>|xkE zZDgO$9*4%U+`TJ|1x-ec)3nFna$_Y)4#7Lrp?o(xf@L3~JPxnB#d5y}k7keNdM-CM zlO3XhMc+A112?hp2WsG%Kop+kqz&cTJt4c!NPHE-lfWA+=_Cm}yT?Ngo( zBN$ZBDU85pCX0T=j%_Bm!V4Ec6(nh6gml?8dx)R*5~|_ZmsH4 zE9NZ!^c9!QBbfZ&h+`0X@-0(v84d!+nTs<#SWExJCm7WE!Zpuq|kftJ#z>sNtQtF^q2 zl+~5N_;wF|1>H+KMhB7WORKDX>SM+G!I3I;8!FVU+>e6q(fTur>t6+b z6qQo(KRymVUVop`{;SpYPm1TWw3L5(XZ5L>$~$g;q0KH*vc6ut3~BvY#rse2_fRRd zuDS||DuvGnZiumqKBRFxg&JKTsw>CwvsvQ-^$Isq%Vyhw2h{B1^%8Hbq+c;j$@5O| zj&c0&VgJKCPUL@-uZ^Ss9pKciH~t@vqkjyzAwjt43&5vU%vN$=iRfj*DWhz}k5!ci zJ{>L3jxSgT+S2lpe6s4XyBpf|0+PM zG_IjBr%QoT{9Zpbz>P7Q4zm{cyb^db@aYx!)$%@Fn zsqjuKny^zlRV)?mh+2_MN5@W>xHt=%_E^#te4VO?3HDZ2@}Szjxn3 zQHl)$AGRrg_9YZ`$x{pdbZxQP!ih+GG^MO)By5M3?mXffyHlZPSFd8cYoQ1^L6Nbu z;ehu+c;sU@Bv_Gjl3Pa18(|oUC#+058c|4o#M%{2;X+3f5k%6QPP1dZ%VO-Fief8Q zK@)o*B+;}vqU4T;vAZ~m=DHJfF_j9YcXrs}W>7oj&^D=Iw?;J8se*~59Syc7GQrMN zvNM{pce+7}=RX6Aragj^vhTDjiQI#xNFSsc3tc z47k?WZmXaUGl*)iH3^m~>1c}z+R+_gY4Acjsjp@*+Q!4REdp=CIX;|m>sUw~O@%w+ zaORjJ_bP}RrUUmuiF@^BN4#eQTskMdoo1 zr_@qZ-1gr6YnO>4Q+eJBO!ES_z06C58luS5YySn{?_o|T@yonfsI<@1)pOzx!=Cn~ zh`r3Kg&LGx6pE3m(tnxX#(~jPO6+BxE>z~_P|=0m39G({8qImdUgo(%r5%Z1^n~64 zdzwQFFY{=jo46%!{1U)kR4AunFY|h#{j4bMd;9+Y+pl6hc~219>$0c5c>p^ihv}FDnQYeQ_ha&_0j-J{AbwE{06S zPUufP_A;LkTFvuxaU*uZKjX2Nd6`goKNWrN{qr-nm+P+#)?_-lC~$DOeypWvo=f=` zHJR@UT`!7Ez3so^vA=GfqbPJTId>Ir`==nAibK*Q@7=QB)T=MN(6?agciGE(`GYk8 zQAE$-&hmnP00E6%X#k1H8JrBli zd)3IQwGNeb#DUlePx&QG+L!refbG5d)RwzU+3oh2T5F4Fs~#O}7=QSWeV9_P}o=+gAPl>HF>u%XQH7j&fXL(`7V1pmgU6+ZQV%s88@jQq(o=mK} z{FI z9&27&yD%QEipLTiomHL7msTyU^`(=(MLGq_%fO4yskIxn zD1^xn#${AxUA8Xq$Tp4bt37#B3tZ0QV{(O4oBkKGwjrilaFVy3N7$}-zRv4l#;w!@~{JFGOU zv2?QKh8xUuODGYA3cr@y%$C;M%xEYEr&KIqMHPjhQ(>uEyMEp3dUKI)S)o^3=q>Us zDfAcDDsx>^qZy8*BHLqWE0StztdA!Xk)}{{oU+>9mP~L~rtMnP5z{NfT+4B-m*dZa z^N%!||2RcwjGXsZ#A1`^>@*phruA_u#(Kxh*aSMe(ySl+-orSZ%G5p3smbS+d`@Jh z*!X__JQBQ%@e03f7hLp#RW?rNDjg$fgAUwzeh)ct{wUX!VF!-H3+;>pmurBGeT-8K zxh4tkci?orNy|8J{XM~klMdXz-fTnGfyey`SP zVK;I*SI}ueH*)$!L8k@S$mu5wIxW0LPCqI-qPOYj4NAv{KHa5Ha_Qq;`dQpBcxRvI zf9TX}-d@*}yEWMJ*I@T+!yB6dHJO@I!96Rhkam9h%kcal>hsRN4@sc_dsco7B)Dh% z2#FicSkqCO!_-GEJkspleJcUp7>sm=>)iHlduzO`Qb%Q;xTN8u5E2B_`UOku34~0>z7sqdf?%4`% zVSM7Bz5_<;Yyoe?J0);t#9K*k-^idd=^5M;jCgN35e<5GX7HBCY<*t5ap)_1zWoWN zTRxeF{msx_7!B&xw%Si~9oh|S?K1X!2vbQgkZhfUUeo|vBEEhpah?woYJ zSE;DCiDue3MEQDme~f9o>DkMi#m+=ua3=chCpyti9x($|kND;ko9ex<6Ol9&?A>xE z9GpK*A2VzG&`;od3YR#Y2>SXjT=7V@)Jhd7RiIRXQUyvCC{>_Tfl>uZ6)08U|FQy} zQNJ$Yx5exu*<;z~a^1Pz*+bc*Ms8QOKl@bnXtpo=oKbJ3;`8fu9kP$)y5M+_oU@0s z{keN{4;k6xQ2Rl7*2q4aJqC}Xx$mwruB$hyV7rj8z^Eh3(+CcCIPc~_aP7-Ji3s=R zx`p|a29IQq!lsXvWfS&3%Lko=Nt-uYy$1u!MyzkOOMcUJdFgG4G_(cWD{ut4oMcH~F z5szluk10Hd_rrjWLLOQ{4EtBA;`KX_>(w>b1)k=7M$2c+ZP8}|=DlBz6cyb*#*QOp zA6!%#N8>>~r9Pi#W`Br!(jhsD^9E(31AYKi;#oT?MefypO;XB_dwy#7u&z8;m46BU z_EGdZ-?q2&`A*0TkPvXP{{pX7urGmB zVvnD<{|;~y?0=-WiM{-k$Mzsnsg){Fsz9j%r3#cPP^v(w0;LLk)+!+T?PPx)FH`j% zKgxBYB+QFSZ1%GoEiBQlv_)Yb-&L&3UbUI5%YHsuS5g!Ehv)K1();MQTQu1dH#pAL zWiQ+S+hyEZw|M(`CQr+WPtx#&uhoI}%ohQB&iq^;K8ZbZE6^=b}Zv>e_h>|LcfU zw{hydyxWV83++{Xhzn=1!)1`g{OP!r;RoPK-e=10%3$2@!WT0x*NynEL&u|Ls!G3& z$Z@4TvmSN1lIy^>Ds?wHG_G8SfGbSpH+p>z6vtG&OvUL^v;t#W|w= zuTbvu;@6sXnUa0<5@kU9&nR49g1>`Kv3=E-q9BGiIpqBs$ES(k0iydw;KkxB*LbD+ zh>wfDM}_|y;Fb7PlKM-uM)EI%vt00O*gQu31jj$c@$LU6DAhiOe>ZR%*PTDz+ZW6K zG2n(I=a2`0Pbs@n$#o*8}ZEO5%x9cKbQV2umi)iuE96v1xNP26x(2A5NOvvTlo<(!tdP=E#2}-eGAQtBRg|ANC_oen^#s{| zSb(2iaM?#cOkjr7Ngf$b7Tg44IF>Lw(vdLoNZ`$EPNzAXej;M@QxJvN%ixKp7NnT; zI788A6h=RBQK0M8=|CyvOYdm2Ld}p?%9gFt!}Ar9RJ-yel2*jGJ<;K7PbJ$UDQkxV zYVL^Pxtv&-p}N)Us^~n_?yaG8tMY|+Brt?6t(0xKJ(5btl8I4@30o=>4-tWT?Qu)_ zbecYNecO{zsgsVhD4!MSgi0qSyp#GE`Xa4-Dz=6ZO*A`(eNNg8>0_u+TMWT$I%=>r^{vPX zDlQu3NL}H}Ix_~0mNvp4Eg{?iAWk+QxgKGn?4e-s$iMB*2|fB1Vy z?qlGhoBR0x2&j{9Fi+$*n^t(2uQ!p8yZBvf5Gj5VKy;CPF8*FNh}d%-09`31!82;V7Pr~lbANi6xu m=P%t~O75D-Z`HMSr@<9m#uZ<>ttiH~=!*?)ri +#include +#include +#include + +double f(double x); +void find_zero(double *pa, double *pb, double eps, double *px); +void ctrlc_handler(int signum); +// void choose_path(); +// void new_row(double *pa, double *pb); + +int main() +{ + double a, b, eps, x, *pa = &a, *pb = &b, *px = &x; + char choice, *ch = &choice; + + printf("Введите интервал [a, b] и точность eps: "); + scanf("%lf %lf %lf", pa, pb, &eps); + find_zero(pa, pb, eps, px); + + printf("Ожидание сигнала Ctrl+C...\n"); + signal(SIGINT, ctrlc_handler); + raise(SIGINT); + // while (1) + // sleep(1); + + printf("\nКорень уравнения: %lf\n", *px); + printf("Работа программы завершена.\n"); + + return 0; +}