G+ Summer C Study 20130711(4일차)

44
G+ Summer C Programming Study 1 2013. 07. 11 13:00 G-Lab

description

4일차 20130711 7월11일 스터디에 대한 PPT 자료입니다. 다룬 내용은 배열 입니다. 화이팅!!

Transcript of G+ Summer C Study 20130711(4일차)

Page 1: G+ Summer C Study 20130711(4일차)

G+ Summer C Programming Study

1

2013. 07. 11

13:00G-Lab

Page 2: G+ Summer C Study 20130711(4일차)

2

지난 시간복습

Page 3: G+ Summer C Study 20130711(4일차)

3

C 언어를 공부하면무엇을 할 수 있을까 ?

Page 4: G+ Summer C Study 20130711(4일차)

4

C 언어의 모든 문장은 ____ 으로 끝난다 !

Page 5: G+ Summer C Study 20130711(4일차)

5

변수 이름의 규칙은 ?

Page 6: G+ Summer C Study 20130711(4일차)

6

C 언어에서 어떤 조건 별로할 일을 나눌 때 어떻게 할까요 ?

Page 7: G+ Summer C Study 20130711(4일차)

7

우리가 변수를 만들면컴퓨터가 내부적으로

하는 일은 ?

Page 8: G+ Summer C Study 20130711(4일차)

8

C 언어에서바구니의 주소를 얻기 위해

사용하는 연산자는 ?

Page 9: G+ Summer C Study 20130711(4일차)

9

C 언어에서 일정한 규칙을 가지고반복적으로 일어나는 일들을

편리하게 처리하는방법은 ?

Page 10: G+ Summer C Study 20130711(4일차)

10

오늘의 TODO배열

Page 11: G+ Summer C Study 20130711(4일차)

11

저번시간에 우리는 입력방법과반복 문을 사용하는 방법을 배웠습니다 .

Page 12: G+ Summer C Study 20130711(4일차)

12

그렇다면배열과 구조체는 무엇일까요 ?

Page 13: G+ Summer C Study 20130711(4일차)

13

배열은 동일한 변수를 연속적으로 만드는 것을

말합니다 .

Page 14: G+ Summer C Study 20130711(4일차)

14

배열을 선언하는 방법 1int a[10];

Page 15: G+ Summer C Study 20130711(4일차)

15

배열을 선언하는 방법 2int a[] = {1,2,3,4};

Page 16: G+ Summer C Study 20130711(4일차)

16

배열을 선언하는 방법 3char a[] = “abc”;

Page 17: G+ Summer C Study 20130711(4일차)

17

배열을 선언하는 방법 4char a[] = {‘a’, ’b’, ’c’, ‘\

0’};

Page 18: G+ Summer C Study 20130711(4일차)

18

우리가 배열을 만들면컴퓨터는 내부적으로이러한 일을 합니다 .

Page 19: G+ Summer C Study 20130711(4일차)

19

1. int a[6]; 이라고 선언하면 ,2. 6 개의 int 형 변수를 만듭니다 .3. 각각의 변수는 a[0], a[1], a[2], … a[5] 와 같이 표현할 수 있습니다 .(0 부터 시작 )4. 각각 변수의 주소는 &a[0], &a[1], … &a[5] 와 같이 표현할 수 있습니다 .5. 배열의 이름인 a 는 &a[0] 와 같은 값을 갖습니다 .

Page 20: G+ Summer C Study 20130711(4일차)

20

금방 했던 일을 그림으로 보면

a[0] a[1] a[2] a[3] a[4] a[5]

int a[6]; 을 하면

&a[0] &a[1] &a[2] &a[3] &a[4] &a[5]

&a[0] == a

Page 21: G+ Summer C Study 20130711(4일차)

21

다음 그림과 같이 하려면우리는 배열을 어떻게 선언 해야할까요 ?

c[0] c[1] c[2]

char 형

&c[0] &c[1] &c[2]

Page 22: G+ Summer C Study 20130711(4일차)

22

A B C

다음 그림과 같이 하려면우리는 배열을 어떻게 선언 해야할까요 ?

c[0] c[1] c[2] c[3]

char 형

&c[0] &c[1] &c[2] &c[3]

\0

Page 23: G+ Summer C Study 20130711(4일차)

23

그럼 만드는 법은 알았으니활용하는 법을 생각해봅시다 .

Page 24: G+ Summer C Study 20130711(4일차)

24

배열을 사용하지 않고int 형 변수 10 개를

만들어보세요 .

Page 25: G+ Summer C Study 20130711(4일차)

25

10 개의 변수에각각 0,1,2,3,4,5,6,7,8,9

라는 값을 대입해주세요 .

Page 26: G+ Summer C Study 20130711(4일차)

26

10 개의 변수를각각 5 씩 값을 증가시켜주세요 .

ex: ) a = a + 5;

Page 27: G+ Summer C Study 20130711(4일차)

27

10 개의 변수를각각 2 씩 값을 감소시켜주세요 .

ex: ) a = a - 2;

Page 28: G+ Summer C Study 20130711(4일차)

28

10 개의 변수의 값을출력해주세요 .

ex: ) printf(“%d\n”, a);

Page 29: G+ Summer C Study 20130711(4일차)

29

배열을 쓰지 않고는일의 규칙이 있음에도

불구하고 모두 각각 접근해야만 합니다 .

Page 30: G+ Summer C Study 20130711(4일차)

30

금방 했던 일을 for 문과 배열로

표현하면 다음과 같습니다 .

Page 31: G+ Summer C Study 20130711(4일차)

31

int a[10];int i;for(i = 0; i < 10; i++) {

a[i] = i;a[i] = a[i] + 5;a[i] = a[i] – 2;printf(“%d\n”, a[i]);

}

Page 32: G+ Summer C Study 20130711(4일차)

32

어때요 ?배열을 써야 하는 이유를

알겠나요 ?모르겠다면

오늘 과제를 해보면 느낄 겁니다 .( 배열 안쓰고 해도 됩니다 .)

Page 33: G+ Summer C Study 20130711(4일차)

33

하나 더 !배열을 선언하면

연속적으로 만든다고 했던 것을기억하시나요 ?

Page 34: G+ Summer C Study 20130711(4일차)

34

연속적이라는 말은즉 , 변수의 주소가 아파트처럼붙어있다는 것을 의미합니다 .

Page 35: G+ Summer C Study 20130711(4일차)

35

자 그럼 지금부터첼린지를 시작하죠 .

오늘 문제는 열혈강의에서 얻었습니다 .

Page 36: G+ Summer C Study 20130711(4일차)

36

Practice Practice!

소망 빌라는 5 층으로 이뤄져 있다 . 프로그램 실행 시 사용자로부터 1 층부터 시작해서 5층까지 각층에 사는 사람의 수를 입력 받는다 . 입력이 끝나면 소망빌라에 사는 전체 사람의 수를 계산해서 출력하는 프로그램을 작성하자 .

Page 37: G+ Summer C Study 20130711(4일차)

37

Practice Practice!

길이가 9 인 int 형 정수 배열을 선언하고 나서 사용자로부터 숫자를 하나 입력 받는다 .그리고 입력 받은 숫자의 구구단 계산 결과를 미리 선언해 놓은 배열에 저장한다 .마지막으로 배열의 요소 중에서 짝수 번째 ( 두 번째 , 네 번째 ...) 위치에 존재하는 요소들을 출력하는 프로그램을 작성하자 .

Page 38: G+ Summer C Study 20130711(4일차)

38

Practice Practice!

길이가 26 인 char 형 배열을 선언해서 문자 'A'부터 'Z' 까지 저장한다 .선언과 동시에 초기화하라는 뜻은 아니다 .반복 문을 이용해서 저장하는 형태를 취해야 한다 .그리고 배열에 모든 요소를 처음부터 끝까지 출력하는 프로그램을 작성하자 .

Page 39: G+ Summer C Study 20130711(4일차)

39

Practice Practice!

char str[1024];scanf(“%s”, str);

사용자로부터 하나의 문자열을 입력 받아서 입력 받은 문자열의 길이를 출력하는 프로그램을 작성하자 . 널 (null, ‘\0’) 문자는 문자열의 길이에서 제외시키는 것으로 하자 .

Page 40: G+ Summer C Study 20130711(4일차)

40

Practice Practice!

사용자가 입력한 문자열을 배열에 저장한 다음 , 배열 내에서 문자열을 역순으로 뒤집는다 .그리고 나서 제대로 뒤집어졌는지 확인하기 위해서 문자열을 출력해 보는 프로그램을 작성해보자 .

Page 41: G+ Summer C Study 20130711(4일차)

41

Practice Practice!

문자열을 입력 받는다 . 입력 받은 문자열을 구성하고 있는 문자 중에서 아스키 코드 값이 가장 큰문자를 찾아서 출력하는 프로그램을 구현해 보자 . 예를 들어서 입력된 문자열이 "abc" 라면이 중에서 아스키 코드 값이 가장 큰 문자는 'c' 이다 . 따라서 c 를 출력해 준다 .

Page 42: G+ Summer C Study 20130711(4일차)

42

Practice Practice!

금액을 입력하면 다음과 같이 화폐 단위 별로 화폐의 개수를 출력하는 프로그램을 작성하시오 .ex: ) 98760 입력시10000 원권 : 9 5000 원권 : 1 1000 원권 : 3 500 원권 : 1 100 원권 : 2 50 원권 : 1 10 원권 : 1

Page 43: G+ Summer C Study 20130711(4일차)

43

Practice Practice!

문자열로 입력된 문장에 대해 알파벳 별로 몇 개의 문자가 입력되었는지를 카운트를 하는 프로그램을 작성하시오 . 문장에는 알파벳 외에 숫자나 특수기호 그리고 공백 (Space bar) 이 사용되는데 이들은 모두 기타 문자로 카운트하시오 . 단 , 알파벳 문자는 대소문자 구분 없이 카운트합니다 .ex: ) GDG SSU 입력시D 1G 2S 2U 1기타 1

Page 44: G+ Summer C Study 20130711(4일차)

44

수고하셨습니다 . 숙제 공지