디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

C언어의 간단한 예제를 설계부터 코드화까지 (1/9)

숙신갤로그로 이동합니다. 2009.07.15 01:49:40
조회 1476 추천 0 댓글 8

[문제 1/9]
1+3+5+…의 등차수열에서 얼마까지 합하면 그 값이 1,000을 처음으로 초과할 때
마지막 항과 초과된 값을 구하시오.

1. System chart

2002E10D4A5CAAD55B5E92

 큰 틀을 정하는 작업입니다. 다들 알고 계시는 Main문을 중심으로, 합을 구하는 Sum이라는 함수와 구한 값을 출력해주는 Display라는 함수를 사용할 생각입니다.
 Sum 함수에서는 입력값은 없고, 출력값으로 합(sum)과 마지막 숫자(last_number)가 있어야 할것 같군요. 출력값이 2개 이니까, return으로는 불가능합니다. 이때, 포인터(*)를 사용하면 됩니다.
 Display 함수는 결과를 출력하는 함수이니, 출력값은 필요없을것같네요. 대신 합(sum)과 마지막숫자(last_number)이 입력이 되야 출력을 하겠죠? 이때는 단순한 값의 전달이기때문에 포인터(*)를 사용하지 않습니다.

2. 수작업의 이해

 숫자 1  3  5  7  9 ...
 합 1 4 9 16 25 ...

 이 작업은 컴퓨터 보다 노트에 손으로 해보시길 추천합니다. 프로그래밍을 하기전에 어떤 식으로 풀어나가야할지 끄적끄적 거려보는 작업입니다. 끄적이면서 문제의 본질과 어떤식으로 풀어야 겠다는 생각을 할 수 있습니다.

3. 처리 과정

1. 1,000까지 반복한다.
      1.1 숫자를 세린다.
      1.2 숫자를 합한다.
      1.3 숫자를 2 증가시킨다.

2. 합과 마지막항을 출력한다.

3. 끝낸다.

 C언어는 절차지향적입니다. 어떤 순서로 프로그래밍을 해야할지 전체적으로 정리를 하는 과정입니다. 처리과정 정리만 잘 해 놓아도 프로그래밍하기가 한결 수월해집니다.

4. 자료명세서

 number 숫자정수형 
 last_number 마지막 항정수형
 sum 숫자의 합정수형

 어떤 변수가 쓰일것인지 정리를 합니다. 정리가 잘 되어 있으면 가독성이 높아집니다. 그리고 쓸데없는 변수를 색출해 낼수도있으며, 변수의 기능 분화가 확실히 됩니다. 한가지 변수로 여기도 썼다가, 저기도 썼다가 하는 일을 방지할수 있습니다.

5. NS-Chart
18752E214A5CB259C3351B

 다소 생소한 Chart일껍니다. NS-Chart라고 불리며, 절차 지향적으로 어떤식으로 연산할지 정리합니다. 실제 코드로 옮길때는 NS-Chart를 보고 그대~로 옮기면 됩니다. 바로 코드로 옮기지 않고 궂이 왜 이런 번거로운 작업을 거치냐는 생각을 할수도있는데, NS-Chart는 어떤 언어로든 옮길수 있습니다. 그리고 위에 처리과정 정리한것을 좀 더 방법적으로 정리할수있는 기회입니다. 이 과정을 통해서 무조건 에러나 워닝을 보고 내가 뭘틀렸는지 알아버리는, 컴퓨터에 의존하는 프로그래밍은 자제할수 있습니다.

6. NS-Chart 검토표
 초기값       ...
 number  1 1 ...
 sum  0 116 25  ...
 last_number ?? ... 

 NS-Chart에 값들의 변화를 직접 적어봅니다. 이렇게 확인을 하고 코드화에 들어가야 한번에 성공하는 쾌감을 맛볼수 있습니다.

7. 소스화
2072471E4A5DFC0A691895



Line 3 : #define 으로 자주 쓰이는 숫자를 정해 놓으면, 나중에 수정할 일이 생겼을때, 해당 숫자를 일일히 찾아서 수정할 필요 없이, 저 값만 수정하면 전체가 바뀝니다. 지금은 괜찮지만, 나중에 소스가 길어지면 길어질수록 매우 유용하게 쓰입니다.

Line 5 : 그냥 정해져있는 자료형을 쓰면돼지, 왜 궂이 UShort라는 새로운 자료형을 쓰느냐. 사실 저도 명확한 이유를 설명드리기엔 애매한 부분이 좀 있습니다. 처음 배울때 저렇게 배워서인지, 이게 편합니다^-^ 이렇게 해야 다양한 환경에 이식을 해도 잘 돌아간다고 배웠습니다^-^

Line 10 : main 함수가 익숙하지 않으실껍니다. 보통 int main (void)라고 사용하는데, MSDN을 참고하시면, 엄연히 main 함수의 형태가 정해져있습니다. 빌게이츠가 제공해준 그대로 사용합시다^-^ㅋㅋ




저도 아직 부족한 점이 많습니다. 실력이 뛰어나지도 않습니다.
혹시 제 글을 읽으시다가, 이건 아닌데, 이 점은 고쳤으면 좋겠다 는 생각이 드시는 고수분들의 수많은 태클 환영합니다. 많이 배우고 반영하겠습니다.
그리고 왜 궂이 이런식으로 프로그래밍을 해야되는지 의야해 하시는 분들도 계실껍니다.
이렇게 간단한 예제부터 절차적으로 설계해서 푸는 연습을 해야, 나중에 규모가 커져도 당황하지 않고 프로그래밍을 할수있기에, 간단한 문제도 설계부터 꼼꼼히 풀이해보았습니다.

메모리 맵과 디버깅 작업은 생략하였습니다.
이 부분에 대해선 추후에 추가하도록 하겠습니다.

-------------------------------------------------------------------------------------------------------------

아놔 둇내 까일꺼 생각하고 용기내서 썼음.
형들, 깔꺼있으면 걍 까줘..ㅠ.ㅠ

근데 써봤자 아무도 안보겠지...??

출처 및 블로그 홍보 : http://btd86.tistory.com/
질문 및 태클 : 댓글 ||  btd86@naver.com

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 끝까지 다 본 걸 후회하게 만든 용두사미 드라마는? 운영자 25/07/07 - -
AD 디지털 액세서리 기간한정 세일! 운영자 25/07/11 - -
267692 디씨질 10여년만에 회원가입했음 [10] dijkstra갤로그로 이동합니다. 11.08.28 92 0
267691 내가 프갤을 하면서 제일 좋은 이유 하나가 있지. [4] 좋은아버지갤로그로 이동합니다. 11.08.28 85 0
267689 그래도 개발직이 사무직보단 100%낫지. 초식남(219.251) 11.08.28 79 0
267688 주말에 왔더니 분위기가 왜이럼? [8] +어게인갤로그로 이동합니다. 11.08.28 89 0
267686 야근이 문제로다. [2] 드리프트(61.101) 11.08.28 63 0
267685 그리고 나이 40정도되면 회사차릴 수준은 되야지 [2] 초식남(219.251) 11.08.28 93 0
267683 나이 40먹고 갈데가 왜없어 ㅄ아 ㅋㅋㅋ [4] 초식남(219.251) 11.08.28 164 0
267682 대학가는거 중요하다. [2] 초식남(219.251) 11.08.28 85 0
267681 혹시 듀오 나 결혼 전문 업체 가입하는데 비용 얼마드는지 아는 횽 있어? [10] 좋은아버지갤로그로 이동합니다. 11.08.28 1026 0
267679 근데 솔직히 우리나라는 대학진학률 높은게 정상이에여 [3] dijkstra(211.197) 11.08.28 105 0
267677 그런데 착하게 산다고 반드시 그게 나한데 돌아오는건 아닌거 같다. [2] 좋은아버지갤로그로 이동합니다. 11.08.28 58 0
267676 형들 집은 좀 시원해? [2] 좋은아버지갤로그로 이동합니다. 11.08.28 60 0
267674 왜 우리나라는 대학 나온 잉여들을 생산하는걸까 [3] ㅇㅇ(61.77) 11.08.28 100 0
267673 박주영 아스널 간거 맞지? 좋은아버지갤로그로 이동합니다. 11.08.28 43 0
267672 작년에 나좋다고 하던 여자애가 전효성 닮았었는데 [10] dijkstra(211.197) 11.08.28 115 0
267671 게임회사가 좋은게 갑을병정 관계를 지양하는것 같다... [1] ㅇㅇ(118.34) 11.08.28 123 0
267670 IT업계가 성장할수 없는 이유 [1] ㅂㅈㄷ(125.180) 11.08.28 101 0
267668 보안쪽 [3] 호솽갤로그로 이동합니다. 11.08.28 106 0
267666 개발자의 무덤 SI, 디자이너의 헬 에이젼시 [6] 초식남(219.251) 11.08.28 208 0
267664 SI 업체만 피한다고 OK는 아닌 듯 [1] 분당살람갤로그로 이동합니다. 11.08.28 125 0
267661 혹시 프겔에 SI다니는 쉑이 있냐? [5] 초식남(219.251) 11.08.28 121 0
267660 언론에서 보고 직접 느껴도 본 우리나라 IT 업계 계층도 [4] ㅇㅇ(118.34) 11.08.28 172 0
267659 한국에서 바람직한 프로그래머 테크 알려준다 [3] ㅇㅇ(61.77) 11.08.28 173 0
267658 모노리스 형은 봅니다. [10] 좋은아버지갤로그로 이동합니다. 11.08.28 91 0
267657 SI,에이젼시 갈바에야 택배알바나 뛰지 [5] 초식남(219.251) 11.08.28 106 0
267654 자 이제 IT 상황 정리 좀 해 보자 [5] 분당살람갤로그로 이동합니다. 11.08.28 116 0
267653 프로그래머는 SI, 디자이너라면 에이젼서만 안가도 살만하다. [1] 초식남(219.251) 11.08.28 89 0
267652 한국에서 구글같은 회사 나오지 않는 이상 가망없다. [2] 초식남(219.251) 11.08.28 95 0
267651 죽었다가 태어났는데 그래도 프로그래머를 해야됨. [7] dijkstra(211.197) 11.08.28 134 0
267650 근데 IT 업계만 그런게 아니라 [2] 좋은아버지갤로그로 이동합니다. 11.08.28 89 0
267649 우리나라 IT업계의 미스테리 3가지 dijkstra(211.197) 11.08.28 106 0
267648 그런데 지금 내가 약정이 3개월 남앗어 9월 10월 11 월 [6] 좋은아버지갤로그로 이동합니다. 11.08.28 60 0
267646 형들은 초능력이 있다면 어떤 초능력 가지고 싶어? [7] 좋은아버지갤로그로 이동합니다. 11.08.28 109 0
267645 IT 업계에서 징징대는 이유가 [20] 거칠게갤로그로 이동합니다. 11.08.28 242 0
267642 저기... C를 건너뛰고 바로 C++를 해도 되나요??? [4] 안졸리니졸리갤로그로 이동합니다. 11.08.28 99 0
267641 아 시발 낚였어 시발 개세끼 씨발놈 [2] y녀6디리(218.146) 11.08.28 90 0
267640 내일 한쿡 IT 업계가 망해도 [3] 분당살람갤로그로 이동합니다. 11.08.28 106 0
267639 아 형들.. 호스팅업체에서 mysql 옵션같은거는 잘 안바꿔줘? [10] 점술가2갤로그로 이동합니다. 11.08.28 81 0
267637 모니터 대기중인데요 d드라이로 c드라이브 포맷하는 법좀 갈쳐줘세요.. [1] DD(112.169) 11.08.28 91 0
267636 횽들 코딩이 갑자기 하기 싫어질땐 어떻게하나요 [3] System32갤로그로 이동합니다. 11.08.28 112 0
267635 오랜만에 C로 짠 코드를 보았다.. 초식남(219.251) 11.08.28 99 0
267633 [질문][급함][사례無] 제발...ㅠㅠ물어볼게잇는데요..ㅠㅠ [1] ㄱㄴㄴ(183.102) 11.08.28 78 0
267631 솔직히 돈이면 우리나라 못하는거 없자나? [6] 좋은아버지갤로그로 이동합니다. 11.08.28 96 0
267630 본닉으로 귀환 [2] SODMaster갤로그로 이동합니다. 11.08.28 49 0
267628 언론에서 왤케 IT인력들이 힘들다고 보도를 때려 되는지 모르겠다.. [5] dd(118.34) 11.08.28 150 0
267626 y녀6디리는 봅니다. [23] 좋은아버지갤로그로 이동합니다. 11.08.28 139 0
267625 형들 이런 경험있어? [6] 좋은아버지갤로그로 이동합니다. 11.08.28 78 0
267624 아오 이번학기에는 원어강의가 두개나 있네... [5] mercedes㉦benz갤로그로 이동합니다. 11.08.28 76 0
267623 울나라 드라마도 갈라파고스 아니냐? [1] 분당살람갤로그로 이동합니다. 11.08.28 52 0
267622 배고픈사람잇음? [2] 타루갤로그로 이동합니다. 11.08.28 51 0
뉴스 Mnet '보이즈 2 플래닛' 제작진이 밝힌 글로벌로 확장된 최정상 향한 월드 스케일 데뷔 프로젝트 승부수는? 디시트렌드 07.11
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2