과제(지금까지 배운 것을 최대한 모두 활용할 수 있도록 만들어봅니다. 하기 싫으면 안 해도 됩니다.)
나에게는 90년 초반 이후로 컴퓨터를 손도 대지 않은 철수라는 친구가 있다. 그런데 그 친구가 '요즘 운영체제들은 조작하기 너무 어려워.'라며 CLI 기반의 콘솔창에서 키보드로만 조작할 수 있는 간단한 프로그램 하나만 만들어 달라는 것이다.
그 친구가 만들어 달라는 프로그램의 요구사항은 다음과 같다.
먼저, 프로그램을 실행하면, 어떤 기능을 실행할 지를 사용자에게서 입력받는다. e.g. 1. 계산기, 2. 환율 계산, 3. 구구단 출력 4. 종료 등등...)
또한, 4번 옵션을 선택하지 않는 이상, 프로그램이 계속 작동해야 한다.
환율 계산에서는 1. 원화(KRW) -> 달러(USD), 2. 원화(KRW) -> 엔화(JPY), 3. 달러(USD) -> 원화(KRW), 4. 엔화(JPY) -> 달러(USD)와 같이 사용자가 필요한 옵션을 선택할 수 있도록 한다.(실시간으로 환율을 가져오지 않아도 된다. 프로그램을 작성하는 날의 기준환율로 계산한다.
각 기능을 함수로 적당히 나누어 구현한다.(maintenance를 위해서)
되도록이면 goto 문은 사용하지 말자. (쓰면 복잡해진다.)
후기 & 피드백
3.5.5회차: 04.19(토) -> 05.03(토) (열심히 공부한 만큼 중간고사에서 좋은 결과 있기를 바랍니다.) ¶
참석자:
과제 공유(설계 방법과 그 이유 설명하기)
C 프로그래밍 문법
함수의 활용
배열
과제
2차원 배열을 통하여 3x3 square matrix의 transposed matrix, inverse matrix, determinant를 구하는 프로그램 만들기.
call-by-reference로 함수의 값을 바꾸기.
3.6.6회차: 05.10(토) -> 05.17(토) (강사의 개인 사정으로 수업을 연기합니다.) -> 05.24(토) (강사가 아픔..) -> 05.29(토) (학생들 다들 시험치러감... 무슨 시험이었죠? 잘 쳤나요?) ¶
참석자:
과제 공유(설계 방법과 그 이유 설명하기)
C 프로그래밍 문법
포인터와 배열
문자열의 취급
과제
사용자로부터 값을 입력받아 3x20 배열에 저장한다. 그리고 그것을 기본적인 정렬 알고리즘(bubble sort)을 이용하여 오름차순정렬하도록 한다.
이때 정렬 알고리즘은 따로 함수를 만들며, 그 함수에 배열을 넘길 때에는 포인터와 배열의 개념에 대하여 잘 생각해보도록 한다.
cf) 거품정렬(bubble sort)이란?
정렬 알고리즘 중 가장 쉽지만, 비효율적인 방법이다. 그렇지만 구현이 매우 간단하기 때문에 여기서 활용해보도록 하자. 거품정렬에서는 첫번째 원소부터 마지막 원소까지, 즉, 모든 원소를 1:1로 비교하여 정렬을 한다. 자세한 것을 수업시간에 언급하겠으며, 필요한 경우 다음 동영상을 참조하길 바란다.(http://www.youtube.com/watch?v=MtcrEhrt_K0)