From aa583c302ebaa846105a116a21131f67c56256a5 Mon Sep 17 00:00:00 2001 From: Anton Dolozin Date: Tue, 28 Oct 2025 17:35:25 +0100 Subject: [PATCH] The fourth one --- du4/Makefile | 13 +++++++++ du4/a_train.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++ du4/a_train.h | 51 ++++++++++++++++++++++++++++++++++ du4/a_train.o | Bin 0 -> 4088 bytes du4/input.txt | 1 + du4/main.c | 35 ++++++++++++++++++++++++ du4/main.o | Bin 0 -> 4112 bytes du4/train | Bin 0 -> 34632 bytes 8 files changed, 174 insertions(+) create mode 100644 du4/Makefile create mode 100644 du4/a_train.c create mode 100644 du4/a_train.h create mode 100644 du4/a_train.o create mode 100644 du4/input.txt create mode 100644 du4/main.c create mode 100644 du4/main.o create mode 100755 du4/train diff --git a/du4/Makefile b/du4/Makefile new file mode 100644 index 0000000..3c2c463 --- /dev/null +++ b/du4/Makefile @@ -0,0 +1,13 @@ +CFLAGS= -std=c99 -g -Wall + +all: train + +%.o: %.c + gcc -c -o $@ $< $(CFLAGS) + +train: main.o a_train.o + gcc main.o a_train.o -o train + +clean: + rm *.o train + diff --git a/du4/a_train.c b/du4/a_train.c new file mode 100644 index 0000000..37e95fd --- /dev/null +++ b/du4/a_train.c @@ -0,0 +1,74 @@ +#include "a_train.h" +#include +#include +#include + +struct car* add_car(struct car* first,const char* target) { + if(first == NULL){ + first = calloc(1, sizeof(struct car)); + strcpy(first->value, target); + return first; + } + + struct car* temp = first; + while(temp->next){ + temp = temp->next; + } + struct car* newCar = (struct car*)calloc(1, sizeof(struct car)); + strcpy(newCar->value, target); + temp->next = newCar; + return first; + +} + +void print_train(struct car* first) { + struct car* temp = first; + while(temp){ + printf("%s\n", temp->value); + temp = temp->next; + + } + + +} + +void cancel_train(struct car* first) { + if(first == NULL){ + return; + } + cancel_train(first->next); + free(first); +} + + +struct car* clear_train(struct car* first, const char* target) { + if(first == NULL){ + return NULL; + } + if (first->next == NULL && strcmp(first->value, target) == 0) + { + free(first); + return NULL; + } + else if(first->next == NULL && strcmp(first->value, target) != 0){ + return first; + } + struct car* temp = first; + struct car* next = first->next; + while (next->next) + {if(strcmp(next->value, target) == 0){ + + temp->next = next->next; + free(next); + next = temp->next; + + } + else{ + temp = next; + next = next->next;} + + } + + return first; +} + diff --git a/du4/a_train.h b/du4/a_train.h new file mode 100644 index 0000000..5982bfe --- /dev/null +++ b/du4/a_train.h @@ -0,0 +1,51 @@ +#ifndef TRAIN_H +#define TRAIN_H +#define SIZE 100 + +/** + * Jeden vozen vlaku + */ +struct car { + /** + * Nazov cielovej stanice + */ + char value[SIZE]; + /** + * Smenik na dalsi vozen + */ + struct car* next; +}; + +/** + * Prida vozen na koniec vlaku. + * + * @arg nazov cielovej stanice, ktory sa ma priradit novemu voznu. + * @return smernik na zaciatok vlaku. + */ +struct car* add_car(struct car* first,const char* target); + + +/** + * Vypise vsetky vozne vo vlaku + * + * @arg smernik na prvy vozen + */ +void print_train(struct car* first); + +/** + * Zrusenie vsetkych voznov vo vlaku. + * @arg smernik na prvy vozen + */ +void cancel_train(struct car* first); + +/** + * Vyradenie vsetkych voznov, ktorych cielova stanica je target + * + * @arg smernik na prvy vozen + * @arg cielova stanica, ktora sa ma vyradit z vlaku. + * @return smernik na novy prvy vozen + * + */ +struct car* clear_train(struct car* first,const char* target); + +#endif // TRAIN_H diff --git a/du4/a_train.o b/du4/a_train.o new file mode 100644 index 0000000000000000000000000000000000000000..28cfb7649cf5524d9f8ecdbde222d6f52a7fbdf1 GIT binary patch literal 4088 zcma)8YiwLc6+U;b=X&4kM}%$C#+xSFq)NPNr?HYylGr3c@p_}CNuX&3y1v=Hj+g9< z-L;#NB8+VyNJy!rpgx3z`4>z55m1n-C~d9wM=SV&XiohdR~QKs$*v9Y3Rd2(Y=GyL^?zUDjR3C>ph3lcDdtO7x@wLW zp2`+7rkOe_Lml=vi8m>Y$FXsFi7q2QS&BM%wZ6G*!RC<0`Ih8*{!`ZPEqM^G0Z*Fl ziD&X6H|#%K*1uoo_lk2Uq~fwVygjgWg50qpC^86*o!EXIc`(Ez%oo8qJ+*guzKVDo z$@PKs|F<<=`{n8-eSY-~nw`_Tm*0!f$~E0wzNXPnk<+FqO}?##C*KC*Rqmfd-+PgP zm8qa>b9|?}mp=_(mX`vw!f{K1ffaB6z{*=hH)?h6Us+r0sKs4urj^C!ft6a^CFmaj zV`sn22V*eK+_bs8dg;hK@}6DL&3D({Ams0vU!6w&@VSQm+8i!xcgO!gr`eqvtza(C zf@XP6Do>922zjku`rJG)UF>Pb*5+4_&@AW3IgOE97i^nNtP|$=ueG)3IDf|D99J(5 z&aWXKC%=2t_p-!!4LKh|4A+k9H74t>>dcr6ME%a(;lnz|^wq>1-ymj=XfMa8^@%}N zI?q*&w}g4Io#(>idv&*7YCU+oNzEN!`KWbKb6&3@uvA@m4CSxJ_!H`@@^R+Vu$Hlk zpR`sj7Hb!JZ0ecVhu?^mJ6bw6$67bH8I=wkioG<{{+Yld0S}Ibu4zN8pwXSNhp;+4(_8C#G| z$aAHog+lBA(c4O`EK=C>C49AffI1O(F-)D(1I}Hpht5pP2WeXnfnnO_m;+6_fvV+0 zw3~HzP$}}DyYCLVpB;EmFCB1Vz1t8P;W<+Zq^>S5#{p0t#Mj+(pdWy4fNp}WgI)u@ z33>;#2>J`?A0R$|pMVBSrJNm2=d8l{=!9LaWQ&Dp-@bTnyf?bjvG(-s>xCBYdpO?z z5LsrmY-J1aG$m5mb7iaibmFKzVdsh^yPP;u%;&8_CWU{GGsR-Ak~n>IxRN+wr5`*QXb8gD^;pma+#P??d^yjYz%-nHNE-klc46&a?BjVwu|NM; z@qaMK^WXEG)Q7=4nahDIUny_nLqq)bNATu5A^V2@*?sAE`oT0c|mzG zxp6$+xzq;2A*U^%?I3Nt-rj`M@853v{kNQ&)A z5pt)4emyybeDwWX2+nL+bc6GZWxj3elfNGwzGM;^&xrdRS#08QhUH|2)m(&;62TO5 zb_>F@_cNeAF(rID>gRz)Go~>U4=#S~f7}f5nmb6{Mq|8&XaiVKJehl<;5ZjOzrr?Q zejS|cb5c)9{bR)7@2rO(3NWQUa{0ll;5frQli)t^&q{r#)S1KIh)T|9kM$PG5zFV? z7?JvbOdap2v&S#6K)`b^acd`iS(w)!_Iq zfO8uJ)r8ZR8}!E;^hX=?)&`w&W*pCbGS&6WkN-68TeJ3_Hq$kCGj8#kTiZ09h|<$$ gdhCLX8YOeIY}*9ST&|d=Ts2?X<9z#^FK*iZ0J^2DCjbBd literal 0 HcmV?d00001 diff --git a/du4/input.txt b/du4/input.txt new file mode 100644 index 0000000..7128fcc --- /dev/null +++ b/du4/input.txt @@ -0,0 +1 @@ +Bratislava diff --git a/du4/main.c b/du4/main.c new file mode 100644 index 0000000..9f43a8f --- /dev/null +++ b/du4/main.c @@ -0,0 +1,35 @@ +#include "a_train.h" +#include +#include + +// Testovaci subor pre vlak +int main(){ + char buff[1000]; + struct car* train = NULL; + train = add_car(train,"Presov"); + train = add_car(train,"Bratislava"); + train = add_car(train,"Levoca"); + train = add_car(train,"Spiska Nova Ves"); + print_train(train); + clear_train(train,"Levoca"); + print_train(train); + printf("Zadajte zoznam cieľových staníc a počet cestujúcich.\n"); + printf("Zoznam zakončite prázdnym riadkom.\n"); + while (fgets(buff, SIZE, stdin)) + { + add_car(train, buff); + + } + print_train(train); + printf("Zadajte stanicu, ktorá sa má vyradiť:\n"); + char buff2[SIZE]; + fgets(buff2, SIZE, stdin); + printf("%s\n", buff2); + printf("Výsledný vlak bez stanice %s bude:\n", buff2); + clear_train(train, buff2); + print_train(train); + + + + return 0; +} diff --git a/du4/main.o b/du4/main.o new file mode 100644 index 0000000000000000000000000000000000000000..7032b2943ffe1c97047f96c6e867409ab5e7fd6b GIT binary patch literal 4112 zcma)9e{2-T6`tMmuFt+R_F+>yB6612*SamfGsMJJjKevY3c`_Cwo4rZUDkVRd+od3 z)9u|gI8-sEicpj&wnEjWs?wZPBv2YvYDq;Qpag>ysehFI6IE(e8L5@1(hAgH!U5ub zZ+F%{Ux{F(ci($&-uve5%_y$g1sYuey~mMtmZi?I^B;I;+?$f!|bBck(&Yn&1vq zUCZb5{F(RvMe;K}B<}L2swrcvFrjK=V>zQp^$vWif9M-4AyYh|#66egl`dadL+SIG z*0@apm3$#Sr@Q&{>UX*zK=Q0 z&4=XEQmGuJRPtr`{Eu?Jt2Lf7SI1bbr{1?dOUoF}efU1&eCIfy0+KZZ6(;tJoylr? zUM*PPF|CxUCjF^$8D{xHWJ)93{ckN4O?!73Sxwn(eF9+8D9vpK)A+bbq`grT@<*&2fEH|>H#m2-E#+lp1 z*gPmtElh#D7niu1?9vqO~o0b^&W zpK84hKl%Q%yxdGS>5vu9H5|WU^NS(2p%9t_Z)?w;~5_OcZLdrm-5D}u$ zMkx^e-qGmIm!i4mhUSgY$j0@u(~Rxj#r8Bl8R`v**z^HG*wctF$tL)^vEijQ7KlC- z3PF`g4TYY9S{)N8JJAw|QsSP*9ry+YyO_A*V64Waz!6ki4=%htjRK`pJYJnTaCxKl zz+?kh8;J>6HF_PxOb`RE4zsF;zEfn0aq6xSODxb!9Xs$-%_K<{WI0$Z?xWsXu_Uba zhImd$EQw-<`om%=u-f0i#N*^`5KC37-d-lYN#2N9l2*N6X5uf%+ai|aRqxlBc$K^x z#ZvXEw~8}7DwcxPZv8^0n#pzaAc5ECgc?>IAzgeOXL7LBQ#Y?;kMu%iQc&`$si7yl z5n#1nf;&`~6@uXqMF?RQ4pWxUFj+PiDI8Ul4xvV~^#o)JQh?AqNYC{yr~oZZ^xGIPFS%mkH@xsm1Q*3is>w# zG{m)yYvkfP?Mz0qQb`>DBetD(;===bo%lXYe{Og*=A@=snHvA5gQ4P@ zmA9>wowjF8D_(FkZR@sps?f#sNiB!(NB_`J|MTkbo&&qok>>|@sj53VGp#%uD~yk` zd=AAh9kE3%T`-tM_bKYx%IF>?VH^3Eo;NUk)ZXHFisO46Z*lwr|70XM4si6c-QTnL zrAg-*u8(XIych1?O(ys6>%_FVo%r!%iH+i>Ui$ITJE;?)&e;>8JIR}2UHQRLTBr{p zv{_6$><0VIZ;5!$6ydO!y-rm`J;a1!(iJ0PQGm%aGzVnvw>( zJyx_&Vbhci0tG?1v#ySSXdqA?bEo1l*a7JEQmeQLIy*RZ?Bz#0?7jc$K6m21-rc*} zDdEkR|N52pH|@B5sr9EPrBA*qW3ZZ)nQWFKwPIV7v|+DQCqE;F&PyBQ6}1U!SpKI} z`%Jkv0u&?%yh|z`_B8;p)*W{-k+_PaZ+m#?-$3HI1;o`S`F9WdZUAY#KLN3> z9UlQH{~VC=&w6<1=RnFo4aA;G{>;O^x4Hi(K{eE8O;vm}A`bkD3>_od5?l8$x{k(Q}sDem$qi#zyk*=i6b|m(~9?>@t%btgvZb z%KNcL*4Xh1n_|o3zgS_@I+yn|b$r6eJ1ninaBF8O{{N_SMyo1r@hQ{FGBu08sd?{3 zVyd1tw486y=f#WE^l4R}oL0v*GtD!`*Y->lv|Nf06YKGnZeMxASGM^|m#;j|()mnw St8YSqxy3i3z@%;Ew*LW2i-3^; literal 0 HcmV?d00001 diff --git a/du4/train b/du4/train new file mode 100755 index 0000000000000000000000000000000000000000..91dcb39d570110d69af001df9bc231afbcce5e27 GIT binary patch literal 34632 zcmeI5Yit}>702)FI4Dc^DH#9gkJ?TV64e8EUW6(iAO+IDfglS`cZx@a(j>|hM1$GOrz9EU1ObK|Z? zrD^-NozBuC?jb;FOP~y+k(Ah0K^0}6>Dz|u#%sk`TOy9XYl+3ElzIlrYv-)({%sGm zG~e$5&jj*&?})leY4uE_AW=L?LefGtDmT-2wnWPQx&u8$7IqOeIm1f@Lkxs~nnzuQ!L z=ofc{f0cjzrHyElp-2f*iNjxM*NMGY^tF<^Q26Jo#ro{^l+b`{Li64Or9S68Y{hLP zUCRae>>RREdc1B+9r7}|9p4%h6uy(Z&T&a3 z7ebCRO`+_8^30C6&^IZ>tJF`q&Y~UX=h)v0g_UG~-iy<@E_)I6q8P7;?94Keqd31r z-`uiD?owD}YbBAh^AI)J_iV4K$-aj1vlvfv^rBAXXHZUzK0NPdStc#{bC(diD8C8x z<5=tf?`(dgapJ1^)A7l$a-k5Grt>4=iTsqvj)m9E6Tk7WGCwYf?~mg;j@6Zz44${HfM*IhoIP5n9W@!~#;7&E2V>r(J@ z;~qfU9PCSoQQP3=gE=Vf*r+m}A8DFE-dQ{UDS`Y$6Zui(k1^xu_ve7m7khu+i!Yr6 ze_nq@UipzN69uraV~Xw3z?Ug4`R_tkIp)o=6FZ}-(d>eSnlx@8WCElD+HSTS`#6>a)}si|UTzhU*M z@-}lol{<7x>`|lYBPm@THir{xT-FTz>=|=l>a^A?TPZa$^`a)La=&@@2|XoiI{ra; zWa@{Sq4m}+6?+_)VYSapoPEMTkpASr%~<%6wT1m>*cCxV(PR!5L5f)ZhhF!!_ahjoh5gtqdG=9p9!l` zlK4w{zIWmIA3;e<|D%vZ?CZ4)eTJ0d(_jUZNfC(@GCcp%k025#WOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l z2`~XBzyz286JP>NfC(@GCcp%k02BDX6R5)1{z$4a&NsuVGWPe4VLM+8tIFWZ!*>5- zw{*UKU6paaYL>B^`N9O4025#WOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XB zzyz286JP>NfC(@GCcp%k025#WOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XB zzyz286JP>NfC>E91Y~%&LsL+C*SYgs0H{FxFNUReiF;z#BltCdh}YuyN%#Q)sRr5x z?Sk%y9)Ug${WkP_7_TS_-i)jDDOzuz(xV!&;+B1BH5ql9qDG?MsU@}kAsR0fO^wA& zO(;G4^pu4nsp~@NPa26-k3ig{7VpO#k|G)@HTpq=u(-Som%|mfyn#2fht!0o$COl3 zH4?(Q2Ol)uzTS3+^>Z}L&&ub7ka-h)$fI__1V<6 z7K(TI+Cs&)K)-+ftLXR7w;E&pb`5NrfB(;m=f8{}fS}m7LTP@_rZ$>?5=ufg&F}B0 z{7>SjP+tT}{+>;3@MlvdQ1yPyTJLKi+X| z`+K(Mzn&@(D#+j8@8?IysgmBB456{aqY@Qwy_6r>-uyHl*yD9e z_rCi+QoQ>JHLlUBW&NSTSK88e5CM19&))r}4H z(e$QzK{?fF;s(R)QRahJ$ZO1#IsX|J0&Gd9%XnW_P!v0tH4Bn0iUH`)S?XP<&Z00*Q zue#^#=OQ~xI{uJeeB3-9KXvHbT&AaV`-<HNFG=H;Ve70rmi_h$Kp#BTbDd;T# literal 0 HcmV?d00001