디시인사이드 갤러리

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

갤러리 본문 영역

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

숙신갤로그로 이동합니다. 2009.07.15 01:49:40
조회 1467 추천 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
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 연예인 안됐으면 어쩔 뻔, 누가 봐도 천상 연예인은? 운영자 24/06/17 - -
공지 프로그래밍 갤러리 이용 안내 [71] 운영자 20.09.28 35658 62
2714452 30만원짜리 위스키는 유난히 다르게 더 맛있나요?? ㅇㅇ(123.213) 01:39 7 0
2714451 여담인데 교육 쪽에서는 AI 역할이 상당한 것같음. [2] +abcd3421갤로그로 이동합니다. 01:37 12 1
2714450 황당 무개한 EXEF type 어떻게 고쳐요? 도리스아(119.195) 01:36 10 0
2714449 아 정처기 58점 아........ 자바 공부할걸 프갤러(112.171) 01:30 13 0
2714448 비전공자같은 전공잔데 [2] ㅇㅇ(175.120) 01:29 18 0
2714447 sk 쉴더스 국비 괜찮을라나? 프갤러(218.144) 01:25 10 0
2714446 미래학자 소설 꾸준글 봐라 프갤러(121.170) 01:22 7 0
2714445 Ai가 코딩 더잘하는데 은디탁(97.109) 01:20 11 0
2714443 음기 충전 발명도둑잡기갤로그로 이동합니다. 01:12 8 0
2714442 취준생인데 하룻동안 코딩 한글자도 안쳤음 [1] ㅇㅇ갤로그로 이동합니다. 01:11 19 0
2714441 지금 퇴근하는거 어케생각함 [8] 이시꾸갤로그로 이동합니다. 01:08 34 0
2714436 실제로 국비하면 몇명 취업해? [2] 프갤러(14.39) 00:56 32 1
2714433 QA까지 지원서 넣고있는데 만약 되면 어떡하지 [9] 프갤러(112.150) 00:47 42 0
2714432 '간달프' 英 명배우 이안 맥켈런, 연극 무대서 추락해 병원행 발명도둑잡기갤로그로 이동합니다. 00:45 13 0
2714430 울 회사는 개발자 보고 프로젝트 수주해 오라고 함 ㅋㅋㅋ..... ㅎㅈㄷㄴㅇㄹ(211.235) 00:41 27 0
2714428 김영한 스프링 입문 이해안된다 [5] 프갤러(221.161) 00:36 42 0
2714427 와씨 교보문고 프로그램 개발자 누구냐 [3] cvs.갤로그로 이동합니다. 00:35 54 0
2714426 면접관들이 포트폴리오 깃허브 코드 다 쳐다봄? [7] 딘퐁갤로그로 이동합니다. 00:33 57 0
2714424 이거는 인공지능이얌 ㅇㅅㅇ 나트륨찡갤로그로 이동합니다. 00:29 27 0
2714422 문법이랑 알고리즘 해보는게 가장 기본이지? [1] 프갤러(14.39) 00:28 40 0
2714421 인공지능 그림이럄 ㅇㅅㅇ 나트륨찡갤로그로 이동합니다. 00:22 21 0
2714420 영등포 판자촌에 살았는데 재개발됬음 뒷통수한방(1.213) 00:20 17 0
2714419 국비 플젝 씹ㅋㅋ 포트폴리오 못쓰겠네 [4] 프갤러(222.109) 00:17 65 0
2714418 스타텁 면접 담당자임 [2] ㅇㅇ(39.117) 00:16 44 1
2714417 메이플은 템이 빨리 팔리면 기분이 안좋음. ㅇㅇ(123.213) 00:16 10 0
2714416 인공지능 그림이래 ㅇㅅㅇ 나트륨찡갤로그로 이동합니다. 00:15 19 0
2714415 혹시 이 html코드 뭔지 아는사람? ㅇㅇ(118.32) 00:14 20 0
2714414 컴공 1학년, 234학년 수업 프갤러(210.101) 00:14 19 0
2714413 인공지능 그림 그리기 ㅇㅅㅇ [1] 나트륨찡갤로그로 이동합니다. 00:06 26 0
2714412 영어쓰는 미니멀리스트 유튜버 괜찮은놈 있으면 추천 부탁드립니다 qu(121.171) 00:01 15 0
2714411 대기업 전산직은 비전공이 못가나????? 프갤러(126.247) 06.18 22 0
2714410 레드헷보다 아는것은 없겠지만 뒷통수한방(1.213) 06.18 26 0
2714409 본인은 레드햇이 제일 병신같음 [1] 뒷통수한방(1.213) 06.18 35 0
2714408 채용공고 찾으면서 깨달은점 [1] 프갤러(112.150) 06.18 46 0
2714407 미래의 어느 역사학자들의 대화라는데 (요약편) 프갤러(211.241) 06.18 13 0
2714406 결혼하고 잘 먹고 운동하니까 [2] hrin(118.235) 06.18 31 0
2714405 이탈리아 해변의 시원한 바람, 반짝이는 물결, 나뭇잎들 따당이갤로그로 이동합니다. 06.18 16 0
2714404 미래의 어느 역사학자들의 대화라는데 [3] 프갤러(211.241) 06.18 21 0
2714403 자바php레드헷갤러리로 이름바꿔라 [1] 뒷통수한방(1.213) 06.18 23 1
2714401 근데 다른 직군도 물경력 물경력 하냐? 아스카영원히사랑해갤로그로 이동합니다. 06.18 24 0
2714400 quratus 에러관련질문 프갤러(49.1) 06.18 12 0
2714399 오늘 순 개발시간 8시간 채우고나니까 롤 5시간함 ㅇㅇ(110.70) 06.18 18 1
2714398 울 회사에 여긴 얼마 안다닐거다 티 내고 다니는 사람 있다 [3] ㅇㅇ(211.36) 06.18 61 0
2714397 자격요건에 선형대수학 써있으면 그거관련도 물어보나 ㅇㅇ(223.38) 06.18 33 0
2714396 현행 언론이나 비평 문학의 치명적 사각지대가 광고 비평입니다 발명도둑잡기갤로그로 이동합니다. 06.18 12 0
2714394 이런 여자가 취향이면 정상임? [2] 메쿠이로갤로그로 이동합니다. 06.18 54 0
2714393 컴공 학부생 1학년입니다. 프갤러(211.109) 06.18 24 0
2714392 키큰애들,창녀들이 여유로운 이유는 뒷통수한방(1.213) 06.18 21 0
2714390 자바 php 레드헷 안쓰는놈들은 개발자 맞음? 뒷통수한방(1.213) 06.18 24 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2