>> 이문제 회원별 지불관리(고급유형)이네요. 제 답한 것이 부족할 수도 있으니 자료실가서 코딩된 것도 한번 보시기 바랍니다.
문제두 같이 올리는데 자꾸 에러가 나네요.. >>
Option Explicit >>
Sub main() >>
''''''''''''''''''''''''''''''''필수변수선언 Dim 인수1, 인수2, 버퍼, i As Variant >>
''''''''''''''''''''''''''''''''핵심 Dim 예약수량, 예약금액, 지불금액(1000), 예약일자(1000), 일련번호(1000), temp, j, num As Variant >>
''''''''''''''''''''''''''''''''인수처리 인수1 = Val(Left(Command, InStr(Command, " "))) 인수2 = Val(Mid(Command, InStr(Command, " "))) >>
''''''''''''''''''''''''''''''''입력파일 Open "C:\C_it\data\san0105.txt" For Input As #1 >>
For i = 1 To 인수1 <====여기서 인수2인데 잘못 기재하셨네요 Line Input #1, 버퍼 If i >= 인수1 Then ''''''''''''''''''''''''''''''''변수저장 예약수량 = Val(Mid(버퍼, 18, 5)) 예약금액 = Val(Mid(버퍼, 23, 10)) >>
''''''''''''''''''''''''''''''''배열 If 예약수량 * 예약금액 >= 7000000 Then num = num + 1 지불금액(num) = Val(Mid(버퍼, 48, 10)) 일련번호(num) = Trim(Mid(버퍼, 1, 7)) 예약일자(num) = Trim(Mid(버퍼, 8, 10)) End If End If Next i ''''''''''''''''''''''''''''''''정열(지불금액-오름차순, 예약일자동일값 발생시 일련번호-오름차순) 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\Ans1.txt" For Output As #2 Print #2, 인수1, 인수2, 예약일자(1000) <=== 예약일자(num)번째 값이 아닐까요.
nd Sub
>>
2번문제 >>
Option Explicit >>
Sub main() >>
''''''''''''''''필수변수선언 Dim 인수1, 인수2, 버퍼, i As Variant >>
''''''''''''''''핵심 Dim 예약수량, 예약금액, 회원구분, 합계(1000), temp, j, num As Variant >>
''''''''''''''''인수처리 인수1 = Val(Left(Command, InStr(Command, " "))) 인수2 = Val(Mid(Command, InStr(Command, " "))) >>
''''''''''''''''입력파일 Open "C:\C_it\data\san0105.txt" For Input As #1 >>
For i = 1 To 인수1 <===== 인수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 num = num + 1 합계(num) = 예약수량 * 예약금액 End If End If Next i ''''''''''''''''정열 For i = 1 To num For j = i To num If 합계(i) > 합계(j) Then 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, 합계(1) End Sub
|