261 페이지 상단에 보면 Data[10] 으로 되어있는걸로 봐서 0인텍스부터 9 인덱스가지 크기는 10개인 배열입니다.
j가 i+1 에서 10 이라고 해서 (i는 1부터 세어지니까 j는 2부터 )
크기가 11인 배열을 선언해서 인덱스 1부터 유효하게 세려나보다.. 0인덱스는 헷갈리니까 그냥 비워두나보다 했습니다
왜냐면 아래 순서도에서도 M = 0 한 후에 M = M+1 한 후에, Data[M] 하거든요
차라리 M = -1 부터 초기화해서 1씩 더해갓으면 모를까요...
보니까 그 밑에서도 j +1 한 이후부터 DAta[i] : Data[J] 라고 비교하므로 1인덱스를 2인덱스랑 세는구나 하고 알수 있습니다.
그런데 262 페이지 보니까.. 소스가 좀... M = -1로 초기화 한 후, do while 내에서 m++을 하면 m =0 인데 &data[m] 에 입력받으면 data[0]자리부터 넣는다는거거든요.
여기서 문제와 답에 일관성이 없는 것같습니다.
시험문제는 기출문제를 좀 보니까.... 변수에 대한 상세 설명이 나오고 그 밑에 순서도가 나오던데..
변수의 범위... 확실하게 주어지면 그거대로 해석해야 맞는거가 될텐ㄷ ㅔ좀 난감하더라고요.
심지어 이 문제는 2005년 기출이네요(263 페이지)
문제 의도가 1부터 10세는건데 저 혼자 0부터 9로 셀 수는 없으니... 이 부분은 확실히 알 고 넘어가야 할것같습니다.
c 코드 부분이라던지, 변수 설명 부분에서 오타나 착오아 있었던 것이라면 시정 부탁드립니다.
아니면,, 만약에 시험주최측에서 0인덱스부터 9인덱스까지 탐색하라는 말을
의레 i는 1부터 10까지 변경된다. 라고 표현해 왓다고 한다면 이 부분도 확실히 말씀부탁드립니다.
출제자들이 으레 그렇다고 한다면 2017년 실기 시험에서도 의레 그렇게 대답해야 하기 때문이죠...
안녕하세요.
순서도는 특정 언어를 대상으로 하는 것이 아니라 어떤 언어에서도 사용할 수 있도록 해야 하므로
배열의 크기가 문제로 주어지는 경우 배열의 시작 위치를 처리조건에 명시하도록 되어 있습니다. 일반적으로 순서도에서 배열의 위치는 1부터 지정하는 것으로 출제가 되고 있습니다.
즉 A[10]의 경우 A[1] ~ A[10]입니다.
하지만 코드에서는 언어가 명시되므로 별도의 배열 시작 위치 조건이 없어도 제시된 언어로 시작 위치를 파악할 수 있어야 합니다.
C와 JAVA는 배열의 시작 위치가 0부터 시작합니다.
즉 순서도의 경우 실제 시험에서는 배열의 위치가 명시됩니다. 혹시 명시되지 않는다면 우선 1부터 시작하는 것으로 파악하고 문제를 해결하세요. 혹은 순서도의 처리 과정에서 배열의 위치를 파악할 수 있습니다.
C나 자바 언어의 경우 이번이 첫 번째 시험이라서 제시될 지 여부는 명확하지 않지만 제시되지 않더라도 언어의 특성상 배열의 시작 위치가 0부터 라는 것을 알고 있어야 합니다.
정리하면 순서도는 처리조건에서 배열의 시작 위치를 확인해서 그에 맞게 순서도를 이해하면 됩니다.
C나 JAVA의 경우 배열의 시작 위치는 0부터 시작한다고 알고 문제를 해결해야 합니다.
오늘도 즐거운 하루 되세요.
-
*2017-03-20 14:28:42
안녕하세요.
순서도는 특정 언어를 대상으로 하는 것이 아니라 어떤 언어에서도 사용할 수 있도록 해야 하므로
배열의 크기가 문제로 주어지는 경우 배열의 시작 위치를 처리조건에 명시하도록 되어 있습니다. 일반적으로 순서도에서 배열의 위치는 1부터 지정하는 것으로 출제가 되고 있습니다.
즉 A[10]의 경우 A[1] ~ A[10]입니다.
하지만 코드에서는 언어가 명시되므로 별도의 배열 시작 위치 조건이 없어도 제시된 언어로 시작 위치를 파악할 수 있어야 합니다.
C와 JAVA는 배열의 시작 위치가 0부터 시작합니다.
즉 순서도의 경우 실제 시험에서는 배열의 위치가 명시됩니다. 혹시 명시되지 않는다면 우선 1부터 시작하는 것으로 파악하고 문제를 해결하세요. 혹은 순서도의 처리 과정에서 배열의 위치를 파악할 수 있습니다.
C나 자바 언어의 경우 이번이 첫 번째 시험이라서 제시될 지 여부는 명확하지 않지만 제시되지 않더라도 언어의 특성상 배열의 시작 위치가 0부터 라는 것을 알고 있어야 합니다.
정리하면 순서도는 처리조건에서 배열의 시작 위치를 확인해서 그에 맞게 순서도를 이해하면 됩니다.
C나 JAVA의 경우 배열의 시작 위치는 0부터 시작한다고 알고 문제를 해결해야 합니다.
오늘도 즐거운 하루 되세요.