diff --git a/a b/a new file mode 100644 index 0000000..e69de29 diff --git a/assignments/shell/TraverseDir/README.md b/assignments/shell/TraverseDir/README.md new file mode 100644 index 0000000..45e8d09 --- /dev/null +++ b/assignments/shell/TraverseDir/README.md @@ -0,0 +1,3 @@ +杜伊涵 22920142203807 +shell作业: +写一个shell脚本TraverseDir.sh遍历输出当前目录及其子目录下的所有文件和目录。 diff --git a/assignments/shell/TraverseDir/README.md~ b/assignments/shell/TraverseDir/README.md~ new file mode 100644 index 0000000..1349165 --- /dev/null +++ b/assignments/shell/TraverseDir/README.md~ @@ -0,0 +1,3 @@ +杜伊涵 22920142203807 +shell作业: +写一个shell脚本TraverseDir.sh遍历当前目录及其子目录下的所有文件和目录。 diff --git a/assignments/shell/TraverseDir/TraverseDir.sh b/assignments/shell/TraverseDir/TraverseDir.sh new file mode 100755 index 0000000..386a8ad --- /dev/null +++ b/assignments/shell/TraverseDir/TraverseDir.sh @@ -0,0 +1,15 @@ +#!/bin/bash +function traverse_dir() +{ + for file in $1/* + do + if [ -d $file ] + then + traverse_dir $file + else + echo $file + fi + done +} +traverse_dir $PWD + diff --git a/experiments/gcc-1-hello-world/Makefile b/experiments/gcc-1-hello-world/Makefile new file mode 100644 index 0000000..2e4bc12 --- /dev/null +++ b/experiments/gcc-1-hello-world/Makefile @@ -0,0 +1,6 @@ +main:main.o + gcc main.o -o main +main.o:main.c + gcc -c main.c +clean: + rm main *.o diff --git a/experiments/gcc-1-hello-world/Makefile~ b/experiments/gcc-1-hello-world/Makefile~ new file mode 100644 index 0000000..e69de29 diff --git a/experiments/gcc-1-hello-world/mian b/experiments/gcc-1-hello-world/mian new file mode 100755 index 0000000..ab0a53d Binary files /dev/null and b/experiments/gcc-1-hello-world/mian differ diff --git a/experiments/gcc-2-multi-source/Makefile b/experiments/gcc-2-multi-source/Makefile new file mode 100644 index 0000000..0531065 --- /dev/null +++ b/experiments/gcc-2-multi-source/Makefile @@ -0,0 +1,9 @@ +main:main.o calculator.o + gcc main.o calculator.o -o main +main.o:main.c + gcc -c main.c +calculator.o:calculator.c + gcc -c calculator.c + +clean: + rm main *.o diff --git a/experiments/gcc-2-multi-source/calculator.c b/experiments/gcc-2-multi-source/calculator.c index 391fc7f..979fdaa 100644 --- a/experiments/gcc-2-multi-source/calculator.c +++ b/experiments/gcc-2-multi-source/calculator.c @@ -1,5 +1,5 @@ #include "include/calculator.h" - +#include int sum(int x, int y) { return x + y; } @@ -13,5 +13,10 @@ int multiply(int x, int y) { } int divide(int x, int divisor) { - return x / divisor; + if(divisor==0) + { + printf("Divisor cannot be 0!\n"); + return -999999; + } + else return x / divisor; } diff --git a/experiments/gcc-2-multi-source/calculator.c~ b/experiments/gcc-2-multi-source/calculator.c~ new file mode 100644 index 0000000..979fdaa --- /dev/null +++ b/experiments/gcc-2-multi-source/calculator.c~ @@ -0,0 +1,22 @@ +#include "include/calculator.h" +#include +int sum(int x, int y) { + return x + y; +} + +int subtract(int x, int y) { + return x - y; +} + +int multiply(int x, int y) { + return x * y; +} + +int divide(int x, int divisor) { + if(divisor==0) + { + printf("Divisor cannot be 0!\n"); + return -999999; + } + else return x / divisor; +} diff --git a/experiments/gcc-2-multi-source/main b/experiments/gcc-2-multi-source/main new file mode 100755 index 0000000..29b98f5 Binary files /dev/null and b/experiments/gcc-2-multi-source/main differ diff --git a/experiments/gcc-2-multi-source/main.c b/experiments/gcc-2-multi-source/main.c index bdbb5b9..dfb4d9a 100644 --- a/experiments/gcc-2-multi-source/main.c +++ b/experiments/gcc-2-multi-source/main.c @@ -7,6 +7,9 @@ int main(void) { y = 3; printf("%d + %d = %d\n", x, y, sum(2, 3)); - + printf("%d - %d = %d\n", x, y, subtract(2, 3)); + printf("%d * %d = %d\n", x, y, multiply(2, 3)); + printf("%d / %d = %d\n", x, y, divide(2, 3)); + printf("1 / 0 = %d\n", divide(1, 0)); return 0; } diff --git a/experiments/gcc-2-multi-source/main.c~ b/experiments/gcc-2-multi-source/main.c~ new file mode 100644 index 0000000..ba90d84 --- /dev/null +++ b/experiments/gcc-2-multi-source/main.c~ @@ -0,0 +1,15 @@ +#include + +int main(void) { + int x, y; + + x = 2; + y = 3; + + printf("%d + %d = %d\n", x, y, sum(2, 3)); + printf("%d - %d = %d\n", x, y, subtract(2, 3)); + printf("%d * %d = %d\n", x, y, multiply(2, 3)); + printf("%d / %d = %d\n", x, y, divide(2, 3)); + printf("1 / 0 = %d\n", divide(1, 0)); + return 0; +} diff --git a/experiments/gcc-3-real-project/calculator.c b/experiments/gcc-3-real-project/calculator.c index 391fc7f..979fdaa 100644 --- a/experiments/gcc-3-real-project/calculator.c +++ b/experiments/gcc-3-real-project/calculator.c @@ -1,5 +1,5 @@ #include "include/calculator.h" - +#include int sum(int x, int y) { return x + y; } @@ -13,5 +13,10 @@ int multiply(int x, int y) { } int divide(int x, int divisor) { - return x / divisor; + if(divisor==0) + { + printf("Divisor cannot be 0!\n"); + return -999999; + } + else return x / divisor; } diff --git a/experiments/gcc-3-real-project/calculator.c~ b/experiments/gcc-3-real-project/calculator.c~ new file mode 100644 index 0000000..6742d36 --- /dev/null +++ b/experiments/gcc-3-real-project/calculator.c~ @@ -0,0 +1,22 @@ +#include "include/calculator.h" + +int sum(int x, int y) { + return x + y; +} + +int subtract(int x, int y) { + return x - y; +} + +int multiply(int x, int y) { + return x * y; +} + +int divide(int x, int divisor) { + if(divisor==0) + { + printf("Divisor cannot be 0!\n"); + return -999999; + } + else return x / divisor; +} diff --git a/experiments/gcc-3-real-project/include/calculator.h b/experiments/gcc-3-real-project/include/calculator.h index a5e00e3..2059a48 100644 --- a/experiments/gcc-3-real-project/include/calculator.h +++ b/experiments/gcc-3-real-project/include/calculator.h @@ -1,9 +1,5 @@ -#ifndef _CALC_H -#define _CALC_H - int sum(int x, int y); int subtract(int x, int y); int multiply(int x, int y); int divide(int x, int divisor); -#endif //_CALC_H diff --git a/experiments/gcc-3-real-project/include/calculator.h~ b/experiments/gcc-3-real-project/include/calculator.h~ new file mode 100644 index 0000000..a5e00e3 --- /dev/null +++ b/experiments/gcc-3-real-project/include/calculator.h~ @@ -0,0 +1,9 @@ +#ifndef _CALC_H +#define _CALC_H + +int sum(int x, int y); +int subtract(int x, int y); +int multiply(int x, int y); +int divide(int x, int divisor); + +#endif //_CALC_H diff --git a/experiments/gcc-3-real-project/main b/experiments/gcc-3-real-project/main new file mode 100755 index 0000000..baa84ef Binary files /dev/null and b/experiments/gcc-3-real-project/main differ diff --git a/experiments/gcc-3-real-project/main.c b/experiments/gcc-3-real-project/main.c index 6798996..cf88d70 100644 --- a/experiments/gcc-3-real-project/main.c +++ b/experiments/gcc-3-real-project/main.c @@ -8,7 +8,10 @@ int main(void) { x = 2; y = 3; + printf("%d + %d = %d\n", x, y, sum(2, 3)); printf("%d - %d = %d\n", x, y, subtract(2, 3)); - + printf("%d * %d = %d\n", x, y, multiply(2, 3)); + printf("%d / %d = %d\n", x, y, divide(2, 3)); + printf("1 / 0 = %d\n", divide(1, 0)); return 0; } diff --git a/experiments/gcc-3-real-project/main.c~ b/experiments/gcc-3-real-project/main.c~ new file mode 100644 index 0000000..134313a --- /dev/null +++ b/experiments/gcc-3-real-project/main.c~ @@ -0,0 +1,17 @@ +#include + +#include "include/calculator.h" + +int main(void) { + int x, y; + + x = 2; + y = 3; + + printf("%d + %d = %d\n", x, y, sum(2, 3)); + printf("%d - %d = %d\n", x, y, subtract(2, 3)); + printf("%d * %d = %d\n", x, y, multiply(2, 3)); + printf("%d / %d = %d\n", x, y, divide(2, 3)); + printf("1 / 0 = %d\n", divide(1, 0)); + return 0; +} diff --git a/experiments/gcc-4-optimize/calculator.c b/experiments/gcc-4-optimize/calculator.c index 391fc7f..979fdaa 100644 --- a/experiments/gcc-4-optimize/calculator.c +++ b/experiments/gcc-4-optimize/calculator.c @@ -1,5 +1,5 @@ #include "include/calculator.h" - +#include int sum(int x, int y) { return x + y; } @@ -13,5 +13,10 @@ int multiply(int x, int y) { } int divide(int x, int divisor) { - return x / divisor; + if(divisor==0) + { + printf("Divisor cannot be 0!\n"); + return -999999; + } + else return x / divisor; } diff --git a/experiments/gcc-4-optimize/include/array.h b/experiments/gcc-4-optimize/include/array.h index 3f079f4..bef1e29 100644 --- a/experiments/gcc-4-optimize/include/array.h +++ b/experiments/gcc-4-optimize/include/array.h @@ -1,9 +1,7 @@ -#ifndef _ARRAY_H -#define _ARRAY_H + void array_fill_with(int *array, int length, int fillWith); void array_print(int *array, int length); void array_add(int *arrayX, int *arrayY, int *arrayZ, int length); -#endif diff --git a/experiments/gcc-4-optimize/include/array.h~ b/experiments/gcc-4-optimize/include/array.h~ new file mode 100644 index 0000000..3f079f4 --- /dev/null +++ b/experiments/gcc-4-optimize/include/array.h~ @@ -0,0 +1,9 @@ +#ifndef _ARRAY_H +#define _ARRAY_H + +void array_fill_with(int *array, int length, int fillWith); +void array_print(int *array, int length); + +void array_add(int *arrayX, int *arrayY, int *arrayZ, int length); + +#endif diff --git a/final-test/c_cpp/Makefile b/final-test/c_cpp/Makefile index 8b13789..a156638 100644 --- a/final-test/c_cpp/Makefile +++ b/final-test/c_cpp/Makefile @@ -1 +1,10 @@ +main:my_stack.o main.o + gcc my_stack.o main.o -o main +my_stack.o: + gcc -c my_stack.c +main.o: + gcc -c main.c +clean: + if [ -e main ];then rm main;fi; + rm *.o diff --git a/final-test/c_cpp/Makefile~ b/final-test/c_cpp/Makefile~ new file mode 100644 index 0000000..dbb969b --- /dev/null +++ b/final-test/c_cpp/Makefile~ @@ -0,0 +1,10 @@ +main:my_stack.o main.o + gcc my_stack.o main.o -o main +my_stack.o: + gcc -c my_stack.c +main.o: + gcc -c main.c +clean: + if [ -e main ];then rm main;fi; + if [ -e *.o ];then rm *.o;fi; + diff --git a/final-test/c_cpp/my_stack.c b/final-test/c_cpp/my_stack.c index 3d461cb..b596a87 100644 --- a/final-test/c_cpp/my_stack.c +++ b/final-test/c_cpp/my_stack.c @@ -4,5 +4,40 @@ * 但是记住g++才是编译C++的编译器 * */ +#define MAXSIZE 5 +int s[MAXSIZE]; +int base=0,top=0; +void stack_push(int x) +{ + s[top++]=x; +} +int stack_pop() +{ + int e; + e=s[--top]; + return e; +} +// The capacity of the stack +int stack_capacity() +{ + return MAXSIZE; +} +// Current available size of the stack +int stack_size() +{ + return top-base; +} - +/* + * return 0/1 to check if stack is empty or full + * 0 - No + * 1 - Yes + */ +int stack_is_empty() +{ + return top==base; +} +int stack_is_full() +{ + return stack_size()==MAXSIZE; +} diff --git a/final-test/c_cpp/my_stack.c~ b/final-test/c_cpp/my_stack.c~ new file mode 100644 index 0000000..46c73d6 --- /dev/null +++ b/final-test/c_cpp/my_stack.c~ @@ -0,0 +1,43 @@ +/* + * my_stack的实现文件 + * 如果采用C++的实现,那也可以把此文件名改为.cpp + * 但是记住g++才是编译C++的编译器 + * + */ +#define MAXSIZE 100 +int s[MAXSIZE]; +int base=0,top=0; +void stack_push(int x) +{ + s[top++]=x; +} +int stack_pop() +{ + int e; + e=s[--top]; + return e; +} +// The capacity of the stack +int stack_capacity() +{ + return MAXSIZE; +} +// Current available size of the stack +int stack_size() +{ + return top-base; +} + +/* + * return 0/1 to check if stack is empty or full + * 0 - No + * 1 - Yes + */ +int stack_is_empty() +{ + return top==base; +} +int stack_is_full() +{ + return stack_size()==MAXSIZE; +}