2005.09.16 21:51

c언어와 함수

조회 수 349 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄


***** A형,B형의 문제가 다를뿐 그 맥은 같다고보여집니다. *****

-일반프로그램이라함은 c에서 다루는 문법을 마스터하면 풀수 있는 문제들 즉,
구구단을 출력하는 문제나 주소록같은 프로그램을 만드는것정도라고 보시면 될듯합니다.

-함수설계기초라함은 앞서 말했던 구구단을 예로 들어볼께요 설계기초부분이니까 간략하게 말하자면
구구단은 1단부터 9단이 있습니다.(요즘초등학생들은 16단까지 배운다고 합니다) 헌데 내가 필요한 단수는 7단만 필요합니다. 여기서 함수라는것을 도입하게되면 코딩을 최소화하면서 원하는 결과를 도출해 낼수 있습니다.

구구단의 기본원친은 1부터9까지의 수에 대입된1~9를 곱하는것..즉 중복되는 값이 항상 있습니다.
1단은 1*1,1*2...1이라는 숫자에 1부터9를 각각 곱한값입니다. 2단도 마찬가지로 2라는 숫자에 1부터9를 곱합니다. 즉, 1부터9라는 값을 루프로 돌리고 함수내에 인수를 전달하는 방식을 채택하면 됩니다.

코딩으로 보여드리자면
void main()
{
       for(i=1; i<10; i++){       //주석:1부터9까지 반복할것이다 "{"는 이안에 있는것만 행해라
              printf("%d * %d",1,i);       //주석:%d는 10진수를 의미, 1단을 출력하는 소스입니다.
       }
       for(i=1; i<10; i++){       //주석:1부터9까지 반복할것이다 "{"는 이안에 있는것만 행해라
              printf("%d * %d",2,i);       //주석:%d는 10진수를 의미, 2단을 출력하는 소스입니다.
       }
       for(i=1; i<10; i++){       //주석:1부터9까지 반복할것이다 "{"는 이안에 있는것만 행해라
              printf("%d * %d",3,i);       //주석:%d는 10진수를 의미, 3단을 출력하는 소스입니다.
       for(i=1; i<10; i++){       //주석:1부터9까지 반복할것이다 "{"는 이안에 있는것만 행해라
              printf("%d * %d",4,i);       //주석:%d는 10진수를 의미, 4단을 출력하는 소스입니다.
       .
       .
       .
       }
}
위와 같이 1단부터 9단까지 출력하려면 코딩수가 엄청나게 늘어날것입니다. 위 소스를 함수로 구현하면
아래와 같습니다.
void main()
{
       for(i=2; i<10; i++){            //주석:2부터9까지 반복할것이다 "{"는 이안에 있는것만 행해라
              몇단입력할래(i);       //주석:i는 2부터 9단까지 차례대로 구구단을 출력할것입니다.
       }  
}

void 몇단입력할래(int a)                 //주석:이게 바로 함수
{
       for(i=1; i<10; i++){                  //주석:1부터9까지 반복할것이다 "{"는 이안에 있는것만 행해라
              printf("%d * %d",1,i);       //주석:%d는 10진수를 의미, 1단을 출력하는 소스입니다.
       }
}
아주 간단명료하게 소스가 완성되었습니다.(위에 제시한 소스는 함수를 설명하고자 함입니다. 구구단을 출력하는 알고리즘은 다양하며 간소화된 라이브러리가 웹상에 무수히 많습니다.)

즉, 함수라함은 중복되는 일련의 작업들을 묶어서 코딩및 소스의 간소화 및 버그발생시 버그를 쉽게
잡을수 있도록 편의를 도모하기 위한것입니다. 일반적으로 함수를 설계하는 프로그램은 방대한 프로그램(게임,운영체제등등)을 개발하고자 할때 사용합니다.

여기서 한가지 더 추가를 하자면 우리는 지구(메인함수)라는 별에 각각 집(함수)을 짖고 살아가고 있습니다. 만약 이런 주소와 같은 방법을 택하지 않았다면 지구에 사는 인간들은 각각 개개인의 안전을보장 받지 못할것이며, 한사람을 찾기 위한 수단이 없어지게 됩니다.

이를 편리하게 관리하고 통제하기 위한 수단으로 "지구-나라-가족-개인"이라는 일정한 루트를 만들어 놓았습니다. 게임/프로그램개발도 마찬가지 입니다.

게임을 만들기 위해선 시나리오-프로그래머-디자이너-마케팅등등의 각자의 역할을 나누워 놓은 이유도
위와 같은 맥락입니다. 이들을 통솔하는 자는 사장이 될것이며, c에서는 main()함수가 됩니다. 그리고 시나리오,프로그래머,디자이너,마케팅등등을 서브함수라고 볼수 있습니다.

실제로 c언어에선 사장은 불변이나 서브함수의 명칭은 변경이 가능합니다. 코딩을 하게되면 자연스레 접할수 있으리라 보여집니다.



***** C형: 응용 프로그래밍 *****

이것은 위에 언급되었던 A,B를 설게하고 직접 코딩을 하고 컴파일러를 행하면 얻을수 있는 실행파을을 의미 한다고 보여집니다. 더 이상 설명이 불가할것이라고 판단됩니다.
?

List of Articles
번호 제목 글쓴이 날짜 조회 수
8827 힐다의 학자금퀘스트 스크립트 관련 질문 5 심심치 2014.10.11 1833
8826 흠...오프닝에 관한 질문인데요. 다크아머 2005.05.28 472
8825 흠...오프닝에 관한 질문인데요. Survivor-c 2005.05.28 620
8824 흠.. 케릭터가 안움직여져요.... 일당백 2005.08.20 465
8823 흠.. 케릭터가 안움직여져요.... 카리스 2005.08.20 372
8822 흠.. 케릭터가 안움직여져요.... ☆무적기사★ 2005.08.21 527
8821 흠.. 맵배치에 관해서.. 1 『덩키동크』 2006.02.20 441
8820 흠.. 맵배치에 관해서.. 아두 2006.02.20 421
8819 흠.. 궁금한거 하나 있는데요.. 1 다크진™ 2005.08.06 494
8818 흠.. rpg2003에 대해서 인데요 꼭좀 알려주시면... 재티s 2005.11.06 976
8817 흠.. 2k만하다가 xp하려는데.. 1 잘생긴넘 2007.02.14 680
8816 흠,, 뭐가 문제인지좀,, 좌표의 이동에대해,, XLostTimesX 2006.01.10 433
8815 흠 그;;; 조건분기그런거 할때 쓰는 명령어좀~~ ☆무적기사★ 2005.08.05 497
8814 아마란스 2005.06.19 318
8813 ★RPG_Maker★ 2005.09.02 522
8812 흑흑 콩나물 2015.05.16 361
8811 흑인rpg왜없어짐? 2 자라토끼 2014.05.18 586
8810 흑백으로 만들기(RPG2003)(빠른답변부탁) 『덩키동크』 2006.05.25 1040
8809 흑백으로 만들기(RPG2003)(빠른답변부탁) 1 cyverjen 2006.05.25 1093
8808 흑룡님 사라진터전 최신판 없나요? 2 에에... 닉넴바뀨라네요.. 2014.06.22 414
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 442 Next
/ 442


[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)