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