90
chapter 05. 프프프프프 프프

학습목표

  • Upload
    sanjiv

  • View
    50

  • Download
    0

Embed Size (px)

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

Page 1: 학습목표

chapter 05.

프로그래밍 기초

Page 2: 학습목표

- 2 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

학습목표

• 제어구조를 익히자

• 모듈과 프로시저를 마스터하자

• 배열을 공부하자

Page 3: 학습목표

- 3 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

제어문

■ 제어문

Grade >= 60

Print “Passed”Print “Failed”

False True

Page 4: 학습목표

- 4 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

제어구조를 익히자

■ 제어구조

• 교육 목표

– If …. Then …. else 문

– Select Case 문

– For … Next 문 / For Each … Next 문

– while … Wend 문

– 제어문 예제

Page 5: 학습목표

- 5 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

IF 문

• 단일 선택구조 IF

• 이중 선택구조 IF

• 다중 조건 구조 IF

■ IF 문

Page 6: 학습목표

- 6 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

■ 단일 선택구조 IF

• 형식

– If 조건 Then

– 실행 문장

– End IF

– 또는

– If 조건 Then 실행문

단일 선택구조 IF

Page 7: 학습목표

- 7 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

■ 예제

Private Sub CommEx_Click()

n=InputBox(“ 숫자를 입력하세요” )

if n=0 then End

Print n

End Sub

IF 문 예제

Page 8: 학습목표

- 8 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

IF 문 문제

■ 문제

어떤 문자 하나를 InputBox 로 입력 받아 “ A” 부터 “ Z” 사이가 아니라면 “에러”라고 출력하는 프로그램을 작성 .

Private Sub CommEx_Click()

n=InputBox(“ 숫자를 입력하세요” )

If ( ) then

Print “ 에러”

( )

End Sub

Page 9: 학습목표

- 9 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

이중 선택 구조 IF

■ 이중 선택구조 IF

• 형식

– If 조건 Then

– 참인 경우 실행문장

– Else

– 거짓인 경우 실행문장

– End If

Page 10: 학습목표

- 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

Page 11: 학습목표

- 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 문

Page 12: 학습목표

- 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 문

Page 13: 학습목표

- 13 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

Private Sub CommEx_Click()

n=InputBox(“ 숫자를 입력하세요” )

If n>0 then

Print “ 양수”

else

Print “ 음수”

End if

End Sub

If…then…else 문

■ 예제

Page 14: 학습목표

- 14 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

■ 문제

두수를 입력 받아 가장 큰 수를 출력하는 프로그램 작성 .

Private Sub CommEx_Click()A=InputBox(“ 숫자를 입력하세요” )

B=InputBox(“ 숫자를 입력하세요” ) If( ) Then

Print A( )

Print B( )

End Sub

If…then…else 문 문제

Page 15: 학습목표

- 15 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

다중 조건 IF

■ 다중 조건 IF

• 형식

– If 조건 1 Then

– 실행문장 1

– ElseIf 조건 2 Then

– 실행문장 2

– Else

– 실행문장 3

– End If

Page 16: 학습목표

- 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 예제

■ 예제

Page 17: 학습목표

- 17 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

하나의 문자를 입력받아

v, V 이면 비주얼 베이직 ,

d, D 이면 델파이 ,

j, J 이면 자바

로 출력하는 프로그램을 작성하시오 .

다중 조건 IF 문제

■ 문제 1

Page 18: 학습목표

- 18 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

Private Sub CommEx_Click()

n=InputBox(“ 숫자를 입력하세요” )

If ( ) then

Print “ 비주얼베이직”

ElseIf ( ) Then

Print “ 델파이”

Else

Print “ 자바 ”

End if

End Sub

다중 조건 IF 문제

■ code 를 완성하시오

Page 19: 학습목표

- 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”

Page 20: 학습목표

- 20 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

■ Select Case 문 (2)

• Format

Select Case 평가식 Case 평가값

명령문 1 Case 평가값

명령문 2 Case 평가값

명령문 3

Case Else

명령문 nEnd Select

Select Case 문

Page 21: 학습목표

- 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 문

Page 22: 학습목표

- 22 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

Select Case Num

Case 0 : Print “ 영”

Case 1 : Print “ 일”

Case 2 : Print “ 이”

End Select

Select Case 문 예제

■ 예제 1

Page 23: 학습목표

- 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

Page 24: 학습목표

- 24 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

하나의 문자를 입력받아

“ A” 나 “ a” 이면 “ America” 로

“ K” 나 “ k” 이면 “ Korea” 로

그외 문자는 “에러”로

출력하는 프로그램을 작성하시오 .

Select Case 문 문제

■ 문제 1

Page 25: 학습목표

- 25 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

Aa = inputbox(“ 문자를 입력하세요” )

Select Case aa

Case ( )

Print “America”

Case ( )

Print “Korea”

( )

Print “ 에러”

End Select

Select Case 문 문제

Page 26: 학습목표

- 26 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

국어 , 영어 , 수학점수를 InputBox 로 입력받아 합계와 평균을

계산하여 ,

평균이 90 점이상이면 “ A”,

평균이 80 점이상 90 점미만이면 “ B”,

평균이 70 점이상 80 점미만이면 “ C”,

평균이 60 점이상 70 점미만이면 “ D”,

평균이 60 점미만이면 “ F” 로

학점을 출력하는 프로그램을 작성하시오

Select Case 문 문제

■ 문제 2

Page 27: 학습목표

- 27 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

For…Next 문

■ For…Next 문 (1)

형식

For 변수 = 초기치 To 최종치 Step 증가치

처리문장

Next 변수

• 지정된 범위를 지정한 횟수만큼 반복 실행한다

Page 28: 학습목표

- 28 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

■ For…Next 문 (2)

count <= 10 True

False

count = 1sum = 0

sum = sum + count count++

For…Next 문

Page 29: 학습목표

- 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 문

Page 30: 학습목표

- 30 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

예제 ) 1 부터 10 까지 출력하기

For i = 1 to 10 Step 1

Print i

Next i

For…Next 문 예제

Page 31: 학습목표

- 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 문 문제

Page 32: 학습목표

- 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 문 문제

Page 33: 학습목표

- 33 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

■ For Each…Next 문

• 기능

• 배열 / 컬렉션의 각 요소에 명령문 반복 실행

• Format

For Each 구성요소 In 그룹명령문[ Exit For ]

명령문Next [ 구성요소 ]

For Each…Next 문 문제

Page 34: 학습목표

- 34 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

Do While…Loop 문

■ Do While…Loop 문

• 조건을 검사한 후 참이면 반복문 실행한다 .• 형식

Do While 조건

처리문장

Loop

• 예제 )i=1Do While i<=0

Print ii=i + 1

Loop

Page 35: 학습목표

- 35 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

Do Loop…While 문

■ Do Loop…While 문

• 일단 한번 문장들을 실행 시킨 뒤 조건을 검사한다 .• 형식 Do

처리문장 Loop While 조건

예제 ) i=1 Do

Print ii=i + 1

Loop While i <= 10

Page 36: 학습목표

- 36 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

Do Until…Loop 문

■ Do Until…Loop 문

• 조건이 거짓이면 반복하고 참이면 끝낸다 .• 형식 Do Until 조건

처리문장 Loop

예제 ) i=1 Do Until i > 10

Print iI = i + 1

Loop

Page 37: 학습목표

- 37 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

Do…Loop 문

■ Do…Loop 문 (1)

Counter <= 10

Count++

True

False

Page 38: 학습목표

- 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 문

Page 39: 학습목표

- 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 문

Page 40: 학습목표

- 40 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

While…Wend 문

■ While…Wend 문 (1)

name[count] > 0 Count++True

False

Page 41: 학습목표

- 41 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

■ While…Wend 문 (2)

• Format

• 예

While 조건식명령문

Wend

While i < 10

Sum = Sum + i

i = i + 1

Wend

While…Wend 문

Page 42: 학습목표

- 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

Page 43: 학습목표

- 43 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

Goto 문

■ Goto 문

예제 )

Goto Line

....

Line : 명령문

• 점프해서 지정된 곳에서 실행한다

Page 44: 학습목표

- 44 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

제어문 예제

■ 제어문 예제 (1)

1. 더블 클릭(frmControl 입력 )

• Form– Name 지정 : frmControl– Caption 지정 : 제어문 예제

2. 더블 클릭( 제어문 예제 입력 )

Page 45: 학습목표

- 45 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

■ 제어문 예제 (2)

• Control 배치– Label

• Label 1

• Label 2

– TextBox• Text 1

– CommandButton• Command 1

• Command 2

3. Control 배치

제어문 예제

Page 46: 학습목표

- 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: 평면

제어문 예제

Page 47: 학습목표

- 47 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

■ 제어문 예제 (4)– Command Button

속 성 Name

Command 1

Command 2

Control Caption

cmdFind

cmdExit

찾기 (&F)

종료 (&X)

• Control 배치 및 속성 지정 완료 화면

제어문 예제

Page 48: 학습목표

- 48 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

■ 제어문 예제 (5)

• Code 작성– 일반선언부

• 이름을 저장할 String 형 배열 변수 선언

4. Code 작성

제어문 예제

Page 49: 학습목표

- 49 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

■ 제어문 예제 (6)

• Code 작성– Form 개체의 Load Event 프로시저

5. Code 작성

제어문 예제

Page 50: 학습목표

- 50 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

■ 제어문 예제 (7)

• Code 작성– [ 찾기 ] 버튼 개체의 Load Event 프로시저

6. Code 작성

제어문 예제

Page 51: 학습목표

- 51 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

■ 제어문 예제 (8)

• Code 작성– [ 종료 ] 버튼 개체의 Click Event 프로시저

7. Code 작성

제어문 예제

Page 52: 학습목표

- 52 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

■ 제어문 예제 (9)

• 실행

8. “ 늘푸름” 입력

9. 클릭

제어문 예제

Page 53: 학습목표

- 53 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

모듈과 프로시저를 마스터하자

• 프로시저 사용이유

• 서브 프로시저

• 함수 프로시저

• 값에 의한 호출과 참조에 의한 호출

• 정적변수와 정적 프로시저

• 기타 매개변수

Page 54: 학습목표

- 54 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

프로시저 사용이유

■ 프로시저 사용이유

• 프로시저는 프로그램을 작은 논리단위로 나누어 관리가 용이하다 .

• 다른 프로그램에서도 사용이 가능하다 .

Page 55: 학습목표

- 55 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

서브 프로시저

■ 서브 프로시저 (1)

• 이벤트에 대해서 실행되는 코드의 블록이다 .

• 단위프로그램으로 작성해서 필요할 때마다 사용한다 .

• 객체에 대한 이벤트가 발생했을 때 호출된다 .

•예제 ) Private Sub am_Click()

Print “ 이벤트” End Sub

Page 56: 학습목표

- 56 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

■ 서브 프로시저 (2)

• 프로시저 내에 놓여진 코드를 실행할 뿐 어떤 값도 반환하지 않는다 .

• 호출 문장이 필요하다• 형식 Private Sub 프로시저이름 ( 매개변수 )

처리문장 End Sub

서브 프로시저

Page 57: 학습목표

- 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

서브 프로시저 예제

Page 58: 학습목표

- 58 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

함수 프로시저

■ 함수 프로시저

• 프로시저 이름을 통해 하나의 값을 반환한다 .

• 함수 프로시저는 변수처럼 자신의 자료형을 가진다 .( 기본형은 Var

iant 형이다 )

• 형식

Function 프로시저이름 ( 매개변수 ) As 반환형

처리문장

변수 = 반환값

End Function

Page 59: 학습목표

- 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

Page 60: 학습목표

- 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 ( )

함수 프로시저 예제

Page 61: 학습목표

- 61 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

( 문제 1) 1 부터 입력받은 수까지의 합을 계산하는 프로그램을 완성시키시오 .

Private Sub Command1_Click( )

Dim k As Integer

k=Inputbox(“ 수치를 입력” )

Call My(k)

End Sub

함수 프로시저 문제

Page 62: 학습목표

- 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

함수 프로시저 문제

Page 63: 학습목표

- 63 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

값에 의한 호출과 참조에 의한 호출

■ 값에 의한 호출과 참조에 의한 호출

• Call By Reference : 호출하는 측에서 프로시저에게 데이터를 넘겨줄때 , 데이터의

주소가 넘어간다 . : 프로시저 작성시 매개변수 앞에 ByRef 키워드를 사용한다 . : 형식 Private Sub Sam(ByRef k As integer) ...... End Sub

Page 64: 학습목표

- 64 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

• Call By Value

: 호출하는 프로시저에게 데이터를 넘겨 줄때 데이터 값이 넘어간다 .

: 프로시저 작성시 매개변수 앞에 ByVal 키워드를 사용한다 .

: 형식

Private Sub(ByVal k As Integer)

.....

End Sub

값에 의한 호출과 참조에 의한 호출

Page 65: 학습목표

- 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

값에 의한 호출과 참조에 의한 호출 문제

Page 66: 학습목표

- 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

값에 의한 호출과 참조에 의한 호출 문제

Page 67: 학습목표

- 67 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

정적 변수와 정적 프로시저

■ 정적 변수와 정적 프로시저

• Static 예약어

– 정적변수나 정적 프로시저를 선언할 때 사용한다 .

• 지역변수의 값을 유지하는데 사용

Page 68: 학습목표

- 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

정적 변수와 정적 프로시저

■ 정적 변수

Page 69: 학습목표

- 69 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

• 프로시저 안에 선언된 모든 변수를 정적변수로 생성할 때 사용한다 .

예제 )

Static Sub Total(Number)

Sum

Sum = Sum + Number

Print Sum

End Sub

정적 변수와 정적 프로시저

■ 정적 프로시저

Page 70: 학습목표

- 70 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

기타 매개변수

■ 기타 매개변수

• 선택적인 매개변수의 이름 앞에는 예약어 Optional 을 추가한다 .

• 선택적인 매개변수에 대해서는 가변형인 Variant 형만이 허용된다 .

• 매개변수 리스트는 마지막에 선언한다 .

Page 71: 학습목표

- 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

기타 매개변수 예제

Page 72: 학습목표

- 72 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

예제 )

A_Pro “ 안녕하세요” , “ 홍길동씨”

A_Pro “ 안녕하세요”

Sub A_Pro(x As String, Optional y As Variant =“ 아무개씨” )

Print x & y

End Sub

기타 매개변수 예제

Page 73: 학습목표

- 73 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

배열을 공부하자

• 배열의 기초

• 1 차원 배열

• 다차원 배열

• 동적 배열

• 컨트롤 배열

Page 74: 학습목표

- 74 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

배열의 기초

■ 배열의 기초

• 배열 (Array) : 크기와 자료형이 같은 변수의 집합입니다 . 여러 개의

변수를 모아서 처리할 때 사용한다 .

• 요소 (Element) : 배열을 구성하는 각각의 값이다 .

• 첨자 (Subscript) : 요소를 구분하기 위해 사용하는 번호이다 .

• 예제 ) Dim K(5) As Integer

A(0) A(1) A(2)

A(3)

A(4)

A(5)

Page 75: 학습목표

- 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)

Page 76: 학습목표

- 76 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

• 배열의 범위를 변경

Dim A(10 To 14) As Integer

A(10)

A(11)

A(12)

A(13)

A(14)

1 차원 배열

Page 77: 학습목표

- 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 차원 배열문제

Page 78: 학습목표

- 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 차원 배열 문제

Page 79: 학습목표

- 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)

Page 80: 학습목표

- 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

Page 81: 학습목표

- 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

다차원 배열 문제

Page 82: 학습목표

- 82 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

동적 배열

■ 동적 배열

• 프로그램 실행 중에 크기를 바꿀수 있는 배열이다 .

• ReDim 을 사용해서 기존의 배열을 다시 선언한다 .

– ReDim 은 Dim 과 달리 프로시저 안에서만 사용할 수 있다 .

예제 ) Dim Mat() As Integer

Sub A_Proc()

ReDim Mat(3,4) ‘ 배열의 크기는 4*5

....

End Sub

Page 83: 학습목표

- 83 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

• 동적배열의 데이터 보존

– ReDim 문을 사용하면 각 형에 대해 초기값을 갖는다 .

가변형 => Empty

숫자 => 0

문자열형 => 원소값이 0 인 문자열

– Preserve 예약어를 사용해 값을 보존

– 첨자의 범위

최소값 : LBound( 배열이름 , 차수 )

최대값 : UBound( 배열이름 , 차수 )

동적 배열

Page 84: 학습목표

- 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

동적 배열 문제

Page 85: 학습목표

- 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

동적 배열 문제

Page 86: 학습목표

- 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

동적 배열 문제

Page 87: 학습목표

- 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

동적 배열 문제

Page 88: 학습목표

- 88 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

컨트로 배열

■ 컨트롤 배열

• 컨트롤의 모음을 하나의 집합으로 처리할 때 사용한다 .

• 이벤트 프로시저 하나를 공유하며 , Index 를 매개변수로 구분한다

Page 89: 학습목표

- 89 -

Visual BasicVisual Basic

동국대학교 전산원 부전공 연수

■ 컨트롤 배열 예제 프로그램

실행실행

컨트로 배열 예제 프로그램

Page 90: 학습목표

- 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

컨트로 배열 예제 프로그램