first commit
This commit is contained in:
		
						commit
						750fc1c56d
					
				
							
								
								
									
										4
									
								
								.depend
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								.depend
									
									
									
									
									
										Normal file
									
								
							| @ -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 | ||||
							
								
								
									
										54
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -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 | ||||
| 
 | ||||
							
								
								
									
										25
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							| @ -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 | ||||
							
								
								
									
										7
									
								
								src/foo.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								src/foo.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,7 @@ | ||||
| #include "foo.h" | ||||
| 
 | ||||
| int foo(int n) { | ||||
| 	if(n < 2) return 1; | ||||
| 	if(!(n & 1)) return foo(n/2)+1; | ||||
| 	return foo(3*n+1)+1; | ||||
| } | ||||
							
								
								
									
										6
									
								
								src/foo.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								src/foo.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | ||||
| #ifndef FOO_H_ | ||||
| #define FOO_H_ | ||||
| 
 | ||||
| int foo(int n); | ||||
| 
 | ||||
| #endif | ||||
							
								
								
									
										29
									
								
								src/main.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								src/main.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,29 @@ | ||||
| #include <stdio.h> | ||||
| #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; | ||||
| } | ||||
							
								
								
									
										11
									
								
								src/prog1.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								src/prog1.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,11 @@ | ||||
| #include <stdio.h> | ||||
| #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); | ||||
| } | ||||
							
								
								
									
										24
									
								
								src/prog2.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								src/prog2.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | ||||
| #include <stdio.h> | ||||
| #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); | ||||
| } | ||||
							
								
								
									
										7
									
								
								src/progs.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								src/progs.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,7 @@ | ||||
| #ifndef PROGS_H_ | ||||
| #define PROGS_H_ | ||||
| 
 | ||||
| void prog1(); | ||||
| void prog2(); | ||||
| 
 | ||||
| #endif | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user