From 427a6611dffa7feeb567752096aaf37e045cc1a7 Mon Sep 17 00:00:00 2001 From: AZEN-SGG Date: Mon, 7 Oct 2024 16:04:27 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=2015=20?= =?UTF-8?q?=D0=97=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5=20=D1=81=20=D0=BC?= =?UTF-8?q?=D0=B0=D1=81=D1=81=D0=B8=D0=B2=D0=B0=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 13Ex/a.exe | Bin 59625 -> 0 bytes 13Ex/main.c | 2 ++ 15Ex/input.txt | 1 + 15Ex/main.c | 14 +++++++++++ 15Ex/makefile | 11 +++++++++ 15Ex/replace_local_min.c | 18 ++++++++++++++ 15Ex/replace_local_min.h | 6 +++++ 15Ex/tools.c | 50 +++++++++++++++++++++++++++++++++++++++ 15Ex/tools.h | 10 ++++++++ 9 files changed, 112 insertions(+) delete mode 100644 13Ex/a.exe create mode 100644 15Ex/input.txt create mode 100644 15Ex/main.c create mode 100644 15Ex/makefile create mode 100644 15Ex/replace_local_min.c create mode 100644 15Ex/replace_local_min.h create mode 100644 15Ex/tools.c create mode 100644 15Ex/tools.h diff --git a/13Ex/a.exe b/13Ex/a.exe deleted file mode 100644 index 30379364f8d238621467ebceef6836eac17c862e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59625 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

;@0JOoOV(fL^XaJ@y*K>uhNBDYZ@Y)jn54J)5h~ zZFKmW8tc8RKm*q{G&L$WH=&)}t~!^G&C{}=Y2U5(M#$ResCA%`Ni$WBdPl9R8s^BZ z&`{mg9%%uE8nDp;f$AD+T(!5c`5Ks%<*Ki)aa6M_HK?oJ=UDG(RBCEb!oeHB%NA() z4IZCjU*E(QY9RZ@23HN~U8!woRO~f1jck#Y>&4Ga6c^eZ|LRt*pq60onjpJ^U8Us+ zvOrfFJTP6NUCr&mrs2qD@%kE}6STtBS{8bQ-HjiTIH>L$(V;mGbl9M%R^(;ZX!xWK zuiaV8-mQmKyL~mRNDr&>vBerh2wH1*g96+Fm$a(R#g?R@)ZEU~~TqGhj#?KKKN=vBO=H*`xkTdrXcu&G|v zzq zvXm-Sw<(@Y4UMc^%Ot~ZgwXKHWG`OD*Pv`f-&i#XN^N699YqtOco;APiq z7{c}I47=9DO~BCzMOSE;)TWRD6;aYL){KiGxPib8S~l-|9@89rbLzmf>}}YJFwQsX;b7$O&!oVFIBDUiCH1rRBp%)it1LWOpX# z$!^xNYwd6)qS@F64V>oYm0KHKJ_mDancM}|l_?utb_I4{r{&Z)kYDoHU5$1Oe5_u} zQ70ob-4WA@hO|s6<1O5;Fpn|E=@QeMTeK`$AyOY})WD(v-3@ZU_cE`RN2a)`+PS`p z`Sd{4sFXEnFsg^>E93*&MlDC!t?Wk_?kM|KEnCispwJo@AFZKxa(J6G6j4du?CdrT zthUoFvZkB0ECPEcZD~%KsB{PQHY{T~22C+_Wv|r=vMo zFPt#VqiLy_x6)>Q=Dc-tR?bIpN}N--H)3i>L!>_KA@#{gszl+SiYn}B(cFy#H<7)I znJ7)Kd#bzSj}Unn(3sptR!L zk%DtHN*sq*6#T+7s0jS7wjd5LvAhpw&9dM;yCwGpP`VO(7fJxTWT^?eV##>|N8GLT z4Z_Np6*DBNW(@^d)@lmO)+!3JtzH*}7HbU;bF3JT0PtcKT8&k&seLFs%)l~mbM9q?MLDa>GxBbid9iKLa>ZD5i^#rG z+xOz9w8Rc?UQS-lgZKf06}_|?^8t*Zyjfh;I+zR3^I$a^lB*nmtTX`Dc|KQD9gIms za@#jxK~e96X=y--2mmb204~QSum-GefC<=Pe;TM7)0Guib!m`#htuxHbU7~#=Eccf)O@HmsBkFvY%c)2gx+SSD#%)%JSyKwhFC z4eY9R5DeDlLc3s@q?J&!ypBdx5z8VitJ?0Zw%72ItS}Akb78H+dCX6PRyQ=jXLInC zX<(Wmy0I40$gX$LSh6q;vSBsWJ{kfBIt*)A?`WV6w8+tt_PUx{dtF&6v!wy6YEXeP ztY$Pk4qAZ)O9p5q)+-sHax7QUKt4`uaVBU5)+ZX)W}2y%VP%p5T7dPEREFT5)N37XRx45`hnDGHV@|YcjlW(Cj zpm9tP5uc{UQxAXfB-RXpBB5ZPO+1Iq%1;5*N3^ySME49gKU=BAg9Slb!_k1bO_1Q< zar3&2G4qcR$K%LIcO*b(fU&RE!e(4B%_AJZ1EISGC@YJDvS~+5p{J!Y-;;k89*gE) zVZ-T6-1+qAk*^lqE({?Go4I^WG2npK&>BL8mU8GqDl%(z-t;`P`eXcsE&^RopuUny z_P^;e&0+aDb4-_+%()A47w2A1&#Lfv2(cLi$;T`!tBB2*aU+s=%({fRF301idCZ)9 z!;JUMSTlo?7Ap`al2e`rziIwj40qEC*tIn3nM|(B@slDv)c}R%Gthz(*FrP|?u-J{ zwetnqObcf;YYD`eoekk`oIxxEPoiTj2CIdjlYcc(=3EYx88fu(%VwoXQUSEfFE^#< z&qe-hwFZ=5AOTz)0$^X1*D(dSg7dIwJPLJ1pt$+EA^=>elN^*t@ bFsWu?Ia^OP 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 EFP!e(H~;_u diff --git a/13Ex/main.c b/13Ex/main.c index 2c435ee..4a155e8 100644 --- a/13Ex/main.c +++ b/13Ex/main.c @@ -13,5 +13,7 @@ int main(void) { if (equal(numbers)) printf("They are different"); else printf("They are the same"); + free(numbers); + return 0; } diff --git a/15Ex/input.txt b/15Ex/input.txt new file mode 100644 index 0000000..7b3976f --- /dev/null +++ b/15Ex/input.txt @@ -0,0 +1 @@ +1 1 2 2 1 1 2 2 1 1 2 2 \ No newline at end of file diff --git a/15Ex/main.c b/15Ex/main.c new file mode 100644 index 0000000..a3e38d1 --- /dev/null +++ b/15Ex/main.c @@ -0,0 +1,14 @@ +#include +#include "tools.h" +#include "replace_local_min.h" + +int main(void) { + double * numbers; + FILE * file = getFile(); + + numbers = getList(file); + if (numbers == NULL) return 1; + + printf("Count elements in file: %d", replaceLocalMin(numbers)); + free(numbers); +} diff --git a/15Ex/makefile b/15Ex/makefile new file mode 100644 index 0000000..cb9b5c7 --- /dev/null +++ b/15Ex/makefile @@ -0,0 +1,11 @@ +all: main.o replace_local_min.o tools.o + gcc main.o replace_local_min.o tools.o && del *.o + +main.o: main.c + gcc -c main.c + +replace_local_min.o: replace_local_min.c + gcc -c replace_local_min.c + +tools.o: tools.c + gcc -c tools.c \ No newline at end of file diff --git a/15Ex/replace_local_min.c b/15Ex/replace_local_min.c new file mode 100644 index 0000000..b8a3249 --- /dev/null +++ b/15Ex/replace_local_min.c @@ -0,0 +1,18 @@ +#include "replace_local_min.h" + +int replaceLocalMin(double * numbers) { + int length = numbers[0]; + unsigned final_num = 1; + unsigned local_length = 1; + + for (int i = 2; i < length; ++i, ++final_num) { + if (numbers[i - 1] == numbers[i]) { if (local_length) ++local_length; + } else if (numbers[i - 1] < numbers[i]) { + if (local_length) final_num -= (local_length - 1), local_length = 0; + } else local_length = 1; + } + + if ((numbers[length - 1] == numbers[length - 2]) && (local_length)) final_num -= (local_length - 1); + + return final_num; +} diff --git a/15Ex/replace_local_min.h b/15Ex/replace_local_min.h new file mode 100644 index 0000000..b2619fd --- /dev/null +++ b/15Ex/replace_local_min.h @@ -0,0 +1,6 @@ +#ifndef REPLACE_LOCAL_MIN +#define REPLACE_LOCAL_MIN + +int replaceLocalMin(double * numbers); + +#endif // REPLACE_LOCAL_MIN diff --git a/15Ex/tools.c b/15Ex/tools.c new file mode 100644 index 0000000..f2ebc66 --- /dev/null +++ b/15Ex/tools.c @@ -0,0 +1,50 @@ +#include "tools.h" + +FILE * getFile(void) +{ + FILE * file; + char filename[50]; + + printf("Enter filename: "); + if (scanf("%s", filename) == 1) + { + file = fopen(filename, "r"); + if (file == NULL) { + printf("Error file!\n"); + return NULL; + } else { + return file; + } + } else + { + printf("Empty name!\n"); + return NULL; + } +} + +double * getList(FILE * file) { + double current; + int i, length = 2; + double * numbers = NULL; + + if (fscanf(file, "%lf", ¤t) != 1) { + printf("File is empty!"); + return numbers; + } + + numbers = (double *)malloc(length * sizeof(double)); + i = 1; + + do { + if (i >= length) { + length *= 2; + numbers = (double *)realloc(numbers, (length * sizeof(double))); + } + numbers[i] = current; + i++; + } while (fscanf(file, "%lf", ¤t) == 1); + + numbers = (double *)realloc(numbers, i * sizeof(double)); + numbers[0] = i; + return numbers; +} diff --git a/15Ex/tools.h b/15Ex/tools.h new file mode 100644 index 0000000..706e31a --- /dev/null +++ b/15Ex/tools.h @@ -0,0 +1,10 @@ +#ifndef TOOLS +#define TOOLS + +#include +#include + +FILE * getFile(void); +double * getList(FILE * file); + +#endif