Limetime's TimeLine
article thumbnail
Published 2018. 5. 27. 17:50
4장 예제 및 종합문제 Visual Basic
반응형

4장 예제 및 종합문제

QUESTION 4-1.

텍스트 박스에서 입력받은 점수가

50점 이상이면 레이블에

'합격' 이라고 출력하는

프로그램을 작성하여라.

Option Explicit



Private Sub Command1_Click()

Dim i As Integer '변수 i 선언

i = Text1.Text '변수 i에 Text1 내용 저장

If i >= 50 Then Label1.Caption = "합격" 'i가 50이상일 때 Label1에 합격 출력


End Sub

QUESTION4-1.zip


PROGRAM 4-1.

If문을 이용하여 통신요금 계산

프로그램을 작성한다.

PROGRAM4-1.zip


PROGRAM 4-2.

  짝수와 홀수 판별 프로그램을

작성한다.

PROGRAM4-2.zip


PROGRAM 4-3.

중첩 If문을 이용하여

통신요금 계산 프로그램을 작성한다.

PROGRAM4-3.zip


PROGRAM 4-4.

입력 받은 수의 종류를

판별한다.

PROGRAM4-4.zip


PROGRAM 4-5.

 요일 출력 프로그램을

작성한다.

PROGRAM4-5.zip


QUESTION 4-2.

 텍스트 박스에서 입력받은 점수가

90 이상이면 '우수'

60 이상 90 미만이면 '보통'

60 이하이면 '미흡'으로 레이블을

표시하는 프로그램을 작성하여라.

Option Explicit


Private Sub Command1_Click()

Dim num As Integer

num = CInt(Text1.Text)

Select Case num

    Case Is >= 90

        Label1.Caption = "우수"

    Case Is >= 60

        Label1.Caption = "보통"

    Case Else

        Label1.Caption = "미흡"

    End Select

End Sub

QUESTION4-2.zip



PROGRAM 4-6.

0으로 나누려는 오류 프로그램의

문제를 해결한다.

PROGRAM4-6.zip


목표완성1.

세 과목 성적을 입력받아

평점을 계산하는 프로그램을

작성해보자.

목표완성1.zip



PROGRAM 4-7.

1부터 10까지 자연수의 합을

구하는 프로그램을 작성한다.

PROGRAM4-7.zip


PROGRAM 4-8.

구구단 2단을 출력하는

프로그램을 작성한다.

PROGRAM4-8.zip


PROGRAM 4-9.

구구단 출력 프로그램을 작성한다.

PROGRAM4-9.zip


PROGRAM 4-10.

합계가 50을 초과할 때의 n갑과 합계를

출력한다.(Do While ~Loop문 사용)

PROGRAM4-10.zip


PROGRAM 4-11.

 합계가 50을 초과할 때의

n값과 합계를 출력한다.

(Do~Loop While문 사용)

PROGRAM4-11.zip


목표완성2.

직각 삼각형과 역 직각 삼각형

목표완성2.zip



PROGRAM 4-11.

배열에 입력 받은 값을

기억시키고 계산한다.

PROGRAM4-12.zip


PROGRAM 4-12.

배열에 할당된 행과

열의 값을 바꾸어 출력한다.

PROGRAM4-13.zip


예제4.

최댓값 출력

예제4.zip


예제5.

합격 판정

예제5.zip


예제6.

홀수 합/짝수 합

예제6.zip


예제7.

약수 구하기

예제7.zip


예제8.

배수 구하기

예제8.zip


종합 문제1.

배열 a에 저장된 자료를

오름차순 정렬하는 프로그램을

작성하여라

Option Explicit



Private Sub Command1_Click()

Dim a(4) As Integer

Dim i As Integer

Dim j As Integer

Dim temp As Integer

a(0) = 5

a(1) = 3

a(2) = 1

a(3) = 2

a(4) = 4


For i = 0 To 4

    Label1.Caption = Label1.Caption & a(i) & " "

Next i


For i = 0 To 4

    For j = 0 To 4

        If a(i) > a(j) Then 'a(i)와 a(j) 비교

            temp = a(i)

            a(i) = a(j)

            a(j) = temp

        End If

    Next j

Next i


For i = 0 To 4

    Label2.Caption = Label2.Caption & a(i) & " "

Next i

End Sub

종합문제1.zip


종합 문제2.

1부터 100까지의 숫자 중

소수를 출력하는 프로그램을 

작성하여라.

Option Explicit




Private Sub Command1_Click()

Dim i As Integer

Dim j As Integer

Dim prime(1 To 100) As Boolean '논리형 배열 변수 prime 크기는 100


For i = 2 To 100

    For j = 2 To i - 1

        If i Mod j = 0 Then 'i와 j를 나눠 나머지가 0일 때

            prime(i) = True 'prime(i)에 '참' 저장

        End If

    Next j

Next i


For i = 2 To 100

   If prime(i) = False Then 'Boolean 기본값 False. True로 안바뀐 값들 일 때

        Print i

    End If

Next i


End Sub

종합문제2.zip


종합 문제3.

아래 표와 같은 기준에 따라 성적을

입력받아 학점을 계산해주는

프로그램을 작성하여라.

Option Explicit



Private Sub Command1_Click()

Dim num As Integer


num = Val(Text1.Text)


Select Case num

    Case Is >= 95

        Label2.Caption = "A+"

    Case Is >= 90

        Label2.Caption = "A"

    Case Is >= 85

        Label2.Caption = "B+"

    Case Is >= 80

        Label2.Caption = "B"

    Case Is >= 75

        Label2.Caption = "C+"

    Case Is >= 70

        Label2.Caption = "C"

    Case Else

        Label2.Caption = "F"

End Select

End Sub

종합문제3.zip


종합 문제4.

(★가장 어려웠던 문제.)

두 개의 배열 a, b에 있는 데이터를

배열 c에 오름차순 정렬하여

옮기는 프로그램을 작성하여라.

단, 배열 a, b에 저장된 데이터는

오름차순 정렬되어 있으며, 같은

데이터는 없다고 가정한다.


Option Explicit



Private Sub Command1_Click()

Dim i As Integer

Dim a(4) As Integer

Dim b(4) As Integer

Dim c(9) As Integer

Dim a_index As Integer, b_index As Integer, c_index As Integer


a(0) = 5

a(1) = 7

a(2) = 11

a(3) = 28

a(4) = 46


b(0) = 6

b(1) = 13

b(2) = 14

b(3) = 29

b(4) = 47


Do While a_index <= 4 And b_index <= 4 And c_index <= 9 'a(4), b(4), c(9)일 때 동안.

    If a(a_index) > b(b_index) Then 'a(?) > b(?)

        c(c_index) = b(b_index) '배열 c에 b의 데이터 옮기기

        c_index = c_index + 1

        b_index = b_index + 1

    Else    'a(?) < b(?)

        c(c_index) = a(a_index) '배열 c에 a의 데이터 옮기기

        c_index = c_index + 1

        a_index = a_index + 1

    End If

Loop '탈출 시 a(5) b(4) c(9). 나오기 전에 a(4)=46을 c(8)에 넣었다.


Do While b_index <= 4 'b_index의 값이 4보다 작거나 같을 때. 현재 b_index의 값은 4

    c(c_index) = b(b_index) '배열c에 b의 데이터 옮기기

    b_index = b_index + 1 '탈출 조건

Loop


'이하 출력문

For i = 0 To 4

    Label1.Caption = Label1.Caption & " " & a(i)

Next i


For i = 0 To 4

    Label2.Caption = Label2.Caption & " " & b(i)

Next i


For i = 0 To 9

    Label3.Caption = Label3.Caption & " " & c(i)

Next i


End Sub




종합문제4.zip



반응형
profile

Limetime's TimeLine

@Limetime

포스팅이 좋았다면 "공감❤️" 또는 "구독👍🏻" 해주세요!