1. 개념 정리 인터럽트 : 프로세서가 현재 실행 중인 작업을 중단하고 특정 이벤트에 응답하여 다른 코드 블록을 실행하는 기능 인터럽트가 작동되는 방식은 실행하면 현재 프로세서가 실행중인 작업을 중단한 뒤, 해당 인터럽트 함수를 실행하여 수행한 후, 그 이후에 다시 중단되었던 작업을 마저 실행한다. 이를 통해 외부 이벤트에 빠르게 대응할 수 있다. 외부 인터럽트 : 아두이노 우노의 외부 인터럽트 핀인 D2, D3 핀에서 입력 받으면 실행 중이던 작업을 일시 중단하고 인터럽트 함수를 실행하는 기능이다. 외부 인터럽트를 사용하려면 attachInterrupt(digitalPinToInterrupt(pin), ISR, mode) 함수를 사용하면 된다. 여기서 pin은 외부에서 입력받을 인터럽트 핀, ISR은 ..
📜 문제 문자열을 입력받고, 포인터와 문자열 배열을 사용하여 문자열을 뒤집는 함수를 구현해보자! 📥입력 Hi! Welcome! 📤출력 !emocleW !iH 💡풀이 우선 배열명 그 자체로 포인터를 쓸 수 있다는 것을 알아두자. 굳이 포인터 연산자 사용할 필요도 없이 배열명으로 인자를 건네주면 된다. 다음으로 알아야 할 함수들은 strlen() 과 fgets() 함수이다. 먼저 strlen() 함수는 NULL 문자를 제외하고 string 길이를 판별하는 함수이다. 즉 받는 문자열 칸 100개에서 받은 문자열이 39개라면 뒤의 61개의 NULL 문자들을 제외하고 딱 들어와 있는 문자열의 개수를 세서 39라는 값으로 반환되는 것이다. strlen() 앞에다가 (int)를 붙여서 정수형으로 반환해주도록 한다. ..
📜 문제 포인터를 사용하여 배열의 합계와 평균을 계산하는 함수를 작성하자! 크기가 10인 정수 배열을 선언하고 사용자로부터 값을 입력 받아서 배열에 저장하자! 평균을 출력할 때는 소수점 2자리 까지만 출력하자! 📥입력 정수 10개를 차례로 입력받는다. 📤출력 합계와 평균을 출력한다. 💡풀이 핵심 포인트는 포인터 연산자 *와 &의 사용법을 알면 쉽게 풀 수 있는 문제이다. 포인터를 이용해서 함수를 전달하려면 인수로 주소값인 '&변수명'을 넘기면 되고, 매개변수 '타입명* 변수명' 또는 '타입명 *변수명'로 받으면 된다. 여기서 실제 그 변수 주소값에 있는 값을 읽어내기 위해(역참조) '*변수명'을 사용하면 된다. 참고로 배열은 배열명 자체가 바로 포인터이며 포인터는 배열처럼 사용이 가능하다. 따라서 따로 ..
현재 가지고 있는 돈을 입력받자. 그리고 400원의 사탕을 최대 몇 개 살 수 있는지, 최대로 다 산다면 나머지 돈을 얼마인지 출력해보자. 화씨 온도를 섭씨 온도로 바꾸는 프로그램을 작성하여 보자. 2개의 주사위를 던져서 주사위의 합을 표시하는 프로그램을 작성해보자. 1. 현재 가지고 있는 돈을 입력받자. 그리고 400원의 사탕을 최대 몇 개 살 수 있는지, 최대로 다 산다면 나머지 돈을 얼마인지 출력해보자. 내가 작성한 코드: #include #include using namespace std; int main() { int money; int candy_price; cout > money; cout > candy_price; int count = money / candy_price; int left_..