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

Slides:



Advertisements
Similar presentations
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
Advertisements

01 C 프로그래밍 첫걸음 세종대학교 최옥경 교수. C 언어의 역사  B 언어에서 발전  C 언어는 켄 톰슨 (Ken Tompson) 이 개발한 B 언어에서 발전된 언 어  C 언어는 1972 년경, 시스템 PDP-11 에서 운용되는 운영체제 Unix 를 개발하기.
제 2 장 프로그램 개발과정. 통합 개발 환경  통합 개발 환경 (IDE: integrated development environment)  에디터 + 컴파일러 + 디버거.
© 2012 생능출판사 All rights reserved 쉽게 풀어쓴 C 언어 Express C Express 제 2 장 프로그램 개발과정.
C++ Programming 2009 YU-ANTL WINTER C++ Camp Jan 4, 2010 Hyun Sagong Advanced Networking Technology Lab. (YU-ANTL) Dept. of Information & Comm. Eng, Undergraduate.
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
제2장 프로그램 개발과정 C Express.
기초C언어 제1주 실습 강의 소개, C언어 개요, Cygwin/Eclipse 사용 컴퓨터시뮬레이션학과 2016년 봄학기
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발과정 C Express Slide 1 (of 31)
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++로 프로그래밍한다는 것의 의미 세상에서 가장 간단한 C++ 프로그램
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++ 프로그래밍 기초 : 객체지향의 시작 C++로 프로그래밍한다는 것의 의미
Power C++ 제1장 C++ 소개.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Power Java 제3장 이클립스 사용하기.
Power Java 제3장 이클립스 사용하기.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 1-1 C 언어의 개론적 이야기 프로그래밍 언어란 무엇인가? 컴파일이란 무엇인가? 사람과 컴파일러가 이해할 수 있는 약속된 형태의 언어 C 언어도 프로그래밍 언어 중 하나이다. 컴파일이란 무엇인가? 프로그래밍.
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발과정 C Express.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
C언어 콘서트 제1장 프로그래밍 소개.
Power Java 제2장 자바 개발 도구.
누구나 쉽게 즐기는 C언어 콘서트 한남대학교 컴퓨터공학과 이 재 광 교수.
C 언어 1 1주차 C언어 시작하기 - 1차시 C 언어 특징 및 프로젝트 생성 Programming Language.
데이터 파일 C 데이터 파일과 스트림(Stream) 텍스트 파일 처리
Chapter 02 프로그램 개발 첫걸음.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
C / C++ Programming in multi platform
누구나 즐기는 C언어 콘서트 제2장 기초 사항.
1. C++ 시작하기.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
C언어 콘서트 제2장 기초 사항.
1장. 프로그래밍 언어, C 프로그래밍.
ARM Development Suite v1.2
Cross Compiler 설치.
1주차: 프로그래밍언어란 무엇인가? C 언어란? C 프로그래밍을 위한 준비
Chapter 2 기 초 사 항.
C 2장. C 프로그램 시작하기 #include <stdio.h> int main(void) { int num;
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
어서와 C언어는 처음이지 제14장.
27장. 모듈화 프로그래밍.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
제 1장. C++ 시작하기.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
쉽게 풀어쓴 C언어 Express 제2장 프로그램 작성 과정 C Express.
자바 5.0 프로그래밍.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
빌드 성공.
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발 과정 C Express.
( Windows Service Application Debugging )
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
제 6 강 Getting started.
OpenCV 설정 2.21 만든이 딩딩.
STS 또는 Eclipse 에서 프로젝트를 Export 하고 Import 하는 방법
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
공학도를 위한 C언어 프로그래밍실습1 -통합개발환경 사용법-
함수, 모듈.
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
C.
숙제 작성 및 제출 과정 김진하 2008/03/14.
프로그래밍 개론 Ⅰ 제 1장 . 서론 ②.
수업 내용 수업 목표 강의 내용 강의 계획서 교과서 및 참고도서 평가 방법 수강생의 학습 방법 제안 강의자료 사이트
개정판 누구나 즐기는 C언어 콘서트 제1장 프로그래밍 소개 출처: pixabay.
1장. C Language Synopsis.
Presentation transcript:

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

프로그램 작성 과정 소스파일 test.c 오브젝트 파일 test.obj 실행파일 test.exe 컴파일러 (compiler) 링커 (linker) 로더 (loader) 에디터 (editer) 통합 개발 환경(IDE)

프로그램 작성 단계 편집 (edit) 컴파일 (compile) 링크(link) 에디터를 이용하여 원하는 작업의 내용을 기술하여 소스 코드 작성 소스 파일(source file): 소스 코드가 들어 있는 텍스트 파일 (예) test.c 컴파일 (compile) 소스 파일->기계어로 변환 오브젝트 파일(object file) : 기계어로 변환된 파일 (예) test.obj (혹은 test.o) 링크(link) 오브젝트 파일들을 라이브러리 파일들과 연결하여 하나의 실행 파일 생성 실행 파일 (executable file): 실행이 가능한 파일 (예) test.exe (혹은 a.out, test)

Q & A (Q)소스 파일과 오브젝트 파일, 실행 파일 중에서 반드시 보관하여야 하는 파일은 무엇일까? (A) 정답은 소스 파일이다. 소스 파일만 있으면 컴파일러를 수행시켜서 오브젝트 파일, 실행 파일은 만들 수 있다. 하지만 소스 파일을 삭제하면 컴파일이 불가능하다. 따라서 반드시 소스 파일은 잘 보관하여야 한다. Visual C++에서는 프로젝트와 워크스페이스 파일도 같이 보관하는 것이 좋다. 이러한 파일들은 다시 만들 수도 있지만 번거로운 작업이 된다.

통합 개발 환경 통합 개발 환경(IDE: integrated development environment): 에디터 + 컴파일러 + 디버거 디버거: 소스를 디버깅 할 수 있다. 에디터: 소스를 작성 할 수 있다. 컴파일러: 소스를 컴파일 할 수 있다.

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

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

비주얼 스튜디오 2010 시작하기 설정하기: C/C++을 개발하기 위한 설정하기.

비주얼 스튜디오 2010 시작하기

비주얼 스튜디오 2010 시작하기

비주얼 스튜디오 2010 시작하기

워크스페이스와 프로젝트 워크스페이스(workspace); 작업 공간, 여러 개의 프로젝트가 있을 수 있다. 프로젝트(project): 하나의 실행 파일을 만들기 위하여 필요한 파일들의 그룹 워크스페이스: 여러 개의 프로젝트들을 가지고 있는 작업공간 프로젝트: 실행 파일을 만들기 위하여 필요한 파일들

비주얼 스튜디오 2010 시작하기 새로운 프로젝트 생성.

프로젝트 생성하기 프로젝트 이름 파일이 저장될 위치

프로젝트 생성하기

프로젝트 생성하기

소스 파일 생성하기 오른쪽 클릭

소스 파일 생성하기 선택 생성할 파일이름. 확장자는 ‘.c’

소스 파일에 프로그램 작성 ‘Test.c’ 의 내용이 여기에 표시된다. 생성된 파일

비주얼 스튜디오 2010의 전체 구조 소스 파일을 에디팅하는 윈도우. 프로젝트에 속하는 파일을 보여준다. 컴파일과 링크과정에서의 메시지 출력.

프로그램 입력 철자가 틀리지 않도록 조심!

프로그램 입력시 주의 사항 /* 첫번째 프로그램 */ #include <stdio.h> int main(void) /*와 */에서 /와 *는 반드시 붙여서 쓰도록 한다. include나 stdio와 같은 단어는 붙여서 쓴다. /* 첫번째 프로그램 */ #include <stdio.h> int main(void) { printf("Hello World!"); return 0; } 큰따옴표안의 문장들은 화면에 그대로 출력된다. 여기서 \와 n은 반드시 붙여야 한다. int와 main 은 별도의 단어이므로 구별하기 위하여 공백이 있어야 한다. 문장의 끝에는 ;을 잊지말자. ;와 :을 잘 구별한다. 서로 대응되는 중괄호들은 같은 열에 놓는 편이 좋다. 중괄호안에 들어가는 문장들은 일반적으로 들여쓰기를 한다. 탭키를 이용하거나 스페이스키를 이용한다. 비주얼 C++에는 자동적으로 들여쓰기를 해주는 기능이 있다.

컴파일하기 빌드(build)란 보통 컴파일과 링크를 수행하여 실행 파일을 작성하는 것을 의미한다.

컴파일 결과 에러가 없다면 이런 화면이 나타난다.

오브젝트 파일과 실행 파일의 생성 실행 파일이 생성된 것을 확인 할 수 있다.

프로그램 실행 하기

실행 결과 화면 프로그램의 출력. 프로그램 실행이 끝나면 나오는 메시지.

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

주석 주석(comment): 프로그램에 대한 설명 /* 한줄로된주석 */ int main(void) /* 줄의일부분인주석 */ 주석은 프로그램을 설명하는 글입니다. 주석(comment): 프로그램에 대한 설명 /* 한줄로된주석 */ int main(void) /* 줄의일부분인주석 */ /* 여러 줄로 된주석 */

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

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

문장 함수는 여러 개의 문장으로 이루어진다. 문장들은 순차적으로 실행된다.

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

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

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

첫번째 버전 문장들은 순차적으로 실행된다는 사실 이용 /* 첫번째 프로그램*/ #include <stdio.h> int main(void) { printf("Hello World!"); printf(“Kim ChulSoo"); return 0; } 우리가 원하는 결과가 아님! Hello World!Kim ChulSoo

줄바꿈 문자 \n 줄바꿈 문자인 \n은 화면에서 커서는 다음줄로 이동하게 한다.

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

응용 프로그램 #2 다음과 같은 출력을 가지는 프로그램을 제작하여 보자. 3X1=3 3X1=3 3X2=6 3X2=6 3X3=9

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

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

오류 메시지의 분석

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

오류 #1 /* 에러가 발생하는 프로그램 */ #include <stdio.h> 문장의 끝에 ;이 없음!! int main(void) { printf("Hello World!\n") return 0; } 문장의 끝에 ;이 없음!! --------------------Configuration: test - Win32 Debug-------------------- Compiling... test.c C:\PROJECT\test\test.c(7) : error C2143: syntax error : missing ';' before 'return' Error executing cl.exe. test.exe - 1 error(s), 0 warning(s)

오류 #2 /* 에러가발생하는프로그램* / #include <stdio.h> int main(void) { printf("Hello World!\n") return 0; } *과 /이 떨어져 있음 -> 전체가 주석처리됨 --------------------Configuration: test - Win32 Debug-------------------- Compiling... test.c c:\project\test\test.c(9) : fatal error C1071: unexpected end of file found in comment Error executing cl.exe. test.exe - 1 error(s), 0 warning(s)

오류 #3 /* 첫번째 프로그램*/ #include <stdio,h> stdio.h로 적어주어야 됨 int main(void) { print("Hello World!"); return 0; } stdio.h로 적어주어야 됨 --------------------Configuration: test - Win32 Debug-------------------- Compiling... test.c c:\project\test\test.c(2) : fatal error C1083: Cannot open include file: 'stdio,h': No such file or directory

오류 #4 /* 첫번째프로그램*/ #include <stdio.h> print가 아니라 printf임 int main(void) { print("Hello World!"); return 0; } print가 아니라 printf임 -------------------Configuration: test - Win32 Debug-------------------- Compiling... test.c C:\CPROGRAM\test\test.c(6) : warning C4013: 'print' undefined; assuming extern returning int Linking... test.obj : error LNK2001: unresolved external symbol _print Debug/test.exe : fatal error LNK1120: 1 unresolved externals Error executing link.exe. test.exe - 2 error(s), 1 warning(s)

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

논리 오류가 존재하는 프로그램 /* 첫번째 프로그램*/ #include <stdio.h> int main(void) { printf("Hello World!\n"); // ① printf("Good Morning\n"); return 0; } 줄바꿈 문자인 \n때문에 줄이 바뀌었음. Hello World! Good Morning

논리 오류가 수정된 프로그램 /* 첫번째 프로그램*/ #include <stdio.h> 논리 오류 수정!! int main(void) { printf("Hello World! "); // ① printf("Good Morning\n"); return 0; } 논리 오류 수정!! Hello World! Good Morning

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

디버거(debugger)

디버거의 실행 과정

디버거의 실행 과정

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

Q & A