29
2. 프로그래밍 기초

2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

2. 프로그래밍 기초

Page 2: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

2.1 컴파일러와 Visual Studio

2

Page 3: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

컴파일러

자신의 개발 환경에 맞는 C 컴파일러 선택

– Windows 환경 : Visual Studio, Dev C++

– Mac 환경 : xcode

– Linux 환경 : cc, gcc

Visual Studio를 선택하는 이유

– 개발자가 사용하는 PC가 Windows 환경(윈도우7/8)

– 개발할 프로그램이 실행될 환경 역시 Windows 환경

– 가장 고도화되고 편리한 개발 도구

– 가장 많은 C 개발자가 사용 – 도움을 받기 쉽다.

강C프로그래밍 3

부록 참고

다른 환경에서 개발하더라도 배우는 동안에는 Visual Studio를 사용하자

Page 4: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

IDE

C 프로그램 개발에 필요한 도구들

– C 코드 에디터(편집기)

– 컴파일러

– 링커

– 디버거

IDE란 (Integrated Development Environment)

– 통합 개발 도구/환경(Integrated Development Environment)

– 하나의 프로그램 안에서 프로그램 입력, 컴파일, 실행, 디버깅을 지

– 개발자를 위한 편리한 개발 환경

– 대부분 개발 환경은 IDE 이지만(Visual Studio, Xcode,

DevC++), 아닌 경우도 있다(Linux의 cc, gcc).강C프로그래밍 4

코딩빌드 (컴파일 & 링

크)실행 디버깅

Page 5: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

Visual Studio

1-2년마다 새로운 버전이 출시됨

– 2010

– 2012

– 2013

– 2015

개발 도구별 제품군

– Community

– Express

– Ultimate

– Premium

– Professional

– Team Foundation Server강C프로그래밍 5

비싼 가격, 고급 도구가 포함됨

비교적 최신 버전이면서다수의 개발자가 사용

무료로 사용 가능하면서충분한 기능을 제공

Page 6: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

Visual Studio - 다운로드

마이크로소프트 홈페이지에서 다운로드 및 설치 가능

– https://www.visualstudio.com/products/visual-studio-

community-vs

언어팩

강C프로그래밍 6

Page 7: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

Visual Studio - 실행화면

강C프로그래밍 7

메뉴와 단축모음

솔루션탐색기

코드창

출력 또는 디버그창

Page 8: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

Dev C++

윈도우 환경에서 사용 가능한 또 하나의 IDE

무료

필요 용량이 작아 빠르게 설치 및 운영

gcc 를 포함

http://orwelldevcpp.blogspot.kr/

강C프로그래밍 8

Page 9: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

2.2 프로그램의 작성과 실행

9

Page 10: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

프로그램 개발 과정

강C프로그래밍 10

프로그램 작성

빌드 (컴파일, 링크)

실행 및 결과 확인

정상

정상

빌드 오류

실행 중 오류 발생

디버깅

Page 11: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

프로젝트 (Visual Studio)

1 프로그램 = 1 프로젝트

프로젝트

– 1 이상의 소스 파일

– 0 이상의 헤더 파일

– 0 이상의 리소스 파일

프로그램을 만드는 과정

– 프로젝트를 생성한다.

– 소스 파일을 생성한다.

– 소스 파일에 입력한다.

– 컴파일하고 실행한다.강C프로그래밍 11

Page 12: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

프로젝트 생성

프로젝트 생성

강C프로그래밍 12

① ②

결과

Page 13: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

소스 파일 생성

강C프로그래밍 13

②③

결과

Page 14: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

#include <stdio.h>

int main(void)

{

printf("Hello World \n");

return 0;

}

소스코드 입력

강C프로그래밍 14

엔터키 근처에 있고,백슬래시(\)와 동일

Page 15: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

컴파일과 빌드

컴파일 결과

강C프로그래밍 15

컴파일 성공

컴파일 실패

Page 16: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

빌드 오류 처리

컴파일 오류

– 프로그램에 문법상 오류가 있을 때

– 출력에서 오류의 위치와 내용을 확인한다. 출력된 메시지를 보면

무엇이 문제인지 대부분 알 수 있다.

강C프로그래밍 16

Page 17: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

실행 ( F5 )

실행하면 검은 창에 결과를 보여준다.

결과 윈도우가 금방 없어진다면

– 설정을 변경한 후, Ctrl – F5 로 실행

강C프로그래밍 17

Page 18: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

Dev C++의 개발

특징

– 프로젝트 생성 없이 소스파일만으로 실행 가능

– 컴파일 (F9)

– 컴파일 및 실행 (F11)

강C프로그래밍 18

Page 19: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

2.3 새로운 프로그램 작성

19

Page 20: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

새 프로젝트의 생성

어디에 만들 것인가

– 프로젝트 파일은 어디에 저장할 것인가

– 소스 파일은 어디에 저장되는가

이름은 무엇으로 할 것인가

– 프로젝트 이름 = 프로그램 이름

소스 파일의 이름은 무엇으로 할 것인가

– 프로젝트 이름과 같게 한다.

– 나중에는 소스 파일이 여러 개 생기므로, 이름만으로 기능이 구

별되도록 좀 더 상세히 붙이는 것이 좋다.

강C프로그래밍 20

Page 21: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

프로젝트 옮기기

집에서 작업한 프로젝트를 학교에서 계속 하려면?

– 프로젝트 폴더의 위치를 확인한 후,

– 프로젝트 폴더를 통째로 복사하여 이동한다.

소스 파일만 있다면?

– 프로젝트 생성 후 소스파일 추가하여 작업

중요한 파일

– 프로젝트 파일, 소스코드 파일

중요하지 않은 파일

– 임시 파일, 중간 생성 파일

강C프로그래밍 21버전 관리에 유의하라

Page 22: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

컴파일 후 파일들

강C프로그래밍 22

소스파일(*.c)

프로젝트 파일(*.sln)

실행파일(.exe)

중간파일(.pdb, .ilk)

중간파일(*.obj)

중간파일(*.log, *.idb)

설정 파일(*.suo)

프로젝트 파일(*.vcxprog)

중요 파일

최종 파일

중간 파일

Debug

Project Debug

Project

Page 23: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

소스 코드 입력시 편의기능

문법 강조

자동 완성

자동 들여쓰기

페어링

도움말

문법 자동점검

강C프로그래밍 23

Page 24: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

실행하는 법

실행파일 찾기

– Debug 폴더에 있음

– 빌드가 성공해야 실행파일이 존재함

프로그램 실행

– VS(Visual Studio)에서 실행

– 명령창에서 실행

– 탐색기에서 실행

강C프로그래밍 24

빌드 성공 -> 실행파일이 존재 -> 실행이 가능

Page 25: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

2.4 프로그램의 이해

25

Page 26: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

프로그램의 이해(1)

강C프로그래밍 26

#include <stdio.h>

int main()

{

printf("Hello World\n");

}\n 은 화면에 나오지 않음

복사해서 여러 줄 넣으면 화면 출력도 여러 줄

“” 안의 내용을 화면에 출력함

뭔가 중요한 부분

Page 27: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

프로그램의 이해(2)

강C프로그래밍 27

#include <stdio.h>

int main()

{

printf("Hello World\n");

}공백은 의미 없음

대소문자 구별함. 대문자로 쓰면 에러

끝에 ; 붙임

쌍(pair)으로나옴

줄바꿈의 개수는의미 없음

Page 28: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

좋은 프로그램 만들기

컴파일 오류가 없어야 한다.

요구사항에 잘 부합하여야 한다.

소스 코드를 알아보기 쉬워야 한다.

사용 편의성이 있어야 한다.

성능과 메모리 사용이 효율적이어야 한다.

강C프로그래밍 28

Page 29: 2. 프로그래밍기초contents.kocw.net/KOCW/document/2015/chungang/kimseungtae/02.pdf · 강C프로그래밍 4 ... –Premium –Professional –Team Foundation Server강C프로그래밍

Basic Color

Basic Font

- 제목/본문 텍스트 : 나눔 고딕 / English

- 소스코드 : printf (consolas)

- Notice : 나눔고딕 볼드

Layout

- 제목 : Size 32, Bold, Blue,

- 본문 : Size 18~, Bold/Normal, Black, 줄간격 1.4, 6pt/6pt

- 소스코드 : Size 16, printf (consolas), Gray, 줄간격 1.4

- Notice : Size 18, Bold/Normal, Black

Visual Guideline / 가이드라인