• 검색 결과가 없습니다.

1. 배열을 함수인자로 전달

N/A
N/A
Protected

Academic year: 2022

Share "1. 배열을 함수인자로 전달"

Copied!
15
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

현승일 교수

9주차 3강. 배열을 활용한 프로그래밍 실습

(2)

학습내용

학습목표

1. 배열을 함수인자로 전달

2. 배열을 이용한 max, min 값 판별 3. 배열을 이용한 입력문자열 뒤집기

1. 배열을 함수인자로 전달하는 프로그램을 작성할 수 있다.

2. 배열을 이용하여 max, min 값을 판별하는 프로그램을 작성할 수 있다.

3. 배열을 이용하여 입력문자열을 뒤집기하는 프로그램을 작성할 수 있다.

(3)

배열을 함수의 인자로 전달하는 프로그램 실습

1. 배열을 함수의 인자로 전달

배열을 함수의 인자로 전달하는 방법 (예) sum = sum_total(arr, 10);

배열은 첫번째 주소가 넘어감

함수에서 배열을 받는 방법

(예) int sum_total(int a[], int n)

(4)

배열을 이용한 max, min 값 판별 프로그램 실습

2. 배열을 이용한 max, min 값 판별

배열을 이용하여 값을 입력 받는 방법 - 문자열 형태 : scanf(“%s”, arr);

- 배열요소에 특정 값 입력 : scanf(“%d”, &arr[i]);

(5)

배열을 이용한 입력문자열 뒤집기 프로그램 실습

3. 배열을 이용한 입력문자열 뒤집기

중심 값을 기준으로 좌우 값을 서로 바꾸는 프로그램 // 영단어 길이의 반에 해당하는

// 수만큼 두문자를 바꾸는 과정 거침

for ( i = 0 ; i < len/2 ; i ++ ) {

tmp = voca [ i ] ;

voca [ i ] = voca [ ( len - i ) ] – 1 ] ; voca [ ( len - i ) – 1 ] = tmp ;

}

(6)

학습하기가 끝났습니다.

다음페이지 버튼을 클릭하여

평가문항을 풀어보세요. 4. 프로그래밍 실습

※ 자료실에서 프로그램 소스 코드를 다운로드 받으세요.

(7)

실습

4. 프로그래밍 실습(1)

함수인자로 전달(1)

1. main() 함수보다 뒤쪽에 위치한 함수는 항상 함수원형을 선언해주어야 한다.

2. 배열을 함수의 인자로 전달 시 call-by-reference 에 의해 주소가 전달된다.

3. 13라인과 같이 sum_total(arr, 10) 형태로 단순히 배열명만 써주어도 주소가 전달된다.

(8)

실습

4. 프로그래밍 실습(2)

함수인자로 전달(2)

4. 호출하는 쪽에서는 sum_total(arr, 10)과 같이 단순히 배열명만 써준다.

5. 호출되는 쪽에서는 sum_total(int a[], in n)과 같이 전달된 자료구조의 성격을 명확하게 해주는 것이 좋다. (a[], *a 두 가지 형태로 모두 받을 수 있지만 배열이므로 a[]이 좋다.)

(9)

실습

4. 프로그래밍 실습(3)

max, min 값 판별(1)

1. 값을 배열에 입력 받은 후 배열에 저장된 값을 비교하여 최대값, 최소값을 판별한다.

2. 문자열 배열에 문자열을 입력 받을 경우 scanf(“%s”, arr)과 같이 배열명을 써준다.

3. 배열요소에 특정 값을 입력 받을 시는 scanf(“%d”, &arr[i])와 같이 & 연산자를 붙여준다.

(10)

실습

4. 프로그래밍 실습(4)

max, min 값 판별(2)

4. max, min 값 판별 알고리즘

- arr[0] 즉 배열의 첫번째 값을 max=min=arr[0]로 둔다.

- arr[i] 로 다음 값을 읽어와서 max, min 값과 비교 후 max, min 값을 바꾼다.

- i 값이 종료될 때 까지 반복하면 max, min에 남은 값이 최대값, 최소값이 된다.

(11)

실습

4. 프로그래밍 실습(5)

입력문자열 뒤집기(1)

1. 배열에 특정문자열을 읽어 들이고, 이 값의 중심값을 기준으로 좌우값을 바꾸는 프로그램 작성하기 2. voca 문자열 배열에 문자열을 읽어 들여 저장할 때 scanf(“%s”, voca)와 같은 형태로 한다.

3. 문자열은 마지막에 NULL 값이 들어 있으므로 strlen(voca)와 같이 길이를 구할 수 있다.

(12)

실습

4. 프로그래밍 실습(6)

입력문자열 뒤집기(2)

4. 문자열의 좌우를 바꾸는 알고리즘

- 문자열의 전체길이를 구하고, 길이의 중간 값을 구한다.

- 배열에 저장된 문자열의 제일 처음 값부터 뒤쪽으로 제일 뒤쪽 값부터 앞쪽으로 인덱스를 증가(감소)시키며 중간 값 만큼 서로 값을 바꾸기를 반복한다.

(13)

실습점검

실습 재미있게 해보셨나요?

‘배열을 활용한 프로그래밍 실습’ 학습의

완성한 화면과 자신의 실습 결과물을 비교해 보세요.

1. 배열을 함수에서 인자로 전달하여 정상적인 처리할 수 있나요?

2. 특정 값을 배열에 입력 받아 최대값, 최소값 판별할 수 있나요?

3. 배열을 이용하여 입력된 문자열의 뒤집기 처리가 가능하나요?

아니오

아니오

아니오

(14)

실습점검

1. 배열을 함수의 인자로 전달

- 배열을 함수인자로 전달 시 주소가 전달된다는 것을 기억한다.

(예) 호출 func(arr), 받는 쪽 func(int arr[]) 2. 배열을 이용한 max, min 값 판별

- 배열요소에 특정 값 입력 : scanf(“%d”, &arr[i]);

- 초기 값을 max, min 값으로 두고 비교하면서 값을 바꾸어 나간다.

3. 배열을 이용한 입력문자열 뒤집기

- 문자열의 전체길이를 구하고, 길이의 중간 값을 구한다.

- 중간 값을 기준으로 양쪽의 값을 하나씩 반복하면서 바꾼다.

교수자 실습 Tip

(15)

다음시간에는…

에 대해 학습해 보겠습니다.

참고문헌

10주차. 포인터

1강. 포인터

참조

관련 문서