<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

Similar documents
<4D F736F F F696E74202D204C BAB8C3E6BCB3B8ED202D20C7C1B7CEB1D7B7A1B9D6C0DBBCBAB0FAC1A42C C F>

Microsoft PowerPoint - chap-02.pptx

Microsoft PowerPoint - chap-02.pptx

untitled

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - 1장 C 프로그래밍 시작하기 pptx

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

OCW_C언어 기초

Microsoft PowerPoint - chap-03.pptx

PowerPoint Presentation

Microsoft PowerPoint - gnu-w09-c-chap

Microsoft PowerPoint - Lesson2.pptx

C 프로그램의 기본


쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

프로그램의실행화면 주석 (comment) 두수의합 : 300 /* 두개의숫자의합을계산하는프로그램 */ 주석은코드를설명하는글입니다. 주석 3 가지방법의주석 주석의예 /* 한줄로된주석 */ /* 저자 : 홍길동날짜 : 2013.

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

vi 사용법

Microsoft PowerPoint - 1C언어소개0.PPT

BMP 파일 처리

Microsoft PowerPoint - 2주차-1차시 (강의자료) ch01 - C Programming 기초 (part 2)

슬라이드 1

untitled

01장

PowerPoint 프레젠테이션

슬라이드 1

슬라이드 1

Microsoft PowerPoint - ch 전처리기, 다중 소스파일 pm1015

쉽게 풀어쓴 C 프로그래밊

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

C 언어와 프로그래밍 개요

슬라이드 1

Microsoft PowerPoint - ch01.ppt

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드]

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor

쉽게

11장 포인터

PowerPoint 프레젠테이션

슬라이드 1

슬라이드 1

C언어 및 실습 C Language and Practice

Æí¶÷4-¼Ö·ç¼Çc03ÖÁ¾š

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap08-1 [호환 모드]

C 프로그래밊 개요

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

Microsoft PowerPoint - chap03-변수와데이터형.pptx

컴파일러

Microsoft PowerPoint - chap12-고급기능.pptx

초보자를 위한 C++

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

강의의목표 Compiled Language vs. Interpreted Language 차이이해 Compiling의의미이해 Compiling의결과물확인 통합개발환경구축 Eclipse 통합개발환경을통한예제의 Bulid 및실행 Formatter 등의편집지원기능, Refer

Microsoft PowerPoint - gnu-w10-c-chap11

SaaS 플랫폼을 위한 Web 2.0기반 서비스 제공 미들웨어 기술 연구

PowerPoint 프레젠테이션

Microsoft PowerPoint - System Programming Lab Week1.ppt [호환 모드]

C++-¿Ïº®Çؼ³10Àå

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

Microsoft PowerPoint - [2009] 02.pptx

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

슬라이드 1

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - 08_(C_Programming)_(Korean)_Preprocessing

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

중간고사

PowerPoint 프레젠테이션

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

gdb 사용법 Debugging Debug라는말은 bug를없앤다는말이다. Bug란, 컴퓨터프로그램상의논리적오류를말하며, 이것을찾아해결하는과정이바로, debugging이다. 초기컴퓨터들은실제벌레가컴퓨터에들어가서오작동을일으키는경우가있었다고하며, 여기서 debug 이라는말이

슬라이드 1

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

PowerPoint Template

슬라이드 1

Microsoft PowerPoint - CSharp-10-예외처리

int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \

Microsoft PowerPoint - KNK_C01_intro_kor

쉽게 풀어쓴 C 프로그래밍

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

PowerPoint 프레젠테이션

KNK_C01_intro_kor

C 언어 프로그래밊 과제 풀이

Microsoft PowerPoint APUE(Intro).ppt

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

Visual Studio online Limited preview 간략하게살펴보기

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap05-제어문.pptx

02 C h a p t e r Java

Microsoft PowerPoint - Chapter_01.pptx

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

untitled

OCW_C언어 기초

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

1 부. OJ 시스템사용법 1. 회원가입및로그인 1) 접속후메인화면의우측상단 Sign up 선택 - 학번 (Student ID), 비밀번호, 비밀번호확인, 이름, 입력후 Register 버튼클릭 2) 메인화면에

ABC 2장

Transcription:

쉽게풀어쓴 C 언어 Express 제 2 장프로그램개발과정

통합개발환경 통합개발환경 (IDE: integrated development environment) 에디터 + 컴파일러 + 디버거 Visual C++: 이클립스 (eclipse): Dev-C++: 마이크로소프트제작 오픈소스프로젝트 오픈소스프로젝트

통합개발환경의종류 비주얼 C++(Visual C++) 마이크로소프트사의제품 윈도우기반의거의모든형태의응용프로그램제작가능 최신버전 : 비주얼 C++ 2010 우리가사용할버전 : 비주얼 C++ 2010

통합개발환경의종류 Dev-C++ 오픈소스프로젝트의산물 C/C++ 통합개발환경 GCC 컴파일러이용 무료

비주얼 C++ 설치

워크스페이스와프로젝트 솔루션 (solution); 문제해결에필요한프로젝트가들어있는컨테이너프로젝트 (project): 하나의실행파일을만드는데필요한여러가지항목들이들어있는컨테이너

프로젝트생성하기

프로젝트생성하기

프로젝트생성하기

소스파일생성하기

소스파일생성하기

프로그램입력

프로그램입력

전문가설정

컴파일하기

프로그램실행하기

중간점검 에디터, 컴파일러, 링커, 실행, 디버깅등의기능이하나의프로그램안에들어있는것을무엇라고하는가? Visual C++ 에서새로운프로젝트를생성하는메뉴는무엇인가? Visual C++ 에서프로젝트에속하는소스파일을컴파일하여실행파일을생성하는메뉴는? C 언어에서는대문자와소문자를구별하는가? Visual C++ 를이용하여서 sample.c라는소스파일을컴파일하였을때생성되는파일들은무엇인가? Visual C++ 를사용하여소스프로그램을편집하는경우, 메모장같은다른텍스트에디터를사용하여도되는가?

첫번째프로그램의설명 #include <stdio.h> int main(void) { printf("hello World!"); return 0; }

프로그램 == 작업지시서 #include <stdio.h> * 화면에 Hello World! 를표시한다. int main(void) { printf("hello World!"); return 0; } 작업지시서 프로그램

작업을적어주는위치 #include <stdio.h> int main(void) { 여기다가원하는작업을수행하는문장을적어준다. return 0; } 프로그램

간략한소스설명 #include <stdio.h> int main(void) { } printf("hello World!"); return 0; 헤더파일을포함한다. 메인함수시작화면에 Hello World! 를출력외부로 0값을반환 메인함수종료 프로그램

#include <stdio.h> #include 는소스코드안에특정파일을현재의위치에포함 헤더파일 (header file): 컴파일러가필요로하는정보를가지고있는파일 stdio.h: standard input output header file 주의!: 전처리기지시자문장끝에는세미콜론 (;) 을붙이면안된다.

int main(void) 함수를정의하는문장 함수 (function): 특정한작업을수행하기위하여작성된독립적인코드 ( 참고 ) 수학적인함수 y x 2 1 프로그램 = 함수의집합 main() 은가장먼저수행되는함수 입력 함수 출력

함수의간략한설명

문장 함수는여러개의문장으로이루어진다. 문장들은순차적으로실행된다. 문장의끝에는반드시 ; 이있어야한다.

printf("hello World!"); printf() 는컴파일러가제공하는함수로서출력을담당합니다. 큰따옴표안의문자열을화면에출력합니다.

return 0; return 은함수의결과값을외부로반환합니다. 운영체제 main() printf( Hello World! ); return 0; 운영체제

중간점검 문장의끝에추가하여야하는기호는? printf() 가하는기능은무엇인가?

응용프로그램 #1 다음과같은출력을가지는프로그램을제작하여보자.

첫번째버전 문장들은순차적으로실행된다는사실이용 #include <stdio.h> int main(void) { printf("hello World!"); printf("kim ChulSoo"); 2 개의문장은순차적으로실행된다. } return 0;

줄바꿈문자 \n 줄바꿈문자인 \n 은화면에서커서는다음줄로이동하게한다. Hello World! printf( Hello World! ); Hello World! 현재커서의위치. 다음문자를표시할때는이곳부터시작한다. printf( Hello World!\n );

줄바꿈문자 2 개를사용하면?

변경된프로그램 줄바꿈문자를포함하면우리가원하던결과가된다. #include <stdio.h> int main(void) { printf("hello World!\n"); printf("kim ChulSoo \n"); return 0; }

응용프로그램 #2 다음과같은출력을가지는프로그램을제작하여보자.

응용프로그램 역시문장들은순차적으로수행된다는점을이용한다. #include <stdio.h> int main(void) { printf("3 X 1 = 3\n"); printf("3 X 2 = 6\n"); printf("3 X 3 = 9\n"); 3 개의문장은순차적으로실행된다. } return 0;

중간점검 화면에새로운줄을만드는데사용되는특수한기호는? 사과, 오렌지, 포도 를한줄에하나씩출력하는프로그램을작성하여보자. 구구단 3단전체를출력하는프로그램을작성하여보자.

오류수정및디버깅 컴파일이나실행시에오류가발생할수있다. 에러와경고 에러 (error): 심각한오류 경고 (warning): 경미한오류 오류의종류 컴파일시간오류 : 대부분문법적인오류 실행시간오류 : 실행중에 0으로나누는연산같은오류 논리오류 : 논리적으로잘못되어서결과가의도했던대로나오지않는오류

오류수정과정 컴파일러 (compiler) 링커 (linker) 실행 (execution) 소스파일 test.c 오브젝트파일 test.obj 실행파일 test.exe ERROR!! 컴파일시간오류 실행시간오류논리오류

오류 #1 #include <stdio.h> int main(void) { printf("hello World!\n") return 0; } 문장의끝에 ; 이없음!! 오류가발견된소스파일 오류가발견된줄번호 return 앞에 ; 을빠뜨렸다는의미이다. 1>------ 모두다시빌드시작 : 프로젝트 : hello, 구성 : Debug Win32 ------ 1> hello.c 1>c:\users\chun\documents\visual studio 2010\projects\hello\hello\hello.c(7): error C2143: 구문오류 : ';' 이 ( 가 ) 'return' 앞에없습니다. ========== 모두다시빌드 : 성공 0, 실패 1, 생략 0 ==========

오류 #2 /* 에러가발생하는프로그램 * / #include <stdio.h> int main(void) { printf("hello World!\n") return 0; } * 과 / 이떨어져있음 -> 전체가주석처리됨 1>------ 빌드시작 : 프로젝트 : hello, 구성 : Debug Win32 ------ 1> hello.c 1>c:\users\chun\documents\visual studio 2010\projects\hello\hello\hello.c(9): fatal error C1071: 주석에서예기치않은파일의끝이나타났습니다. ========== 빌드 : 성공 0, 실패 1, 최신 0, 생략 0 ========== 주석은프로그램에대한설명글로서 /* */ 안에표시한다.

오류 #3 #include <stdio.h> int main(void) { print("hello World!"); return 0; } print 가아니라 printf 임 1>------ 빌드시작 : 프로젝트 : hello, 구성 : Debug Win32 ------ 1> hello.c 1>c:\users\chun\documents\visual studio 2010\projects\hello\hello\hello.c(6): warning C4013: 'print' 이 ( 가 ) 정의되지않았습니다. extern 은 int 형을반환하는것으로간주합니다. 1>hello.obj : error LNK2019: _print 외부기호 ( 참조위치 : _main 함수 ) 에서확인하지못했습니다. 1>c:\Users\chun\Documents\Visual Studio 2010\Projects\hello\Debug\hello.exe : fatal error LNK1120: 1 개의확인할수없는외부참조입니다. ========== 빌드 : 성공 0, 실패 1, 최신 0, 생략 0 ==========

논리오류 다음과같은출력을가지는프로그램을작성하여보자.

논리오류가존재하는프로그램 #include <stdio.h> int main(void) { printf("hey!"); printf("good Morning"); return 0; } 줄이바뀌지않았음!

논리오류가수정된프로그램 #include <stdio.h> int main(void) { printf("hey! \n"); printf("good Morning \n"); return 0; } 논리오류수정!!

디버깅 디버깅 : 논리오류를찾는과정

디버거 (debugger)

디버거의실행과정

디버거의명령어정의 F5 (Go): 실행 F10 (Step Over): 한문장씩실행 ( 함수도하나의문장취급 ) F11 (Step Into): 한문장씩실행 ( 함수안으로진입 ) F9 (Breakpoint): 현재문장에중단점을설정

중간점검 프로그램을편집하여컴파일, 링크를한다음, 실행시켰는데자신이기대한대로결과가나오지않았다. 이때는어떻게하여야하는가? 비교적경미한오류를무엇이라고하는가?

Q & A