Option Explicit
Sub main() ''필수 변수 선언 Dim 인수1, 인수2, i, 버퍼 As Variant ''핵심 변수 선언 Dim 결재금액, 예약수량, 예약금액, 결재금액배열(1000), 합계(1000), 예약번호(1000), j, Temp, Num As Variant ''인수처리 인수1 = Val(Left(Command, InStr(Command, " "))) 인수2 = Val(Mid(Command, InStr(Command, " "))) ''입력파일처리 Open "c:\c_it\data\abc03.txt" For Input As #1 For i = 1 To 인수2 Line Input #1, 버퍼 If i >= 인수1 Then ''변수 저장 결재금액 = Val(Mid(버퍼, 48, 10)) 예약수량 = Val(Mid(버퍼, 18, 5)) 예약금액 = Val(Mid(버퍼, 23, 10)) If 결재금액 < 5000000 Then Num = Num + 1 합계(Num) = 예약수량 * 예약금액 예약번호(Num) = Val(Mid(버퍼, 1, 7)) 결재금액배열(Num) = 결재금액 End If End If Next i ''정렬(합계오름차순 정렬 or(합계같음 and 예약번호 오름차순 정렬) For i = 1 To Num For j = i To Num If 합계(i) > 합계(j) Or _ (합계(i) = 합계(j) And 예약번호(i) > 예약번호(j)) Then Temp = 합계(i) 합계(i) = 합계(j) 합계(j) = Temp Temp = 예약번호(i) 예약번호(i) = 예약번호(j) 예약번호(j) = Temp Temp = 결재금액배열(i) 결재금액배열(i) = 결재금액배열(j) 결재금액배열(j) = Temp End If Next j Next i Close #1 ''출력파일처리 Open "c:\c_it\data\ans2.txt" For Output As #2 Print #2, 인수1, 인수2, 결재금액(Num) Close #2 End Sub
위 식에서 If 결재금액 < 5000000 Then Num = Num + 1 합계(Num) = 예약수량 * 예약금액 예약번호(Num) = Val(Mid(버퍼, 1, 7)) 결재금액배열(Num) = 결재금액 End If 이부분에서 결재금액배열(num)=val(mid(버퍼,48,10)) 이라고하지않고
결재금액배열(Num) = 결재금액 이라고 하는 이유가 있나요?
예약번호배열변수랑 다른가요?
|