From 750fc1c56d44c19099982d4d7b4e3297cb5bd276 Mon Sep 17 00:00:00 2001 From: DIvan2000 Date: Sat, 30 Nov 2024 13:07:30 +0400 Subject: [PATCH] first commit --- .depend | 4 ++++ .gitignore | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++ Makefile | 25 ++++++++++++++++++++++++ README.md | 1 + Recurce | Bin 0 -> 15872 bytes src/foo.c | 7 +++++++ src/foo.h | 6 ++++++ src/main.c | 29 ++++++++++++++++++++++++++++ src/prog1.c | 11 +++++++++++ src/prog2.c | 24 +++++++++++++++++++++++ src/progs.h | 7 +++++++ 11 files changed, 168 insertions(+) create mode 100644 .depend create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 README.md create mode 100755 Recurce create mode 100644 src/foo.c create mode 100644 src/foo.h create mode 100644 src/main.c create mode 100644 src/prog1.c create mode 100644 src/prog2.c create mode 100644 src/progs.h diff --git a/.depend b/.depend new file mode 100644 index 0000000..62a4b95 --- /dev/null +++ b/.depend @@ -0,0 +1,4 @@ +foo.o: src/foo.c src/foo.h +main.o: src/main.c src/progs.h +prog1.o: src/prog1.c src/progs.h src/foo.h +prog2.o: src/prog2.c src/progs.h src/foo.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cd531cf --- /dev/null +++ b/.gitignore @@ -0,0 +1,54 @@ +# ---> C +# Prerequisites +*.d + +# Object files +*.o +*.ko +*.obj +*.elf + +# Linker output +*.ilk +*.map +*.exp + +# Precompiled Headers +*.gch +*.pch + +# Libraries +*.lib +*.a +*.la +*.lo + +# Shared objects (inc. Windows DLLs) +*.dll +*.so +*.so.* +*.dylib + +# Executables +*.exe +*.out +*.app +*.i*86 +*.x86_64 +*.hex + +# Debug files +*.dSYM/ +*.su +*.idb +*.pdb + +# Kernel Module Compile Results +*.mod* +*.cmd +.tmp_versions/ +modules.order +Module.symvers +Mkfile.old +dkms.conf + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3583dc7 --- /dev/null +++ b/Makefile @@ -0,0 +1,25 @@ +TARGET ?= Recurce +CC ?= gcc + +PREF_SRC = ./src/ +PREF_OBJ = ./obj/ + +SRC = $(wildcard $(PREF_SRC)*.c) +OBJ = $(patsubst $(PREF_SRC)%.c, $(PREF_OBJ)%.o, $(SRC)) + +$(TARGET) : $(OBJ) + $(CC) $(OBJ) -o $(TARGET) + +depend: .depend + +.depend: $(SRC) + rm -f "$@" + $(CC) -MM $^ > "$@" + +-include .depend + +$(PREF_OBJ)%.o : $(PREF_SRC)%.c + $(CC) -c $< -o $@ -D_PROG_NAME=\"$(TARGET)\" + +clean : + rm $(TARGET) $(PREF_OBJ)*.o *.d diff --git a/README.md b/README.md new file mode 100644 index 0000000..4b1c20a --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# InfLab4 diff --git a/Recurce b/Recurce new file mode 100755 index 0000000000000000000000000000000000000000..91274747990203c61ae737b77d66431828aae9a5 GIT binary patch literal 15872 zcmeHOeQ;FO6~7xu31~iG0OJ?Dg0WC#*$pA`6=J0_dB+1TJz z4FuGkHB-v8ma$B0{YTrW(-c8dgt&ksU>WCaYiBam+KjE8q^LuuwiA`I{hfR7dAvL~ zt!+pDaQ4o;ckcO}&wJi`o4eWb9tduzFYLl80WSV8N6#BuaJ@jlENpgsIT$AiH7`Y2Hms zwNs`nx8oUPjA6*LO)qFWrcOJmjkQSWTXo}UhptPvrff$n*$r#EVQptqN{Hl|ay=;x zI+p2rx@iD18UcA0!fn^B?c8*o)@MpFXx#o*GV;H~+obJ==PN&Mx=O)CVJKWheXjcmHm*%5!f2liz*K|LV`{<_!L<{d&@&b&yZe zp+OiOJV?d|V;_gkh0=^XijM#@^57IBpFUlaeE8}K@GB<3p8{^+a1RqeKL3FU@aKRV zINZYzV4fQ!zN0JIDMF#nWVq?BP*clYq2_R`RcwzYn_9vN2yh=Xku;GEwS{AGAWhxj zP;)FEZjId=6`dW4SUlMbIM&(Tw0wD}vnd>J7Gy;?ORZSHp<&J1P__3adsbu5s=Z6? z`H~tDYS_{kibNC9?Xk{eG_j>|ZEJfxx+T1=H46XR+uGwgk&sf&tB57xUc-Gg8OJ2d zise~9-ry&TuRw>Nk1JxaQo4)78k;Hk$>J`}cU={mN_T0O<_~@6QC#vOu@gKE{#@hF zlb-1cAJU&&jQcdcETH6!GoQId;dDQF)Ks2NJ8=D|O5Aeb`XgWBLk@hJ!_Tk-zs!O2 z2O|048j-jpKxZKccRp_w0YVin|DGsTR0h<9^l1$|jDVUE&TA%QL4eN64+>lug$fiZ zP^dtm0)+|`Dp07vr&fW#mCyOW?0vh$Ocx(tEQGlylPtb*+wnNA0eK$YNHv+A0(c(R-^rr|0(gbr5b%)@=p*?TdC2# z;3*&fI}NGqH_X(VX78WQZ`u;{XZ&Z(zPcL`Bsc3asK3|jEuXs^CP=uiZU+#vuQ)+u z`B-ummh!GwEoEwMxO{F8>7CRR`VCTl=^7#nFPf?I=J9uLF^`W;GCePu*^9}UaBxgJ zD9H^sm(N{y$)57-sVj!9=vuPX?5%qYn!-%Il`J*Wb$bdje zrF>5|Uz$@r$=~R9=x&7%T!@O)eHVJ~yWn|X$^g~$+_H4=LhrC=Po}F9v($;>f0^sC zvSX=JBfo-CZ^m=Ct@Q${(S8oBvmE(i7j%`R5#e$5(+ z^_MH<>0n1z;nX|gOCbwnl`O%zC|P!{asbJRksBz*d1~H4^V#s8()QVZ=5lHg#Zu!^ zMyG;fWPU1mL9X!%TG^?Q4=B`FZDe|5YFzz_a78QIWr{|JZ;K2^-fVEMCssZ zWOoO$OPw(Lg2QHC={%|PitV9RshNFShoz5Vr;pJKxm@|P!Qt}3jI88YCu2#ExN^vR z=$zk72Zzd^6|DMddh6MA@YUrf$~T@!1<$6pT8e7~hleyc(BS-6iQU%)V_9AO*Xue&fyEk1m-u&DsY^k2L_nvFt7a z{Wlu5eqZg42B3q=e1%~hkZuO8=d3~NpkeK|4w8lXRmR$vO~dVB@&kjzhV=rbgVr-L z-cjplws(aARlnD;el%W!Jgh_3^T^Gj6!*aDSpbK@4G?$)!1I_s1n)cH8&M79K)QfP z%lf4em&OJ%+y(E4AwPm7zV2UX_Fge(enEVpLDfL`N3svY0^0bB zFGTf!ou^zVr8OwC95Ae-$O9|M_R@4fCVCVVLnzWh(w0=}w~l0YLOx!WeGp6Dt*bYH zOuH9SV%86l<^WPYV)f&a97Bjh@byBrS4Bmk)8v@~Abz&zqZcCmdGhlZEqYv42S3rO zsvGYhC1zAb)J;Qq(>wsvi^k9-2Poo3)MI4H}hZ{S08cjJjj zTZg@(dxasYBBFjlRb-)2XH<3S6Yteb-Wc?fYGjv5@NIVtfIcG@=N8HeY2!T+;Y{*FD|)m9_f+o z9XO^U_GSWBmsLDiw6^qfMU9A{`tK%oMK3KS|(s6e3tpMeT+{~h<+(bk6s_59JeToJng5Y2yT=#Ac$ zn&rN}t2K`;nH*PX%Kd%UXrASNznE($D5IO{>>fEi;oi7mE$5AWR{P=Jyh_c_(v*od z6C=8xPknnuzq(f7{VMg_(V%`)IW)j{Kqta^XS5pk;&J>Bb80;hOI7>|DA#vhuLnQ2 zN}lU{Uh}`!^7l2*dFwErI^q6tci>vNYZrok^`!A-O`A2nN7Dy2Ra)pX52)GtwQE-x z3(%ds(D2uItG#}s+E-oUTjoP&YktvkzmJ{dp;X7o;;%Wkh^|{c96w#>#b-}|liz%P z<^cDIS;AeXFOY$lF1Sx!vN)~4;lbU-_aWn(Fv-`i+y>lWB?o<3;+4V|aDbSmaOCsz zn8eFOn-?BK#c84~CXKO}ImkryFqr^5LhUK>mFJ)>QPj zAo=u1fg4I?+?l>tPA{so?;jQxBkpwSN;VWi4I(sV%6!U1O7{i|vanL7#&nUvDx9d3+&F$^pCPA&~ARUSJ?S4(GK||}lwsCc1!&19#n$;UZx7OF+9^4YzvU<&iAR5cv4etSNVE+#d>eNSX>r!L8 z%teHvk#I6Bs9`<^=i}S#ZGH5Ld}VATQt-Xfh}{&A{0&}!bp@Xcn-(mwpbIQw!;@rUKv0+!?h6JruMeBXdG4f zzX$D4@M!4&Vt@2~GTxtXAkuY?`C#a8OOXaAdT)wtc)!3ry%y)RcfUVH{||Ex{#;|M z0TZYF0liURYOtcFZhP9-{R4Xp&Y$;POnLph?{eoKhCS`M*q--gObuNy%8{mQ&-VvdrXAXji5A;oo^;vsd!J0>u8k|(vp?ELIOE&<487kdWkpTh`9GuWx&Fe? zikkl36`$*;wZ!w7P<*!MeHznMtf;9w{u!6Oah+0R`nt>B9sf6w(;k%5 +#include "progs.h" + +int main() { + int prog_number; + + printf("Лабораторная работа №3\n\nВариант №1, 6106, автор: Морозов Иван\n\n"); + + printf("Выберите программу: \n\n"); + + printf("1. Программа для нахождения количества значений n на отрезке [1; 100], для которых F(n) больше 100.\n"); + printf("2. Программа для нахождения разности между минимальной и максимальной цифрами F(x).\n"); + + prog_number = getchar()-'0'; + + switch(prog_number) { + case 1: + prog1(); + break; + case 2: + prog2(); + break; + default: + printf("Ошибка: недопустимый номер программы!\n"); + return 1; + } + + return 0; +} diff --git a/src/prog1.c b/src/prog1.c new file mode 100644 index 0000000..7932fe6 --- /dev/null +++ b/src/prog1.c @@ -0,0 +1,11 @@ +#include +#include "progs.h" +#include "foo.h" + +void prog1() { + int counter = 0; + for(int i = 1; i <= 100; i++) { + if(foo(i) > 100) counter++; + } + printf("Количество значений n на отрезке [1; 100], для которых F(n) больше 100 равно %d\n", counter); +} diff --git a/src/prog2.c b/src/prog2.c new file mode 100644 index 0000000..5d80217 --- /dev/null +++ b/src/prog2.c @@ -0,0 +1,24 @@ +#include +#include "progs.h" +#include "foo.h" + +#define MIN(X, Y) (((X) < (Y)) ? (X) : (Y)) +#define MAX(X, Y) (((X) > (Y)) ? (X) : (Y)) + +void prog2() { + int x, d_min, d_max; + char fx[16] = ""; + printf("Программа вычисляет разность между минимальной и максимальной цифрами F(x).\n Введите данные.\n"); + printf("x: "); scanf("%d", &x); + + sprintf(fx, "%d", foo(x)); + + printf("F(%d) = %s\n", x, fx); + d_min = fx[0]-'0'; d_max = fx[0]-'0'; + for(char* d_ptr = fx+1; *d_ptr != '\0'; d_ptr++) { + int d = *d_ptr - '0'; + d_min = MIN(d_min, d); + d_max = MAX(d_max, d); + } + printf("Разность между максимальной и минимальной цифрами равна %d\n", d_max-d_min); +} diff --git a/src/progs.h b/src/progs.h new file mode 100644 index 0000000..814d6f4 --- /dev/null +++ b/src/progs.h @@ -0,0 +1,7 @@ +#ifndef PROGS_H_ +#define PROGS_H_ + +void prog1(); +void prog2(); + +#endif