Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 02 프로그램 개발 첫걸음.

Similar presentations


Presentation on theme: "Chapter 02 프로그램 개발 첫걸음."— Presentation transcript:

1 Chapter 02 프로그램 개발 첫걸음

2 프로그래밍 컴퓨터 컴퓨터에서 특정 목적의 일을 수행하는 프로그램을 만드는 과정을 “프로그래밍한다”라고 표현
이러한 프로그램을 만드는 사람을 프로그램 개발자 (Developer) 또는 프로그래머(Programmer) 개발자란 그 정의가 상당히 넓을 수 있고, 프로그래머란 개발자 중에서도 프로그램 원시코드를 만드는 개발자

3 프로그래밍 과정 프로그램 언어와 개발 도구 컴파일링과 링킹
프로그램을 개발하기 위해서는 가장 먼저 프로그램 개발에 사용할 프로그램 언어를 하나 선정 그 다음에는 선정한 언어를 이용하여 프로그램을 개발하기 위한 환경인 개발 도구(Developing Tools)가 필요 컴파일링과 링킹 프로그램 컴파일러와 링커

4 통합개발환경 통합개발환경 Visual C++
컴파일러, 디버거, 링커, 에디터 등을 통합적으로 제공하는 개발 환경을 통합 개발 환경(Integrated Development Environments) 통합 개발 환경의 대표적 제품이 MS의 비쥬얼 C++(MS Visual C++) Visual C++ 프로그램 언어 C와 C++를 이용하여 응용 프로그램을 개발할 수 있는 개발 도구 이용할 버전은 Microsoft Visual C Professional Edition

5 개발도구 실행 비쥬얼 C++의 실행 바탕화면에 있는 비쥬얼 C++의 프로그램 실행 아이콘을 더블클릭
다음은 개발도구를 실행한 첫 화면

6 프로젝트 만들기 메뉴 File 의 New

7 콘솔 애플리케이션 종류 빈 프로젝트 만들기

8 소스 파일 만들기 폴더에 파일 추가

9 소스 파일 만들기 에디터에 파일 생성

10 준비완료 소스를 작성할 수 있는 모든 준비가 완료
개발 환경의 전체 윈도우 화면은 크게 세 부분 즉 작업 창, 결과 창, 파일 창으로 개발 환경 전체 윈도우의 오른쪽 부분의 파일 창에서, 주어진 C 언어 소스를 작성 습

11 프로그램 준비 프로젝트 만들기 복습

12 첫 프로그램 원하는 문장(문자열) 출력 소스 작성 나는 홍 길동이고 학번은 2004-2014입니다.
자신의 이름과 학번을 출력하는 프로그램을 만들어보자 이 프로그램은 myname을 프로젝트 이름으로 하고 소스 코드는 myname.c 파일에 작성 소스 작성 C 언어의 문법에서 영어의 대소문자는 구별하므로, 대소문자를 구분하여 신중히 작성 나는 홍 길동이고 학번은 입니다.

13 소스 작성 시 주의점 대소문자를 정확히 구분하자.
특수 문자(#, {, }, (, ), <, >, /,\, ‘, “)를 정확히 구분하여 기술하자. 문장 뒤에는 세미콜론(;)을 반드시 기술하자. 되도록이면 처음에는 잘 작성된 코드의 모양을 그대로 모방하여, 공백과 라인을 구분하자. 한 단어의 중간에는 공백이 없어야 하며, 정확한 철자에 유의하자. 들여쓰기에 반드시 유의하자.

14 에디터의 글자 색상 메뉴 Tools 6가지 부류의 색상 지정 하부 Options… 선택 키워드(Keyword)
주석(Comment) 수(Number) 문자열(String) 연산자(Operator) 그 외 일반 텍스트

15 교재에서 색상 6가지 부류의 색상 지정 키워드(Keyword) 주석(Comment) 수(Number) 문자열(String)
int, void, return은 파란색 주석(Comment) /* */ 부분은 녹색 수(Number) 분홍색 문자열(String) 붉은색 연산자(Operator) 고동색 그 외 일반 텍스트 main, printf는 검은색

16 프로그램의 이해 주석 소스의 첫 줄에 보이는 /* … */을 주석(Comments)
주석은 프로그램 언어의 문법과는 관계없는 프로그램 설명 문장을 표현하기 위한 방법 /* 기호와 */ 기호 사이에 입력되는 글자는 모두 프로그램 언어의 문법과는 관계없는 문장을 기술 주석의 길이는 아무리 길어도 프로그램과는 무관하므로 필요한 경우에는 충분히 이용 다음과 같이 여러 줄에 걸쳐 주석 이용이 가능 /* myname.c */

17 프로그램의 이해 전처리기 지사자(Preprocessor directives)
컴파일 하기 전에 먼저 처리해야 할 일을 수행하도록 명령을 내리는 문장 문장 #include는 다음에 나오는 헤더 파일(header file)을 이 문장이 있는 부분에 삽입하는 역할을 수행 즉 문장 #include 다음에는 헤더 파일의 이름을 <파일이름> 형식으로 반드시 기술 #include 문장은 반드시 한 줄에 모두 기술 #include <헤더파일이름>

18 프로그램의 이해 main 함수 함수 main()은 C 언어에서 프로그램이 시작되는 함수로, 프로그램이 실행되려면 프로그램은 반드시 main() 함수를 가져야 함 함수 main()에서 기술되는 단어인 int, main, void는 모두 소문자로 대소문자를 구분하여 정확히 기술 int 와 main 사이의 공백은 단어를 구별하는 중요한 의미가 있으므로, 하나 이상의 공백은 반드시 필요 main 이후의 6 번째 라인의 집합기호 {는 반드시 있어야 하며, 이는 main() 함수의 시작을 의미 마찬가지로 10 번째, 즉 마지막 줄에 있는 집합 기호 }는 main 함수의 끝을 의미하고 main() 함수의 마지막에 반드시 기술 함수 main(void) 이후의 문장에서 여러 줄에 걸쳐 문장이 있는 것을 볼 수 있는데, 이것은 프로그램 읽기(readability)를 쉽게 하기 위함 반드시 줄마다 하나의 문장을 기술해야 하는 것은 아님 /* myname.c */ #include <stdio.h> int main(void) { printf("나는 홍 길동이고 학번은 입니다. \n"); return 0; }

19 프로그램의 이해 printf 함수 표준출력으로 출력을 하기 위한 함수
함수 이름 printf는 print formatted라는 의미에서 만들어진 이름으로, 정형화된 표준 출력을 위한 함수 함수 printf()를 이용한 마지막 부분의 세미콜론은 C 언어에서 문장의 마지막에 반드시 나와야 하는 문자

20 프로그램의 이해 문자열(String) 문자열에서의 \n 소스의 “나는 홍길동이고 …”와 같이 문자가 연결된 것을 문자열
C 언어에서는 문자열을 구성하려면 문자열을 큰 따옴표로 앞과 뒤를 둘러싸야 함 문자열에서의 \n 이 두 문자는 문자열을 구성하는 의미 있는 문자로 이 두 문자는 반드시 붙여 써야 함 \n 의 의미는 \n이 나타나는 이후에는 새로운 줄에 출력하라는 의미 /* myname.c */ #include <stdio.h> int main(void) { printf("나는 홍 길동이고 "); printf("학번은 입니다.\n"); return 0; }

21 컴파일 목적파일을 생성 컴파일 메뉴는 Build 하부의 Compile myname.c를 선택하거나,
아이콘은 도구 아이콘에서 종이를 모아놓은 것과 같은 아이콘을 선택 또는 Ctrl + F7 키 이용

22 컴파일 결과 결과창 출력된 메시지는 myname.c 소스를 컴파일하여 목적 파일인 myname.obj 파일이 성공적으로 만들어진 것을 표현 여러분의 화면에서 0 error(s), 0 warning(s)가 아니면 에러나 경고가 발생한 것 이 경우 대부분 여러분의 소스 코딩에 문제가 있는 것으로 다시 한번 주의를 기울여 잘못된 부분을 찾아 수정하여 다시 컴파일 목적 파일은 소스파일 이름과 object의 obj를 확장자로, 그 이름을 명명

23 소스 파일에서 목적 파일 컴파일 목적파일의 생성

24 프로그램 실행 실행 파일 만들기 실행 메뉴 Build 하부의 build myname.exe를 선택
아이콘은 도구아이콘에서 종이 박스를 누르는 듯한 아이콘을 선택 또는 F7 키 실행 메뉴 Build 하부의 Execute myname.exe를 선택 아이콘은 도구아이콘에서 느낌표(!) 아이콘을 선택 또는 ctrl + F5 키 이 방법은 실행 파일을 만들지 않더라도 자동으로 실행 파일을 먼저 생성하고 실행

25 실행 결과 콘솔 프로그램의 결과 결과 화면 다음과 같은 도스창(콘솔)에서 실행 실행파일 myname.exe를 실행한 결과
실행화면은 새로운 창에서 출력하려는 문장(“나는 홍 길동이고 학번은 입니다.”)이 나타나고, 그 다음 줄에 영문(Press any key to continue)은 비쥬얼 C++에서 프로그램을 실행하면 제일 마지막에 항상 나오는 것으로 아무 키나 누르면 실행 화면이 닫힌다는 의미를 사용자에게 알려주는 문장 이 문장은 프로그램 내용과는 무관하며, 이 문장이 나오면 프로그램이 정상적으로 실행되고 종료된 것을 의미

26 에러 수정 에러 디버깅 프로그램 과정에서 나타나는 문제를 에러(Error)
에러는 크게 컴파일 시간에 발생하는 에러와 실행 시간에 발생한 에러로 구분 컴파일 시간에 발생하는 에러를 “컴파일 (시간) 에러” 실행 시간에 발생한 에러는 “실행 (시간) 에러 실행 시간 에러는 넓은 의미로 링크 과정과 실행 과정에서 발생하는 에러로 볼 수 있음 디버깅 컴파일 에러나 실행 에러를 수정하는 과정을 디버깅(debugging) 디버깅이란 버그를 잡는다는 의미로 여기서 버그란 바로 에러를 의미

27 디버깅 예제 프로그램 목적 파일 구성 소스 디버깅 본인의 정보, 즉 이름, 나이, 생년월일을 세 줄에 출력하는 프로그램
프로그램 저장 장소 : D:\source 폴더 프로젝트 이름 : mybirth 소스 파일 이름 : mybirth.c 소스 아래와 같이 작성했다면 이 소스는 컴파일 시간에 에러가 발생 소스의 색상이 모두 녹색 디버깅 에러 메시지를 자세히 읽어 에러를 수정하는 디버깅 과정을 거쳐, 완벽한 프로그램을 만들어 보도록

28 에러 메시지 메시지의 이해 에러 수정 에러가 발생한 파일 이름과 줄 번호가 나타나고 이어서 에러 번호 C1071
13이 에러 발생을 의심하는 줄 이어서 에러 번호 C1071 그리고 에러 메시지 unexpected end of file found in comment 에러 수정 에러 발생 줄 번호인 13라인을 수정하는 것이 아니라, 1라인의 마지막 부분인 *와 /사이의 공백을 제거해야 함 에러 메시지는 13라인으로 나오는데, 실제로는 1라인을 수정 에러 메시지의 에러 라인 번호와 수정해야 할 위치가 일치하지 않을 수 있음

29 #include 잘못된 단어 입력 이번에는 3라인에서 에러번호 C1021이고 메시지는 invalid preprocessor command 'incude' 3라인에서 include의 철자가 잘못돼서 나는 에러 단어 include 에서 철자 l이 빠진 것

30 함수 printf() 또 다른 경고 수정 그러나 아직도 링크가 안됨
수정된 소스를 컴파일하면 에러는 없는데 다음과 같이 1 개의 경고(Warning)가 발생 경고는 경미한 에러라고 볼 수 있는데, 이러한 경고도 모두 제거하는 것이 좋음 위 소스에서는 경고로 나오지만 이 문제를 수정하지 않고는 프로그램을 실행할 수 없음 수정 위 경고 메시지는 다음 소스와 같이 7라인에서 print를 printf로 수정 그러나 아직도 링크가 안됨

31 함수 main() 링크 에러 메러 메시지 분석 컴파일은 가능하나 링크에서 다음과 같은 에러가 발생
두 개의 에러가 발생하는데 모두 함수 main을 Main으로 잘못 기술한 것에서 발생 메러 메시지 분석 에러 메시지는 외부 심볼 main을 해결할 수 없다고 하는데 소스에서 함수 main()이 없기 때문에 발생하는 에러 링크 과정은 여러 함수를 하나의 응용 프로그램으로 연결하는 과정으로 함수 main()이 있어야 응용 프로그램을 만들 수 있음

32 로직 에러 실행 로직 에러 위 소스를 컴파일하고 실행하면 다음과 같은 결과가 발생
실행에는 아무 문제가 없으나 처음에 의도한 결과와 다름 3줄에 본인의 정보가 나와야 하나 결과는 2줄에 나오고 있음 로직 에러 위와 같이 컴파일과 실행에는 문제가 없으나 원하는 결과가 나오지 않은 것도 하나의 에러 이러한 에러를 논리 에러(Logic Error) 이러한 논리 에러도 결국 소스 코딩을 잘못했기 때문

33 완전한 프로그램 로직 에러의 수정 소스 8줄에서 \t를 \n으로 수정 \t은 수평 탭 만큼의 이동을 의미

34 디버깅 과정 return 0; 프로그램 부분 5 가지 수정 /* mybirth.c */
#include <stdio.h> int main(void) { printf("나는 홍 길동이고\n"); printf("18살이며,\n"); printf("생년월일은 입니다.\n"); return 0; }

35 프로그램 연습 프로그램 목적 파일 구성 다음과 같은 문장을 출력하는 프로그램을 작성
프로그램 저장 장소 : D:\source 폴더 프로젝트 이름 : mylang 소스 파일 이름 : mylang.c

36 소스 5가지 수정 /* mylang.c */ #include <stdo.h> Int main(void) {
printf("주요 프로그램 언어 :\n"); printf("\t\tC 언어\n"); printf("\t\tPascal 언어\n"); printf("\t\tJava 언어\n'); printf("\t\tC# 언어\n); printf("\t\C++ 언어\n"); return 0; }


Download ppt "Chapter 02 프로그램 개발 첫걸음."

Similar presentations


Ads by Google