Download presentation
Presentation is loading. Please wait.
1
조건문, 함수 정대진 (2014.08.06) C Programming -3 일차 - 2014 ITA 8 월 강의
2
KAIST IT 아카데미 C Programming B 반 목차 복습 조건문 반복문 생략, 탈출 조건문 2 함수 배열 2
3
KAIST IT 아카데미 C Programming B 반 복습 (1) 데이터 표현 방식 10 진수, 16 진수, 8 진수 Bit 연산자 sizeof() ASCII 코드 상수 심볼릭 상수 (const) 형 변환 자동 형 변환 강제 형 변환 (casting) printf() 함수 서식 출력 scanf() 함수 3
4
KAIST IT 아카데미 C Programming B 반 복습 (2) 반복문 while 문 do while 문 무조건 한 번 실행 마지막 while() 에 세미콜론 필수 for 문 가장 많이 쓰는 반복문 한 줄에 필요요소 모두 작성 반복을 위한 변수 초기화 조건검사 조건을 넘어서게 만드는 연산 4
5
KAIST IT 아카데미 C Programming B 반 복습용 프로그램 실습 사용자로부터 숫자 (1~10) 사이의 값을 입력 받고, 그 수만큼 직각삼각형의 크기를 늘려 출력하는 프로그램을 작성하시오 예시 ( 숫자 5 입력 시 ) * ** *** **** ***** 5
6
KAIST IT 아카데미 C Programming B 반 조건문 if 문 6
7
KAIST IT 아카데미 C Programming B 반 조건문 if 문을 이용한 간단한 계산기 작성 7 이 프로그램의 비효율성은 !?
8
KAIST IT 아카데미 C Programming B 반 조건문 if-else 문 8
9
KAIST IT 아카데미 C Programming B 반 조건문 if-else-if-else… 구성 9
10
KAIST IT 아카데미 C Programming B 반 조건문 if-else-if-else… 구성 10
11
KAIST IT 아카데미 C Programming B 반 프로그램 실습 하나의 정수를 입력받고 그 수가 홀수인지, 짝수인지 출력하는 프로그램을 작성하시오 11
12
KAIST IT 아카데미 C Programming B 반 프로그램 실습 1 개의 for 문을 if 문과 병행하여 1~100 까지의 수 들 중에서 2 의 배수들의 합, 3 의 배수들의 합, 5 의 배수들의 합을 구하는 프로그램을 작성하시오 12
13
KAIST IT 아카데미 C Programming B 반 프로그램 실습 두 개의 수를 입력 받고, 두 수의 대소관계를 알려주는 프로그램을 작성하시오 13
14
KAIST IT 아카데미 C Programming B 반 반복문 생략, 탈출 특정 조건이 만족 시 반복문 탈출 14
15
KAIST IT 아카데미 C Programming B 반 반복문 생략, 탈출 특정 조건이 만족 시 생략 15
16
KAIST IT 아카데미 C Programming B 반 반복문 생략, 탈출 반복문의 continue, break 는 한 반복문 안에서만 생략, 탈출이 가능 생각해 보아요 ~! 1. 2 중첩으로 for 문을 만들었음 2. 특정 조건이 만족되었을 때 2 중첩 for 문을 모두 탈출하고 싶 음 HOW!?!? 16
17
KAIST IT 아카데미 C Programming B 반 조건문 2 switch-case 문 17
18
KAIST IT 아카데미 C Programming B 반 조건문 2 switch-case 문 18
19
KAIST IT 아카데미 C Programming B 반 조건문 2 switch-case 문 switch() 안에는 정수만 사용 가능 !! 따라서 문자 1 개도 사용 가능 case 문에는 콜론 (:) 반드시 필요 break; 를 적지 않으면 다음 case 문까지 실행 default: 는 가장 마지막에 작성 if-else 문과 완벽 호환 불가능 if-else 문과 같은 기능을 한다면 훨씬 빠름 19
20
KAIST IT 아카데미 C Programming B 반 조건문 2 switch-case 문 20
21
KAIST IT 아카데미 C Programming B 반 프로그램 실습 (turboc.h 사용 ) 1. 키보드의 상하좌우키를 입력 받아 # 을 이동 2. 스페이스 입력 시 화면 지우기 3. q, Q 를 입력 시 프로그램 종료 위의 기능을 가진 프로그램 작성하기 힌트 : 무한루프 사용 gotoxy() 사용 키를 입력받을 시 getch() 함수 사용 예시 ) char 타입변수 = getch(); 상하좌우키 스캔코드 : 0xE0, 키보드 그림 21 상 72 하 80 좌 75 우 77
22
KAIST IT 아카데미 C Programming B 반 프로그램 실습 (turboc.h 사용 ) 1. 사용자로부터 화면의 좌표를 입력 받고 2. 입력받은 좌표로부터 우하단으로 이동을 시작하여 3. # 문자를 이동하고 상하좌우의 벽에 닿으면 반사 4. 임의의 키가 입력될때까지 (kbhit() 함수 ) 하는 프로그램을 작성하시오 22
23
KAIST IT 아카데미 C Programming B 반 함수 함수 제작 이유 Divide and Conquer 문제를 작은 단위로 나누어서 해결하기 함수의 크기 하나의 일만 담당하도록 디자인 함수의 형태 23
24
KAIST IT 아카데미 C Programming B 반 함수 printf() 함수 예시 리턴값 리턴 값을 굳이 받을 필요 없음 리턴값은 반드시 하나 리턴값이 없는 리턴 !!! void 형에서의 return; 24
25
KAIST IT 아카데미 C Programming B 반 함수 간단 함수 제작 ( 숫자 비교 함수 ) 함수의 정의와 선언 ( 함수선언 ( 정의 아님 ) 은 함수가 사용되기 전 에 필수 ) 25
26
KAIST IT 아카데미 C Programming B 반 함수 함수 정의 예제 26
27
KAIST IT 아카데미 C Programming B 반 지역변수 해당 지역에서만 유효한 변수 27 정의된 함수안에서면 접근 가능 한 지역에서 동일 이름 변수 생성 불가 다른 지역에 동일 이름 변수 생성 가능 해당 지역에서 벗어날 시 소명 호출 될 때마다 새롭게 할당 파라미터도 지역변수
28
KAIST IT 아카데미 C Programming B 반 전역변수 전역변수 함수 외부에서 선언 프로그램 시작부터 종료 시까지 존재 초기화 없을 시, 0 값으로 초기화 프로그램 전체 영역 어디서든 접근 가능 지역변수의 이름이 전역변수의 이름을 가림 28
29
KAIST IT 아카데미 C Programming B 반 전역변수 전역변수 함수 외부에서 선언 프로그램 시작부터 종료 시까지 존재 초기화 없을 시, 0 값으로 초기화 프로그램 전체 영역 어디서든 접근 가능 지역변수의 이름이 전역변수의 이름을 가림 가급적이면 사용 자제 ( 많을 시, 프로그램의 가독성 및 호환성 저 하 ) 29
30
KAIST IT 아카데미 C Programming B 반 전역변수 전역변수 30
31
KAIST IT 아카데미 C Programming B 반 전역변수 전역변수 31 지역변수 이름이 전역변수 이름을 덮는 예 C 에서는 이런 경우에 전역변수 사용불가
32
KAIST IT 아카데미 C Programming B 반 Static 변수 static 변수 선언된 함수 내에서만 접근 가능 ( 지역변수 특성 ) 처음 생성 시에만 초기화 생성 후 프로그램 종료 시까지 메모리에 존재 ( 전역변수 특 성 ) 32
33
KAIST IT 아카데미 C Programming B 반 Register 변수 Register 변수 CPU 내부에 존재하는 메모리공간에 할당 자주 사용하여 빠른 접근이 요구될 때 일반적인 프로그램에서는 자주 사용하지 않음 33
34
KAIST IT 아카데미 C Programming B 반 함수 재귀함수 스스로를 호출하는 함수 무한 반복의 예 34
35
KAIST IT 아카데미 C Programming B 반 함수 재귀함수 스스로를 호출하는 함수 탈출 조건이 존재하는 경우의 예 35
36
KAIST IT 아카데미 C Programming B 반 함수 재귀함수의 사용 예 36 사용이 편리 메모리 사용이 큼 재귀함수를 일반함수로 표현 가능
37
KAIST IT 아카데미 C Programming B 반 #define 활용 매크로 상수 정의 가능 사용법 #define GAME_TIME 240 함수 바깥에서 사용 ( 전역변수와 같은 기능 ) const 변수와 같이 사용 가능 순서에 주의 ( 정의되지 않은 매크로 상수를 사용 불가능 ) 연산식으로 정의 시, 괄호로 묶을 것 !!! 매크로 함수 정의 가능 일단 매크로 상수 먼저 잘 사용하고 나중에 배우겠습니다. 37
38
KAIST IT 아카데미 C Programming B 반 프로그램 실습 두 정수를 입력 받고 두 수를 swap 하는 함수를 작성하시오 38
39
KAIST IT 아카데미 C Programming B 반 표준 함수 사용 우리가 사용해 본 표준 함수 printf(), scanf(), delay() 다양한 종류의 표준 함수 입출력 함수 수학 함수 문자열 함수 시간 함수 파일 입출력 함수 프로그램 제어 함수 메모리 할당 함수 기타 부수적인 함수 39
40
KAIST IT 아카데미 C Programming B 반 표준 함수 사용 삼각함수 헤더파일 : math.h double sin(double x); double cos(double x); double tan(double x); double asin(double x); double acos(double x); double atan(double x); double sinh(double x); double cosh(double x); double tanh(double x); 40
41
KAIST IT 아카데미 C Programming B 반 표준 함수 사용 지수함수 헤더파일 : math.h double sqrt(double x);// x 의 제곱근 double pow(double x,double y);// x^y double log(double x);// 자연로그 double log10(double x);// 상용로그 double exp(double x); // e^x double hypot(double x,double y);// root(x^2 + y^2) 41
42
KAIST IT 아카데미 C Programming B 반 표준 함수 사용 정수화 함수 헤더파일 : math.h double floor(double x);// 내림 double ceil(double x);// 올림 반올림 !? floor(x+0.5) 42
43
KAIST IT 아카데미 C Programming B 반 프로그램 실습 다음의 프로그램을 작성하시오 1. 함수 실수 1 개와 정수 1 개를 입력 받음 ( 파라미터 ) 소수점 정수번째에서 반올림 ( 양수 음수 0 가능 ) 소수점 -1 자리 반올림 : 123.456 -> 120.000 소수점 0 자리 반올림 : 123.456 -> 123.000 소수점 1 자리 반올림 : 123.456 -> 123.500 반올림된 결과값 리턴 2. 1 에서 만든 함수 활용하는 main 프로그램 사용자로부터 실수 1 개, 정수 1 개를 입력 받음 1 번 함수 실행 실행 결과 화면에 출력 43
44
KAIST IT 아카데미 C Programming B 반 표준 함수 사용 절대값 함수 헤더파일 : math.h int abs(int n); long labs(long n); double fabs(double x); 44
45
KAIST IT 아카데미 C Programming B 반 표준 함수 사용 표준 난수 함수 헤더파일 : stdlib.h int rand(void);//0~RANMAX 범위의 수 무작위 추출 void srand(unsigned int seed);// 난수발생기 시드 초기화 45
46
KAIST IT 아카데미 C Programming B 반 표준 함수 사용 표준 난수 함수 헤더파일 : stdlib.h int rand(void);//0~RANMAX 범위의 수 무작위 추출 void srand(unsigned int seed);// 난수발생기 시드 초기화 난수 발생 시간으로 초기화 srand((unsigned)time(NULL)); rand() % n 46
47
KAIST IT 아카데미 C Programming B 반 배열 배열의 필요성 47
48
KAIST IT 아카데미 C Programming B 반 배열 1 차원 배열 48
49
KAIST IT 아카데미 C Programming B 반 배열 1 차원 배열 49
50
KAIST IT 아카데미 C Programming B 반 배열 1 차원 배열 50
51
KAIST IT 아카데미 C Programming B 반 프로그램 실습 5 명의 성적을 입력받기 위한 배열을 생성하고, 5 명의 점수를 순차적으로 입력 받아 평균을 출력하는 프로그램을 만드시오 51
52
KAIST IT 아카데미 C Programming B 반 배열 문자열 52
53
KAIST IT 아카데미 C Programming B 반 배열 문자열 NULL 문자 53
54
KAIST IT 아카데미 C Programming B 반 배열 문자열 문자열 입력 배열의 이름 앞에는 & 를 붙이지 않음 !!! 54
55
KAIST IT 아카데미 C Programming B 반 프로그램 실습 영문으로 구성된 긴 단어 ( 의미있을 필요 없음 ) 를 입력 받아 단어의 역순으로 화면에 출력하라 ex) alpha -> ahpla 55
56
KAIST IT 아카데미 C Programming B 반 프로그램 실습 영문 소문자로 구성된 긴 문장을 입력받아 이 문자열 내의 각 알파벳 문자 개수를 구하여 출력하라. ex) alpha -> a:2, h:1, l:1, p:1 56
57
KAIST IT 아카데미 C Programming B 반 다음 수업 내용 포인터 앞으로 배울 내용들 포인터 문자와 문자열 구조체 파일 입출력 메모리관리 ( 동적할당 ) 약간의 디버깅방법 오늘 수업 종료
Similar presentations