본문 바로가기

Programming/Algorithm

1 과 0으로 계산기 만들기 - 3 - 최종 소스 !! 교수님께서 가장 빠르게 돌리는 사람에게 좋은 학점을 주신다 하셔서 스레드를 추가했다.나는 mac 을이용해서 비주얼스튜디오의 스레드는 못쓰는관계로 ㅜㅜ pthread 를 이용하여 구현하였다내꺼 속도가 꽤 빨라서 잘되길 바람!!! #include #include #include #include void *Divthr(void *data); bool Equal(int a, int b);int PlusOne (int a); int Plus(int a, int b);int Min (int a, int b);int Mul(int a, int b);int* Div(int a, int b); char Buho (int a); int Pl_buho(int a, int b); //덧셈뺄셈 부호int Mul.. 더보기
1 과 0으로 계산기 만들기 - 2 - 연산은 다했고, 문제가 생겼다 음수연산을 해야하는데 ... 음수연산을 위해선 기본적으로 부등호 함수를 만들어줘야한다. 예를 들어 a 와 b 가 있을때 a 와 b 를 동시에 +1 을 해주는 무한루프를 돌려서!!!먼저 빠져나오는 쪽이 큰쪽 이런식으로 소스!! int Mul_buho(int a, int b){ int unsigned i; if (Equal(a, b)) { i = 0; } else { i = 1; } return i ; } 그리고 ...입력 받을때 부호!! 부호가 같을때와 다를때 !! 를 계산해주는 함수도 필요하다!!//덧셈뺄셈 부호 int Pl_buho(int a, int b){ unsigned int i; if (Equal(a, b)) { if(Equal(a, 0)) i = 0; //덧셈뺄셈.. 더보기
1 과 0으로 계산기 만들기 - 1 - 이제 만들기 시작 !! 더하기 빼기는 비교적 쉬웠다 더하기는 더하는 수만큼 +1 을 계속 해주면 되고, 빼기는 꺼꾸로 예를 들어 x = a+b 면 빼기는 x-a = b 이런식으로 알고리즘을 작성하면 끝밑에는 소스다 . int Plus(int a, int b){ int unsigned i = 0; while(1) { i = PlusOne(i); b = PlusOne(b); if(Equal(a, i)) break; else continue; } return b;} int Min (int a, int b){ int unsigned result = 0; while(1) { if (Equal(a, b)) break; else result = PlusOne(result); b = PlusOne(b); continu.. 더보기
1 과 0으로 계산기 만들기 - 0 - 알고리즘 과목 과제 였었는데.. 정말 재밌게 했던 과제 였던 것 같다교수님께서 기본함수 =, 과 +1 만 제공해주시고 기본 + - / + 는 물론 비트연산 등 c언어 기본 라이브러리 로만 계산기를 만들라고 하셨는데... - 교수님이 제공해주신 기본 함수 -bool Equal (int a, int b){ if(a == b) return true; else return false;}//기본 제공 함수 2int PlusOne (int a){ return ++a; } 더보기