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 저번 글들과, 이전 글에 대해 묻고 싶습니다. idtptkd 2005.05.17 1314
8826 이전 작가들은 어떻게 되는 건가요? 아렉스 2005.05.17 1091
8825 이전 작가들은 어떻게 되는 건가요? 영원전설 2005.05.18 1152
8824 프루티룹스 질문... 신승일 2005.05.18 1472
8823 창작글만 있는데 감상문 같은 건 쓸수 없나요? 다르칸 2005.05.18 994
8822 창작글만 있는데 감상문 같은 건 쓸수 없나요? 아렉스 2005.05.18 1031
8821 창작글만 있는데 감상문 같은 건 쓸수 없나요? 천무 2005.05.18 820
8820 창작글만 있는데 감상문 같은 건 쓸수 없나요? 『水』신교 2005.05.18 869
8819 rpg만들기 2000에서 신규프로젝트가 만들어지지 않아요;; 밀크마스터 2005.05.18 1166
8818 rpg만들기 2000에서 신규프로젝트가 만들어지지 않아요;; 나랑놀자 2005.05.18 1111
8817 rpg만들기 2000에서 신규프로젝트가 만들어지지 않아요;; 셉티찡 2005.05.18 1170
8816 릴레이 소설 말인데요... 외로운갈매기 2005.05.18 675
8815 이전의 창작글 게시판의 글은 어케되나요? 천무 2005.05.18 471
8814 이전의 창작글 게시판의 글은 어케되나요? Sir_아사히 2005.05.19 563
8813 윈도우 98에서는 rpgxp안돌아가요 ? 바람을 가르는 자 2005.05.19 767
8812 윈도우 98에서는 rpgxp안돌아가요 ? 미칼렌 2005.05.19 927
8811 패치 요청... Norid 2005.05.19 454
8810 rpg만들기 2000에서 신규프로젝트가 만들어지지 않아요;; black-angel 2005.05.19 1147
8809 [RPG XP] 게임 테스트 오류. 살려주세요// Norid 2005.05.19 939
8808 릴레이소설 사래신장전 완결했는데요.. 적랑 2005.05.20 648
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(김원배) | 사신지(김병국)