- 파일형식은 각 줄(Line)별로 구분되어 있으며, 각 줄(Line)은 CR/LF로 구분된다.
- 일변번호는 중복되어 있지 않으며, 일련번호에 대해 오름차순으로 정렬되어 있다.
★ 각 문제에 대한 프로그램은 실행 후, 반드시 정상(자동) 종료되도록 작성되어야 하며, 답안은 각 문제에서 지정된 파일로만 출력되어야 한다. (※ 화면출력 등은 불가.)
[문제번호 : 1] - <배점 : 20점>
일련번호의 마지막자리의 숫자 1자리가 짝수인 자료에 대하여 (예약수량 × 예약금액)에 따라 내림차순 정렬하여 1번째부터 10번째까지 (예약수량 × 예약금액)의 합계를 구하여 출력하시오.
동일값 발생시 일련번호에 따라 오름차순 정렬하시오.(20점)
(※ 결과치는 수검자 PC의 C:\C_iT\Data\ans1.txt 파일에 출력되도록 프로그램을 작성할 것)
(100 200 125914390)
Type 레코드
일련번호 As String * 7
예약일자 As String * 10
예약수량 As String * 5
예약금액 As String * 10
회원구분 As String * 5
회원번호 As String * 10
지불금액 As String * 10
지불방법 As String * 3
지불일자 As String * 10
배달방법 As String * 2
용도 As String * 20
배달여부 As String * 10
배달거리 As String * 10
End Type
Dim 필드구성 As 레코드
Dim 시작줄, 끝줄 As Long
Dim 일련번호(1000) As Long, 곱(1000) As Long
Dim 자료수 As Long
Dim 합계 As Long
Dim i, j As Long
Dim 임시 As Long
Open "C:\C_it\data\abc2003.txt" For Random As #1 Len = Len(필드구성) + 2
Open "C:\C_it\data\ans1.txt" For Output As #2
자료수 = 0
For i = 시작줄 To 끝줄
Get #1, i, 필드구성
If (Val(Right(필드구성.일련번호, 1)) Mod 2) = 0 Then
자료수 = 자료수 + 1
곱(자료수) = Val(필드구성.예약수량) * Val(필드구성.예약금액)
일련번호(자료수) = 필드구성.일련번호 ' <--요 부분이 계속해서 오류 나네요 ㅠ.ㅠ
End If
Next
For i = 1 To 자료수
For j = i + 1 To 자료수
If 곱(i) < 곱(j) Or 곱(i) = 곱(j) And 일련번호(i) > 일련번호(j) Then
임시 = 곱(i)
곱(i) = 곱(j)
곱(j) = 임시
첫댓글 아 .. 일련번호(자료수) = 필드구성.일련번호 <--- 이분을 일련번호(자료수) = Val(필드구성.일련번호) 로 고치니깐 제대로 컴파일 되는군요 .. 근데, 이상한것은 동강자료에서는 Val 함수를 쓰지 않았던거 같거든요 .. 같은 경험이 있으신분 있나요???
올려진 소스로 확인해보세요..저도 기억이 가물...ㅋㅋ
에고.. 올려진 소스대로 했는데도 에러가 ㅠ.ㅠ , 위 소스에서 val(필드구성.일련번호) 처리부분이 제일 수상쩍긴 해요 .. 1번 해결하면, 2번문제풀이에서 더욱 해깔리는 값이 도출합니다 . 0 으로 나와버리네요 ㅠ.ㅠ.. 왕도목님 소스가 깔끔하고 시원한데 어디서 에러가 나는지 감이 안잡히네요.
아 .. 드뎌 해결했네요 ... 위 문제에서 정렬해야할 자료형이 숫자, 문자 각각이네요.. 그래서 .. 정렬할때 사용할 임시변수를 long 형, string 형 각각 만들어서 했더니, 해결됐네요 .. 더 간단한 방법도 있을지 모르겠네요 ..