제 2 장 프로그램 개발과정. 통합 개발 환경  통합 개발 환경 (IDE: integrated development environment)  에디터 + 컴파일러 + 디버거.

Slides:



Advertisements
Similar presentations
컴퓨터프로그래밍 I 강원대학교 컴퓨터학부 2012 년 1 학기 담당교수 : 정충교 1. 강사진 강사 : 정충교 교수 연구실 : 공 호 조교 : 3 분반 이남세 연구실 : 공
Advertisements

© 2012 생능출판사 All rights reserved 쉽게 풀어쓴 C 언어 Express C Express 제 2 장 프로그램 개발과정.
C 언어 Sun Moon University 1 of 25 C 언어 : 강의소개 강의실 : 산 211 담당교수 : 고경철 ( 정보통신공학과 ) 사무실 : 산학협력관 105B 면담시간 : 수업후 1 시간
제2장 프로그램 개발과정 C Express.
* 07/16/96 처음으로 배우는 C 프로그래밍 제1부 기초 제1장 시작하기 *.
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발 과정 C Express.
C 언어 기초 2 위덕대학교 에너지전기공학부 이 수 형 2009년 2학기.
C++ Espresso 제1장 기초 사항.
제3장 C 프로그래밍 환경.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 1-1 C 언어의 개론적 이야기 프로그래밍 언어란 무엇인가? 컴파일이란 무엇인가? 사람과 컴파일러가 이해할 수 있는 약속된 형태의 언어 C 언어도 프로그래밍 언어 중 하나이다. 컴파일이란 무엇인가? 프로그래밍.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
리눅스 실습 정성훈.
기초C언어 제1주 강의 소개, C언어 개요, Eclipse 사용 컴퓨터시뮬레이션학과 2015년 봄학기 담당교수 : 이형원
강좌명 : C++프로그래밍 (C++ Programming)
개발 환경 개발 환경 개요 PXA270과 타겟 시스템 툴체인 환경 구축 JTAG 유틸리티 미니컴 Make 유틸리티
에서 ( 탭 – [인기 다운로드 | 모든 다운로드] ) Visual Studio 2015
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발과정 C Express.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
1. C 언어의 이해와 컴파일러 설치.
2006년 3월 20일 황의권, 지용인, 최종윤 서울대학교 컴퓨터공학부
OpenCV 설치 OpenCV 3.0, Visual Studio 2010 환경.
제4장 Cross Compiler 설치.
누구나 쉽게 즐기는 C언어 콘서트 한남대학교 컴퓨터공학과 이 재 광 교수.
C 6장. 함수 #include <stdio.h> int main(void) { int num;
공학기초설계 Youn-Hee Han 강의 소개 & MinGW & gcc 공학기초설계 Youn-Hee Han
Kasimov C언어 세미나 1st.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
6장. printf와 scanf 함수에 대한 고찰
1 C 언어의 이해와 컴파일러 설치 프로그래밍 환경을 구축하자!.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
Visual C++ Programming
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
누구나 즐기는 C언어 콘서트 제2장 기초 사항.
개발 환경.
C언어 콘서트 제2장 기초 사항.
1장. 프로그래밍 언어, C 프로그래밍.
1주차: 프로그래밍언어란 무엇인가? C 언어란? C 프로그래밍을 위한 준비
Chapter 2 기 초 사 항.
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
13. 포인터와 배열! 함께 이해하기.
개정판 누구나 즐기는 C언어 콘서트 제6장 반복문 출처: pixabay.
Part 0 C Program 안산1대학 디지털정보통신과 임 성 국.
제1장 프로그래밍 기초
OpenCV 설치 및 구성 OpenCV
11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수.
쉽게 풀어쓴 C언어 Express 제15장 전처리 및 비트연산 C Express Slide 1 (of 29)
쉽게 풀어쓴 C언어 Express 제2장 프로그램 작성 과정 C Express.
게임프로그래밍 I - 1차원 배열 - 공주대학교 게임디자인학과 박 찬 교수 2011년 4월 25일.
컴퓨팅 이해 5장 프로그래밍 언어 순천향대학교 컴퓨터공학과 하상호.
Fflush 사용이유 및 방법 [이유] 키보드에서 입력된 내용은 입력버퍼에 저장되었다가 Enter 키가 들어오면 프로그램으로 전달됨 이 때 입력버퍼에 있는 Enter 키도 프로그램으로 전달됨 그러므로 아래와 같은 프로그램에서 문자 하나를 입력해도 Enter키도 입력된 것으로.
복습(1) 문제 문제해결절차(알고리즘) C프로그램 scanf(“%d”, &kuk) ; scanf(“%d”, &eng) ;
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발 과정 C Express.
18장. 다차원 배열 그리고 포인터.
C언어 개론.
제 6 강 Getting started.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express Slide 1 (of 25)
뇌를 자극하는 C 프로그래밍.
Name Title Company Name
GDB - GNU Debugger 김진용.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
제5장 디버깅과 추적 문봉근.
강의교안 이용 안내 *이 책에 딸린 강의자료는 교수님의 효율적인 수업진행을 돕기 위해 만들어졌습니다.
컴퓨터 프로그램 제 1장 공학문제 해결 김 문 기.
C.
C 프로그래밍은 매우 도전적인 작업이다. 도전의 이면에 철저한 준비와 체계적인 노력
Eclipse를 이용한 Embedded Linux 응용 프로그램 개발
11장. 1차원 배열.
Presentation transcript:

제 2 장 프로그램 개발과정

통합 개발 환경  통합 개발 환경 (IDE: integrated development environment)  에디터 + 컴파일러 + 디버거

통합 개발 환경의 예  Visual C++: 마이크로소프트  이클립스 (eclipse): 오픈 소스 프로젝트  Dev-C++: 오픈 소스 프로젝트

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

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

비주얼 C++ 설치 설치 Link: - 가입 후 다운로드에서 Visual C Express 를 클릭해 프로그램 다운받아 실행 (vc_web.exe)

서비스팩 1 다운 Link: - 만약 아래와 같은 에러메시지 출력될 때에는 Message 에 쓰여있는 service Pack 1 을 다운받아 설치 ( 설치에 수십분 소요 ) 비주얼 C++ 설치

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

프로젝트 생성하기

소스 파일 생성하기

프로그램 입력

전문가 설정

컴파일하기

프로그램 실행 하기

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

첫번째 프로그램의 설명 #include int main(void) { printf("Hello World!"); return 0; } #include int main(void) { printf("Hello World!"); return 0; }

프로그램 == 작업 지시서

작업을 적어주는 위치

간략한 소스 설명

헤더 파일 포함

함수  함수 (function): 특정한 작업을 수행하기 위하여 작성된 독립적인 코 드  ( 참고 ) 수학적인 함수  프로그램 = 함수의 집합 함수 입력 출력

main() 함수

함수의 간략한 설명

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

printf() 호출

함수의 반환값

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

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

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

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

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

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

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

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

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

오류 수정 및 디버깅  컴파일이나 실행 시에 오류가 발생할 수 있다.  에러와 경고  에러 (error): 심각한 오류  경고 (warning): 경미한 오류

오류의 종류  오류의 종류  컴파일 시간 오류 : 대부분 문법적인 오류  실행 시간 오류 : 실행 중에 0 으로 나누는 연산 같은 오류  논리 오류 : 논리적으로 잘못되어서 결과가 의도했던 대로 나오지 않는 오류

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

오류 #1 #include int main(void) { printf("Hello World!\n") return 0; } #include int main(void) { printf("Hello World!\n") return 0; } 문장의 끝에 ; 이 없음 !!

오류 #2 /* 에러가발생하는프로그램 * / #include int main(void) { printf("Hello World!\n") return 0; } /* 에러가발생하는프로그램 * / #include int main(void) { printf("Hello World!\n") return 0; } 1> 빌드 시작 : 프로젝트 : hello, 구성 : Debug Win > 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 int main(void) { print("Hello World!"); return 0; } #include int main(void) { print("Hello World!"); return 0; } 1> 빌드 시작 : 프로젝트 : hello, 구성 : Debug Win > 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 ========== print 가 아니라 printf 임

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

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

논리 오류가 수정된 프로그램 #include int main(void) { printf("Hey! \n"); printf("Good Morning \n"); return 0; } #include 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