From ca035a9c082c4c6dd8b2666186d11db3889f71d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B0=D0=B2=D0=B5=D0=BB=20=D0=A0=D0=BE=D0=B4=D0=B8?= =?UTF-8?q?=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Fri, 21 Nov 2025 18:55:21 +0700 Subject: [PATCH] lab9 --- proglabs/lab9/func/.get.c.swp | Bin 0 -> 12288 bytes proglabs/lab9/func/.massive.c.swp | Bin 0 -> 12288 bytes proglabs/lab9/func/func.h | 1 + proglabs/lab9/func/func.h~ | 31 +++++++++++ proglabs/lab9/func/get.c | 32 ++++++++++-- proglabs/lab9/func/get.c~ | 83 ++++++++++++++++++++++++++++++ proglabs/lab9/func/massive.c | 54 ++++++++++++++++++- proglabs/lab9/func/massive.c~ | 78 ++++++++++++++++++++++++++++ proglabs/lab9/func/menu.c | 36 ++++++++++++- proglabs/lab9/func/menu.c~ | 55 ++++++++++++++++++++ proglabs/lab9/main.c | 11 ++-- proglabs/lab9/main.c~ | 39 ++++++++++++++ proglabs/lab9/prog | Bin 16128 -> 26608 bytes 13 files changed, 408 insertions(+), 12 deletions(-) create mode 100644 proglabs/lab9/func/.get.c.swp create mode 100644 proglabs/lab9/func/.massive.c.swp create mode 100644 proglabs/lab9/func/func.h~ create mode 100644 proglabs/lab9/func/get.c~ create mode 100644 proglabs/lab9/func/massive.c~ create mode 100644 proglabs/lab9/func/menu.c~ create mode 100644 proglabs/lab9/main.c~ diff --git a/proglabs/lab9/func/.get.c.swp b/proglabs/lab9/func/.get.c.swp new file mode 100644 index 0000000000000000000000000000000000000000..0612ead9a4c882328f854b0ca4a8f0938a178822 GIT binary patch literal 12288 zcmeI2O>E;t7>1_^30T-4u?ViyuIitpNo*%=5|Zh%pk1*@dtg~OEM1{EaT-gh6UBDx z(C%{N3Y_2q2yx|%khmZrB;dk}}CldSYk3nQz{C$MaQH z>sl{ey+)g5i{Ls(NcB4Pe|+$B@@az*e|Oz+LK{#2ef9RnmRxlmmC~z-dx-Y;n{ttSr;> zkG^>Ksnkg2fO0@Npd3&RC1>b|uz=z-+ zkbqm@X|M|J2j86`R2)+fMfcHQIu7Jy+0M3E4;0#y-|C}P^Z}0>7 z27CcN26uo5u7Qi72_6II!71=NygCFQfVaVI&;_@^4R9IM0r#{9)TJCy4k!nd1IhvA z!2iI3+l1npcu_nFsMQkR@b8MDP$K_OvhW@Ar*}v6?Bz*=a`^DHv|t?-y$( zV|qz9MM@r;4`1x)o109xbWM{3eY4HX;yiDEG%@@jqCRERZc)EoYx%{Zxi7Lq zPJz#vPMEd{)goG{AnpY{BQeeW{xA*)SeaB_vRkRFxwwLRbY7{c;F_2?ndw2s1hZ8F z-AtHH^)#?I@Q0p($jm`=nWZypTC&XatpLm950o$0ZLiA(>~X(eiLwa_Ze}@Oa?~RH zhMeJa#}zIV+_h|oSUA!Uu>!fQX$!9=cX`Ute;h}YF{(eKn-^-EM)9lOf6j=v2MM-gdMH=2#w(ROU5XsUl&x+oDQ0o zad1F|eG58J8^z9MK`Wb#@>(oH@EXM}FGPeEi{2)yI(&&yn=eLmNK2!5jDyhM4!j;6 zj)HBx%%VJHKYREKiMIvDP4S7%KN literal 0 HcmV?d00001 diff --git a/proglabs/lab9/func/.massive.c.swp b/proglabs/lab9/func/.massive.c.swp new file mode 100644 index 0000000000000000000000000000000000000000..7e1664d0aa6b971239d044e78b29336b7f13ed7a GIT binary patch literal 12288 zcmeI2O>Y}T7{{lG(iBLk;J}G8Y!tkHiDSD|O5+$6p-NODid2cW#1YzEkK+lOU29+B zRG}0h5I2zE3P;3&6B2hMDBSo0AP%S%2PE19AE5kab|-%6u9J#W&`k8pYImM_=9&NV z%&eo>uDyO`m0qmY2-;afez{8dA2T<}!{-U%yB8Xbu)ZX^rnSzXU#nMn->N#HQw_Nt z#t{#zK|C?&J>_sw*&ICR2mY38+2JC7U0m$Op0l`Pg(2T%RcFGBzSRn71s+&|IO;Ae z&64wty4>n>#&h(kCtrJDH+q0pKr5gX&@ARt3$}gCkgrO5d@F_|Es_M z?>s@s-{42^1-Joh@DjKL3~&z?9>Y4& zA!`M+0$PFpkpkBVMZ1pk8Z8{~$myAT#eK5t^9~hXF*CUr(Y*>CI6W(PJECSO{mxl& zfUbbU19kWR}b{z_R1J#d6>einK-jX5ul` zNQ@e7*?xsZevjy7Zpf$u|A={f(V};>P4^=#Ged9Laksm{H>W!n!?DnE`EWCc(yC22 zlZ%3;@VIhy?F|%%@SoQXU)UByJzBwJ`m-D&x}z-OKT4%4dfk|)$jOjIVfpR~w#XC_ zx_%(H7e^V?nta7>@^U%H9u8TnRYNbCoJ-v2Ynk68#>tHBCl!z+c)I<_x{jbYOt3U~ zmkT6f!mK8P81%TyOozGdi(-{ocIuhR!sS35EMf?CEYI^JYBOr{tt}SN`HoRR36_w7 zh5D3ai3N!{hqhCvmXo!p98;>-ie)q1W($Q{Vahb4sjef{FUVA9PL*W3o|oyQ8*6gJ zahJUxSqnQSytZST&)XFdU`}M2^DA{%lkXPOD_%d2mT6wahm56`>iEo=EOYCL1Mtn9 zRru)49CZJpmAtCd(gUa|3wxrPlxS_5~jr2mOFM^3bQ>X%g|pZamUl)YN$HRu%puROhz^y?D(BD zKx`wy9^zaiOdOVp>-2L*I}$&s)NQZrZBQ8^0!;I8P^v0{86RinxaYWWhfza({;Bp1 F@-HKpSiJxM literal 0 HcmV?d00001 diff --git a/proglabs/lab9/func/func.h b/proglabs/lab9/func/func.h index 6d83f4b..23ad281 100644 --- a/proglabs/lab9/func/func.h +++ b/proglabs/lab9/func/func.h @@ -11,6 +11,7 @@ // GET int mainget(void); int numget(void); +int getsymb(int *b,wchar_t *buff); // MASSIVE void seeMassive(wchar_t (*massive)[COL]); diff --git a/proglabs/lab9/func/func.h~ b/proglabs/lab9/func/func.h~ new file mode 100644 index 0000000..da45e2e --- /dev/null +++ b/proglabs/lab9/func/func.h~ @@ -0,0 +1,31 @@ +#ifndef FUNC +#define FUNC + +#include +#include +#include +#include +#define COL 10 +#define ROW 10 + +// GET +int mainget(void); +int numget(void); +int getsymb(wchar_t *buff); + +// MASSIVE +void seeMassive(wchar_t (*massive)[COL]); +void setMassive(int x, wchar_t (*massive)[COL]); +void func(int x, wchar_t (*massive)[COL]); + +// MENU +void helpMenu(void); +void setMenu(void); +void funcMenu(void); + +// SPECIAL +void clear(void); +int flush(void); +int end(int c); + +#endif diff --git a/proglabs/lab9/func/get.c b/proglabs/lab9/func/get.c index bcc9fb5..f2949c4 100644 --- a/proglabs/lab9/func/get.c +++ b/proglabs/lab9/func/get.c @@ -1,17 +1,18 @@ #include "func.h" int mainget(void){ - int t,x,y=0,num=0; + int t=0,x,y=0,num=0; unsigned long input = 0; while( ((x=getchar())>=32 && t<100) && ((x>='a' && x<='z') || (x>='0' && x<= '9') || (x>='A' && x<='Z'))){ + // printf("%d %lu ",x,input); if(x>='a' && x<='z') {x -=('a'-'A');t--;} if(x>='A' && x<='Z') {input = (input*100)+(x);t--;} + // printf("%d %lu\n",x,input); if(input>1000000000000000000){printf("input err\n\n");flush();input=0;t--;} - if(x>='0' && x<='9'&&num<147483647){num = (num*10)+(x-'0');t--;} else if(num>147483647){printf("num is too big!\n\n");num = 0;t--;} if(t<0)t=0; @@ -25,7 +26,6 @@ int mainget(void){ int help = 72697680; int show = 83727987; - int see = 836969; int set = 836984; @@ -51,8 +51,32 @@ int mainget(void){ if(y==3&&(num>=10&&num<=21)) y = 300+num; y=(input == show)?4:y; - y=(input == see)?4:y; + y=(input == 'C')?4:y; return y; } + +int getsymb(int *b,wchar_t *buff){ + int t; + *b=0; + wchar_t x; + while((x=getchar())!=end(x)&&x!='\n'&&x!=' '&&*b<5){ + if(x=='/n')x=' '; + *(buff+*b) = x; + *b++; + } + //if(end(x)){flush();return -1;} + + t=0; + if(*buff=='-'){ + for(int i = 1; i<4;i++){ + if(*(buff+i)>='0'&&*(buff+i)<='9')t++; + } + if(*(buff+4)=='-') + if(t==4)return 1; + } + t=0; + getchar(); + return 0; +} diff --git a/proglabs/lab9/func/get.c~ b/proglabs/lab9/func/get.c~ new file mode 100644 index 0000000..346ba74 --- /dev/null +++ b/proglabs/lab9/func/get.c~ @@ -0,0 +1,83 @@ +#include "func.h" + +int mainget(void){ + int t=0,x,y=0,num=0; + unsigned long input = 0; + while( + ((x=getchar())>=32 && t<100) + && ((x>='a' && x<='z') + || (x>='0' && x<= '9') + || (x>='A' && x<='Z'))){ + // printf("%d %lu ",x,input); + if(x>='a' && x<='z') {x -=('a'-'A');t--;} + if(x>='A' && x<='Z') {input = (input*100)+(x);t--;} + // printf("%d %lu\n",x,input); + if(input>1000000000000000000){printf("input err\n\n");flush();input=0;t--;} + if(x>='0' && x<='9'&&num<147483647){num = (num*10)+(x-'0');t--;} + else if(num>147483647){printf("num is too big!\n\n");num = 0;t--;} + if(t<0)t=0; + t++; + if(end(x))return -1; + } + + if(end(x))return -1; + + int exit = 69887384; + int help = 72697680; + + int show = 83727987; + + int set = 836984; + + int func = 70857867; + + + y=(input == exit)?-1:y; + y=(input == 'Q')?-1:y; + + y=(input == help)?1:y; + y=(input == 'H')?1:y; + + + y=(input == set)?2:y; + y=(input == 'S')?2:y; + if(y==2&&(num>=1&&num<=9)) y = 20+num; + if(y==2&&(num==10)) y = 200+num; + + + y=(input == func)?3:y; + y=(input == 'F')?3:y; + if(y==3&&(num>=1&&num<=9)) y = 30+num; + if(y==3&&(num>=10&&num<=21)) y = 300+num; + + y=(input == show)?4:y; + y=(input == 'C')?4:y; + + + return y; +} + +int getsymb(int *b,wchar_t *buff){ + int t; + *b=0; + wchar_t x; + while((x=getchar())!=end(x)&&x!='\n'&&x!=' '&&*b<5){ + if(x=='/n')x=' '; + *(buff+*b) = x; + *b++; + } + //if(end(x)){flush();return -1;} + + t=0; + if(*buff=='-'){ + for(int i = 1; i<4;i++){ + if(*(buff+i)>='0'&&*(buff+i)<='9')t++; + } + if(*(buff+4)=='-') + if(t==4)return 1; + } + t=0; + printf("\nx "); + getchar(); + return 0; +} diff --git a/proglabs/lab9/func/massive.c b/proglabs/lab9/func/massive.c index 1c5b307..268ae17 100644 --- a/proglabs/lab9/func/massive.c +++ b/proglabs/lab9/func/massive.c @@ -13,17 +13,67 @@ void seeMassive(wchar_t (*massive)[COL]){ } putchar('\n');putchar('\n'); } - - printf("\n\nInput: "); return; } void setMassive(int x, wchar_t (*massive)[COL]){ + int b,c,o,e,cell=0; + wchar_t buff[5]; + switch(x){ + case 21: + for(int col = 0;colROW*COL-1) + printf("Error cell cannot be bigger %d",ROW*COL-1); + else while(cell>0){ + col = row = 0; + if(colROW*COL-1) + printf("Error cell cannot be bigger %d",ROW*COL-1); + else while(cell>0){ + col = row = 0; + if(col=21 && x<=29) || x==210){ - if(x==2){setMenu();flush();} + if(x==2){setMenu();printf("Input: X");} else setMassive(x,massive); } else if(x==3 || (x>=31 && x<=39) || (x>=310 && x<=320)){ - if(x==3) funcMenu(); + if(x==3) {funcMenu();printf("Input: ");} else func(x,massive); } else if(x==4){ - seeMassive(massive); + seeMassive(massive);printf("Input: "); } - else {printf("Input Error \"%d\" is undefind command.\nInput: ",x);} + else {printf("Input Error \"%d\" is undefind command.\n",x); + printf("\tTo get command list input: help\nInput: ");} } return 0; } diff --git a/proglabs/lab9/main.c~ b/proglabs/lab9/main.c~ new file mode 100644 index 0000000..db3b2f6 --- /dev/null +++ b/proglabs/lab9/main.c~ @@ -0,0 +1,39 @@ +#include "./func/func.h" +int chooseMassiveInput(); + +int main(){ + int x; + + setlocale(LC_ALL, "en_US.UTF-8"); + + wchar_t massive[ROW][COL]; + for(int i = 0;i=21 && x<=29) || x==210){ + if(x==2){setMenu();printf("Input: X");} + else setMassive(x,massive); + } + + else if(x==3 || (x>=31 && x<=39) || (x>=310 && x<=320)){ + if(x==3) {funcMenu();printf("Input: ");} + else func(x,massive); + } + + else if(x==4){ + seeMassive(massive); + } + + else {printf("Input Error \"%d\" is undefind command.\n",x); + printf("\tTo get command list input: help\nInput: ");} + } + return 0; +} diff --git a/proglabs/lab9/prog b/proglabs/lab9/prog index 5b641523d67ce840262633dbfbd21f0d2747f068..c1b2a84b7a4b0ffdaa20a3d97784a861b2fd4707 100755 GIT binary patch literal 26608 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 literal 16128 zcmeHOdu$xXd7mRi^PvYRn~YWK!HsIgk`kUsiDIQVs*j>hTn3UQOH|N=R#vCGrS72P z9di$x5=>GCt-yy11-5|`w@6?&NMAvlCaF^xO@z=^Vn&HuTvDYWQWYT#yEvAzO(S%` zB($!-Z)U#b@=Utqxw)C$*8nqLezX*q@*AwkkxsXSS!I1Gip z57Mh3md1-=MhC`_`Hnw>lu-;>JMbeq7=~^=%1y3G$>$C%h5cm;AJCBX2qnEKtv99h z97q8XUqj9(g+bSGozG(E1CNSN)!Be8_k{G90nC}suC3sm8PO|m5s5?l%JrlbW3N;@e_~4sj$16X4tMS=yeREed za<;8?S2WZVjl|LeO#}Pdn%Y{u$+&m7^h3VbADX{axf@bx;*Y#DO&;&{k;q#5l?FBKxj+6Kx~yFEX*_*Tq?#-aD0RW} z8UH>ntyhdmJzp`sS=0CV6rbsgk3XR3G(PlCN)o>BqU)(i(sM34+akuKi(VroRW;?J zuXfRSBBZ|y8naxge5yrso{dtcdM?+SPFZ8 z0CHj5%cyG`eP|ILCf@W^0cG2ZgwqmgIw$deBAk|T)8i8V2H~`XoBo=_zd|@It)`!q z_?HN$CDrs8aEhnp^{&j1K51rNF-KmVJ>Kna8E?66jvn|KWC{(dAwJjZt!<iwKviL?x3=-nqCUlU=|BZ^MS9OEbL7CEK~k8R*HUZE?1BFTQfPP*bv}rj zd8y(inx50w7UM-6KGC~~lfCJ4kUa$(=Hs`%hD?Uc?5b_srCI-c%Q)`slk3RGOW&at zX8!u^LSf=^H)>#F#+tbNN8IknO1c@$nVFpV!c>{*$(f#UGxK6r3Ykw6VYL1-X_}*# z&p;8B3AsfYks_Xvt7NWv=(!PT3plx|9(p?eQ}j~44HY7q#BRaNOgvA9@^?dEx*m~_ zTzwc#PkKwfR*8MxEjIfO#9oJj5-Uq>QH}bcYSq|0wB~VX;l~h4w`#F;ZQf6wlc=V@ z3XVDY6a}8WOwP>Azhx%!Phdbz|A}L|Jhf9PZ(-B-4Q)`S_ae-py{hd)dw7SEEKgVF z{|i=TjxA$;4>8)5;Hva`&Kw-SjgdaHNry7p@Xu?6$h>4`eyS34d!bOsV+e?hj8z#Z z)Ly=Uz@>zlJvARPKUgojJ5`at3We*}ws%KC4pPS5z~NydcR&|m$-KTfSR@AuCq z4RmEEVn$cyTPWCdxKnndZSETK!shl-ZoPP&whx(G89Ga~>Fh)QgxWFay;* zPcy^x=g~d+A3`w$4}&)vhuTI4bHU+ew9gFHpuSjpWe%A{YnR0L*Is#5;Xa9fqV@`9 zTG{ShV*7sBp72jSZSPz);eYjb=P7`E@^kM1+=_f}4S2Hy63k^=_pi$Or;x?{{`oXw zo}}Q+k-_2RZAXb6KS6l`I~X772q|`7#!_D2wIkyUEQE*=-n>c0YtT zrQN*CE(QZ)zx6K4q%%ehGc%Y+KX1XN+nEn4e@&e|2W2s{nIau+SP#DIhw<94&~5%X z4B5Hrq5t>}m?Hn@psCj9(c;0Lks-{(#J^y_>@x8sDYPJ+bkS&EX43O7AavJ^m-Xj? zW-)^_Jh{|bw+v_j0WDMyeO-l7=LB?zT|7C|`>hxJ_e4w-MHlm9(6i^6iT%SRvHS+=bjU4zHyQr7EANVLfwK{zDMT_!mH| zN&j5xIZ2S>q*RkyqEsQpPG1ww+QV6Gz-FnGGEmAuDFdYplrm7t!2fv$=&cYHJ7%3a z={?nbxM`p0is5zFhYd-WZNr~P#1qEWZK173Bx$5$Asa8cLPjv&*B6L|yfv&5Ax*}Y29Aq}HJ*{E?WbtuzD4_>DQ zlBbO(LgK&o}_J) z5zV)a-6128NCYmhp=!LagM}Wra_j`6QKQdJh2tT*52H5%JQZHlrHviw?IgXOP;4?f z!tr?0He?jbXds^6bSwz@-XcFlPDSFeB;OYic0z86-GISzoPlb4068&wKBeqEl#Zlq z8DxJVel8K{^VZaejXmbZo{!=|#K!Xb`(Yn@a?$!mq3~tEF9UuC@QZI23NHix&0B@S zEx@C5g~A%F@q%v`3bZx&6yOoSVZbP0`7fadSPS^KfExi{25bYo1sDcggP}$5vZ;73 zo)DgaI?u*6l~rTl6P?a>)WQD;NZ?SVd=+^wnyt8=e7#VhSjD=!!|OJDw08BQRhPsA z_uRj8&%IlTOu7%_x(xz2zi*NM1@ODUzt7D-tN28s-5+%d#N=5707)Zy zsgyEM%0MXtr3{oZP|83l1Emc7|HuHJ!{c*zw05IHXZ@(iwI(&>YFq6E2z_h=)k6H9 z0?zq9xwZt2*1S~iQ9$rHKU&99VgB2<3vt48^k5kU@9bo$(+xf&H>>%)|GKW__>7(o zM>J?U1Fa_V`dl9^?Wv3@;OsZ}%pIL;r82J_Gku@NIqq>OwRk3v{p0PEydSWoC|)N? zd|uxVUIj>;^Nj6=#DAvwcr74tj$6C=odZ5UUhKF{kAuS+eoVt&4Ik0)(;BiqpWp24 z==iX)9VeA{7%h9fyS**O?&jTloA79g< zT>iL8&u+-?Z;I^yMAIvEfARmpzk|M&m0j?cBwvPEylB1ELP2Tr-31gUC~syfHdUlkMyEIsINg_3bAjHj*i5kS{5Xoey&E1k4Mf}RNq z%Z`O)l96G=ayFUN#+@$_mYA2{EKpLAe?iYsWy7-Yv4Q1(@R0RhpB9imDISd4_$FfM zmk&$4SV&At2ygO2Un+1GFqKd+%&k~FWqZ$I4B&ZXznw^35MGCLHXXq?E|HM%;tL8p z(J!Q6IDjtphAzZlRKZk2aUQV~NjySbf>_`s>}Y@#bgMs_B8v#jo3aN`%kJ|g;<7Wn zcG&90gHziIhoH-t4y*lOS5qo*PU&0n39{1XHrxdIB0`MZ!)0ODt6p#PE0F(T4{)M5XHJl-)t8o69 z^mk~u^?9Aiuy~#*_W!LS{WDvYWrpAWAN+q0;_l!7O5brRt7@!qo8Z6VqP401**W`0 z{%*4Pei>)@bLe7K=IHajak-_Pp%=kdvUJPzidOCqe# z-=mH10ug1q0#42P41WcVTc7u(d980cnySHi49lSG*5~zabF-4?IN1#AIXIMw#_{`n zisRGz#q#9KUDj&@_1(}J`;N8{XV||Uur!a;UZ3OPd9fNaj@_j$!mSEh bU`Lu+gknv