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 형제들이여 !!! 나를 구제해다오!! Ress 2006.01.26 223
8826 형제들이여 !!! 나를 구제해다오!! KaSsia 2006.01.25 263
8825 rpg2003에서 music음향이 작업시에는 실행되는데 게임을 실행하면 않되네요 ★샤일☆ 2007.01.03 784
8824 RPG2003의 그림들의 사이즈... MiNi'M' 2006.02.21 821
8823 RPG만들기2003에 관하여...정말 굼금해요~!~부탁드림 ∑☆メ이누∴。』 2005.08.09 577
8822 게이지바 구동 방법좀 <<게이지 유>> file 랑이a 2006.07.03 429
8821 길드는 어떻게 만드나요? 루넨스 2009.06.15 974
8820 길드는 어떻게 만드나요? 제로스 2009.06.15 1232
8819 동영상 관련및.. 급해요 ㅠ RML 2006.07.12 1483
8818 마법 연계 다시 질문!!! 제발 대답부탁!!; file 나르카이제 2005.06.15 331
8817 몬스터가없으면 다른곳으로 자동이동가능? Novelist 2006.08.29 277
8816 몬스터가없으면 다른곳으로 자동이동가능? CredMotion 2006.08.29 341
8815 스크립트로요,, 이동하는걸 보드게임처럼 할순 없나요? XLostTimesX 2006.01.09 429
8814 아이템창 같은 단축창를 만들려고하는데..[rpg2003] ScolPion 2006.04.15 572
8813 아이템창 같은 단축창를 만들려고하는데..[rpg2003] 방콕족의생활 2006.04.15 786
8812 질문! file 『Q트_아키』 2005.05.22 494
8811 "스크립트 데이터 읽기 실패" 라고 뜨는데.. 김세츠나 2009.07.31 1062
8810 "클래스가 등록되지 않았습니다"라니 -0-;;[RPG2003] Chrishyua .E 2007.03.02 700
8809 "클래스가 등록되지 않았습니다"라니 -0-;;[RPG2003] =ROD= 2007.03.07 886
8808 "파일 dmd 은 열지 않습니다" 이리저디 옮겼는데.. 윈드 2006.08.18 208
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(김원배) | 사신지(김병국)