C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[45082] Re:동적배열 비교를 어떻게해야할까여?
둘리 [dooly386] 1328 읽음    2006-05-26 14:45
커트 님이 쓰신 글 :
: DB에서 조회해온 데이터 카운트만큼 for문을 돌면서 데이터비교를 위한 배열에 담습니다.
: 담겨진 동적배열을 하나하나 비교하면서 최소,최대값을 뽑아내야하는데 동적인 배열이라 매번 다르기때문에 어떻게 비교를 해야하는지 난감하네여..
: 아래와 같은 로직입니다.
: ------------------------------------------------------------------------------
: // DB에서 조회해온 카운트           
: iCell = FRMOT085M1->m_DAO->SearchAreaLinkID(minLink1);
: int iXY = 0;
: // 더블형 배열선언
: double *dMnX, *dMnY, *dMxX, *dMxY;
: dMnX = new double[iCell];
: dMnY = new double[iCell];
: dMxX = new double[iCell];
: dMxY = new double[iCell];
:

int idxMnx = 0;
int idxMny = 0;
int idxMxx = 0;
int idxMxy = 0;

: // 루프를 돌린다.
: for(int k = 0; k < iCell; k++)
: {
:        cellID = FRMOT085M1->m_DAO->d_DBA->GetField("DAREA_ID");   // 조회된 필드
:
:        for(l = 0; l < linkCellNum; l++)                               // 조회된 필드데이터와 동일한 ID를 찾기위한 루프
:        {
:             if(cellID == FRMOT085M1->mArrCellID[l])      // 동일한 ID일 경우 배열에 X,Y 값을 담는다.
:             {
:                         IGRectanglePtr rect;
:                         rect = FRMOT085M1->mArrCell[l]->Extent;
:                         rect->get_Left(&minX);
:                         rect->get_Top(&minY);
:                         rect->get_Right(&maxX);
:                         rect->get_Bottom(&maxY);
:                        
:                         dMnX[iXY] = minX;
:                         dMnY[iXY] = minY;
:                         dMxX[iXY] = maxX;
:                         dMxY[iXY] = maxY;
                          if(dMnX[iXY]<dMnX[idxMnx]) idxMnx = iXY;
                          if(dMnY[iXY]<dMnY[idxMny]) idxMny = iXY;
                          if(dMxX[iXY]>dMxX[idxMxx]) idxMxx = iXY;
                          if(dMxY[iXY]>dMxY[idxMxy]) idxMxy= iXY;
                        
:                         iXY++;
:              }
:          }
: }

idxMnx => 최소 dMnX Index
idxMny => 최소 dMnY Index
idxMxx => 최대 dMnX Index
idxMxy => 최대 dMnY Index

단 갯수가 하나라도 있어야 겠죠? 없을경우 대비해서는 flag 를 하나 두어 처리하시면 될듯 하군요.


: ----------------------------------------------------------------------------------
: dMnX[]에 해당하는 배열끼리 비교해서 최소값을 가지고있는 배열(값) 도출
: dMnY[]에 해당하는 배열끼리 비교해서 최소값을 가지고있는 배열(값) 도출
: dMxX[]에 해당하는 배열끼리 비교해서 최대값을 가지고있는 배열(값) 도출
: dMxY[]에 해당하는 배열끼리 비교해서 최대값을 가지고있는 배열(값) 도출
:
: 어떻게 해야할까요???

+ -

관련 글 리스트
45080 동적배열 비교를 어떻게해야할까여? 커트 1028 2006/05/26
45082     Re:동적배열 비교를 어떻게해야할까여? 둘리 1328 2006/05/26
45086         Re:Re:동적배열 비교를 어떻게해야할까여? 금목암 899 2006/05/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.