커뮤니티

자료검색중 문의

프로필 이미지
atmskill
2014-08-23 15:11:16
155
글번호 77962
답변완료
아래 사항에 대하여 답변좀 바랍니다 일반 컴파일러에서는 생각치 못하는게 자꾸 생기는데,,, For문으로 loop를 수행중 결과값에 의문이,, 1 왜 최종값의 반(1/2)만 실행되는가??? for cnt =1 to 6 ==> 이면 3번만실행,,,,12이면 6번실행,,,11이면 6번실행하네요 2. cnt값이 0부터 시작하면 짝수로, 1이면 홀수번호로 나오는데 왜 ??? 3. 엄청 해메고 여기저기 기웃거리고등등 해서 알아낸바에 의하면,,, 각 봉마다 최종값 만큼씩 loop를 돌고 마지막 봉이면 "=== 종료합니다==="가 나올거로 예상했는데,,, 4. 첫봉의 고가를 불러와 2번째에서 마지막봉까지 고가를 비교하여 같으면 출력 두번째 봉의 고가를 불러와 3번째 ~ 끝봉까지 고가를 비교하여 출력 이런 프로그램을 만들고 싶습니다 코딩까지는안해줘도 어찌어찌하면될것 같다는것만이라도 알려주시면 감사하겠습니다. 엑셀 메크로를 이용하여 만들었더니 출력결과가 맟는지 확인하는게 일일이 챠트 띄우고 눈으로 비교할려니 너무 힘들어 접근해볼려니 어렵네요,, 검색해 챠트에 바로 띄워주면 바로 확인이 가능하지 않을까 해서입니다,, 감사합니다
검색
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2014-08-25 13:43:52

안녕하세요 예스스탁입니다. 1. var : cnt(0); for cnt = 0 to 6 step 1{ if LastBarOnChart == 1 Then{ MessageLog("===종료합니다==="); cnt = 9999; } Else{ MessageLog("cnt1 %.f",cnt); } cnt = cnt+1; //추가증가 MessageLog("cnt2 %.f",cnt); } 위식 적용해 보시면 cnt값의 변화를 보실수 있습니다. for cnt = 0 to 6 step 1 cnt에 최초 0을 할당하고 이후에 직전값에 1씩 증가하면서 loop를 수행하게 됩니다. 하지만 for문안에 cnt = cnt+1;조건이 있어 cnt값이 for문안에서 추가로 1씩 증가하므로 아래와 같이 cnt값이 증가하게 됩니다. 0 -> 1(추가증가) --> 2 --> 3(추가증가) --> 4 --> 5(추가증가) --> 6 추가증가되는 cnt = cnt+1;을 삭제하시면 0~6까지 7회 수행합니다. 2. var : cnt(0); for cnt = 1 to 6 step 1{ MessageLog("%.f",cnt); if H == H[cnt] Then MessageLog("%.f %.f %.f",cnt,H,H[cnt]); } 즐거운 하루되세요 > atmskill 님이 쓴 글입니다. > 제목 : 자료검색중 문의 > 아래 사항에 대하여 답변좀 바랍니다 일반 컴파일러에서는 생각치 못하는게 자꾸 생기는데,,, For문으로 loop를 수행중 결과값에 의문이,, 1 왜 최종값의 반(1/2)만 실행되는가??? for cnt =1 to 6 ==> 이면 3번만실행,,,,12이면 6번실행,,,11이면 6번실행하네요 2. cnt값이 0부터 시작하면 짝수로, 1이면 홀수번호로 나오는데 왜 ??? 3. 엄청 해메고 여기저기 기웃거리고등등 해서 알아낸바에 의하면,,, 각 봉마다 최종값 만큼씩 loop를 돌고 마지막 봉이면 "=== 종료합니다==="가 나올거로 예상했는데,,, 4. 첫봉의 고가를 불러와 2번째에서 마지막봉까지 고가를 비교하여 같으면 출력 두번째 봉의 고가를 불러와 3번째 ~ 끝봉까지 고가를 비교하여 출력 이런 프로그램을 만들고 싶습니다 코딩까지는안해줘도 어찌어찌하면될것 같다는것만이라도 알려주시면 감사하겠습니다. 엑셀 메크로를 이용하여 만들었더니 출력결과가 맟는지 확인하는게 일일이 챠트 띄우고 눈으로 비교할려니 너무 힘들어 접근해볼려니 어렵네요,, 검색해 챠트에 바로 띄워주면 바로 확인이 가능하지 않을까 해서입니다,, 감사합니다
프로필 이미지

atmskill

2014-08-25 20:53:09

atmskill 님에 의해 삭제된 답변입니다.
프로필 이미지

atmskill

2014-08-25 20:53:09

친절한 답변에 감사드립니다 열씨미 공부해보겠습니다 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 자료검색중 문의 > 안녕하세요 예스스탁입니다. 1. var : cnt(0); for cnt = 0 to 6 step 1{ if LastBarOnChart == 1 Then{ MessageLog("===종료합니다==="); cnt = 9999; } Else{ MessageLog("cnt1 %.f",cnt); } cnt = cnt+1; //추가증가 MessageLog("cnt2 %.f",cnt); } 위식 적용해 보시면 cnt값의 변화를 보실수 있습니다. for cnt = 0 to 6 step 1 cnt에 최초 0을 할당하고 이후에 직전값에 1씩 증가하면서 loop를 수행하게 됩니다. 하지만 for문안에 cnt = cnt+1;조건이 있어 cnt값이 for문안에서 추가로 1씩 증가하므로 아래와 같이 cnt값이 증가하게 됩니다. 0 -> 1(추가증가) --> 2 --> 3(추가증가) --> 4 --> 5(추가증가) --> 6 추가증가되는 cnt = cnt+1;을 삭제하시면 0~6까지 7회 수행합니다. 2. var : cnt(0); for cnt = 1 to 6 step 1{ MessageLog("%.f",cnt); if H == H[cnt] Then MessageLog("%.f %.f %.f",cnt,H,H[cnt]); } 즐거운 하루되세요 > atmskill 님이 쓴 글입니다. > 제목 : 자료검색중 문의 > 아래 사항에 대하여 답변좀 바랍니다 일반 컴파일러에서는 생각치 못하는게 자꾸 생기는데,,, For문으로 loop를 수행중 결과값에 의문이,, 1 왜 최종값의 반(1/2)만 실행되는가??? for cnt =1 to 6 ==> 이면 3번만실행,,,,12이면 6번실행,,,11이면 6번실행하네요 2. cnt값이 0부터 시작하면 짝수로, 1이면 홀수번호로 나오는데 왜 ??? 3. 엄청 해메고 여기저기 기웃거리고등등 해서 알아낸바에 의하면,,, 각 봉마다 최종값 만큼씩 loop를 돌고 마지막 봉이면 "=== 종료합니다==="가 나올거로 예상했는데,,, 4. 첫봉의 고가를 불러와 2번째에서 마지막봉까지 고가를 비교하여 같으면 출력 두번째 봉의 고가를 불러와 3번째 ~ 끝봉까지 고가를 비교하여 출력 이런 프로그램을 만들고 싶습니다 코딩까지는안해줘도 어찌어찌하면될것 같다는것만이라도 알려주시면 감사하겠습니다. 엑셀 메크로를 이용하여 만들었더니 출력결과가 맟는지 확인하는게 일일이 챠트 띄우고 눈으로 비교할려니 너무 힘들어 접근해볼려니 어렵네요,, 검색해 챠트에 바로 띄워주면 바로 확인이 가능하지 않을까 해서입니다,, 감사합니다