|
책에서 함수 관련 부분을 보세요..
여기서 그내용을 설명하긴 좀.. 긴 내용이 됩니다.
그리고 재귀호출을 이해하시려면..
함수에 대한 이해가 필수입니다.
아직 함수에 대한 부분에 이해가 부족하신것 같은데..
재귀를 보는건 .. 너무 앞서나가시는것 같네요..
초보자 님이 쓰신 글 :
: 저 정말 초보라서 그렇게 이야기하면 잘이해가 안가요 prototype 이게 해드파일인가요
: 정의해준다는건 무슨말인지 이해가 쉽게 설명부탁드려요 .. 어쩌든 답변주시니 고맙네요
:
: 조준회 님이 쓰신 글 :
: : 그냥 만들면됩니다.
: : 물론 헤더에 prototype 정의해 줘야 하구요..
: :
: :
: : 초보자 님이 쓰신 글 :
: : : void TForm1::Recursive(String aa, int Index)
: : : {
: : : if (Index < aa.Length()) Recursive(aa,Index+1);
: : : Edit2->Text = Edit2->Text + aa[Index];
: : : }
: : :
: : : 여기 위에 Recursive 타이틀은 어떠한 메뉴에서 발생시키는 이벤트인지 알려주시겠어요
: : : 위에 소스는 버튼의 원클릭의 이벤트 발생인거 알겠는데 이거는 그냥 만들면안되는걸로 아는데
: : : //-------------------------------------------------------------------------------------
: : : 조준회 님이 쓰신 글 :
: : : : 간단하게 만들어 봤습니다.
: : : :
: : : : 보시면 알겠지만..
: : : : edit1에 입력받은걸.. 재귀호출해서 뒤집어서 edit2 에 표현합니다.
: : : :
: : : : void __fastcall TForm1::Button1Click(TObject *Sender)
: : : : {
: : : : Edit2->Text = "";
: : : : Recursive(Edit1->Text,1);
: : : : }
: : : : //---------------------------------------------------------------------------
: : : :
: : : :
: : : : void TForm1::Recursive(String aa, int Index)
: : : : {
: : : : if (Index < aa.Length()) Recursive(aa,Index+1);
: : : : Edit2->Text = Edit2->Text + aa[Index];
: : : : }
: : : :
: : : : 초보자 님이 쓰신 글 :
: : : : : 안녕하세효 지난번에 abc 받은 입력받은걸 cba 로 출력하라! 라는 글로 질문드렸는데 그걸 토대로 짜봤지만
: : : : : 재귀함수가 아닌 일반적으로 쓰는 코딩방법으로밖에 생각이 나질않네요 . 답변에 도움이 될까해서
: : : : : 이렇게 글을 올립니다 Ansistring 클래스로 사용하면된다고 생각은 드는데 제가 아직 재귀에 관련해서 찾아봤지
: : : : : 만 초보인 저로써는 참고할만한 사항이없어서 답답하네요 과제도 아니고 저혼자하는건데 문자 역출력하는 재귀함수에 대해서 좀 알려주세효 우선 폼 구조형태 어떤형식으로 할려고하는 화면파일 첨부해봅니다 부탁드리겠습니다
: : : : : (정말 씨에대해선 정보가 많이 약하니 어려운 표현보다 좀더 이해하기 쉽게 설명부탁드려요 소스코딩은 직접해야하는거지만 sample로 돌릴수 있는 그냥 문자 출력방식의 재귀함수 소스라두 보여주심 감사합니다 )
: : : : :
: : : : :
: : : : :
: : : : : char sBuf[100]; // sBuf 배열 100 선언
: : : : : char sResult[100];
: : : : : int i, j; // for 문 해당 변수
: : : : : int nPos = 0;
: : : : : int count;
: : : : : strcpy(sBuf, edInput->Text.c_str()); // 문자 함수를 문자열로 바꾸는 명령어
: : : : :
: : : : :
: : : : :
: : : : : //strcpy(sResult, sBuf);
: : : : :
: : : : : for(i=0; sBuf[i]!='\0'; i++); // sBuf[i] 받은문자 배열번호 i++ 증가
: : : : :
: : : : : count+=i; //count 돌면서 +i 만큼 증가
: : : : : count = strlen(sBuf); //strlen(sBuf) sBuf 기억하여 입력받은 길이만큼 누적 저장
: : : : :
: : : : : for(i=count-1; i>=0; i--){
: : : : : sResult[nPos] = sBuf[i];
: : : : : nPos++;
: : : : : // printf("%s", sResult[i]);
: : : : : }
: : : : : sResult[nPos] = 0;
: : : : :
: : : : : //strcpy(sResult, "cba");
: : : : : lbResult->Caption = sResult;
: : : : : }
: : : : :
: : : : :
: : : : : 이거는 그냥 정리해본건데 해결은 된거같더라구요 부탁드리겠습니다
|