문제2) 고객구분의 첫 번째 값이 ''''''''0''''''''도 아니고 ''''''''1''''''''도 아닌 자료에 대하여 (예약수량*예약금액)의 값에 따라 오름차순으로 정렬하였을 때 첫 번째 자료의 (예약수량*예약금액)의 값을 출력하시오. 동일값 발생시 한 번만 출력하시오.
ㅡ>> 정렬하라는 지시가 있기 때문에 j,Temp,Num를 써야 하지만, (예약수량*예약금액)의 오름차순이 제일 낮은 값에서 높은 값의 순서로 정렬되는 것이기 때문에 첫번째 자료는 (예약수량*예약금액)의 최소값과 동일한 것으로 보고 아래와 같이 소스코딩을 하였습니다.
Option Explicit
Sub main()
''''''''필수변수선언 Dim 인수1, 인수2, i, 버퍼 As Variant ''''''''핵심변수선언 Dim 고객구분, 예약수량, 예약금액, 최소값 As Variant ''''''''인수처리 인수1 = Val(Left(Command, InStr(Command, " "))) 인수2 = Val(Mid(Command, InStr(Command, " ")))
''''''''입력파일처리 Open "c:\c_it\data\abc06.txt" For Input As #1 ''''''''최소값 초기화 최소값 = 999999999 For i = 1 To 인수2 Line Input #1, 버퍼 If i >= 인수1 Then ''''''''변수저장 예약수량 = Val(Mid(버퍼, 18, 5)) 예약금액 = Val(Mid(버퍼, 23, 10)) 고객구분 = Trim(Mid(버퍼, 33, 1)) ''''''''최소값 구하기 If 고객구분 <> "0" And 고객구분 <> "1" Then If 최소값 > 예약수량 * 예약금액 Then 최소값 = 예약수량 * 예약금액 End If End If End If Next i Close #1 ''''''''출력파일처리 Open "c:\c_it\data\ans2.txt" For Output As #2 Print #2, 인수1, 인수2, 최소값 Close #2
End Sub
ㅡ>>결과값은 원래 제시한 소스로 구한 값과 같게 나왔답니다. 하지만 제가 불안하게 생각하는 점은 문제에 정렬하라는 지시가 있기 때문에 소스코딩이 정렬에 관한 부분을 반드시 담아야 하는 것인지입니다. 아니면 답만 맞아도 되는 것인지??
점수 산정에 있어서 결과값만 보나요??, 아니면 소스코딩에 관한 과정도 채점하나요??
그리고 코딩 중에 ''''''''필수~~에서 ''''는 고쳐도 여기서는 계속 여러개로 나온답니다, 무시해 주세요~! |