기사 5월11일 기출 고급형문제입니다.
문제 1】 (예약수량 * 예약금액)의 값이 7000000 이상인 자료에 대하여 지불금액에 따라 오름차순 정렬하였을 때 마지막자료의 예약일자를 출력하시오. 동일값 발생시 일련번호에 따라 오름차순 정렬하여 처리하시오
중고급형은 배열변수를 직접 추출하던데 그 이유가 무엇이며(배열변수 구하기 칸을 따로 만들어서 구하는 이유가 무엇인가요?)
위 문제에서 직접 추출해야할 배열변수의 선정조건은 무엇인가요?(코딩에 보면 뚜껍게 된 부분입니다)
초.중.고급형을 다 해보니 그 차이를 조금 알겠네요..중급부터 건수를 구하라는 문제도
나오고 조건이 조금 까다로운듯 싶네요...고급형도 그러면 결국 문제 1번(정렬)문제만
어렵게 나오는건가여....? 질문이 조금 두서없네요..
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\san0105.txt" For Input As #1 For i = 1 To 인수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(버퍼, 8, 10)) 일련번호(Num) = Trim(Mid(버퍼, 1, 7)) 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\ans1.txt" For Output As #2 Print #2, 인수1, 인수2, 예약일자(Num) Close #2 End Sub
|