== í•œì†¡ì´ == 1.ë™ì í• ë‹¹í•˜ëŠ” 방법 í¬ì¸í„° 변수 = (형변환)malloc(sizeof(ìžë£Œí˜•) 2.Swap 짜보기 {{{ #include <stdio.h> #include <iostream> int swap(int *a, int* b); int main(){ int a,b; a=5; b=10; swap(&a,&b); printf("%d %d\n",a,b); return 0; } int swap(int *a, int *b) { int temp; temp=*a; *a=*b; *b=temp; return 0; } }}} 3.call by value, ì— ê´€í•´ ì„¤ëª…í•˜ê³ , ê·¸ê²ƒì´ ì •í™•ížˆ ì–´ë–¤ 것ì¸ì§€, ì–´ë–¤ ë¬¸ì œê°€ ìƒê¸°ëŠ”ì§€ ì„œìˆ . call by value ê°€ì¸ìˆ˜ì˜ ê°’ì´ ë°”ë€Œë”ë¼ë„ 실ì¸ìˆ˜ì˜ ê°’ì€ ë³€í•˜ì§€ 않는다 ê°’ì˜ ë³µì‚¬ì— ì˜í•´ì„œ ì „ë‹¬í•˜ëŠ” ë°©ì‹ Call by Reference 주소 ê°’ì„ ë³µì‚¬í•´ì„œ ì „ë‹¬í•˜ëŠ” ë°©ì‹ì„ 콜 ë°”ì´ ë ˆí¼ëŸ°ìФë¼ê³ 한다. Reference 주소ë¼ê³ ìƒê°í•˜ë©´ ëœë‹¤. 4.Linked List 삽입, íƒìƒ‰ì„ ì§œê³ , 함수화해보세요. 난 Linked Listê°€ 매우 ì–´ë µë‹¤ 5.Struct란? 서로 다른 ìœ í˜•ì˜ ë³€ìˆ˜ë“¤ì„ ìƒˆë¡œìš´ í•˜ë‚˜ì˜ ìžë£Œí˜•으로 묶어서 ì •ì˜í•œ 것 struct 구조체ì´ë¦„ { 변수 ì„ ì–¸; ë°°ì—´ ë° í¬ì¸í„°ë„ ì„ ì–¸ 가능; êµ¬ì¡°ì²´ë„ ì„ ì–¸ 가능; }; 6.Object Oriented Programmingì— ê´€í•´ì„œ 설명해보세요. ê°ì²´ë¥¼ 기본 단위로 하는 프로그래ë°ì˜ 방법 ì ˆì°¨í˜• 언어(C,pascal 등)ì˜ í¬ê³ 복잡한 í”„ë¡œê·¸ëž¨ì„ ìž‘ì„±í•˜ê¸° ì–´ë ¤ìš´ ë¬¸ì œì í•´ê²°ì„ ìœ„í•´ 개발 C++,JAVA,C# 7.ê°ì²´ì§€í–¥ì˜ íŠ¹ì„±ì— ê´€í•´ì„œ ì°¾ì•„ë³´ê³ , ì„œìˆ í•´ë³´ì„¸ìš”. 캡ìŠí™” ì¤‘ìš”í•˜ê³ ì„¸ë¶€ì ì¸ êµ¬í˜„ ë°©ë²•ì€ ìº¡ìŠ ì•ˆì— ë„£ëŠ” 방법 ë°ì´í„°ì™€ 행위는 ë³´ì´ì§€ 않게 ìˆ¨ê¸°ê³ , 외부ì—서는 ì¸í„°íŽ˜ì´ìŠ¤ì™€ 최종 ê²°ê³¼ë§Œì„ ë“œëŸ¬ë‚¨ ì¶”ìƒí™” 복잡한 ê°œë…ì´ë‚˜ ì‚¬ë¬¼ì˜ í•„ìˆ˜ì ì¸ íŠ¹ì§•ìœ¼ë¡œ 표현하는 방법 ì¶”ìƒí™”를 통해서 ê°ì²´ê°€ 가진 특성 중 필수 ì†ì„±ë§Œìœ¼ë¡œ ê°ì²´ë¥¼ 표현 ìƒì† í´ëž˜ìŠ¤ì˜ ê¸°ëŠ¥ì„ í™•ìž¥í•˜ëŠ” ë°©ë²•ì¤‘ì˜ í•˜ë‚˜ 기존 í´ëž˜ìŠ¤ë¥¼ ìˆ˜ì •í•˜ì§€ ì•Šê³ , ì •ì˜ë˜ì–´ 있는 ë‚´ìš©ì„ í™•ìž¥ì‚¬ìš© 다형성 외부ì—서 ë³´ì´ëŠ” ëª¨ìŠµì€ í•œê°€ì§€ 형태지만, 실질ì 으로 ì“°ì´ëŠ” ê¸°ëŠ¥ì€ ì—¬ëŸ¬ 가지 ì—í• ì„ ìˆ˜í–‰ ê°€ìƒí•¨ìˆ˜, 템플릿, 오버로딩 ë“±ì˜ ë°©ë²•ì„ ì´ìš©í•´ 다형성 ì œê³µ 8.Class란?(책참조) ê°™ì€ ì†ì„±, ê³µí†µì˜ í–‰ìœ„, ê³µí†µì˜ ê´€ê³„ì„± ê°™ì€ ì˜ë¯¸ë¥¼ 가지는 ê°ì²´ë“¤ì˜ 집합으로 ì´ë£¨ì–´ì§€ëŠ” ê²ƒì´ ì¼ë°˜ì class ì´ë¦„ { ì•¡ì„¸ìŠ¤ì§€ì •: 멤버변수; 멤버함수; ..... }; 9.Overloadingì´ëž€? í•¨ìˆ˜ëª…ì´ ë™ì¼í•˜ë”ë¼ë„ 매개 변수가 다르면 C언어ì—서와는 다르게 다른 함수로 ì¸ì‹í•˜ëŠ” 것ì´ë‹¤ 함수 ì˜¤ë²„ë¡œë”©ì˜ ì¡°ê±´ ->ë§¤ê°œë³€ìˆ˜ì •ë³´ 즉 갯수나 íƒ€ìž…ì´ ë‹¬ë¼ì•¼í•œë‹¤. ì´ìœ : í˜¸ì¶œí• í•¨ìˆ˜ë¥¼ 매개 ë³€ìˆ˜ì˜ ì •ë³´ê¹Œì§€ 참조해서 호출 한다. 10.publicê³¼ privateì— ê´€í•´ì„œ 알아봅시다. publicì€ ê³µìš©ë¶€ë¶„ ->ê°ì²´ 외부ì—서 사용ë 수 있는 ìžë£Œë‚˜ 함수가 ì •ì˜ ->í´ëž˜ìФ ì •ì˜ ì‹œ 키워드 privateì´ ìƒëžµë˜ë©´ public 키워드가 나올 ë•Œê¹Œì§€ì˜ ë¶€ë¶„ì„ ì „ìš©ë©¤ë²„ë¡œ 간주 privateì€ ì „ìš©ë¶€ë¶„ -> private ì˜ì—ì—서 ì •ì˜ëœ ìžë£Œí˜•ì´ë‚˜ 함수는 ì˜¤ì§ í•´ë‹¹ ê°ì²´ ë‚´ë¶€ì˜ ë©¤ë²„í•¨ìˆ˜ë§Œì´ ì‚¬ìš© ->ì™¸ë¶€ì— ëŒ€í•´ ìžë£Œì˜ ì •ë³´ê°€ ì€í ->ì „ìš©ë¶€ë¶„ì—는 함부로 변경ë˜ì–´ì„œëŠ” 안ë ìžë£Œì™€ ê°ì²´ 외부ì—서 호출ë˜ì–´ì„œëŠ” 안ë 멤버함수를 ì •ì˜ == 황혜림 == == ë„ìƒí¬ == 1.ë™ì í• ë‹¹í•˜ëŠ” 방법 int* a = (int*)malloc(sizeof(int)); 2.Swap 짜보기 {{{ #include <stdio.h> void swap(int*,int*); int main(){ int a, b; a=3; b=5; printf("swapì „-> a: %d, b: %d\n",a,b); swap(&a,&b); printf("swap후-> a: %d, b: %d\n",a,b); return 0; } void swap(int* a, int*b){ int temp; temp=*a; *a=*b; *b=temp; } }}} 3.call by value, call by referenceì— ê´€í•´ ì„¤ëª…í•˜ê³ , ê·¸ê²ƒì´ ì •í™•ížˆ ì–´ë–¤ 것ì¸ì§€, ì–´ë–¤ ë¬¸ì œê°€ ìƒê¸°ëŠ”ì§€ ì„œìˆ . Call by Value -ê°’ì— ì˜í•œ 호출, ê°’ì„ ë³µì‚¬í•´ì„œ 넘겨준다. -ë³€ìˆ˜ì— ë³€í™”ê°€ 없어야 하는 경우 사용한다. Call by Reference -ì°¸ì¡°ì— ì˜í•œ 호출, ì£¼ì†Œê°’ì„ ë„˜ê²¨ì¤€ë‹¤. -ë³€ìˆ˜ì— ë³€í™”ë¥¼ ì›í• 경우 사용한다. 4.Linked List 삽입, íƒìƒ‰ì„ ì§œê³ , 함수화해보세요. -오늘중으로 ìˆ˜ì •í• ê²Œìš”! 5.Struct란? 하나 ì´ìƒì˜ 변수를 그룹 지어서 새로운 ìžë£Œí˜•ì„ ì •ì˜í•˜ëŠ” 것ì´ë‹¤. C++ì—서 structì˜ ê¸°ë³¸ ì ‘ê·¼ìžê°€ public, í´ëž˜ìŠ¤ëŠ” privateì´ë‹¤. 6.Object Oriented Programmingì— ê´€í•´ì„œ 설명해보세요. í”„ë¡œê·¸ëž¨ì„ ë‹¨ìˆœí•œ ëª…ë ¹ì–´ì™€ 함수ë¼ëŠ” ê°œë…ì—서 벗어나 여러 ê°œì˜ ë…립 단위를 ìƒì„±, ê°ì²´ë“¤ì˜ 모임으로 í”„ë¡œê·¸ëž˜ë° í•˜ëŠ” 기법, ê°ê°ì˜ ê°ì²´ë“¤ì€ 메시지를 ì£¼ê³ ë°›ì„ ìˆ˜ 있으며, ë°ì´í„°ë¥¼ ìœ ì—°í•˜ê²Œ 처리 í• ìˆ˜ 있게 ëœë‹¤. 7.ê°ì²´ì§€í–¥ì˜ íŠ¹ì„±ì— ê´€í•´ì„œ ì°¾ì•„ë³´ê³ , ì„œìˆ í•´ë³´ì„¸ìš”. ê°ì²´ì§€í–¥ 프로그래ë°ì˜ 주요 특성들로 캡ìŠí™”, ìƒì† ë° ë‹¤í˜•ì„±ì„ ë“¤ 수 있다. 캡ìŠí™”는 ì •ë³´ ì€ë‹‰ ë˜ëŠ” ì¶”ìƒí™” ê°œë…으로 í•´ì„ë 수 있으며, ìƒì†ì€ 코드 재사용과 ì—°ê´€ì´ ìžˆë‹¤. ë‹¤í˜•ì„±ì€ ìƒì†ì˜ ê°œë… ì†ì—서 í•˜ë‚˜ì˜ ì´ë¦„으로 여러 가지로 í•´ì„ë˜ëŠ” ê²ƒì„ ì˜ë¯¸í•œë‹¤. 8.Class란?(책참조) 문법ì 으로 ë³´ì•˜ì„ ë•Œ í´ëž˜ìŠ¤ëŠ” 구조체와 ê±°ì˜ ê°™ì€ ê°œë…ì´ë‹¤. 다만 í´ëž˜ìŠ¤ë¥¼ ì‚¬ìš©í• ë•ŒëŠ” í•¨ìˆ˜ê¹Œì§€ë„ ë©¤ë²„ë¡œ 넣어서 사용한다는 ì ì´ ë‹¤ë¥´ë‹¤. ê´€ë ¨ëœ ë³€ìˆ˜ì™€ í•¨ìˆ˜ë“¤ì„ í•˜ë‚˜ì˜ ê°€ë°©ì— ëª¨ì•„ë†“ì€ ê²ƒì´ í´ëž˜ìŠ¤ë‹¤. 구조체와 마찬가지로 í´ëž˜ìŠ¤ë„ ì‚¬ìš©ìž ì •ì˜ íƒ€ìž…ì„ ë§Œë“¤ 수 있다. 다시 ë§í•´ì„œ 우리가 ì–´ë–¤ í´ëž˜ìŠ¤ë¥¼ 만들어서 ì •ì˜í•˜ë©´, ê·¸ í´ëž˜ìŠ¤ëŠ” 새로운 íƒ€ìž…ì´ ë˜ëŠ” 것ì´ë‹¤. 9.Overloadingì´ëž€? C++ì€ ê°™ì€ í•¨ìˆ˜ ì´ë¦„으로 ë‘ ê°€ì§€ ì´ìƒì˜ ì •ì˜ë¥¼ 가질 수 있다. ì´ê²ƒì€ 다양한 ìƒí™©ì—서 ì§ê´€ì 으로 호ê°ì´ 가는 ì´ë¦„ì„ ìž¬ì‚¬ìš©í• ìˆ˜ 있는 ê²ƒì„ ì˜ë¯¸í•œë‹¤. ê°™ì€ í•¨ìˆ˜ ì´ë¦„으로 ë‘ ê°€ì§€ ì´ìƒì˜ í•¨ìˆ˜ì •ì˜ê°€ 주어지는 ê²ƒì„ í•¨ìˆ˜ ì´ë¦„ 오버로딩(overloading)ì´ë¼ 부른다. 10.publicê³¼ privateì— ê´€í•´ì„œ 알아봅시다. public : ëª¨ë“ ê³³ìœ¼ë¡œë¶€í„°ì˜ ì ‘ê·¼ì„ í—ˆìš©í•œë‹¤. private : ìžì‹ ì˜ ë©¤ë²„ 함수 외ì—는 ì ‘ê·¼í• ìˆ˜ 없다. 11. Koistudy 126~130번, 146번, 148번, 149번 126 {{{ #include <iostream> using namespace std; int main(){ int n, i, min, min_n=0, max, max_n=0; int arr[10000]; cin>>n; for(i=0 ; i<n ; i++){ cin>>arr[i]; } min=arr[0]; max=arr[0]; for(i=0 ; i<n ; i++){ if(min>arr[i]){ min=arr[i]; min_n=i; } if(max<arr[i]){ max=arr[i]; max_n=i; } } cout<<max_n+1<<" : "<<max<<endl; cout<<min_n+1<<" : "<<min<<endl; return 0; } }}} 127 {{{ #include <iostream> using namespace std; int main(){ int a,b; int n1,n2,n3; cin>>a>>b; n1=a, n2=b, n3=0; while(1){ if(n1%2==1){ n3 = n3 + n2; } n1=n1>>1; n2=n2<<1; if(n1==0){ break; } } cout<<n3<<endl; return 0; } }}} 128 {{{ #include <iostream> using namespace std; int main(){ int num; cin>>num; do{ cout<<num%10; num=num/10; }while(num!=0); return 0; } }}} 129 130 146 {{{ #include <iostream> using namespace std; int sum(int); int main(){ int num; cin>>num; cout<<sum(num); return 0; } int sum(int n){ if(n<=1){ return 1; }else{ return n + sum(n-1); } } }}} -다른 ë¬¸ì œë„ ì˜¤ëŠ˜ 중으로 올릴게요!