6장 프로그래밍기초

Download Report

Transcript 6장 프로그래밍기초

chapter 05.
프로그래밍 기초
 학습목표
Visual Basic
• 제어구조를 익히자
• 모듈과 프로시저를 마스터하자
• 배열을 공부하자
-2-
동국대학교 전산원 부전공 연수
 제어문
Visual Basic
■ 제어문
False
True
Grade >= 60
Print “Failed”
Print “Passed”
-3-
동국대학교 전산원 부전공 연수
 제어구조를 익히자
Visual Basic
■ 제어구조
• 교육 목표
– If …. Then …. else 문
– Select Case 문
– For … Next 문 / For Each … Next 문
– while … Wend문
– 제어문 예제
-4-
동국대학교 전산원 부전공 연수
 IF문
Visual Basic
■ IF문
• 단일 선택구조 IF
• 이중 선택구조 IF
• 다중 조건 구조 IF
-5-
동국대학교 전산원 부전공 연수
 단일 선택구조IF
Visual Basic
■ 단일 선택구조IF
• 형식
– If
조건
Then
–
실행 문장
– End IF
– 또는
– If 조건
Then
실행문
-6-
동국대학교 전산원 부전공 연수
 IF문 예제
Visual Basic
■ 예제
Private Sub CommEx_Click()
n=InputBox(“숫자를 입력하세요”)
if n=0 then End
Print n
End Sub
-7-
동국대학교 전산원 부전공 연수
 IF문 문제
Visual Basic
■ 문제
어떤 문자 하나를 InputBox로 입력 받아 “A”부터 “Z”사이가 아니라
면 “에러”라고 출력하는 프로그램을 작성.
Private Sub CommEx_Click()
n=InputBox(“숫자를 입력하세요”)
If (
) then
Print “에러”
(
)
End Sub
-8-
동국대학교 전산원 부전공 연수
 이중 선택 구조 IF
Visual Basic
■ 이중 선택구조 IF
• 형식
– If
조건
–
Then
참인 경우 실행문장
– Else
–
거짓인 경우 실행문장
– End If
-9-
동국대학교 전산원 부전공 연수
 If…then…else문
Visual Basic
■ If…then…else문(1)
Double-selection structure
Single- selection structure
True
Grade >= 60
False
True
False
Grade >= 60
Print
“Passed”
Print
“Failed”
- 10 -
Print
“Passed”
동국대학교 전산원 부전공 연수
 If…then…else문
Visual Basic
■ If…then…else문(2)
• Single Selection Structure
– Format
If ( 조건문 ) then
명령문
End If
– Code
If ( grade >= 60 ) then
lblGrade.caption=“Passed” ;
End If
- 11 -
동국대학교 전산원 부전공 연수
 If…then…else문
Visual Basic
■ If…then…else문(3)
• Double Selection Structure
– Format
If ( 조건문) then
명령문 1
else
명령문 2
End If
– Code
If ( grade >= 60 ) then
lblGrade.caption=“Passed” ;
else
lblGrade.caption=“Failed” ;
End If
- 12 -
동국대학교 전산원 부전공 연수
 If…then…else문
Visual Basic
■ 예제
Private Sub CommEx_Click()
n=InputBox(“숫자를 입력하세요”)
If n>0 then
Print “양수”
else
Print “음수”
End if
End Sub
- 13 -
동국대학교 전산원 부전공 연수
 If…then…else문 문제
Visual Basic
■ 문제
두수를 입력 받아 가장 큰 수를 출력하는 프로그램 작성.
Private Sub CommEx_Click()
A=InputBox(“숫자를 입력하세요”)
B=InputBox(“숫자를 입력하세요”)
If(
) Then
Print A
(
)
Print B
(
)
End Sub
- 14 -
동국대학교 전산원 부전공 연수
 다중 조건IF
Visual Basic
■ 다중 조건IF
•
형식
– If
조건1
–
실행문장1
– ElseIf
조건2
–
실행문장2
Then
Then
– Else
–
실행문장3
– End If
- 15 -
동국대학교 전산원 부전공 연수
 다중 조건IF 예제
Visual Basic
■ 예제
Private Sub CommEx_Click()
n=InputBox(“숫자를 입력하세요”)
If n>0 then
Print “양수”
ElseIf n=0 Then
Print “영”
Else
Print “음수”
End if
End Sub
- 16 -
동국대학교 전산원 부전공 연수
 다중 조건IF 문제
Visual Basic
■ 문제1
하나의 문자를 입력받아
v, V 이면 비주얼 베이직,
d, D 이면 델파이,
j, J이면 자바
로 출력하는 프로그램을 작성하시오.
- 17 -
동국대학교 전산원 부전공 연수
 다중 조건IF 문제
Visual Basic
■ code를 완성하시오
Private Sub CommEx_Click()
n=InputBox(“숫자를 입력하세요”)
If (
) then
Print “비주얼베이직”
ElseIf (
) Then
Print “델파이”
Else
Print “자바 ”
End if
End Sub
- 18 -
동국대학교 전산원 부전공 연수
 Select Case문
Visual Basic
■ Select Case문 (1)
Multiple- selection structure
True
Score >= 90
strHakjum = “A”
False
True
strHakjum = “B”
Score >= 80
False
True
Score >= 60
strHakjum = “D”
False
- 19 -
동국대학교 전산원 부전공 연수
 Select Case문
Visual Basic
■ Select Case문 (2)
• Format
Select Case 평가식
Case 평가값
명령문 1
Case 평가값
명령문 2
Case 평가값
명령문 3
Case Else
명령문 n
End Select
- 20 -
동국대학교 전산원 부전공 연수
 Select Case문
Visual Basic
■ Select Case문 (3)
• Coding
Select Case intScore
Case 90
strHakjum = “A”
Case 80
strHakjum = “B”
Case 70
strHakjum = “C”
Case Else
strHakjum = “F”
End Select
- 21 -
동국대학교 전산원 부전공 연수
 Select Case문 예제
Visual Basic
■ 예제 1
Select Case Num
Case 0 : Print “영”
Case 1 : Print “일”
Case 2 : Print “이”
End Select
- 22 -
동국대학교 전산원 부전공 연수
 Select Case문 예제
Visual Basic
■ 예제 2
Select Case aa
Case is < 12
Msgbox “유년기”
Case 12,13
Msgbox “사춘기”
Case 14 to 20
Msgbox “청년기”
End Select
- 23 -
동국대학교 전산원 부전공 연수
 Select Case문 문제
Visual Basic
■ 문제1
하나의 문자를 입력받아
“A”나 “a”이면 “America”로
“K”나 “k”이면 “Korea”로
그외 문자는 “에러”로
출력하는 프로그램을 작성하시오.
- 24 -
동국대학교 전산원 부전공 연수
 Select Case문 문제
Visual Basic
Aa = inputbox(“문자를 입력하세요”)
Select Case aa
Case (
)
Print “America”
Case (
)
Print “Korea”
(
)
Print “에러”
End Select
- 25 -
동국대학교 전산원 부전공 연수
 Select Case문 문제
Visual Basic
■ 문제2
국어, 영어, 수학점수를 InputBox로 입력받아 합계와 평균을 계산하여,
평균이 90점이상이면 “A”,
평균이 80점이상 90점미만이면 “B”,
평균이 70점이상 80점미만이면 “C”,
평균이 60점이상 70점미만이면 “D”,
평균이 60점미만이면 “F”로
학점을 출력하는 프로그램을 작성하시오
- 26 -
동국대학교 전산원 부전공 연수
 For…Next문
Visual Basic
■ For…Next문(1)
• 지정된 범위를 지정한 횟수만큼 반복 실행한다
형식
For 변수 =
초기치 To 최종치 Step 증가치
처리문장
Next 변수
- 27 -
동국대학교 전산원 부전공 연수
 For…Next문
Visual Basic
■ For…Next문 (2)
count = 1
sum = 0
count <= 10
True
sum = sum + count
count++
False
- 28 -
동국대학교 전산원 부전공 연수
 For…Next문
Visual Basic
■ For…Next문 (3)
• Format
For 카운터 변수 = 시작값 To 종료값 Step 증가치
명령문
[ Exit For ]
명령문
Next [카운터 변수]
• 예
sum =0;
For( i=0 To 10 Step 1 )
sum = sum + i
Next
- 29 -
동국대학교 전산원 부전공 연수
 For…Next문 예제
Visual Basic
예제) 1 부터 10 까지 출력하기
For i = 1 to 10 Step 1
Print i
Next i
- 30 -
동국대학교 전산원 부전공 연수
 For…Next문 문제
Visual Basic
문제 1 ) 다음 아래와 같은 결과를 출력하시오.
( For문, Do While .. Loop문, Do .. Loop While문,
Do Until .. Loop문 사용)
500
400
300
200
100
문제 2 ) 다음 아래와 같은 결과를 출력하시오.
10
9
8
7
.
.
1
- 31 -
동국대학교 전산원 부전공 연수
 For…Next문 문제
문제 3 )
Visual Basic
1 부터 100까지의 합을 출력하시오.
( For문, Do While .. Loop문)
문제 3) 1 부터 100까지에서 홀수의 합을 출력하시오.
( For문, Do While .. Loop문)
문제 4) 1 부터 100까지에서 7의 배수의 합을 출력하시
오.
( For문, Do While .. Loop문)
- 32 -
동국대학교 전산원 부전공 연수
 For Each…Next문 문제
Visual Basic
■ For Each…Next문
• 기능
• 배열/컬렉션의 각 요소에 명령문 반복 실행
• Format
For Each 구성요소 In 그룹
명령문
[ Exit For ]
명령문
Next [구성요소]
- 33 -
동국대학교 전산원 부전공 연수
 Do While…Loop문
Visual Basic
■ Do While…Loop문
• 조건을 검사한 후 참이면 반복문 실행한다.
• 형식
Do While 조건
처리문장
Loop
• 예제)
i=1
Do While i<=0
Print i
i=i + 1
Loop
- 34 -
동국대학교 전산원 부전공 연수
 Do Loop…While문
Visual Basic
■ Do Loop…While문
• 일단 한번 문장들을 실행 시킨 뒤 조건을 검사한다.
• 형식
Do
처리문장
Loop While 조건
예제)
i=1
Do
Print i
i=i + 1
Loop While i <= 10
- 35 -
동국대학교 전산원 부전공 연수
 Do Until…Loop문
Visual Basic
■ Do Until…Loop문
• 조건이 거짓이면 반복하고 참이면 끝낸다.
• 형식
Do Until 조건
처리문장
Loop
예제)
i=1
Do Until i > 10
Print i
I=i+1
Loop
- 36 -
동국대학교 전산원 부전공 연수
 Do…Loop문
Visual Basic
■ Do…Loop문(1)
Count++
Counter <= 10
True
False
- 37 -
동국대학교 전산원 부전공 연수
 Do…Loop문
Visual Basic
■ Do…Loop문(2)
• Format
Do [{While | Until} 조건식]
명령문
[Exit Do]
명령문
Loop
• 예
sum = 0
Do While boolEnd = False
sum= isum + 3
If sum > 500 Then
boolEnd = True
End If
Loop
- 38 -
동국대학교 전산원 부전공 연수
 Do…Loop문
Visual Basic
■ Do…Loop문(3)
• Format
Do
명령문
[Exit Do]
명령문
Loop [{While | Until} 조건식]
• 예
Sum = 0
Do
Sum = Sum + 1
If Sum = 100 Then
Exit Do
End If
Loop Until boolEnd = True
- 39 -
동국대학교 전산원 부전공 연수
 While…Wend문
Visual Basic
■ While…Wend문(1)
name[count] > 0
True
Count++
False
- 40 -
동국대학교 전산원 부전공 연수
 While…Wend문
Visual Basic
■ While…Wend문(2)
• Format
While 조건식
명령문
Wend
• 예
While i < 10
Sum = Sum + i
i=i+1
Wend
- 41 -
동국대학교 전산원 부전공 연수
 Exit문
Visual Basic
■ Exit문
• 현재 블록을 강제로 빠져 나올 때 사용한다.
• For문 : Exit For에서 빠져 나옴
• Do문 : Exit Do에서 빠져 나옴
예)
a=10
Do While a <= 60
Print a
if a=40 then Exit Do
i=i+10
Loop
- 42 -
동국대학교 전산원 부전공 연수
 Goto문
Visual Basic
■ Goto문
• 점프해서 지정된 곳에서 실행한다
예제)
Goto Line
....
Line : 명령문
- 43 -
동국대학교 전산원 부전공 연수
 제어문 예제
Visual Basic
■ 제어문 예제(1)
• Form
– Name 지정: frmControl
– Caption 지정: 제어문 예제
1. 더블 클릭
(frmControl 입력)
2. 더블 클릭
(제어문 예제 입력)
- 44 -
동국대학교 전산원 부전공 연수
 제어문 예제
Visual Basic
■ 제어문 예제(2)
3. Control 배치
• Control 배치
– Label
• Label 1
• Label 2
– TextBox
• Text 1
– CommandButton
• Command 1
• Command 2
- 45 -
동국대학교 전산원 부전공 연수
 제어문 예제
Visual Basic
■ 제어문 예제(3)
Control
속 속성지정
성
Name
Control
Label
Label 1
Label 1
Label 2
lblResult
Control
속 성
Text 1
Caption
Appearance
찾을 이름은 ?
Name
BorderStyle
1: 3D
0: 없음
0: 평면
1: 단일고정
Text
txtName
- 46 -
동국대학교 전산원 부전공 연수
 제어문 예제
Visual Basic
■ 제어문 예제(4)
–
Command Button
속 성
Name
Caption
Command 1
cmdFind
찾기(&F)
Command 2
cmdExit
종료(&X)
Control
• Control 배치 및 속성 지정 완료 화면
- 47 -
동국대학교 전산원 부전공 연수
 제어문 예제
Visual Basic
■ 제어문 예제(5)
• Code 작성
– 일반선언부
• 이름을 저장할 String형 배열 변수 선언
4. Code 작성
- 48 -
동국대학교 전산원 부전공 연수
 제어문 예제
Visual Basic
■ 제어문 예제(6)
• Code 작성
– Form 개체의 Load Event 프로시저
5. Code 작성
- 49 -
동국대학교 전산원 부전공 연수
 제어문 예제
Visual Basic
■ 제어문 예제(7)
• Code 작성
– [ 찾기 ] 버튼 개체의 Load Event 프로시저
6. Code 작성
- 50 -
동국대학교 전산원 부전공 연수
 제어문 예제
Visual Basic
■ 제어문 예제(8)
• Code 작성
– [ 종료 ] 버튼 개체의 Click Event 프로시저
7. Code 작성
- 51 -
동국대학교 전산원 부전공 연수
 제어문 예제
Visual Basic
■ 제어문 예제(9)
• 실행
8. “늘푸름” 입력
9. 클릭
- 52 -
동국대학교 전산원 부전공 연수
 모듈과 프로시저를 마스터하자
Visual Basic
• 프로시저 사용이유
• 서브 프로시저
• 함수 프로시저
• 값에 의한 호출과 참조에 의한 호출
• 정적변수와 정적 프로시저
• 기타 매개변수
- 53 -
동국대학교 전산원 부전공 연수
 프로시저 사용이유
Visual Basic
■ 프로시저 사용이유
• 프로시저는 프로그램을 작은 논리단위로 나누어 관리가 용이하다.
• 다른 프로그램에서도 사용이 가능하다.
- 54 -
동국대학교 전산원 부전공 연수
 서브 프로시저
Visual Basic
■ 서브 프로시저(1)
• 이벤트에 대해서 실행되는 코드의 블록이다.
• 단위프로그램으로 작성해서 필요할 때마다 사용한다.
• 객체에 대한 이벤트가 발생했을 때 호출된다.
•예제)
Private Sub am_Click()
Print “이벤트”
End Sub
- 55 -
동국대학교 전산원 부전공 연수
 서브 프로시저
Visual Basic
■ 서브 프로시저(2)
• 프로시저 내에 놓여진 코드를 실행할 뿐 어떤 값도 반환하지 않는
다.
• 호출 문장이 필요하다
• 형식
Private Sub 프로시저이름(매개변수)
처리문장
End Sub
- 56 -
동국대학교 전산원 부전공 연수
 서브 프로시저 예제
Visual Basic
예제)
Private Sub Cmd_Click( )
My 3
‘ Call My(3)과 같다
End Sub
Public Sub My(Cnt As Integer)
For i=1 to Cnt
Print “안녕하세요”
Next i
End Sub
- 57 -
동국대학교 전산원 부전공 연수
 함수 프로시저
Visual Basic
■ 함수 프로시저
• 프로시저 이름을 통해 하나의 값을 반환한다.
• 함수 프로시저는 변수처럼 자신의 자료형을 가진다.(기본형은
Variant형이다)
• 형식
Function 프로시저이름(매개변수) As 반환형
처리문장
변수 = 반환값
End Function
- 58 -
동국대학교 전산원 부전공 연수
 함수 프로시저 예제
Visual Basic
예제)
Private Sub Cmd_Click( )
Dim K As Integer
K=My(10)
Print K
End Sub
Public Function My(Su As Integer) As Integer
My=Su*Su
End Function
- 59 -
동국대학교 전산원 부전공 연수
 함수 프로시저 예제
Visual Basic
함수 프로시저 예제2)
Private Sub Cmd_Click()
Dim k As Integer
k=My(10)
Select Case k
Case -1 : Print “음수”
Case 0 : Print “영”
Public Function My(su As Integer)
As Integer
If su=0 then
(
elseif su > 0 then
(
End Sub
) =1
elseif su < 0 then
Case 1 : Print “양수”
End Select
) =0
(
) =-1
EndIf
End (
- 60 -
)
동국대학교 전산원 부전공 연수
 함수 프로시저 문제
Visual Basic
(문제1) 1부터 입력받은 수까지의 합을 계산하는 프로그램을 완성시
키시오.
Private Sub Command1_Click( )
Dim k As Integer
k=Inputbox(“수치를 입력”)
Call My(k)
End Sub
- 61 -
동국대학교 전산원 부전공 연수
 함수 프로시저 문제
Visual Basic
(문제2) 1부터 입력받은 수까지의 합을 계산하는 프로그램을 완성시
키시오.
Private Sub Command1_Click( )
Dim k As Integer
Dim m As Integer
k=Inputbox(“수치를 입력”)
m=My(k)
Print m
End Sub
- 62 -
동국대학교 전산원 부전공 연수
 값에 의한 호출과 참조에 의한 호출
Visual Basic
■ 값에 의한 호출과 참조에 의한 호출
• Call By Reference
: 호출하는 측에서 프로시저에게 데이터를 넘겨줄때, 데이터의 주소
가 넘어간다.
: 프로시저 작성시 매개변수 앞에 ByRef키워드를 사용한다.
: 형식
Private Sub Sam(ByRef k As integer)
......
End Sub
- 63 -
동국대학교 전산원 부전공 연수
 값에 의한 호출과 참조에 의한 호출
Visual Basic
• Call By Value
: 호출하는 프로시저에게 데이터를 넘겨 줄때 데이터 값이 넘어간다.
: 프로시저 작성시 매개변수 앞에 ByVal 키워드를 사용한다.
: 형식
Private Sub(ByVal k As Integer)
.....
End Sub
- 64 -
동국대학교 전산원 부전공 연수
 값에 의한 호출과 참조에 의한 호출 문제
Visual Basic
(문제 1) 다음 프로그램의 결과 값을 작성하시오.
Dim k As Integer
Private Sub Form_Load()
k=20
End Sub
Public Sub My(ByRef D As
Integer)
Print D
Private Sub Cmd_Click()
Call My(k)
Print k
End Sub
D=0
End Sub
- 65 -
동국대학교 전산원 부전공 연수
 값에 의한 호출과 참조에 의한 호출 문제
Visual Basic
(문제2) 다음 프로그램의 결과 값을 작성하시오.
Dim K As Integer
Public Sub My(ByVal D As
Private Sub Form_Load()
K=20
Integer)
End Sub
Print D
Private Sub Cmd_Click()
D=0
Call My(K)
End Sub
End Sub
- 66 -
동국대학교 전산원 부전공 연수
 정적 변수와 정적 프로시저
Visual Basic
■ 정적 변수와 정적 프로시저
• Static 예약어
– 정적변수나 정적 프로시저를 선언할 때 사용한다.
• 지역변수의 값을 유지하는데 사용
- 67 -
동국대학교 전산원 부전공 연수
 정적 변수와 정적 프로시저
Visual Basic
■ 정적 변수
• 블록이 시작되기 전에 이미 메모리에 생성되었다가 블록이 끝나도
그대로 그 값을 보존하며 메모리에 남아있다
Sub Main_Proc()
Sub Total(Num)
Call Total(1)
Static Sum
Call Total(2)
Sum=Sum+Num
End Sub
Print Sum
End Sub
- 68 -
동국대학교 전산원 부전공 연수
 정적 변수와 정적 프로시저
Visual Basic
■ 정적 프로시저
• 프로시저 안에 선언된 모든 변수를 정적변수로 생성할 때 사용한다.
예제)
Static Sub Total(Number)
Sum
Sum = Sum + Number
Print Sum
End Sub
- 69 -
동국대학교 전산원 부전공 연수
 기타 매개변수
Visual Basic
■ 기타 매개변수
• 선택적인 매개변수의 이름 앞에는 예약어 Optional을 추가한다.
• 선택적인 매개변수에 대해서는 가변형인 Variant형만이 허용된다.
• 매개변수 리스트는 마지막에 선언한다.
- 70 -
동국대학교 전산원 부전공 연수
 기타 매개변수 예제
Visual Basic
예제)
A_Pro “안녕하세요”, “홍길동씨”
A_Pro “안녕하세요”
Sub A_Pro(X As String, Optional y As Variant)
If IsMissing (y) Then
Print x & “아무개씨”
Else
Print x & y
End If
End Sub
- 71 -
동국대학교 전산원 부전공 연수
 기타 매개변수 예제
Visual Basic
예제)
A_Pro “안녕하세요”, “홍길동씨”
A_Pro “안녕하세요”
Sub A_Pro(x As String, Optional y As Variant =“아무개씨” )
Print x & y
End Sub
- 72 -
동국대학교 전산원 부전공 연수
 배열을 공부하자
Visual Basic
• 배열의 기초
• 1차원 배열
• 다차원 배열
• 동적 배열
• 컨트롤 배열
- 73 -
동국대학교 전산원 부전공 연수
 배열의 기초
Visual Basic
■ 배열의 기초
• 배열(Array) : 크기와 자료형이 같은 변수의 집합입니다. 여러 개의
변수를 모아서 처리할 때 사용한다.
• 요소(Element) : 배열을 구성하는 각각의 값이다.
• 첨자(Subscript) : 요소를 구분하기 위해 사용하는 번호이다.
• 예제) Dim K(5) As Integer
A(0) A(1)
A(2)
A(3)
A(4)
- 74 -
A(5)
동국대학교 전산원 부전공 연수
 1차원 배열
Visual Basic
■ 1차원 배열
• 첨자가 하나인 배열
(예제) Dim a(5) As Integer
• 배열요소의 하한 값은 0으로 시작한다.
• Option Base
(예제) Option Base 1
Dim A(5) As Integer
A(1)
A(2)
A(3)
A(4)
A(5)
- 75 -
동국대학교 전산원 부전공 연수
 1차원 배열
Visual Basic
• 배열의 범위를 변경
Dim A(10 To 14)
As Integer
A(10) A(11) A(12) A(13) A(14)
- 76 -
동국대학교 전산원 부전공 연수
 1차원 배열문제
Visual Basic
(문제1) 다음 프로그램의 결과 값을 작성하시오.
For i=1 to 26
Private Sub Form_Load()
Print a(i)
Dim a(1 to 26) As String*1
Dim i As integer
Next i
Dim j As integer
End Sub
j=65
For i= 1 to 26
a(i) = Chr(j)
j=j+1
Next i
- 77 -
동국대학교 전산원 부전공 연수
 1차원 배열 문제
Visual Basic
(문제2) 다음 프로그램의 결과를 작성하시오.
Private Sub Form_Load()
Dim Code(10 to 20) As Integer
For i=10 To 20 Step 3
Code(i) = 100
Next i
For i=10 To 20 Step 3
Print Code(i)
Next i
End Sub
- 78 -
동국대학교 전산원 부전공 연수
 다차원 배열
Visual Basic
■ 다차원 배열
• 첨자가 2개 이상인 배열
(예제)
Dim A(2,3) As Integer
A(0,0)
A(0,1)
A(0,2)
A(0,3)
A(1,0)
A(1,1)
A(1,2)
A(1,3)
A(2,0)
A(2,1)
A(2,2)
A(2,3)
- 79 -
동국대학교 전산원 부전공 연수
 다차원 배열 문제
Visual Basic
(문제1) 다음 프로그램의 결과값을 작성하시오
Private Sub Form_Load()
Dim a(1,2) As Integer
a(0,0)=10 : a(0,1) = 10 : a(0,2) = 10
a(1,0)=20 : a(1,1) = 20 : a(1,2) = 20
For i = 0 To 1
For j = 0 To 2
Print a(i,j)
Next j
Next i
End Sub
- 80 -
동국대학교 전산원 부전공 연수
 다차원 배열 문제
Visual Basic
(문제2) 다음 프로그램 결과값을 작성하시오.
Private Sub Form_Load()
Dim a(1 To 3, 4)
a(1,0)=“Sung” : a(1,1) =90
a(1,2)=80 : a(2,0)=“Kim”
a(2,1)=100 : a(2,2)=90
a(3,0)=“lee” : a(3,1) =40
a(3,2)=50
For i= 1 to 3
a(i,3)=a(i,1)+a(i,2)
Next i
For i= 1 to 3
suk=1
For j= 1 to 3
If a(j,3)>a(i,3) Then
suk=suk+1
End If
Next j
a(i,4)=suk
Next i
For i= 1 to 3
Print
a(i,0),a(i,1),a(i,2),a(i,3),a(i,4)
Next i
End Sub
- 81 -
동국대학교 전산원 부전공 연수
 동적 배열
Visual Basic
■ 동적 배열
• 프로그램 실행 중에 크기를 바꿀수 있는 배열이다.
• ReDim 을 사용해서 기존의 배열을 다시 선언한다.
– ReDim은 Dim과 달리 프로시저 안에서만 사용할 수 있다.
예제) Dim Mat() As Integer
Sub A_Proc()
‘ 배열의 크기는4*5
ReDim Mat(3,4)
....
End Sub
- 82 -
동국대학교 전산원 부전공 연수
 동적 배열
Visual Basic
• 동적배열의 데이터 보존
– ReDim문을 사용하면 각 형에 대해 초기값을 갖는다.
가변형 => Empty
숫자 => 0
문자열형 => 원소값이 0인 문자열
– Preserve예약어를 사용해 값을 보존
– 첨자의 범위
최소값 : LBound(배열이름, 차수)
최대값 : UBound(배열이름, 차수)
- 83 -
동국대학교 전산원 부전공 연수
 동적 배열 문제
Visual Basic
(문제1) 다음 프로그램의 결과값을 작성하시오.
For i=1 To 3
Option Base 1
Private Sub Form_Load()
Print b(i)
Dim a() As Integer
Next i
Dim b() As Integer
End Sub
ReDim a(3)
ReDim b(3)
For i=1 To 3
a(i)=i
Print a(i)
Next i
- 84 -
동국대학교 전산원 부전공 연수
 동적 배열 문제
Visual Basic
For i=1 To 3
Option Base 1
Print b(i)
Private Sub Form_Load()
Dim a(3) As Integer
Next i
Dim b(3) As Integer
End Sub
For i=1 To 3
a(i)=i
Print a(i)
Next i
b=a
- 85 -
동국대학교 전산원 부전공 연수
 동적 배열 문제
Visual Basic
Option Base 1
Private Sub From_Click()
Dim a(2 To 5) As Integer
For i= Lbound(a) To Ubound(a)
a(i)=i
Print a(i)
Next i
End Sub
- 86 -
동국대학교 전산원 부전공 연수
 동적 배열 문제
Visual Basic
Private Sub Form_click()
Dim a(2 To 3, 1 To 3) As Integer
Print LBound(a,1)
Print LBound(a,2)
Print UBound(a,1)
Print UBound(a,2)
End Sub
- 87 -
동국대학교 전산원 부전공 연수
 컨트로 배열
Visual Basic
■ 컨트롤 배열
• 컨트롤의 모음을 하나의 집합으로 처리할 때 사용한다.
• 이벤트 프로시저 하나를 공유하며, Index를 매개변수로 구분한다
- 88 -
동국대학교 전산원 부전공 연수
 컨트로 배열 예제 프로그램
Visual Basic
■ 컨트롤 배열 예제 프로그램
실행
- 89 -
동국대학교 전산원 부전공 연수
 컨트로 배열 예제 프로그램
Visual Basic
Private Sub optArray_Click(Index As Integer)
'컨트롤 배열 첨자값 출력
Cls
Print
Print "Index = "; Index
'선택된 모양으로 바꿈
Select Case Index
Case 0
shpShape.Shape = vbShapeCircle
Case 1
shpShape.Shape = vbShapeRectangle
Case 2
shpShape.Shape = vbShapeRoundedRectangle
End Select
End Sub
- 90 -
동국대학교 전산원 부전공 연수