메뉴 건너뛰기

창조도시 기록보관소

언어 C언어를 새발로 먹기? 3화.

2006.08.10 13:18

초코군 조회 수:511 추천:2

안녕하세요. 초코군입니다 . +_+


 


인제 C 언어 강좌? 도 3화에 이르는군요 ( 이게 무슨 강좌냐 퍽퍽 )


 


오늘은 드디어 기대하시는 C언어를 이용해 프로그램을 만들게 돼엇습니다. ^^*


 


야호 ~~ 짞짞짞....


 


자자 그럼 우선 프로그램과 소스를 만들기 전에.. 컴파일러하고 에디터가 필요한데..


 


없으신분은 [FF0000_FC#] (언어재료자료실) [#FC_FF0000] 가셔서 제가 올려놓은 볼렌드 컴파일러를


다운로드 받으시길 바랍니다.


 


자 그럼 프로그램을 만들 준비가 돼으셧나요?


 


 


우선 볼랜드 C++ 를 띠우면 이런 화면이 뜰껍니다.


 



 


 


이게 저희가 작업할 C 에디터에 메인화면입니다 ^^*


 


 


우선 간단한 프로그램부터 따라해보도록 하지요.


 


 


#include <STDIO.H>


 


main()


{


            printf(" Welcome to ACOC (Creative City) ");


            return 0;


}


 


 


 


이걸 따라하셔서 입력해보시길 바랍니다.


 


붙혀넣기는 하지말아주세요


 


간격이 달라지기떄문에.


 


printf 간격을 띠어주실떈 tab을 이용하시면 편리합니다 ^^;


 


 


그리고 소스코드를 저장합니다.


 


예: WELCOME.C


 


그리고 WELCOME.C 를 컴파일 하고 링크시켜 보도록 하지요.


 


메뉴에서 보시면 알겟지만 메뉴에 4번쨰 잇는곳에 잇는 메뉴입니다.


 


단축키: ALT + F9  외워두시면 유용합니다 ^^*


 


그렇게 컴파일을 하시면 컴파일이 됏다고 메세지가 뜹니다..


 


하지만 만약 소스코드를 만드실떄 실수를하셧다면 예: printf 를 잘못타입하셔 print 라고 쓰셧다면.


 


다음과 비슷한 에러 메세지가 밑에 뜰것입니다.


 


ㅁ 컴파일 에러 ㅁ


 


Massage ( 마사지? ) 메세지 입니다. ㅎㅎ


Compiling WELCOME.C:


Warning WELCOME.C 5: Call to function 'print' with no prototype


 


이 에러 메시를 해석하는 방법은 세부분 으로 나눠볼수잇습니다.


 


+ WELCOM.C                                               - 에러가 발생한 파일에 이름.


+ 5:                                                             - 에러가 발생한 문장 번호. 5줄 한마디로.


+ call to function 'print' with no prototype         - print 라는 작동 명령어가 없다는뜻.


 


 


그럼 요번엔 프로그램을 만들떄 일부러 오류를 집어너어보죠.


 


1. 단어 welcome to ACOC 앞에 있는 큰 따옴표를 삭제해보죠.


 


이제 다시 컴파일 하면


 


이런 오류 메세지가 뜰겁니다.


 


마사지: ( ㅎㅎ massage )


Error WELCOME.C 5: Undefined symbol 'Welcome'


Error WELCOME.C 5: Function call missing


Error WELCOME.C 5: Unterminated string or character constant


Warning WELCOME.C 7: Function should return a value


 


첫 번쨰 오류메세지는 5 번쨰 줄의 단어 welcome 에서 에러를 정확히 발견해 내죠. 


세번쨰는 welcome to ACOC 가 큰 따옴표로 닫혀 있지 않으므로 컴파일러가 어떻게 처리해야 하는지 모른다는 것을 뜻합니다. 그럼 나머지 오류 메세지는 무엇일까요? 여기서는 이런 에러 메세지에 대해서 크게 신경쓸 필요가 없습니다. 단지, 여려분들이 알아둘 필요가 있는것은.  C 프로그램에서 하나의 에러가 발생할때 가끔 여러 메세지가 동시에 출력될수 있다는 것입니다. ^^*


 


대대분 경우 하나의 에러 메세지를 수정 하는 것이 여러 가지 에러 메세지의 원인을 해결하는 것이므로


기억해두시기 바랍니다 .^^*


 


+ 참고 +


 


링크 에러 메세지.


 


링커 에러는 거이 일어나기 드물고 , 까금 대개의 경우 C 라이브러리 함수의 이름을 잘못 입력하는 것에서 원인이 일어납니다. 이런 경우에는  Error : undefined symbols. 에 에러 메세지와 함께 잘못 입력된 함수의 이름이 밑줄이 추가된 상태로 출력됩니다.이러한 에러는 잘못 입력된 내용을 수정해주면 해결될겁니다 ^^*;


 


 


자 그럼 모든걸 정확히 다 하셧다면


 


 


소스입력 - > 컴파일 - > 링커 -> 프로그램의 완성


 


 


컴파일을 Successful 하게 끝내셧다면 obj 오브젝트코드가 자동으로 생성됍니다. 그러면 링크를해서


프로그램을 만드시면됍니다. ^^* 그럼 이런 이름으로 프로그램이 완성됍니다. WELCOME.EXE


 


실행하시면


 


이렇게 출력됄겁니다 ^^*


 


 


 


출력:


 


Welcom to ACOC (Creative City)


 


 


 


짞짞짞짞 축하드립니다 ^^* 여러분은 컴퓨터 프로그램을 하나 만들어내셧습니다. +_+


 


고작 Welcome to ACOC (creative city) 를 화면에 출력해내는거지만 . 희망을 가지실수잇게돼엇습니다.


여러분은 첫 번쨰 C 프로그램을 입력하고 컴파일 하여 실행해 보앗습니다. ^^* 보통 오느날에 대부분의


전문적인 C 프로그래머는 이런 과정을 거쳐서 C를 배우기 시작했습니다 ^^* 여러분은 앞으로 뛰어난


프로그래머가 될수 있다는 희망을 가지실필요가 있습니다. ^^*


 


 인제 레벨 1 단게를 패스하셧습니다. 첫번재 단게를 뛰어 넘으신거죠.


 


 


 


다음은 예졔 프로그램입니다. 만들고 컴파일하고 링크시켜서 EXE 를 창조해보세요 ^^*


만드시고 무슨프로그램인지도 맞쳐보시구요.


 


...............................................................................................................................................


 


1.(Program.)


 


 


#include <STDIO.H>


 


int radius, area;


 


main()


{


       printf( "Enter radius (i.e. 10): " );


       scanf( "%d", &radius );


       area = (int) (3.14159 * radius * radius);


       printf( "\n\nArea = %d\n", area );


       return 0;


}


 


................................................................................................................................................


 


 


 


2.(Program.)


 


 


#include <stdio.h>


 


int x,y;


 


main()


{


       for ( x = 0; x < 10; x++, printf( "\n" ) )


            for ( y = 0; y < 10; y++ )


                printf( "x" );


       return 0;


}


 


...............................................................................................................................................


 


 


3.(Program.)  < 디버깅 연습. 이프로그램엔 에러가 잇어요 ^^* 찾아서 고쳐보세요. > 


 


 


#include


 


main();


{


       printf("Keep Looking!");


       printf("You\'ll find it!\n);


       return0;


}


 


 


 


...............................................................................................................................................


 


 


4.(Program.)  < 마리오왕자가 프로그램 언어를 망쳐놧어요 ㅠ_ㅠ. 고쳐서 마리오 공주를 구해주세요 >


 


 


#include <stdio.h>


 


main();


{


       printf("This is a program with a ");


       do_it("Problem! + MARIO MARIO MARIO! + ");


       return 0;


}


 


 


 


................................................................................................................................................


 


 


5. 단게. < 프로그램 2> 를 다음과 같이 변경해보자.


 


9: printf("%c", 1);


 


 


빠귄후 프로그램 2는 무엇을 보여주나요 ?..


 


9: 는 아홉줄에 잇는 소스를 뜻하는겁니다.


 


 


 


 


 


...............................................................................................................................................


 


 


 


여기 까지 오셔서. 수고하셧습니다. ^^* 마침으로 숙제를 (?) ( 여기가 학교냐 이씨!! ) 드리고갑니다..


 


답들은 뎃글로 올려주세요 ^^*.         점수를(?) 가장 많이 맞치신 학생(?) 은 선물을 ? 후후훗..


 


 


 


기본 문제.


 


1. C 언어를 가장 좋은 프로그래밍 언어라고 할 수 있는 세 가지 이유를 대답해주세요.


2. 컴파일러는 어떤 작업을 수행하나요?


3. 프로그램 개봘 과정 각 단계는 무엇인가요?


4. C 소스 파일에서 사용해야 하는 확장자는 무엇인가요?


5. 창조시티.TXT 는 C 소스 파일에서 사용할수 있는 이름인가요?


6. 컴파일된 프로그램을 실행했지만 예상했던 대로 작동을 하지 않는다면 무엇을 수행해야 할까요?


7. 기계어는 무엇인가요?


8. 링커의 역활은 무엇일까요?


 


 


그럼 오늘도 수고하셧습니다 .^^*


 


 


 


(최고의 프로그래머가 되기 위해 오늘도 열공!!)      (퍽.. 난 게임제작가란말이다.!! )


 


 


                                                                                                                       


                                                                                                                      By. 초코렛(?) 응?