커뮤니티

질문 부탁드립니다

프로필 이미지
yamu
2025-07-01 04:29:56
218
글번호 192196
답변완료
수고가 많으십니다 지난번 알려주신 수식은 메인 if 문 조건봉 (h>l*1.08...) 사이의 일수 차이를 구하고 가장 짧은 일수를 구하는 수식인거 같고 if 문 안에서 구한 hh[] 배열값 (현재만족봉과 직전봉사이의 최고가)을 가지고도 같은 작업을 하려면 아래와 같이 작성하면 될까요? (hmintt 변수에 저장하는걸로 작성) 메인조건 (h>l*1.08...) 과 hh[] 조건봉은 발생시점이 각각 달라서 따로 구하려고 합니다 질문2) 그리고 전에 알려주신 수식에서 mintt[50] 을 배열 선언하고 for 49 downto 1 문 (배열값 옮기기) 에서 if mintt == 0 or (tt[cnt]-tt[cnt+1] < mintt) Then mintt = tt[cnt]-tt[cnt+1]; 를 작성해주셨는데 (아래 for cnt = 0 to 20 에서도 총 두번 작성) 이유가 궁금합니다...혹시 오류인가해서 여쭤봅니다. mintt[] 배열 선언은 mintt 값을 배열에 넣으려고 작성해주신건가요? 감사합니다 var : mintt(0); Array : mintt[50](0); if Bdate != Bdate[1] Then { DD = DD+1; } if (h>l*1.08) and (d1 == 0 or (d1 > 0 and dd >= d1+5)) Then { d1 = dd; var1=index; var2=var1[1]; var3=h; for cnt = 1 to (var1-var2)-1 { if h[cnt] > var3 then { var3=h[cnt]; var4= dd; } } for cnt = 49 downto 1 { hh[cnt] = hh[cnt-1]; tt[cnt] = tt[cnt-1]; htt[cnt]= htt[cnt-1]; if mintt == 0 or (tt[cnt]-tt[cnt+1] < mintt) Then mintt = tt[cnt]-tt[cnt+1]; } hh[0] = var3; tt[0] = d1; htt[0]= dd; mintt = 0; for cnt = 0 to 20 { if mintt == 0 or (tt[cnt]-tt[cnt+1] < mintt) Then mintt = tt[cnt]-tt[cnt+1]; } hmintt=0; for cnt 0 to 20 { if hmintt == 0 or (htt[cnt]-htt[cnt+1] < hmintt) Then hmintt = htt[cnt]-htt[cnt+1]; }
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-07-01 14:33:16

안녕하세요 예스스탁입니다. 1 if h[cnt] > var3 then { var3 = h[cnt]; var3에 위 조건으로 값이 저장되므로 dd값도 var3과 동일개념으로 저정해서 이용하시면 될 것 같습니다. var : hmintt(0); Array : hh[50](0),tt[50](0); if Bdate != Bdate[1] Then { DD = DD+1; } if (h>l*1.08) and (d1 == 0 or (d1 > 0 and dd >= d1+5)) Then { d1 = dd; var1=index; var2=var1[1]; var3=h; for cnt = 1 to (var1-var2)-1 { if h[cnt] > var3 then { var3 = h[cnt]; var4 = dd[cnt]; } } for cnt = 49 downto 1 { hh[cnt] = hh[cnt-1]; tt[cnt] = tt[cnt-1]; } hh[0] = var3; tt[0] = var4; hmintt=0; for cnt 0 to 20 { if hmintt == 0 or (htt[cnt]-htt[cnt+1] < hmintt) Then hmintt = htt[cnt]-htt[cnt+1]; } } 2 상단은 삭제하시기 바랍니다. hh[20] 차까지만 구한신다고 언급하셔서 하단에 새로 추가한 것 입니다. 총 50개 중 최저 구하시면 위에것을 20까지만 구하시면 아래내용을 사용하시면 됩니다. Array : mintt[50](0); 은 값저장을 일반변수나 배열변수 중 선택하다 남겨진것 같습니다. 해당 내용도 삭제하시기 바랍니다. 즐거운 하루되세요 > yamu 님이 쓴 글입니다. > 제목 : 질문 부탁드립니다 > 수고가 많으십니다 지난번 알려주신 수식은 메인 if 문 조건봉 (h>l*1.08...) 사이의 일수 차이를 구하고 가장 짧은 일수를 구하는 수식인거 같고 if 문 안에서 구한 hh[] 배열값 (현재만족봉과 직전봉사이의 최고가)을 가지고도 같은 작업을 하려면 아래와 같이 작성하면 될까요? (hmintt 변수에 저장하는걸로 작성) 메인조건 (h>l*1.08...) 과 hh[] 조건봉은 발생시점이 각각 달라서 따로 구하려고 합니다 질문2) 그리고 전에 알려주신 수식에서 mintt[50] 을 배열 선언하고 for 49 downto 1 문 (배열값 옮기기) 에서 if mintt == 0 or (tt[cnt]-tt[cnt+1] < mintt) Then mintt = tt[cnt]-tt[cnt+1]; 를 작성해주셨는데 (아래 for cnt = 0 to 20 에서도 총 두번 작성) 이유가 궁금합니다...혹시 오류인가해서 여쭤봅니다. mintt[] 배열 선언은 mintt 값을 배열에 넣으려고 작성해주신건가요? 감사합니다 var : mintt(0); Array : mintt[50](0); if Bdate != Bdate[1] Then { DD = DD+1; } if (h>l*1.08) and (d1 == 0 or (d1 > 0 and dd >= d1+5)) Then { d1 = dd; var1=index; var2=var1[1]; var3=h; for cnt = 1 to (var1-var2)-1 { if h[cnt] > var3 then { var3=h[cnt]; var4= dd; } } for cnt = 49 downto 1 { hh[cnt] = hh[cnt-1]; tt[cnt] = tt[cnt-1]; htt[cnt]= htt[cnt-1]; if mintt == 0 or (tt[cnt]-tt[cnt+1] < mintt) Then mintt = tt[cnt]-tt[cnt+1]; } hh[0] = var3; tt[0] = d1; htt[0]= dd; mintt = 0; for cnt = 0 to 20 { if mintt == 0 or (tt[cnt]-tt[cnt+1] < mintt) Then mintt = tt[cnt]-tt[cnt+1]; } hmintt=0; for cnt 0 to 20 { if hmintt == 0 or (htt[cnt]-htt[cnt+1] < hmintt) Then hmintt = htt[cnt]-htt[cnt+1]; }