언어 C언어를 새발로 먹기? 3화.
2006.08.10 13:18
안녕하세요. 초코군입니다 . +_+
인제 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. 초코렛(?) 응?
댓글 19
-
샤르엘
2006.08.10 17:42
-
아란
2006.08.10 18:25
감사합니다.
|+rp2+|2097|+rp3+|acoc_board_ideatip -
Dr.None
2006.08.11 02:40
ㅠ.ㅠ 흑흑 알려주신건 printf 함수밖에 없는데 scanf 에 for문에... 흑흑
근데 return 0; 은 왜 해주는건가요? |+rp2+|2098|+rp3+|acoc_board_ideatip -
초코군
2006.08.11 07:44
아 현제는.. 기냥 따라서 프로그램을 만들어보시라구.. 그렇는게 더 나중에들어가서
모든 커맨드를 차차 배우게돼니 =ㅁ= 밑에 예제프로그램은 기냥 이런프로그램도 만들수잇다는걸;;;;
리턴 0; 는 프로그램이 끝나기 전에 운영체제 갑을 전부다 0로 초기화 시키는 커맨드죠
안그러면 갑이그대로 남아잇는데.. product 하고 ;; 함수들이 =ㅁ=;; 엉커버리는;|+rp2+|2107|+rp3+|acoc_board_ideatip -
초코군
2006.08.11 07:44
그 그런데 숙제를 냊는데 아무도 해오지않는 이유는 =ㅁ=? 덜덜..|+rp2+|2108|+rp3+|acoc_board_ideatip -
Dr.None
2006.08.11 09:20
그건 어렵기때문입니다...-_-|+rp2+|2112|+rp3+|acoc_board_ideatip -
Dr.None
2006.08.11 09:21
감사 ^-^ |+rp+|2107|+rp2+|2113|+rp3+|acoc_board_ideatip -
초코군
2006.08.12 10:36
1화 2화 3화 전부다 읽어서 공부하셧다면... 해보기라도 하셧다면 숙제는 식은죽먹기인데..
배울가치가 없는거라는건가... 덜덜....|+rp2+|2121|+rp3+|acoc_board_ideatip -
아란
2006.08.12 12:36
그게 아니라...
귀차니즘 때문입니다.(털썩.) |+rp+|2121|+rp2+|2122|+rp3+|acoc_board_ideatip -
KYOUNGPYO
2006.08.12 17:41
do_it 을 printf 로 고치는거 맞나요?????
또, main(); 을 main()으로 고치는건가요??;;
아래는 숙제 -ㅅ-.
1. C 언어를 가장 좋은 프로그래밍 언어라고 할 수 있는 세 가지 이유를 대답해주세요.
뛰어난 기능이 있어서, 가장 강력한 기능 을 제공, 반면에 융통성을 발휘(맞나요?)
2. 컴파일러는 어떤 작업을 수행하나요?
오브젝트 코드를 생성하기 위해서(??)
3. 프로그램 개발 과정 각 단계는 무엇인가요?
①프로그램에 목적을 만듬
②프로그램을 어떻게 만들고 작성할지 사용하는 방법 결정
③계획된 시나리오를 프로그램을 작성
④작성된 프로그램을 실행
4. C 소스 파일에서 사용해야 하는 확장자는 무엇인가요?
EXE(?)
5. 창조시티.TXT 는 C 소스 파일에서 사용할수 있는 이름인가요?
아니요(..??)
6. 컴파일된 프로그램을 실행했지만 예상했던 대로 작동을 하지 않는다면 무엇을 수행해야 할까요?
디버깅(?)
7. 기계어는 무엇인가요?
컴퓨터가 인식하는 언어/////?????????????????????????
8. 링커의 역활은 무엇일까요?
컴퓨터에서 사용하기위해서 파일을 변환시키는것?
중간에 모르는거 있어서 몇개좀 배꼇습니다.;;|+rp2+|2123|+rp3+|acoc_board_ideatip -
KYOUNGPYO
2006.08.12 17:44
수정할께요. 6번 은 잘몰라서 디버깅이라고 햇는데. 오류검사로 바꿈니다.;; |+rp+|2123|+rp2+|2124|+rp3+|acoc_board_ideatip -
초코군
2006.08.12 17:49
네 맞습니다. do_it 을 printf 로 바꾸면 작동이 돼는데 main 도맞으셧구요
컴파일 해서 돌려보면 텍스트가 다 꺠지게 나옵니다.
그래서 + MARIO MARIO MARIO + 파트를 지워주셔야.. 재대로 다 동작을 하지요.
컴파일을 하는 이유는 EXE 파일을 만들기위해서 이지요;; 오브젝트코드를 위해서? 도 맞는말입니지만.. 음 컴파일을 하는이유는.. C 언어로 제작한프로그램이 오류가없이.. 재대로 다 맞춘법이 맞앗는지 검사 하고 EXE파일로 만들기위한 하나에 과정이지요.. 컴파일만 해서
됀다면 프로그램을 만들수잇는거랑갓습니다.
그리고 C 소스파일은 WELCOME.C 에서 보신거같이 Cpp 나 C 로 확장자가 만들어집니다 세이브할떄 . C 언어로 제작됀 소스파일을 의미하기위해서 EXE 확장자는 Executive 라 프로그램을
실행할수 잇는 실행 확장자지요.. EXE 는 변경할수없습니다.
1 나 틀리셧네요 +_+ 수고하셧어요;;; 선물(?) 드리지요;; 털털;;;;
꽁자로 프로그램을 ? ( 후후훗 ) 예기하만하세요 올려드리지요 원하는프로그램;;;
(크랙?) 전문입니다;;;; 컬컬컬;; 열공하시길 +_+ |+rp2+|2125|+rp3+|acoc_board_ideatip -
초코군
2006.08.12 17:54
디버깅도 맞는 뜻입니다.. 디버깅을 한다는건 다시 수정을 한다는뜻과 같지요.. debug 를 사전에서 검색하시기 바랍니다 +_+ 더 전문적인 설명을 원한다면;;|+rp2+|2126|+rp3+|acoc_board_ideatip -
땅콩아줌마
2006.09.03 23:52
massage가 아니라 message 아닌가요;;;|+rp2+|2269|+rp3+|acoc_board_ideatip -
초코군
2006.09.04 19:26
크흑 오타 포착인가요 ;;; 덜덜;; |+rp+|2269|+rp2+|2270|+rp3+|acoc_board_ideatip -
프로그래머가되고싶은
2007.01.01 04:46
;;근대그거 어디서까는지 주소좀 ㅡ.ㅡ복사해주세요 ;; 못찾겠어요ㅜㅜ|+rp2+|2577|+rp3+|acoc_board_ideatip -
프로그래머가되고싶은
2007.01.01 04:48
볼랜드 가 많은대 ㅡ.ㅡ 잘못찾겠음 ㅜ|+rp2+|2578|+rp3+|acoc_board_ideatip -
あぃ
2007.02.19 04:44
언어재료실이라는 자체가 없는것 같다는...|+rp2+|2790|+rp3+|acoc_board_ideatip -
하르푼
2007.02.26 01:44
하아.. 언어재료실은 어디에 숨어있는겁니까..|+rp2+|2816|+rp3+|acoc_board_ideatip
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
289 | 다들 연세가 어떻게들 되시나요 [4] | MrGeek | 2006.08.18 | 365 |
288 | ARM 어셈블리 강좌 #1: ARM 뜯어보기 [1] | 원스타 | 2006.08.17 | 452 |
287 | ARM 어셈블리 강좌 #0: 무념 [6] | 원스타 | 2006.08.17 | 345 |
286 | for문 (수정) [1] | 연지 | 2006.08.17 | 221 |
285 | 시퀸스 컨테이너 - 벡터 [1] | 연지 | 2006.08.17 | 176 |
284 | 대화창을 화사하게 장식해볼까요? 장식은 정말 쉽죠? [10] | 노친네 | 2006.08.17 | 1175 |
283 | 양자 컴퓨터에 대해 여러 가지를 알아보니... [2] | 아란 | 2006.08.16 | 217 |
282 | ARM 어셈블리 입문 (장벽을 높이는) 이야기? [4] | 원스타 | 2006.08.16 | 316 |
281 | [ 서버이전 끝남 ] [3] | 초코군 | 2006.08.15 | 213 |
280 | [서버이전공지] [1] | 아란 | 2006.08.15 | 205 |
279 | 나의 크링이!! [3] | 아란 | 2006.08.14 | 252 |
278 | 문자 입출력 함수 (수정) [5] | 연지 | 2006.08.14 | 253 |
277 | 자유 게시판에서 한바탕 난리를 보신 분들도 있을 겁니다. [1] | 아란 | 2006.08.13 | 235 |
276 | [TIP]대기 0초 [19] | Yggdrasil | 2006.08.11 | 1763 |
275 | 양자컴퓨터(量子~· Quantum Computer) [4] | 아란 | 2006.08.11 | 254 |
274 | 양자론(Quantum Theory) [2] | 아란 | 2006.08.11 | 336 |
273 | 마을 칩셋부탁 드려요 ㅠㅠ 제발요... 아니면 집 칩셋이라도.. [14] | RPG만들기2003매니 | 2006.08.11 | 430 |
272 | C언어의 기초문법규칙! [4] | 샤르엘 | 2006.08.10 | 344 |
» | C언어를 새발로 먹기? 3화. [19] | 초코군 | 2006.08.10 | 511 |
270 | 언어정보교류 게시판 통계 [3] | 아란 | 2006.08.10 | 250 |
드디어 프로그램 만들어보는군요 ㅎㅎ|+rp2+|2094|+rp3+|acoc_board_ideatip