C언어 15

[c언어/c++] 분기문(switch) 제거

안녕하세요 업글입니다. 이번 포스팅에서는 분기문(switch)를 제거하는 방법에 대해서 설명해보도록 하겠습니다. 분기문에 대한 설명 분기문은 조건에 따라서 각각 다른 코드를 실행하도록 합니다. if문, switch문이 조건에 따라서 실행되는 코드가 달라지기 때문에 분기문이라고 생각하시면 됩니다. 이러한 분기문은 코드 작성 시 필수적으로 사용해야하는 문법입니다. 그러나 분기 조건이 많아질수록 코드를 이해하기 어려워지므로 가독성이 떨어지게 됩니다. 분기문 코드 #include #include #include #include int main() { int32_t data, result; result = 0; data = rand() % 4; switch (data) { case 0: result = data ..

프로그래밍 2021.01.21

[c언어] 스택(Stack)

안녕하세요 업글입니다! 이번 포스팅에서는 스택에 대해서 설명드리겠습니다. 스택에 대한 설명 스택은 입력된 데이터들을 저장하고 저장된 순서와 반대로 데이터를 출력하는 자료구조입니다. 큐의 가장 큰 특징은 먼저 들어온 데이터는 가장 마지막에 나가는 것입니다. 이것을 후입선출 또는 LIFO이라고 주로 표현합니다. 쉽게 예를 들어서 접시 쌓기를 생각하시면 될 것 같습니다. 가장 먼저 정리한 접시가 가장 아래에 쌓여있고 가장 최근에 정리한 접시가 가장 위에 쌓여있기 때문에 가장 최근 쌓은 접시를 가장 먼저 사용하게 되는 것과 같이 데이터가 관리되게 됩니다. 스택 또한 큐와 동일하게 배열과 링크드리스트를 사용하여 구현할 수 있습니다. 스택 사용 이유 스택은 dfs(depth first search)와 같은 알고리즘..

프로그래밍 2021.01.14

[c언어] 큐(Queue)

안녕하세요 업글입니다! 이번 포스팅에서는 큐에 대해서 설명해보도록 하겠습니다. 자료구조 중 하나인 큐(Queue)는 많은 분들이 알고계시고 프로그래밍을 막 시작하신 분들도 한번쯤은 들어봤을만한 대표적인 자료구조 중 하나라고 생각합니다. 큐에 대한 설명 큐는 입력된 데이터들을 순서대로 저장하고 순서대로 출력하는 자료구조입니다. 큐의 가장 큰 특징은 먼저 들어온 데이터는 먼저 나가는 것입니다. 이것을 선입선출 또는 FIFO이라고 주로 표현합니다. 쉽게 예를 들어서 맛집에서 줄서기를 생각하시면 될 것 같습니다. 먼저 온 사람이 맛집에 먼저 들어가고 나중에 온 사람이 나중에 들어가는 것과 같이 데이터가 관리되게 됩니다. 큐 사용 이유 큐는 bfs(breath first search)와 같은 탐색 알고리즘 등에서..

프로그래밍 2021.01.01

c언어/c++ do while문

안녕하세요 업글입니다. 이번 포스팅에서는 do while문에 대해서 설명드리겠습니다. do while문에 대한 설명 while문에 대해서 잘 모르시는 분은 지난번 포스팅한 while문에 대해서 먼저 읽어보시는 것을 추천드립니다. 2020/12/17 - [분류 전체보기] - c언어/c++ while문 c언어/c++ while문 안녕하세요 업글입니다. 이번 포스팅에서는 반복문중 하나인 while문에 대해서 설명 드리도록 하겠습니다. while문에 대한 설명 c언어 및 c++에서 반복문은 while문, do while문, for문이 있습니다. 이 반 elevate-yourself.tistory.com do while문은 while문과 거의 동일하나 하나의 차이가 있습니다. while전에 do가 있듯이 반복하기..

프로그래밍 2020.12.18

c언어/c++ while문

안녕하세요 업글입니다. 이번 포스팅에서는 반복문중 하나인 while문에 대해서 설명 드리도록 하겠습니다. while문에 대한 설명 c언어 및 c++에서 반복문은 while문, do while문, for문이 있습니다. 이 반복문들 중에서 while문에 대해서 설명드리겠습니다. while문은 조건이 참인 경우 해당하는 코드를 수행하고 조건이 거짓일 때까지 코드를 반복적으로 수행하게 됩니다. 위의 그림과 같이 while문은 ①에서 조건을 확인하고 참인 경우 ②의 코드를 실행하고 다시①으로 이동하는 것을 반복하고 거짓인 경우 ③으로 이동하여 while문을 탈출하게 됩니다. while문 예제 #include #include #include int main() { int32_t value = 0; while (va..

프로그래밍 2020.12.17

c언어/c++ if 조건문

안녕하세요 업글입니다. 이번 포스팅에서 if 조건문에 대해서 설명드리겠습니다. 개인적인 생각으로 if문은 c언어 및 c++뿐만아니라 모든 프로그래밍 언어에서 가장 중요한? 없어서는 안되는? 중요하고 필수적으로 쓰여야 하는 문법이라고 생각합니다. 학부 시절에 포인터와 같은 초보자가 알지 못하고 이해하기 힘든 문법이 많은 상황에서도 조건문과 반복문을 통해서 대부분의 기능을 구현 했었던 기억이 있습니다. if 조건문에 대한 설명 if 조건문은 괄호안의 조건이 참인 경우 if 조건문에 해당하는 코드를 실행하게 됩니다. if(조건){ // 조건이 참인 경우 { } 안의 코드 실행 } 여기서 조건이 참이냐 거짓이냐를 판단하는 기준은 if(0)인 경우 거짓이고 if(0외에 숫자)인 경우 참입니다. if(참){ // ..

프로그래밍 2020.12.17

c언어/c++ 속도 최적화 메디안필터

안녕하세요 업글입니다! 이번 포스팅에서는 속도 최적화한 메디안필터에 대해서 설명드리겠습니다. 메디안 필터에 대한 설명 메디안 필터에 대해서 잘 모르시는 분은 아래의 메디안필터 포스팅을 통해서 메디안필터에 대한 상세 설명을 확인하실수 있습니다. 2020/12/14 - [분류 전체보기] - c언어/c++ 메디안필터 c언어/c++ 메디안필터 안녕하세요 업글입니다! 이번 포스팅에서는 메디안 필터에 대해서 설명드리겠습니다. 메디안필터에 대한 설명 메디안필터는 데이터가 있을 때 데이터의 실제 값을 보다 정확하게 추정하기 위 elevate-yourself.tistory.com 속도 최적화 메디안 필터에 대한 설명 일반적인 메디안 필터의 경우 메디안 필터 구간에 속하는 데이터들에 대해 정렬을 한 후 가운데에 위치하는 ..

프로그래밍 2020.12.16

c언어/c++ 메디안필터

안녕하세요 업글입니다! 이번 포스팅에서는 메디안 필터에 대해서 설명드리겠습니다. 메디안필터에 대한 설명 메디안필터는 데이터가 있을 때 데이터의 실제 값을 보다 정확하게 추정하기 위해서 사용됩니다. 신호는 실제 값에 노이즈들이 포함된 값을 가지게됩니다. 여기에서 노이즈들을 최대한 제거하고 신호의 실제 값을 획득하기위해서 사용되는필터입니다. 메디안필터는 주로 영상처리에서 많이 사용되지만 이번포스팅에서는 일반적인 신호처리 관점에서 설명드리겠습니다. 영상처리와 신호처리 둘다 개념은 동일함으로 이번포스팅으로 메디안필터에 대해서 이해하시면 영상처리의 응용에서도 쉽게 이해하실 수 있을거라 생각합니다. 이전 이동평균필터 포스팅에서 이동평균필터가 신호의 실제 값을 비슷하게 추정하는 것을 확인하실 수 있었습니다. 메디안필..

프로그래밍 2020.12.14

c언어/c++ 이동평균필터

안녕하세요 업글입니다! 이번에는 이동평균필터에 대해서 설명드리겠습니다. 이동평균필터는 이동평균필터 외에도 이동평균법, Moving Average 등으로 표현되곤합니다. 이동평균필터에 대한 설명 이동평균필터란 아래의 그림과 같이 구간을 이동시키면서 구간에 있는 값들의 평균값을 구하여 실제값을 보다 정확하게 추정하는필터입니다. 여기서 이동평균필터 구간의 크기는 3이고 구간을 1개씩 이동시켜가며 평균값을 구하게됩니다. 아래의 그림에서는 처음 60,48,53의 평균을 구하고 다음 1개 이동하여 48,53,59의 평균을 구하고 그다음 1개씩 이동시켜가면서 평균값들을 구하게 됩니다. 이동평균필터의 사용 예시 이동평균필터의 경우 어떠한 입력 값을 읽어올 때 보다 정확한 값을 추정하기 위해서 사용하게됩니다. 저의 경우..

프로그래밍 2020.12.13

c언어/c++ 함수포인터

안녕하세요 업글입니다! 함수포인터에 대해서 포스팅 해보겠습니다. 함수포인터는 이름에서부터 알 수 있듯이 함수의 주소를 가르키는 포인터입니다. 여기서 함수도 주소가 있을까하는 의문이 드시는분도 있으실 겁니다. 함수는 메모리의 코드영역에 위치하기 때문에 변수와 같이 주소를 가지게 됩니다. 저의 경우 대체적으로 함수포인터가 가르키는 함수를 호출하는 간단한 예제(특히 더하기, 빼기, 곱하기, 나누기 예제)를 통해서 함수포인터의 문법에 대해서만 설명하는 책들을 많이 봤었습니다. 반면에 함수포인터를 어떤 경우에 유용하게 사용할 수 있는지에 관한 내용은 본 적이 크게 없는 것 같습니다. 개인적인 생각으로는 문법에 대해서 이해해도 사용하지 않으면 문법에 대한 이해는 쓸모없다고 생각합니다. 이번 포스팅에서는 함수포인터가..

프로그래밍 2020.11.26