2005.09.16 21:51

c언어와 함수

조회 수 314 추천 수 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
번호 제목 글쓴이 날짜 조회 수
7188 아이템을 확률로 드랍하는거요~ Strawbe_Lee 2005.09.16 156
7187 아이템을 확률로 드랍하는거요~ 남자의로망스 2005.09.16 143
7186 처음에 앤딩 어둠의그림자 2005.09.16 85
7185 2000,2003에서 쓰던 캐릭터들.. 어둠의그림자 2005.09.16 226
7184 2000,2003에서 쓰던 캐릭터들.. Strawbe_Lee 2005.09.16 113
7183 2000,2003에서 쓰던 캐릭터들.. ★한강호★ 2005.09.16 116
7182 칸나누기 술취한멍청이 2005.09.16 305
7181 아아~ 루비 스크립터를 갑자기 배우고 싶어집니다. 큰농구공 2005.09.16 145
7180 전투후 사라지게 하기 크레시스 2005.09.16 144
7179 c언어와 함수 호진짱 려 2005.09.16 476
7178 칸나누기 file Asua_ 2005.09.16 273
7177 [RPG2003]턴알에서 무기끼고 몹 공격하면 에러납니다 초코렛 2005.09.16 389
» c언어와 함수 약손 2005.09.16 314
7175 대략 leecyid 2005.09.16 421
7174 알만툴xp 를 하는데 실행하거나 테스트시 이런 오류가 떠요 크리스트호 2005.09.17 364
7173 rpg2000에서 데미지 공식이 있던데.. 어둠의그림자 2005.09.17 414
7172 제가 직접 캐릭터를 도트로 찍어서 만들고 싶은데...! ojk02 2005.09.17 264
7171 ~_~ Kises S 2005.09.17 91
7170 밤낮 하는고 말인데요 ㅜ.ㅠPLZ~ 남자의로망스 2005.09.17 159
7169 시디키요.. 파란별☆ 2005.09.17 121
Board Pagination Prev 1 ... 78 79 80 81 82 83 84 85 86 87 ... 442 Next
/ 442






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

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