아무리 봐도 이해가 안가는데요..
순서도에서..
i+1을 할때 i는 1이 된 상태고,
그리고 그 1값을 M에 넣은 상태고요..
그럼 현재 M값은 1이고,
A(i)값은 2가 되서. 결국
M=M+A(i)를 처음 더하면 3이 누적될테고, 그 다음 5가 되고, 그게 0으로 되는 순서도인데
3과 5는 소수잖아요.. 어떻게 된건가요?
(그리고 그 전에 회전을 안시키고 A(i)는 0이냐 묻고 바로 소수개수로 추가한건, 굳이 회전 안시켜도, 그 값이 2기 때문에, 그런건가요?)
그리고 추가로 67페이지에, 2번 답이 >로 적었는데 >=인 이유가 뭔가요. 하나가 갚은데, 2번으로 같은 값이 오는 이유가 뭔지 궁금합니다.
그리고 또 71페이지에, B=D가 됐을때, D를 2로 초기화시켜야하지 않나요? 그냥 전에 그대로 1씩 추가된 D그대로 나눠야하는건가요? 이 부분 잘 이해가 안가는데 설명좀 부탁드립니다.
그리고 또 89페이지에 2진수를 1의 보수와 2의 보수를 바꾸는데, 이 경우는 부호비트가 없는경우인가요? 부호비트가 있으면, 0이라면 1의 보수 2의보수라도, 부호비트자리는 절대 변경이 안된다고 들었는데, 0에서 1로 바꿔가지고요..
그리고 첨자변수와 인덱스변수의 차이가 뭔가요..?
그리고 77페이지에서 2의 -1승은 0.5가 되는데. 저는 1승이니. 0.2생각하고 있었는데,
-1이 0.5승이고 -2승이고 0.25승이고. 이 부분 잘 이해가 안갑니다. 설명좀 부탁드립니다.
그리고 79페이지에서 a(10)에는 이미 값이 입력이 되있지만,J값은 왜 증가값으로 입력받는지 궁금합니다.
안녕하세요.
1)
배열 A에는 2~100까지 저장되어 있습니다.
즉 A(1)에는 2가, A(2)에는 3이, ... A(99)에는 100이 입력되어 있습니다.
i가 1인 경우 A(i), 즉 A(1)이 2이므로 0이 아닙니다. 그래서 J가 1이 됩니다.
이제 A(1)의 값인 2의 배수인 4, 6, 8, ... 들이 있는 자리에 0을 넣어 2의 배수들이 모두 소수임을 지정합니다.
M=i에 의해 M도 1이 됩니다.
M = M + A(i), 즉 M = M + A(1)
에 의해 M = 1 + 2
M은 3이 됩니다.
M이 3이므로 A(3) = 0에 의해 배열 A의 세번째 값이 0으로 지정됩니다. 배열 A의 세번째 자리는 4가 들어 있던 자리입니다.
이제 다시 M = M + A(i)에 의해 M은 5가 됩니다. 그리므로 배열 A의 다섯 번째 자리에 0이 지정됩니다.
배열 A의 다섯 번째 자리는 6이 들어 있던 자리입니다.
정리하면 M으로 지정되는 것은 배열의 값인 3, 5 .. 가 아니라 배열의 3번째 자리, 5번째 자리를 의미합니다.
2)
교재에서는 어느 한 과정으로 설명을 위한 것으로
같은 경우에 대한 처리 부분이 시험에 출제된다면 문제의 내용이라 처리조건을 통해 어떻게 처리하라는 설명이 제시됩니다.
그러므로 제시된 조건에 맞게 처리하면 됩니다.
3)
4번 동그라미는 피제수를 2부터 나누기 위해 D를 초기화되는 부분으로
소인수로 분해할 B가 소수라면 즉 NMG가 0이 아니라면 10번 동그라미 과정에서 NO가 되어 D가 증가됩니다.
하지만 소수가 아니라면 NMG가 0이 되어 소인수 분해되는 과정이 진행되는데,
예를 들어 50을 소인수 할 때 먼저 2로 나눈 나머지가 0이므로 소인수 분해 값으로 A배열에 2가 저장된 후
몫인 25가 B에 저장됩니다. 이때 아직 D가 2이므로 다시 D를 초기화할 필요없이 다음 값인 25(B)를 D로 나누게 되므로 결국 2부터 나누게 되는 것이죠.
4)
부호화 관계없이 1의 보수를 2의 보수로 변환하는 과정에 대한 설명입니다.
5)
첨자 변수, 인덱스 변수 모두 배열의 위치를 지정하기 위한 용도의 변수로 이름이 첨자, 인덱스 이렇게 고정된 것은 아닙니다. 일반적으로 그렇게 많이 사용될 뿐입니다.
6)
2의 -1승은 2의 1승 분에 1, 즉 1/2^1 을 의미합니다. 그러므로 0.5가 됩니다.
2의 -2승은 2의 2승 분에 1, 즉 1/2^2 을 의미합니다. 그러므로 1/4 = 0.25가 됩니다.
7)
동그라미 1번의 A(10)은 배열을 사용하겠다고 지정한 것이고
동그라미 3~5번 과정이 A 배열에 값을 입력받아 저장하는 과정입니다.
오늘도 즐거운 하루 되세요.
-
*2016-09-26 11:23:29
안녕하세요.
1)
배열 A에는 2~100까지 저장되어 있습니다.
즉 A(1)에는 2가, A(2)에는 3이, ... A(99)에는 100이 입력되어 있습니다.
i가 1인 경우 A(i), 즉 A(1)이 2이므로 0이 아닙니다. 그래서 J가 1이 됩니다.
이제 A(1)의 값인 2의 배수인 4, 6, 8, ... 들이 있는 자리에 0을 넣어 2의 배수들이 모두 소수임을 지정합니다.
M=i에 의해 M도 1이 됩니다.M = M + A(i), 즉 M = M + A(1)
에 의해 M = 1 + 2
M은 3이 됩니다.
M이 3이므로 A(3) = 0에 의해 배열 A의 세번째 값이 0으로 지정됩니다. 배열 A의 세번째 자리는 4가 들어 있던 자리입니다.이제 다시 M = M + A(i)에 의해 M은 5가 됩니다. 그리므로 배열 A의 다섯 번째 자리에 0이 지정됩니다.
배열 A의 다섯 번째 자리는 6이 들어 있던 자리입니다.
정리하면 M으로 지정되는 것은 배열의 값인 3, 5 .. 가 아니라 배열의 3번째 자리, 5번째 자리를 의미합니다.
2)교재에서는 어느 한 과정으로 설명을 위한 것으로
같은 경우에 대한 처리 부분이 시험에 출제된다면 문제의 내용이라 처리조건을 통해 어떻게 처리하라는 설명이 제시됩니다.
그러므로 제시된 조건에 맞게 처리하면 됩니다.
3)4번 동그라미는 피제수를 2부터 나누기 위해 D를 초기화되는 부분으로
소인수로 분해할 B가 소수라면 즉 NMG가 0이 아니라면 10번 동그라미 과정에서 NO가 되어 D가 증가됩니다.
하지만 소수가 아니라면 NMG가 0이 되어 소인수 분해되는 과정이 진행되는데,
예를 들어 50을 소인수 할 때 먼저 2로 나눈 나머지가 0이므로 소인수 분해 값으로 A배열에 2가 저장된 후
몫인 25가 B에 저장됩니다. 이때 아직 D가 2이므로 다시 D를 초기화할 필요없이 다음 값인 25(B)를 D로 나누게 되므로 결국 2부터 나누게 되는 것이죠.
4)부호화 관계없이 1의 보수를 2의 보수로 변환하는 과정에 대한 설명입니다.
5)첨자 변수, 인덱스 변수 모두 배열의 위치를 지정하기 위한 용도의 변수로 이름이 첨자, 인덱스 이렇게 고정된 것은 아닙니다. 일반적으로 그렇게 많이 사용될 뿐입니다.
6)
2의 -1승은 2의 1승 분에 1, 즉 1/2^1 을 의미합니다. 그러므로 0.5가 됩니다.
2의 -2승은 2의 2승 분에 1, 즉 1/2^2 을 의미합니다. 그러므로 1/4 = 0.25가 됩니다.7)
동그라미 1번의 A(10)은 배열을 사용하겠다고 지정한 것이고
동그라미 3~5번 과정이 A 배열에 값을 입력받아 저장하는 과정입니다.오늘도 즐거운 하루 되세요.