Presentation is loading. Please wait.

Presentation is loading. Please wait.

조건문, 함수 정대진 (2014.08.06) C Programming -3 일차 - 2014 ITA 8 월 강의.

Similar presentations


Presentation on theme: "조건문, 함수 정대진 (2014.08.06) C Programming -3 일차 - 2014 ITA 8 월 강의."— Presentation transcript:

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 반  다음 수업 내용  포인터  앞으로 배울 내용들  포인터  문자와 문자열  구조체  파일 입출력  메모리관리 ( 동적할당 )  약간의 디버깅방법 오늘 수업 종료


Download ppt "조건문, 함수 정대진 (2014.08.06) C Programming -3 일차 - 2014 ITA 8 월 강의."

Similar presentations


Ads by Google