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

Slides:



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

제 2 장 프로그램 개발과정. 통합 개발 환경  통합 개발 환경 (IDE: integrated development environment)  에디터 + 컴파일러 + 디버거.
© 2012 생능출판사 All rights reserved 쉽게 풀어쓴 C 언어 Express C Express 제 2 장 프로그램 개발과정.
C 언어 Sun Moon University 1 of 25 C 언어 : 강의소개 강의실 : 산 211 담당교수 : 고경철 ( 정보통신공학과 ) 사무실 : 산학협력관 105B 면담시간 : 수업후 1 시간
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
Visual Basic 활용 참고 교재  『쉽게 따라하는 VB 6 프로그래밍』  저 자 : 하태현, 정용덕  출 판 : 기전연구사, 2004  『엑셀 VBA 프로그래밍 ( 고급 ) 』  저 자 : 오양환 외  출 판 : 기전연구사,
제2장 프로그램 개발과정 C Express.
* 07/16/96 처음으로 배우는 C 프로그래밍 제1부 기초 제1장 시작하기 *.
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발 과정 C Express.
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발과정 C Express Slide 1 (of 31)
C++ Espresso 제1장 기초 사항.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 1-1 C 언어의 개론적 이야기 프로그래밍 언어란 무엇인가? 컴파일이란 무엇인가? 사람과 컴파일러가 이해할 수 있는 약속된 형태의 언어 C 언어도 프로그래밍 언어 중 하나이다. 컴파일이란 무엇인가? 프로그래밍.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
리눅스 실습 정성훈.
알기 쉽게 해설한 Java 8th edition
강좌명 : C++프로그래밍 (C++ Programming)
개발 환경 개발 환경 개요 PXA270과 타겟 시스템 툴체인 환경 구축 JTAG 유틸리티 미니컴 Make 유틸리티
에서 ( 탭 – [인기 다운로드 | 모든 다운로드] ) Visual Studio 2015
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발과정 C Express.
1. C 언어의 이해와 컴파일러 설치.
제4장 Cross Compiler 설치.
누구나 쉽게 즐기는 C언어 콘서트 한남대학교 컴퓨터공학과 이 재 광 교수.
C 6장. 함수 #include <stdio.h> int main(void) { int num;
공학기초설계 Youn-Hee Han 강의 소개 & MinGW & gcc 공학기초설계 Youn-Hee Han
Power Java 제4장 자바 프로그래밍 기초.
Kasimov C언어 세미나 1st.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
6장. printf와 scanf 함수에 대한 고찰
1 C 언어의 이해와 컴파일러 설치 프로그래밍 환경을 구축하자!.
Chapter 13 문자 데이터와 문자열 문자 데이터 문자열.
-Part3- 제5장 전처리기와 파일 분할 컴파일
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
Visual C++ Programming
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
누구나 즐기는 C언어 콘서트 제2장 기초 사항.
프로그래밍 서울대학교 통계학과 2009년 2학기 컴퓨터의 개념 및 실습 (
1장. 프로그래밍 언어, C 프로그래밍.
1주차: 프로그래밍언어란 무엇인가? C 언어란? C 프로그래밍을 위한 준비
Chapter 2 기 초 사 항.
13. 포인터와 배열! 함께 이해하기.
개정판 누구나 즐기는 C언어 콘서트 제6장 반복문 출처: pixabay.
Chapter 2 Lexical Elements, Operators, and the C System
Part 0 C Program 안산1대학 디지털정보통신과 임 성 국.
제1장 프로그래밍 기초
OpenCV 설치 및 구성 OpenCV
자전거를 배우려면 안장에 올라가 페달을 밟아라.
11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수.
운영체제 (Operating Systems) (Memory Management Strategies)
쉽게 풀어쓴 C언어 Express 제15장 전처리 및 비트연산 C Express Slide 1 (of 29)
쉽게 풀어쓴 C언어 Express 제2장 프로그램 작성 과정 C Express.
[INA470] Java Programming Youn-Hee Han
게임프로그래밍 I - 1차원 배열 - 공주대학교 게임디자인학과 박 찬 교수 2011년 4월 25일.
컴퓨팅 이해 5장 프로그래밍 언어 순천향대학교 컴퓨터공학과 하상호.
Fflush 사용이유 및 방법 [이유] 키보드에서 입력된 내용은 입력버퍼에 저장되었다가 Enter 키가 들어오면 프로그램으로 전달됨 이 때 입력버퍼에 있는 Enter 키도 프로그램으로 전달됨 그러므로 아래와 같은 프로그램에서 문자 하나를 입력해도 Enter키도 입력된 것으로.
복습(1) 문제 문제해결절차(알고리즘) C프로그램 scanf(“%d”, &kuk) ; scanf(“%d”, &eng) ;
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
18장. 다차원 배열 그리고 포인터.
C언어 개론.
제 6 강 Getting started.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express Slide 1 (of 25)
뇌를 자극하는 C 프로그래밍.
Name Title Company Name
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
1학기 정리 지난 학기에 배운 내용을 복습해 본다..
제5장 디버깅과 추적 문봉근.
컴퓨터 프로그램 제 1장 공학문제 해결 김 문 기.
C.
C 프로그래밍은 매우 도전적인 작업이다. 도전의 이면에 철저한 준비와 체계적인 노력
11장. 1차원 배열.
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): 에디터 + 컴파일러 + 디버거 디버거: 소스를 디버깅 할 수 있다. 에디터: 소스를 작성 할 수 있다. 컴파일러: 소스를 컴파일 할 수 있다.

통합 개발 환경의 종류 비주얼 스튜디오: 마이크로소프트사의 제품 윈도우 기반의 거의 모든 형태의 응용 프로그램 제작 가능 최신 버전: 비주얼 스튜디오 2014(개발자 버전) 우리가 사용할 버전: 비주얼 스튜디오 201x  실습 시간에 설치 및 사용법을 잘 익힙시다.

첫번째 프로그램의 설명 /* 첫번째 프로그램*/ #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

Q & A