+ All Categories
Home > Documents > Chapter 2

Chapter 2

Date post: 30-Dec-2015
Category:
Upload: april-hamilton
View: 27 times
Download: 1 times
Share this document with a friend
Description:
Chapter 2. 기 초 사 항. 목차. 2.1 첫 번째 프로그램 2.2 화면 출력 2.3 연산이 있는 프로그램 2.4 입력과 출력이 있는 프로그램 2.5 오류 수정 및 디버깅 2.6 응용 프로그램. 2.1 첫 번째 프로그램. 주석. 헤더파일 포함. 함수의 시작. 실행되는 문장. 함수의 종료. 2.1.1 주석 (Comment). 주석 (Comment) : 프로그램에 대한 설명 /* 한 줄로 된 주석 */ /* 여러 줄로 된 주석 */ 이중 슬래시를 이용한 편리한 주석 - PowerPoint PPT Presentation
38
HANNAM UNIVERSITY Http://netwk.hannam.ac.kr Chapter 2 기 기 기 기
Transcript

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

Chapter 2

기 초 사 항

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

목차목차2.1 첫 번째 프로그램

2.2 화면 출력

2.3 연산이 있는 프로그램

2.4 입력과 출력이 있는 프로그램

2.5 오류 수정 및 디버깅

2.6 응용 프로그램

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.1 2.1 첫 번째 프로그램첫 번째 프로그램

주석

헤더파일 포함

함수의 시작

실행되는 문장

함수의 종료

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.1.1 2.1.1 주석주석 (Comment)(Comment) 주석 (Comment) : 프로그램에 대한 설명

/* 한 줄로 된 주석 */

/* 여러

줄로

된 주석 */

이중 슬래시를 이용한 편리한 주석 // 이 줄은 전체가 주석 printf(“Hello World!”); // 문자열을 화면으로 출력

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.1.2 2.1.2 헤더 파일 포함헤더 파일 포함 #include <stdio.h>

#include 는 소스 코드 안에 특정 파일을 현재의 위치에 포함 헤더 파일 (header file) : 컴파일러가 필요로 하는 정보를 가지고

있는 파일 stdio.h : STanDart Input Output Header file

전처리기 지사자 문장 끝에는 세미콜론을 붙이지 않음stdio.h…int printf(char *,...);…

printf() 문은 stdio.h 헤더파일 안에 원형이 있어stdio.h 헤더 파일을 포함하면 곧바로 호출 해서 사용가능

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.1.3 2.1.3 줄 바꿈 및 들여쓰기줄 바꿈 및 들여쓰기

줄 바꿈을 하여 의미별로 구분

같은 내용의 처리이면 탭이나공백을 넣어 들여쓰기를하는 것이 효과적

좋은 방법 나쁜 방법

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.1.4 2.1.4 함수함수 함수 (function) : 특정한 작업을 수행하기 위하여 작성된

독립적인 코드

add()함수

3 7

10

int add (int x, int y){ int sum; sum = x + y; return sum;}

※ 함수는 특정한 작업을 수행하기 위하여 main() 함수 바깥 부분에 정의

미리 정의된 함수의 원형을 프로토타입이라고 함

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.1.4 2.1.4 함수함수모든 C 프로그램에는 반드시 하나의 main() 함수가 있어야 함

main() 0

int main(void){ printf(“Hello World!”); return 0;}

입력은 없음

출력은 int 형

int main(void){

}

printf(“Hello World!”);

return 0;

함수의 출력 타입

함수의 이름

함수의 입력 타입

함수의 시작

함수의 몸체

함수의 끝

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.1.5 2.1.5 문장문장 함수는 여러 개의 문장으로 구성 문장들은 순차적으로 실행 문장은 『 ; 』 ( 세미콜론 ) 으로 끝남

printf(“Hello World!”);printf() 함수를 호출하여콘솔 화면에 Hello World! 를출력하는 문장

return 0;main 함수가 작업을 끝내고OS 에게 0 값을 반환하는 문장main 함수가 0 을 반환하면프로그램이 정상적으로종료하였음을 나타냄

main()

printf(“Hello World!”);return 0;

운영 체제

운영 체제

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.2 2.2 화면 출력화면 출력 printf() 는 컴파일러가 제공하는 함수로서 화면에

“ ”안의 내용을 출력

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.2.1 2.2.1 줄 바꿈 기호줄 바꿈 기호다음과 같은 출력을 하는 프로그램

문장은 순차적으로 실행된다는 사실을 이용printf() 문을 2 번 사용하여 프로그램 작성

원하는 결과가 아님

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.2.1 2.2.1 줄 바꿈 기호줄 바꿈 기호 \n 은 화면에서 커서는 다음 줄로 이동

\n 처럼 역슬래시 (\) 가 먼저 나타나면 특별한 의미를 지님 \n 은 줄 바꿈 (new line) 을 의미

현재 커서의 위치 .다음 문자를 표시할 때는이곳부터 시작

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.2.1 2.2.1 줄 바꿈 기호줄 바꿈 기호 줄 바꿈 문자를 사용하면 원하는 결과를 얻을 수 있음

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.2.2 2.2.2 일반적인 프로그램의 형태일반적인 프로그램의 형태 프로그램 실행의 단계

데이터 입력 ( 입력단계 )

데이터 처리 ( 처리단계 )

결과를 화면에 출력 ( 출력단계 )

데이터처리데이터입력 결과출력

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.3 2.3 연산이 있는 프로그램연산이 있는 프로그램

/* 두개의 숫자의 합을 계산하는 프로그램 */#include <stdio.h>

int main(void){

int x; // 첫번째 정수를 저장할 변수int y; // 두번째 정수를 저장할 변수int sum; // 두 정수의 합을 저장하는 변수

x = 100;y = 200;

sum = x + y;printf(" 두수의합 : %d", sum);

return 0;}

주석

전처리기 지시어

함수

변수선언

문장

연산

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.3.1 2.3.1 변수변수 프로그램이 사용하는 데이터를 일시적으로 저장할

목적으로 사용하는 메모리 공간int x; // 첫번째 정수를 저장하는 변수 int y; // 두번째 정수를 저장하는 변수 int sum; // 두 정수의 합을 저장하는 변수

그릇 = 변수

프로그램

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.3.1 2.3.1 변수변수 변수는 데이터를 담는 상자로 생각할 수 있음

변수에는 데이터의 종류에 따라 여러 가지 타입이 존재

2Number

‘A’ 12 12.345

데이터

변수의 이름

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.3.1 2.3.1 변수변수 식별자 (identifier): 변수나 함수의 이름 식별자를 만드는 규칙

식별자는 영어의 대소문자 , 숫자 , 밑줄 문자 『 _ 』 로 구성 식별자는 숫자로 시작할 수 없음 대문자와 소문자를 구별하며 C 언어의 키워드와 똑같은 이름은

사용 불가

식별자의 예 s, s1, student_number: 올바른 식별자 $s, 2nd_student, int: 잘못된 식별자

‘A’ch

12i

12.345

fvalue

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.3.2 2.3.2 변수 선언변수 선언 변수 선언 : 컴파일러에게 어떤 타입의 변수가

사용되는지를 미리 알리는 것

int x;

자료형

변수의 이름

컴파일러

int x; int y; int sum;

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.3.2 2.3.2 변수 선언변수 선언 자료형 (data type): 변수가 저장할 데이터가 정수인지 ,

실수인지 , 아니면 또 다른 어떤 데이터인지 지정하는 것

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.3.2 2.3.2 변수 선언변수 선언int x; // 첫번째 정수를 저장하는 변수 int y; // 두번째 정수를 저장하는 변수 int sum; // 두 정수의 합을 저장하는 변수

정수

x y sum

각 변수에는 정수를 저장

메모리 공간에 변수가 만들어지고 이름이 붙여짐

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.3.3 2.3.3 상수상수 상수 (constant) 란 그 값이 프로그램이 실행되는 동안

변경 할 수 없는 값

x 를 상수로 선언했기 때문에값을 변경하려 하면 컴파일시에러 발생

※ C 언어에서 『 = 』 는 수학적인 등호가 아님

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.3.4 2.3.4 산술 연산산술 연산 컴퓨터는 기본적으로 계산을 하는 기계

프로그램 안에서 산술 연산을 할 수 있다는 것은 당연

연산 연산자 C 수식 수학에서의 기호

덧셈 + x + y x + y

뺄셈 - x - y x - y

곱셈 * x * y xy

나눗셈 / x / y x / y 또는 또는 x ÷ y

나머지 % x % y x mod y

sum = x + y;

sum

2x

3y

= +

5

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.3.5 2.3.5 변수 값 출력변수 값 출력 printf() 는 모니터에 출력을 하기 위한 표준 출력

라이브러리 함수 printf(“ 형식 제어 문자열” , 변수 );

printf(“%d”, sum);

형식 지정자 의미 예

%d 정수를 10 진수로 출력 1, -2, 10 …

%f 소수점이 있는 실수를 출력 0.1, 10.1, 3.14 …

%c 문자 형태로 출력 ‘a’, ‘A’ …

%s 문자열 형태로 출력 “abc”, “ABC”

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.4 2.4 입력과 출력이 있는 프로그램입력과 출력이 있는 프로그램 고정된 값이 아닌 입력 받은 값으로 연산하는 프로그램

첫 번째 숫자를 입력하시오 : 10두 번째 숫자를 입력하시오 : 20

두 수의 합 : 30

시작

두개의 정수를입력 받음

두 개의 정수를더하여 합을 계산

합을화면에 출력

종료

입력단계

처리단계

출력단계

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.4 2.4 입력과 출력이 있는 프로그램입력과 출력이 있는 프로그램

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.4.1 scanf()2.4.1 scanf() scanf() 함수는 키보드로부터 입력된 데이터를 지정된

형식으로 변수에 저장하는 라이브러리 함수 scanf(“%○ %○ ...”, & 변수 1, & 변수 2, ...);

형식지정자와 변수의 개수는 같아야 함

scanf(“%d %f”, &number, &height);

※ number 라는 int 변수와 height 라는 float 변수에 값을 입력 받는 방법

scanf(“%d , %f”, &number, &height);

scanf() 함수에 의한 입력 값은100 , 12.345 처럼“ ”안의 형식대로입력해야 함

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.5 2.5 오류 수정 및 디버깅오류 수정 및 디버깅 에러 (error) 와 경고 (warning)

에러 (error) : 심각한 오류

에러가 검출되면 컴파일 , 링크 불가 경고 (warning) : 경미한 오류

경고가 검출되면 컴파일 , 링크 및 실행도 가능하지만 잠재적인 문제를 일으킬 우려가 있음

오류의 종류 컴파일 시간 오류 : 대부분 문법적인 오류 실행 시간 오류 : 실행되는 도중에 발생하는 오류논리 오류 : 논리적으로 잘못되어서 의도한 결과가 나오지 않는

오류

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.5.1 2.5.1 오류 메시지의 분석오류 메시지의 분석

Compiling... test.cc: \ cprogram \test \ test.c(7) : error C2143: syntax error : missing ';' before 'retu rn' Error executing cl.exe .

에러가 발견된 소스 파일명

에러가 발견된 라인의 번호 문법적인오류 (syntax error)가 있었음을 나타냄

return 앞에 ;를빠뜨렸다는의미

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.5.2 2.5.2 오류 수정 과정오류 수정 과정 오류 수정 과정

ERROR!!소스파일

test.c

소스파일

test.c

오브젝트파일

test.obj

오브젝트파일

test.obj

실행파일

test.exe

실행파일

test.exe

컴파일러(compiler)

컴파일러(compiler)

링커(linker)

링커(linker)

실행(execution)

실행(execution)

실행 시간 오류실행 시간 오류

논리 오류논리 오류컴파일 시간 오류컴파일 시간 오류

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.5.2 2.5.2 오류 수정 과정오류 수정 과정 오류 1

/* 에러가 발생하는 프로그램 */#include <stdio.h>

int main(void){

printf("Hello World!\n")return 0;

}

/* 에러가 발생하는 프로그램 */#include <stdio.h>

int main(void){

printf("Hello World!\n")return 0;

}

--------------------Configuration: test - Win32 Debug--------------------Compiling...test.cC:\PROJECT\test\test.c(7) : error C2143: syntax error : missing ';' before 'return'Error executing cl.exe.

test.exe - 1 error(s), 0 warning(s)

문장의 끝에

『 ; 』이 없음 !!

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.5.2 2.5.2 오류 수정 과정오류 수정 과정 오류 2

/* 에러가발생하는프로그램 * /#include <stdio.h>

int main(void){

printf("Hello World!\n")return 0;

}

/* 에러가발생하는프로그램 * /#include <stdio.h>

int main(void){

printf("Hello World!\n")return 0;

}

--------------------Configuration: test - Win32 Debug--------------------Compiling...test.cc:\project\test\test.c(9) : fatal error C1071: unexpected end of file found in commentError executing cl.exe.

test.exe - 1 error(s), 0 warning(s)

『 * 』과 『 / 』이 떨어져 있음전체가 주석

처리됨

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.5.2 2.5.2 오류 수정 과정오류 수정 과정 오류 3

/* 첫번째 프로그램 */#include <stdio,h>

int main(void){

print("Hello World!");return 0;

}

/* 첫번째 프로그램 */#include <stdio,h>

int main(void){

print("Hello World!");return 0;

}

--------------------Configuration: test - Win32 Debug--------------------Compiling...test.cc:\project\test\test.c(2) : fatal error C1083: Cannot open include file: 'stdio,h': No such file or directory

stdio.h 로적어주어야 됨

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.5.2 2.5.2 오류 수정 과정오류 수정 과정 오류 4

/* 첫번째프로그램 */#include <stdio.h>

int main(void){

print("Hello World!");return 0;

}

/* 첫번째프로그램 */#include <stdio.h>

int main(void){

print("Hello World!");return 0;

}

-------------------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)

print 가아니고printf

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.6 2.6 응용 프로그램응용 프로그램 연봉 계산 프로그램

10년 동안 월급을 모두 저금할 경우 , 얼마나 모을 수 있는지 계산하는프로그램 ( 단 이자는 생각하지 않음 )

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.6 2.6 응용 프로그램응용 프로그램 원의 면적 구하기 프로그램

원의 반지름을 입력 받고 , 이 원의 면적을 구한 후 화면에 출력해 주는프로그램

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

2.6 2.6 응용 프로그램응용 프로그램 원 달러 환율 계산 프로그램

원 달러 환율과 한화 금액을 입력하면 몇 달러인지 계산해서 화면에출력해주는 프로그램

HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr

Q n AQ n A


Recommended