[[TableOfContents]] = ì°¸ì—¬ìž ëª…ë‹¨ = 강사: ì´ë¯¼ê·œ í•™ìƒ: 모ì˜ì¢… 한주만 김현기 elwlwlwk12@naver.com ftp://165.194.104.243 = 수업 = == 1회차 == === ì¶œì„ === || ì´ë¯¼ê·œ || O || || 한주만 || O || || 모ì˜ì¢… || O || || 김현기 || O || === 수업내용 === 1. 개발환경 구축 Virtual Box를 ì´ìš©í•˜ì—¬ 우분투를 설치하는 방법. virtual box를 설치한다. virtual boxì˜ ìƒˆë¡œë§Œë“¤ê¸°ì—ì„œ 우분투 ê°€ìƒë¨¸ì‹ ì„ ìƒˆë¡œ ë§Œë“ ë‹¤.(ì„¤ì •ì€ ê¸°ë³¸ì„¤ì •ì´ë©´ ë˜ë˜ 메모리 ìš©ëŸ‰ì€ 1024MBë¡œ 한다) ë§Œë“ ê°€ìƒë¨¸ì‹ ì„ ì‹¤í–‰ì‹œí‚¤ë©´ 처ìŒì‹¤í–‰ 마법사ì—ì„œ 설치미디어 ì„ íƒ í™”ë©´ì—ì„œ 우분투 ì´ë¯¸ì§€ë¥¼ 마운트 시킨다. 우분투를 설치한다. 2. VS2010사용방법 프로ì 트를 ë§Œë“ ë‹¤.(빈 프로ì 트 ì²´í¬ë°•ìŠ¤ì— ì²´í¬ë¥¼ 해야 한다) 파ì¼-새로만들기-파ì¼ì—ì„œ C++파ì¼ì„ ì„ íƒí•˜ë˜ ì´ë¦„ ëì— .c를 붙여서 C파ì¼ë¡œ ë§Œë“ ë‹¤.(C와 CPP는 약간 문법ì ì¸ ë¶€ë¶„ì´ ë‹¤ë¥´ë‹¤.) === ê³¼ì œ === 우분투를 설치하는 ê³¼ì •ì„ ìŠ¤í¬ë¦°ìƒ·ìœ¼ë¡œ ì°ì–´ì„œ elwlwlwk12@naver.com으로 ë³´ë‚´ 주세요. 2주차 수업 ë‚´ìš©ë„ í•œë²ˆ ì½ì–´ 오면 ì¢‹ê² ìŠµë‹ˆë‹¤. === 후기 === ì•„ì§ ì²˜ìŒì´ë¼ì„œ ìž˜ëª¨ë¥´ê² ì§€ë§Œ 앞으로 열심히 í•´ë´ì•¼ê² 습니다.-김현기 == 2회차 == === 수업내용 === 1. í•¨ìˆ˜ì˜ ì„ ì–¸ 2. ì „ì—변수와 지ì—변수 3. 분기문 1. í•¨ìˆ˜ì˜ ì„ ì–¸ 함수는 분리 í•´ 낼 수 있다. ìžê¸°ê°€ ë§Œë“¤ê³ ì‹¶ì€ í•¨ìˆ˜ë¥¼ ì •ì˜ í•´ 주면 ëœë‹¤. 예를들어 int myfunction(int a, int b); ë¼ê³ 하면 int ìžë£Œí˜•ì„ 반환하며 intìžë£Œí˜• 2개를 파ë¼ë¯¸í„°ë¡œ 하는 myfuctionì´ë¼ëŠ” 함수를 ì •ì˜í•œ 것ì´ë‹¤. ê·¸ ë’¤ 중괄호를 ì—´ê³ í•¨ìˆ˜ì˜ ëª¸ì²´ë¥¼ ì •ì˜ í•´ 주면 ëœë‹¤. {{{ #include <stdio.h> int myfunc(int num1, int num2){ return num1+ num2; } int main(void){ int a= 2, b= 3; int c= myfunc(a, b); printf("%d", c); return 0; } }}} 위 코드ì—ì„œ ë³´ë©´ myfuncë¼ëŠ” 함수는 intìžë£Œí˜• ìžë£Œ 2개를 ê°ê° num1ê³¼ num2ë¼ëŠ” ì´ë¦„으로 넘겨 받아 ë‘개를 ë”í•´ì„œ 반환한다. int c= myfunc(a, b); ë¼ëŠ” 코드ì—ì„œ myfunc함수를 호출하며 a,b를 파ë¼ë¯¸í„°ë¡œ ë„˜ê²¨ì£¼ê³ ìžˆë‹¤. 그럼 myfuncì—ì„ num1ì— aì˜ ê°’ì„, num2ì— bì˜ ê°’ì„ ë„˜ê²¨ë°›ì•„ ë‘ ê°’ì„ ë”í•´ ê·¸ ë”í•œ ê°’ì„ ë°˜í™˜í•œë‹¤. 반환한 ê°’ì€ cì— ë“¤ì–´ 간다. ê²°ê³¼ì 으로 cì—는 5ê°€ 들어가게 ëœë‹¤. 함수는 ì„ ì–¸ê³¼ êµ¬í˜„ì„ ë”°ë¡œ 분리 í• ìˆ˜ë„ ìžˆë‹¤. {{{ #include <stdio.h> int myfunc(int num1, int num2); int main(void){ int a= 2, b= 3; int c= myfunc(a, b); printf("%d", c); return 0; } int myfunc(int num1, int num2){ return num1+ num2; } }}} í•¨ìˆ˜ì˜ ì„ ì–¸ì€ ê·¸ 함수를 호출하는 코드보다 ìœ„ì— ìžˆì–´ì•¼ 한다. ê·¸ë ‡ê¸° ë•Œë¬¸ì— ìœ„ì²˜ëŸ¼ í•¨ìˆ˜ì˜ ì„ ì–¸ë§Œ í•´ë†“ê³ ì‹¤ì œ êµ¬í˜„ì€ ì•„ëž˜ì—다가 해놓는 경우가 많다. int myfunc(int num1, int num2);는 myfuncë¼ëŠ” 함수를 ë§Œë“¤ê² ë‹¤ê³ ì„ ì–¸ë§Œ í•´ ë†“ì€ ê²ƒì´ë‹¤. ë°‘ì— int myfunc(int num1, int num2){ return num1+ num2; } ë¼ëŠ” êµ¬ë¬¸ì´ ì—†ìœ¼ë©´ 컴파ì¼ëŸ¬ëŠ” í•¨ìˆ˜ì˜ êµ¬í˜„ì´ ì—†ê¸° ë•Œë¬¸ì— ì—러를 ë„울 것ì´ë‹¤. 2. 지ì—변수와 ì „ì—변수 지ì—변수란 함수 ë‚´ì—ì„œ ì„ ì–¸í•´ ë†“ì€ ë³€ìˆ˜ì´ë©° ê·¸ 함수 안ì—서만 ìœ íš¨í•˜ë‹¤. ì „ì—변수란 함수 ë°–ì—ì„œ ì„ ì–¸í•œ 변수ì´ë©° ê·¸ íŒŒì¼ ì „ì²´ì—ì„œ ìœ íš¨í•˜ë‹¤. ê°™ì€ ì´ë¦„으로 지ì—변수와 ì „ì—변수가 있ì„경우 지ì—변수를 ìš°ì„ ìœ¼ë¡œ 한다. {{{ #include <stdio.h> int num1= 6; int myfunc(int num1, int num2); int main(void){ int a= 2, b= 3; int c= myfunc(a, b); printf("%d", c); return 0; } int myfunc(int num1, int num2){ return num1+ num2; } }}} 위 코드ì—ì„œ num1ì´ëž€ ì „ì—변수를 ì„ ì–¸í•´ ë†“ê³ ê·¸ ì•ˆì— 6ì„ ë„£ì–´ 놓았다. ê·¸ë¦¬ê³ myfuncì—ì„ num1ê³¼ num2를 ë”하는 ìž‘ì—…ì„ í•˜ëŠ”ë° myfuncì—ë„ íŒŒë¼ë¯¸í„°ë¡œ 넘어온 num1ì´ë¼ëŠ” 변수가 있다. ì´ëŸ´ê²½ìš° ì „ì—변수보다 지ì—변수를 ìš°ì„ ì‹œ 하여 6+3ì´ ì•„ë‹Œ 2+3ì„ í•˜ê²Œ ëœë‹¤. *ì „ì—변수는 ì´ì™•ì´ë³€ 쓰지 않는 ê²ƒì´ ë°”ëžŒì§í•˜ë‹¤. 3. 분기문 ë¶„ê¸°ë¬¸ì€ if else, switchë¡œ ì´ë£¨ì–´ 진다 ì•„ì§ ifë¬¸ë°–ì— ë°°ìš°ì§€ 않았다. ifë¬¸ì€ if()ì—ì„œ 괄호 ì•ˆì´ trueë©´ ì‹¤í–‰ì„ í•œë‹¤. {{{ #include <stdio.h> int myfunc(int num1, int num2); int main(void){ int a= 2, b= 3; int c=0; if(a== 2){ c= myfunc(a, b); } printf("%d", c); return 0; } int myfunc(int num1, int num2){ return num1+ num2; } }}} if(a== 2)ë¼ëŠ” 문장ì—ì„œ aì˜ ê°’ìœ¼ë¡œ 참과 ê±°ì§“ì„ íŒë³„한다. aì—는 2ê°€ 들어가 있으므로 ()ì•ˆì˜ ê°’ì´ trueê°€ ë˜ì„œ c= myfunc(a, b)를 실행한다. 참과 ê±°ì§“ì— ëŒ€í•´ì„œëŠ” 보통 0ì„ ê±°ì§“ìœ¼ë¡œ 하며 1ì„ ì°¸ìœ¼ë¡œ 간주한다. (사실 0ì•„ë‹Œê°’ì€ ëª¨ë‘ ì°¸ìœ¼ë¡œ 간주한다) 만약 위 코드ì—ì„œ if(1)ì´ë¼ê³ 해놓으면 c= myfunc(a, b)ì´ êµ¬ë¬¸ì€ ë¬´ì¡°ê±´ ì‹¤í–‰ì´ ë 것ì´ë‹¤. === ê³¼ì œ === ë‹¤ìŒ ì½”ë“œ ì•ˆì„ ì±„ì›Œ 넣어서 계산기 í”„ë¡œê·¸ëž¨ì„ ì™„ì„±í•˜ì„¸ìš” orderì— 1ì„ ìž…ë ¥ë°›ìœ¼ë©´ add함수를 호출해 ë‘ ìˆ˜ë¥¼ ë”í•˜ê³ orderì— 2를 ìž…ë ¥ë°›ìœ¼ë©´ sub함수를 호출해 ë‘ ìˆ˜ë¥¼ ëºë‹ˆë‹¤. ê·¸ ê²°ê³¼ê°’ì„ cì— ì €ìž¥í•œìˆ˜ ì¶œë ¥ì„ í•©ë‹ˆë‹¤. {{{ #include <stdio.h> int add(/*채워 ë„£ì„ê³³*/){ /*채워 ë„£ì„ê³³*/ } int sub(/*채워 ë„£ì„ê³³*/){ /*채워 ë„£ì„ê³³*/ } int main(){ int order; int a, b, c; scanf("%d",&order); scanf("%d%d",&a, &b); if(/*채워 ë„£ì„ê³³*/){ c= add(a, b); } if(/*채워 ë„£ì„ê³³*/){ c= sub(a, b); } printf("%d", c); return 0; } }}} ----------------------------------- [새싹êµì‹¤/2012] === 후기 === 후기좀 ì¨ì£¼ë¼ ㅜㅜ -ì´ë¯¼ê·œ ì–´ì¨‹ë“ ë‹¤ìŒ ìˆ˜ì—…ë•Œë¶€í„° 진짜 프로그래ë°ì„ 한다는 ëŠë‚Œì„ ë°›ì„ ìˆ˜ ìžˆì„ ê±°ì—ìš” -ì´ë¯¼ê·œ ì˜¤ëŠ˜ì€ ë”ê°€ ê°‘ìžê¸° ë§Žì´ ë°°ìš´ 듯한 ëŠë‚Œì´ì—ˆìŠµë‹ˆë‹¤. ã… ã… ì†ì´ 안나가네요...-김현기 == 3회차 == === 수업내용 === ë‚˜ì¤‘ì— ì—…ëŽƒí•˜ë§ˆ ã…Žã…Ž === ê³¼ì œ === ë³„ì„ ë‹¤ìŒê³¼ ê°™ì´ ì¶œë ¥ 하세요 1. {{{ *** ** * ** *** }}} 2. {{{ ******* ***** *** * }}} 3. {{{ * * * * * * * * * * * * * * * * * * * * * }}} 4. {{{ ********** * **** * * **** * * **** * ********** }}} 5. {{{ ********* **** **** *** *** ** ** * * ** ** *** *** **** **** ********* }}} HELL. {{{ * *** ***** ************* *********** ********* ******* *** *** ** ** * * }}}