[[TableOfContents]] = ì°¸ì—¬ìž ëª…ë‹¨ = || 학번 || ì´ë¦„ || || 06 || ê¹€ì¤€ì„ || || 12 || í•œì›í‘œ || || 12 || ìš©ìƒí›ˆ || || 12 || ë°•ë„ê±´ || = 수업진행 ìƒí™© = || ì´ë¦„ || 3/21 || 3/28 || 4/3,4ë³´ê°• || 4/5 || 4/11 || 4/16 || || ê¹€ì¤€ì„ || O || O || O || O || O || O || || í•œì›í‘œ || O || O || O || X || O || X || || ìš©ìƒí›ˆ || O || O || X || O || X || O || || ë°•ë„ê±´ || O || O || X || O || X || O || = 목표 = * [김준ì„] : 기존 기íší–ˆë˜ 커리í˜ëŸ¼ 프로ì 트 결과물 3ê°œ ì´ìƒ. ê·¸ë¦¬ê³ Cì–¸ì–´ì˜ íŒŒì¼ìž…ì¶œë ¥ ë° ë„¤íŠ¸ì›Œí¬ í”„ë¡œê·¸ëž˜ë°ê¹Œì§€ ê°€ë¥´ì¹˜ê² ë‹¤. 그외 ìž¡ì‹ì€ +@ * [ë°•ë„ê±´] : ì»´í“¨í„°ì— ê´€í•œ 여러가지 ìž¡ ì§€ì‹ + 프로그램 사용법 습ë“, ë„¤íŠ¸ì›Œí¬ í”„ë¡œê·¸ëž˜ë°, 게임 만들어보기. * [ìš©ìƒí›ˆ] : 기본ì ì¸ c언어와 안드로ì´ë“œ,ì•„ì´í° ì–´í”Œì„ ë§Œë“¤ê¸° í”„ë¡œê·¸ëž˜ë° ì‚¬ìš©ë²• 습ë“. * [í•œì›í‘œ] : 다양한 컴퓨터 í”„ë¡œê·¸ëž¨ì— ìµìˆ™í•´ì§€ê³ 커리í˜ëŸ¼ì„ 열심히 ë”°ë¼ê°€ê² 다. = ê°•ì˜ ì •ë³´ = == ê°•ì˜ ì§„í–‰ 사진 == [http://www.flickr.com/photos/zealrant/ http://farm8.staticflickr.com/7245/6857196834_0c93f73f96_m.jpg] [http://farm8.staticflickr.com/7131/6857196764_23eea15ba2_m.jpg http://farm8.staticflickr.com/7131/6857196764_23eea15ba2_m.jpg] [http://farm8.staticflickr.com/7083/7003313019_18c6b87b6b_m.jpg http://farm8.staticflickr.com/7083/7003313019_18c6b87b6b_m.jpg] [http://farm8.staticflickr.com/7262/6857196800_ea1e29350f_m.jpg http://farm8.staticflickr.com/7262/6857196800_ea1e29350f_m.jpg] * 머리 ëª¨ì–‘ì€ ì‹ ê²½ì“°ì§€ 맙시다 - [김준ì„] * ì‹ ê²½ 쓰입니다 - [권순ì˜] * 맨 왼쪽부터 ë°•ë„ê±´, 김준ì„, í•œì›í‘œ, ìš©ìƒí›ˆ 입니다. == 1회차(2012/3/21) == [새싹êµì‹¤/2012/새싹êµì‹¤ê°•ì‚¬êµìœ¡/1주차] * ê°œì¸ì ì¸ ì–˜ê¸° ë° ìˆ˜ì¤€ íƒìƒ‰ * Linuxì—ì„œ GCC를 사용한 ì»´íŒŒì¼ ì‹œë²” * Wiki작성 법 ë° íšŒê³ ìž‘ì„±ë²• ë…¼ì˜ * 진로 íƒìƒ‰(?) === íšŒê³ === * í•œì›í‘œ : 새싹êµì‹¤ 첫 수업ì´ì—ˆë‹¤. ë°•ë„ê±´, ìš©ìƒí›ˆì´ë¼ëŠ” ë™ê¸°ë“¤ê³¼ ê°™ì´ í•˜ê²Œë˜ì—ˆëŠ”ë° ì•žìœ¼ë¡œ 친해졌으면 좋곘다. 처ìŒì—는 새싹êµì‹¤ì„ 하는 ì´ìœ 와, ì§„í–‰ë°©ì‹ ë“±ì— ëŒ€í•´ ì„ ë°°ë‹˜ê»˜ ì„¤ëª…ì„ ë“¤ì—ˆë‹¤. ê·¸ë¦¬ê³ wiwkiì— ê°€ìž…í•´ì„œ 앞으로 우리가 새싹êµì‹¤ì—ì„œ 배운것, ëŠë‚€ê²ƒì„ ì§ì ‘ íŽ¸ì§‘í• ìˆ˜ 있다는 ê²ƒì´ ì¢‹ì•˜ë‹¤. ê·¸ í›„ì— Virtual Boxë¼ëŠ” 것으로. Hello Worldë¼ëŠ” í”„ë¡œê·¸ëž¨ì„ ì§¯ëŠ”ë° ìƒˆë¡œìš´ í™˜ê²½ì„ ë³¼ 수 있어서 좋았지만 한편으로는 처ìŒë³´ëŠ” 환경ì´ë¼ 어색한 ê°ì´ 있었다. ê·¸ë¦¬ê³ ì–´í”Œ í”„ë¡œê·¸ëž¨ì„ ë³´ì—¬ì£¼ì…¨ëŠ”ë°. ì¹œêµ¬ë“¤ì€ ì´í•´í•˜ëŠ”것 ê°™ì€ë° 나만 잘 못하는 것 같았다. * ìš©ìƒí›ˆ : 오늘 ê²½í—˜í–ˆë˜ ì¼ì€ 새싹êµì‹¤ì€ "어떻게 ëœë‹¤"ë¼ê³ 설명하는 시간ì´ì—ˆë‹¤. 처ìŒì— 새싹êµì‹¤ì— 들어가면 무지 ì–´ìƒ‰í• ê²ƒ ê°€ì•˜ëŠ”ë° ê·¸ë ‡ì§€ 않았다. 컴퓨터 3대를 ì•žì—ë‘ê³ wikiì— í•œí•´ì„œ ì²˜ìŒ ì´ì•¼ê¸°ë¥¼ 들었다. ìƒì†Œí•œê²ƒì´ì–´ì„œ ë§Žì´ ì‹ ê¸°í•˜ì…¨ë‹¤. ê·¸ë¦¬ê³ ë²„ì¸„ì–¼ 박스 ë°›ê³ ë¦¬ëˆ…ìŠ¤ 환경를 처ìŒë³´ì•˜ë‹¤. 재미있ì„것 같다. ê·¸ë¦¬ê³ ê°€ìž¥ ì‹ ê¸°í•œ ì¼ì€ ê³ ë“±í•™êµ ì„ ë°°ë‹˜ì¸ ë°•ì„±í˜„ ì„ ë°°ë‹˜ì„ ëµ™ëŠ”ë° ë„ˆë¬´ ì‹ ê¸° 하였다. ë¨¼ì € ì¸ì‚¬ë¥¼ ë“œë ¸ì–´ì•¼ 했는ë°.. ì¸ì‚¬ë“œë¦¬ê³ ì „í™”ë²ˆí˜¸ë„ ì•Œë ¤ë“œë ¸ë‹¤. ì‹ ê¸°í•œ 하루였다. * ë°•ë„ê±´ : 캡스톤설계실(208-216)ì—ì„œ ê¹€ì¤€ì„ ì„ ë°°ë‹˜ê³¼, í•œì›í‘œ, ìš©ìƒí›ˆ ë™ê¸°ë“¤ê³¼ ê°™ì´ 3ì›” 21ì¼ PM6ì‹œì— gcc, Linux, android example, wiki작성법 ë“±ì„ ë°°ì› ë‹¤. 나랑 비슷해보ì´ëŠ” 친구가 있어서 ê°™ì´ í”„ë¡œì 트 í• ìˆ˜ 있ì„것 같다. * ê¹€ì¤€ì„ :ìš©ìƒí›ˆ, í•œì›í‘œ, ë°•ë„ê±´ì„ ì´ëŒê³ ìƒˆì‹¹ì„ ìº¡ì‹¤ì—ì„œ 진행해보았다. ìš°ë¦¬ë°˜ì˜ ì§•í¬ìŠ¤ëŠ” ë나지 않았다. ê¼ ê±¸ëŸ¬ë‚´ë„ ê¸°ë³¸ì„ ì•„ëŠ” ì¹œêµ¬ë“¤ì´ ì•„ë¬´ê²ƒë„ ëª¨ë¥´ëŠ”ê²ƒì²˜ëŸ¼ 들어와. 여튼, ê·¸ëž˜ë„ ìƒˆë¡œ ìƒˆì‹¹ì„ ê°€ë¥´ì¹ ìˆ˜ ìžˆê³ ì¢€ ì•Œê³ ìžˆëŠ” í•™ìƒë“¤ì´ 들어와서 좋다. ê°•ì˜ë¥¼ 다ìŒì‹œê°„ì— íŒíŒë‚˜ê°€ë„ ë 것 같다. 2ì£¼ì°¨ì— ëŒ€í•´ 코딩하는것ì´ë‚˜ ì•žìœ¼ë¡œì˜ ì§„ë¡œì— ëŒ€í•´ ë¬¼ì–´ë³´ì•˜ê³ í˜„ìž¬ ì „ì²´ì ì¸ ì§„ë„나 ìˆ˜ì¤€ì„ ê°„ì ‘ì 으로 ì•Œ 수 있게 ëœê²ƒì´ 가장 í° ì„±ê³¼ë‹¤. == 2회차(2012/3/28) == === ê°•ì˜ ì§„í–‰ 사진 === [http://farm8.staticflickr.com/7239/7042450973_5ea7827846_m.jpg http://farm8.staticflickr.com/7239/7042450973_5ea7827846_m.jpg] [http://farm8.staticflickr.com/7110/6896354030_24a7505c7d_m.jpg http://farm8.staticflickr.com/7110/6896354030_24a7505c7d_m.jpg] * í‘œì •ì€ ì‹ ê²½ì“°ì§€ 맙시다 - [김준ì„] === êµìœ¡ ë‚´ìš© === * 장소 시간 : 6층 PC실ì—ì„œ 6ì‹œì— ì‹¤ìŠµì„ í•´ë´„ [새싹êµì‹¤/2012/새싹êµì‹¤ê°•ì‚¬êµìœ¡/2주차] [새싹êµì‹¤/2011/ë¬´ì „ì·¨ì‹/ë ˆë²¨4] * 2주차 ìœ ì¸ë¬¼ êµìœ¡ * ì´ì†Œë¼ 때리기 ê²Œìž„ì„ Linux gedit를 사용해 ì½”ë”©ì„ ì‹œì¼œë´„. * 한글 ë„ì–´ì“°ê¸°ì— ë¬¸ì œê°€ 발견ë˜ê³ 코딩 ë„ì–´ì“°ê¸°ì— ëŒ€í•œ ì¤‘ìš”ì„±ì„ ì•Œì§€ ëª»í•˜ëŠ”ê²ƒì„ ì•Œê²Œë¨ - [김준ì„] * 디버깅하는 ë°©ë²•ì„ ì•žì—ì„œ ì§ì ‘ 보여줌. 몇번째 ë¼ì¸ì— 몇번쨰가 ìž˜ëª»ëœ ë¼ì¸ì´ë¼ê³ ë‚˜ì˜¤ì£ ? ì´ê±¸í†µí•´ ì›í‘œì™€, ìƒí›ˆì´ì˜ ë””ë²„ê¹…ì„ ê³ ì³ì£¼ì—ˆìŠµë‹ˆë‹¤. ë„어쓰기 ìž˜í•˜ê³ ê´„í˜¸ 잘닫으ë¼ê³ . * 예약어 -> 예약어는 Cì˜ ì‹œìŠ¤í…œì—ì„œ 미리 ì„ ì í•´ë†“ì€ ë‹¨ì–´ë¥¼ ì˜ë¯¸í•©ë‹ˆë‹¤. ì´ê²ƒì„ 변수명ì´ë‚˜ 함수명으로 ì“°ë©´ 안ë©ë‹ˆë‹¤. * printf(), scanf()어떻게 쓰는지 ì•Œì£ ? * int, char, float, long, double 변수는 무슨 í‘œí˜„ì„ ìœ„í•´ 만들어졌는지 ì•Œë ¤ì£¼ì—ˆìŠµë‹ˆë‹¤. ì •ìˆ˜, 문ìž, 실수. ì•Œì£ ? * #define ì„ ì–¸ë¬¸ì˜ ì‚¬ìš©ë²•ì— ëŒ€í•´ ì•Œë ¤ì£¼ì—ˆìŠµë‹ˆë‹¤. #define으로 매í¬ë¡œë¥¼ ì„ ì–¸í•´ë†“ìœ¼ë©´ 편하게 ì„ ì–¸ 단어를 만들ìŒìœ¼ë¡œ 쓸수있지용? ê·¸ ì‘ìš©ì— ëŒ€í•´ì„œëŠ” 다ìŒì— 기회가 ë˜ë©´ ì•Œë ¤ì£¼ê² ìŠµë‹ˆë‹¤. * í—¤ë” íŒŒì¼ë“¤ì—는 ëê°€ 들어가는지 한번 알아보았습니다. math.hì—는 ìˆ˜í•™ì— ê´€ë ¨ëœ í•¨ìˆ˜. time.hì—는 시간 ì œì–´ì— ê´€ë ¨ë¨ í•¨ìˆ˜ë¥¼ ì‚¬ìš©í–ˆì£ .srand(time(NULL))ì´ ì™œ ì“°ì´ëŠ” 지는 ì•„ì§ ì•ˆì•Œë ¤ì£¼ì—ˆë‹µë‹ˆë‹¤^.^ * if문, switch()case: default:}, for, whileë¬¸ì˜ ìƒê¹€ìƒˆì™€ 존재 목ì ì— ëŒ€í•´ì„œ ì•Œë ¤ì£¼ì—ˆìŠµë‹ˆë‹¤. ë§ê·¸ëŒ€ë¡œ í”„ë¡œê·¸ëž¨ì˜ ì¤‘ë³µì„ ì—†ì• ê³ ì‚¬ìš©ìžì˜ íë¦„ì„ ì¢€ ë” íŽ¸í•˜ê²Œ ì½”ë”©í• ìˆ˜ 있ë„ë¡ ë§Œë“¤ì–´ì§„ 예약어들입니다. ì•„ switch case문ì—ì„œ break를 안가르쳤네요 :( * ê³¼ì œë¡œ 나오는 ACM ë¬¸ì œë¥¼ 풀어보았습니다 === ì½” 딩 === * í•œì›í‘œ - 세 ì •ìˆ˜ ì •ë ¬í•˜ê¸° {{{#!plain cpp #include<stdio.h> int main() { int a,b,c,d; scanf("%d %d %d",&a,&b,&c); if(a>b) { d=b; b=a; a=d; } if(b>c) { d=c; c=b; b=d; } if(a>b) { d=b; b=a; a=d; } printf("%d %d %d",a,b,c); return 0; } }}} * ë°•ë„ê±´ - 윤년구하기 {{{ #include <stdio.h> int main(void) { int num; printf("Input integer."); scanf("%d", &num); if(num % 400 == 0) printf("Leap"); else if((num % 4 == 0) || (num & 100 != 0)) printf("Leap"); else printf("Normal"); return 0; } }}} * ìš©ìƒí›ˆ - 세 ì •ìˆ˜ ì •ë ¬í•˜ê¸° {{{ #include<stdio.h> int main() { int a,b,c; int d; scanf("%d %d %d",&a,&b,&c); if(a>b) { d=b; b=a; a=d; } if(b>c) { d=c; c=b; b=d; } if(a>b) { d=b; b=a; a=d; } if(a==b || a==c || b==c ) { printf("Impossible"); } else printf("%d %d %d",a,b,c); return 0; } }}} === 2주차 ê³¼ì œ === * í•œì›í‘œ -윤년 íŒë‹¨í•˜ê¸° {{{ #include<stdio.h> int main(void) { unsigned int y; scanf("%u",&y); if(y%400==0) { printf("Leap\n"); return 0; } if(y%100==0) { printf("Normal\n"); return 0; } if(y%4==0){ printf("Leap\n"); } printf("Normal\n"); return 0; } }}} * ìš©ìƒí›ˆ - 윤년íŒë‹¨í•˜ê¸° {{{ #include<stdio.h> int main() { long long n; bool t = 0; scanf("%lld",&n); if(n%4==0) { t = 1; if(n%100 == 0) { t = 0; if(n%400 == 0) { t = 1; } } } if(t) { printf("Leap"); } else { printf("Normal"); } return 0; } }}} == 3주차(4/3, 4/4 í•œì›í‘œ ë³´ê°•) == * ê°œì¸ì •ë³´ 털기 Ice Breaking === ICE breaking === * ë°•ë„ê±´ - 게임했습니다. 카트ë¼ì´ë” 했습니다. 1ì£¼ì¼ ë‚´ë‚´. 프로그래ë°í–ˆìŠµë‹ˆë‹¤. map editor만드는거 굉장히 노가다ì—ìš”. 빡ì³ìš”. í•™êµìˆ˜ì—…ì€ ì„ ëŒ€ê°€ 매우 짜ì¦ë‚˜ìš”. C는 í• ë§Œí•´ìš”. êµìˆ˜ë‹˜ì´ í›…í›… ì§€ë‚˜ê°€ëŠ”ë° ì „ ìƒê´€ì—†ìŒ. 나 좀 짱임. ê³ ë“±í•™êµ ì¹œêµ¬ë“¤ê³¼ 만나서 ë§‰ì°½ê³ ê¸° 먹ìŒ. ë¼ì§€ ë˜ê² ìŒ. * ìš©ìƒí›ˆ - ê³¼ì œì— ì¹˜ì—¬ì‚´ìŒ. í•™êµ ì§œì¦ë‚¨. ê³ ë“±í•™êµ ì¹œêµ¬ ì‚´ì§ ë§Œë‚˜ê³ . 주ë§ì—는 MT를 ë¹ ì§€ê³ í• ë¨¸ë‹ˆ ëŒì— 갔습니다. 참잘했어요. ê·¸ë¦¬ê³ ê°€ì¡±ë“¤ 외ì‹í–ˆì—ˆìŒ. ê³¼ì œí–ˆìŒ. 소설ì´ë‚˜ ìžê¸°ê³„발서 ì½ëŠ”ê±° 좋아해서 그거 ì½ê³ . ìš´ë™í–ˆìŠµë‹ˆë‹¤. 매ì¼. 달리기. 웨ì´íŠ¸ë„ í•˜ê³ ì‚½ë‹ˆë‹¤. ì „ ê±´ê°•í•´ 질꺼ì—ìš” 뿌잉뿌잉 *^^* * ê¹€ì¤€ì„ - ì•„ì´íŒ¨ë“œ ê°œë°œì„ í•˜ëŠ”ë° ë°ë“œë¼ì¸ì€ 지났어. 그래서 êµìˆ˜ë‹˜ê»˜ 사과메ì¼ì„ 보냈어. ê·¸ë¦¬ê³ ìº¡ìŠ¤í†¤ 설계실ì—ì„œ 새로운 프로ì 트를 ì œì•ˆì„ ë°›ìŠµë‹ˆë‹¤. ì›ëž˜ 댄스스í¬ì¸ ë™ì•„리를 í•˜ê³ ìžˆëŠ”ë° ë°œë ˆë¥¼ 배우게 ë¬ìŒ. 수요ì¼ë§ˆë‹¤ ìš´ë™ê³¼ ê±´ê°• ì¡°êµí™œë™ì„ í•˜ê³ ìžˆê³ ëª©ìš”ì¼ì€ êµìˆ˜ë‹˜ ì• ë¥¼ ë´ì¤Œ. ì–´ì œ 지ì¸ì¤‘ì— ìƒë‹¹í•œ ë¶„ì´ ìžˆì–´ì„œ 밤새서 ì§€ì¼œì£¼ê³ í•œë¹› 리ë”스ì—ì„œ ë…후ê°ì“°ëŠ”ê±° í–ˆìŒ. 휴학ìƒì¸ë° í•™êµì— 24시간 ìžˆê³ ì˜ì–´í•™ì› 10ì‹œì— ì¼ì–´ë‚˜ëŠ”ê±° 너무 힘듬. ë‚œ ì•„ì¹¨ì— ëª»ì¼ì–´ë‚˜~ ê·¸ë¦¬ê³ ìƒˆì‹¹ 강사들 êµìœ¡í•˜ëŠ” ê±° 4타임 너무 귀찮ìŒ=ã…‚= 강사가 못알아 먹어!!!! ë 여튼 ì›í‘œë„ 와서 4시간 와서 ë°°ìš°ê³ ê°”ìŒ. ì¼ì£¼ì¼ì´ 부족함. ì‹œê°„ì„ ëŒ€ì¶œí•´ì¤˜! === 사진 === [http://farm8.staticflickr.com/7083/7047112703_ff410674b0_m.jpg http://farm8.staticflickr.com/7083/7047112703_ff410674b0_m.jpg] [http://farm8.staticflickr.com/7125/6901018132_7a291a35e5_m.jpg http://farm8.staticflickr.com/7125/6901018132_7a291a35e5_m.jpg] [http://farm8.staticflickr.com/7134/6901018150_0093a70456_m.jpg http://farm8.staticflickr.com/7134/6901018150_0093a70456_m.jpg] [http://farm8.staticflickr.com/7080/6901018084_9b2d277329_m.jpg http://farm8.staticflickr.com/7080/6901018084_9b2d277329_m.jpg] * ìš©ìƒí›ˆ 헤드뱅잉 - [김준ì„] === 수업 ë‚´ìš© === [새싹êµì‹¤/2012/새싹êµì‹¤ê°•ì‚¬êµìœ¡/3주차] [새싹êµì‹¤/2012/주먹밥/ì´ì†Œë¼ë•Œë¦¬ê¸°ê²Œìž„] ==== í•œì›í‘œ ë³´ê°• 수업(2012/4/3, 4/4) ==== * 변수타입 - C언어는 ê³ ê¸‰ì–¸ì–´ì´ë‹¤. 왜ëƒ. ì‚¬ëžŒì´ ì“°ê¸° 좋게 만들기때문ì´ë‹¤. 편하게 만들어주는 것중 하나가 변수 타입ì´ë‹¤. int는 ì •ìˆ˜, char는 문ìž, float는 실수. ì°¸ 편하지 ì•Šì€ê°€? ì‚¬ëžŒì„ ìœ„í•´ 만들어진것ì´ë‹¤. ì–¸ì œê¹Œì§€ 0ê³¼ 1ë¡œ ëŒ€í™”í• í…ê°€? * if문 {{{ int a = 5; if(a >3){ printf("aê°€ 3보다 í½ë‹ˆë‹¤.\n"); } else printf("아니면 ë§ê³ .\n"); }}} * for문 {{{ for(1번,2번,4번){ 3번들; } for(i = 0;i<5;i++){ } }}} * while문 {{{ a = 5; while(a>3){ a--; } printf("%d",a); }}} * ì—°ì‚°ìž ì§‘ë‹¨ {{{ +-*/% ||&& != == <= >= ~^&| ++i i++ }}} * {{{+-*/% }}} 사칙연산 ë° ë‚˜ë¨¸ì§€ * {{{ || && 논리 ì—°ì‚° : ||는 한쪽만 ì°¸ì´ì–´ë„ ì°¸ì„ ë±‰ì–´ëƒ„ &&는 ì–‘ìª½ì´ ì°¸ì´ì–´ì•¼ì§€ ì°¸ì„ ë±‰ì–´ëƒ„}}} * {{{ != == <= >= ë¹„êµ ì—°ì‚°ìž : 설명 ìƒëžµ }}} * {{{ ~^&| 비트 ì—°ì‚°ìž : char ì˜ˆì œë¡œ 1byte -> 8bit ~ì€ 0ê³¼ 1ì„ ë°”ê¾¸ëŠ”ê²ƒ ^는 같으면 거짓 다르면 ì°¸ &는 ì–‘ìª½ì´ 1ì´ì–´ì•¼ì§€ 1 |는 한쪽만 1ì´ì–´ë„ 1ë¡œ 서로 계산함. }}} * 괄호 ()를 치면 ìš°ì„ ìˆœìœ„ê°€ 바뀌는건 당연지사 * ++i 와 i++는 i = i +1;ê³¼ 같지만 다른 ëª…ë ¹ë¬¸ê³¼ ê°™ì´ ì‹¤í–‰ë ë•Œ 다른결과를 ë³´ì—¬ì¤ë‹ˆë‹¤. * 함수 : 사용ìžì˜ í–‰ë™ì„ ì´ë¦„으로 추ìƒí™”í•´ì„œ ê³„ì† ì“°ëŠ” ë°˜ë³µì„ ì¤„ì—¬ì¤€ë‹¤. * 변수가 ì €ìž¥ë˜ëŠ”ê³³ : 변수는 ë©”ëª¨ë¦¬ì— ì €ìž¥ë˜ëŠ”ë° int는 4byte ì €ìž¥ê³µê°„ì— ì €ìž¥ëœë‹¤ ê·¸ë¦¬ê³ ê·¸ê²ƒì˜ ë³´ê´€ìž¥ì†ŒëŠ” ì–´ë–¤ '''주소값(address)'''를 가진다. * í¬ì¸í„° : í¬ì¸í„°ë³€ìˆ˜ëŠ” 32bit ë²„ì „ 컴파ì¼ëŸ¬ì—ì„œ 4byte 64bit ë²„ì „ 컴파ì¼ëŸ¬ì—ì„œ 8byteì˜ í¬ê¸°ë¥¼ 가집니다. 어떤타입ì´ë“ ë§ì´ì£ (void *), (int *), (float *) ëª¨ë‘ ë§ì´ì—ìš”. int *a는 4byte를 í• ë‹¹ë°›ê³ aì—는 '''주소값(address)'''ì„ ê°€ì§€ê²Œ ë©ë‹ˆë‹¤. í¬ì¸í„° (*)를 붙ì´ê²Œ ë˜ë©´ ê·¸ 해당 주소가 가르키는 '''ê°’'''ì„ ì°¾ì•„ê°€ê²Œ ë˜ì£ . int형 ê°’ë§ì´ì—ìš” 그러니까 4byte만 ì°¾ì•„ì˜¤ê² ì£ ? * 함수가 사용ë ë–„ C는 기본ì 으로 Call-by-value를 사용합니다. í•ìƒ 값복사를 통해 ë³€ìˆ˜ì˜ ê°’ë“¤ì„ ì „ë‹¬í•˜ì£ . * Call-by-value, Call-by-reference ì˜ˆì œ {{{ #include<stdio.h> void swap(int a, int b){ int temp; temp = a; a = b; b = temp; } void swap2(int *a, int *b){ int temp; temp = *a; *a = *b; *b = *temp; } int main(){ int i=3,j=5; swap(i,j); printf("%d %d\n",i,j); swap2(&i,&j); printf("%d %d\n",i,j); return 0; } }}} * 위와 ê°™ì´ í•¨ìˆ˜ 추ìƒí™”ì˜ ì™„ì„±í˜•ì€ Call-by-reference를 ì´ìš©í•œ ì „ë‹¬ìž…ë‹ˆë‹¤. 잊지마세요! * í•¨ìˆ˜ì˜ ì¶”ìƒí™”와 ë”불어 중요한건 í•¨ìˆ˜ì˜ ëª©ì ì— ë”°ë¥¸ '''ì´ë¦„짓기(naming)'''입니다. 함수 ì´ë¦„ì„ ë³´ê³ ìš©ë„를 íŒŒì•…í• ìˆ˜ 있어야ë˜ìš”! * ë°°ì—´(array)는 ê°™ì€ íƒ€ìž…ì„ í•œêº¼ë²ˆì— ê´€ë¦¬í•˜ê²Œ í•´ì¤ë‹ˆë‹¤ {{{ int a[10];}}}ì´ë¼í•˜ë©´ a는 int형 10개가 ìƒê²¨ìžˆê³ 0~9ê¹Œì§€ì˜ ì¸ë±ìŠ¤(index)를 ì§€ë‹ˆì£ . * aì´ë¦„ì—는 첫번째 주소가 들어가있습니다. {{{ scanf("%d",a); }}} 는 ì´ ë°°ì—´ì˜ ì²«ë²ˆì§¸ {{{ a[0] }}}ì„ ê°€ë¦¬í‚¤ê²Œ ë˜ì£ . * ë°°ì—´ì˜ {{{ a[2] }}}는 ì´ê²ƒê³¼ 같습니다 {{{ *(a+2) }}} * 구조체와 typedef * 구조체는 사용ìžê°€ íƒ€ìž…ì„ ì •ì˜í•´ì„œ 변수처럼 쓸수 있게 만들어주는것 입니다! * typedef는 {{{typedef ì •ì˜í• 것 ì´ë¦„;}}} 형ì‹ìœ¼ë¡œ ì •ì˜í•˜ì—¬ 진짜 타입처럼 간단하게 쓰는ê²ë‹ˆë‹¤. {{{ ///typedef를 쓴경우 typedef struct _CALORIE{ char name[40]; float value; }CALORIE; CALORIE myfood; ì´ë¦„ê³¼ 실수형 ê°’ì„ ê°€ì§„ CALORIEë¼ëŠ” íƒ€ìž…ì„ ë§Œë“ ì˜ˆì œ }}} * 구조체와 함수 - êµ¬ì¡°ì²´ë„ ë‹¤ë¥¸ë³€ìˆ˜ì™€ 마찬가지로 Call-by-value와 Call-by-referenceë°©ì‹ìœ¼ë¡œ 넘기게 ë©ë‹ˆë‹¤. {{{ valuefunc(myfood); referencefunc(&myfood); }}} * í¬ì¸í„°ì™€ 함수와 구조체 * 구조체는 ì¸ìŠ¤í„´ìŠ¤ê°€ 주소값 참조형ì¼ë•Œì™€ ì¼ë°˜ ì„ ì–¸ì‹œ 다른 모양으로 부릅니다. {{{ CALORIE a; CALORIE *b = &a; scanf("%s, %f",a.name,&(a.value)); //a.nameì˜ ìž…ë ¥ê³¼ a.valueì˜ ìž…ë ¥ì´ ë‹¤ë¥¸ê²ƒì— ì£¼ì˜! ì´ê±´ ë°°ì—´ê³¼ ì¼ë°˜ë³€ìˆ˜ì™€ì˜ ì°¨ì´ì ì—ì„œ 설명했습니다. printf("%s %.2f\n",a.name,a.value); //그냥 불러오기 printf("%s %.2f\n",b->name,b->value); //->참조형으로 불러오기 }}} * 코드 ë¶„ì„ {{{ ///pcalì€ ìŒì‹ 40개가 들어갈수 있는 구조체 ë°°ì—´ì˜ ì£¼ì†Œê°’ì„ ë„˜ê²¨ë°›ëŠ”ë‹¤ê³ ì •ì˜í•©ì‹œë‹¤. ///numì€ ìŒì‹ì´ 들어가있는 갯수를 뜻합니다. float calcalc(CALORIE *pcal, int num){ char name[40]; float gram = 0; float totalcal = 0.0; int i; printf("-- ì‹í’ˆëª… ì¼ëžŒ -------------\n"); for(i = 0; i<num;i++) //ê°¯ìˆ˜ë§Œí¼ ì¶œë ¥í•©ë‹ˆë‹¤ printf("%s\t", (pcal+i)->name); //ì´ë¦„ì„. ì¶œë ¥í•©ë‹ˆë‹¤ printf("\n----------------------------------------\n"); while(1){ printf("ì‹í’ˆëª…(end를 ìž…ë ¥í•˜ë©´ 계산합니다.) : "); scanf("%s", name); if(strcmp(name, "end") == 0) break; printf("그램 수 : "); scanf("%f", & gram); for(i=0;i<num;i++){ if(strcmp(name, (pcal+i)->name) == 0){ totalcal += (pcal+i)->value * gram /100.0; break; } } } return totalcal; } }}} ==== ë°•ë„ê±´ ìš©ìƒí›ˆ 수업(2012/4/8) ==== * í•œì›í‘œ 수업과 ê°™ìŒ * 둘다 ìž˜ì•Œê³ ìžˆì–´ì„œ ê°œë…ì ì¸ ë¶€ë¶„ì„ ì„¤ëª…í•˜ê³ ì§€ë‚˜ê° * 함수형 í¬ì¸í„° 설명 - í•¨ìˆ˜ì˜ ì´ë¦„ì—는 ì£¼ì†Œê°’ì„ ê°€ì§€ê³ ìžˆì–´ì„œ í¬ì¸í„°ë¡œ ì œì–´í• ìˆ˜ 있다. * 함수는 변수가 ë‚¨ì•„ë„ ì‹¤í–‰ì´ ëœë‹¤? {{{ #include<stdio.h> int func(){ return 0; } int main(){ printf("%d\n",func(1,2,3,4)); return 0; } }}} * ë°•ë„ê±´ê³¼ ìš©ìƒí›ˆ 멘붕하는거 ë´„ ==== ë°•ë„ê±´ ìžìœ¨ 학습 ==== * ê²Œìž„ì„ ë§Œë“¤ë•Œ ì´ë¯¸ì§€ë¥¼ 그린다. 200개가 넘는 ê·¸ë¦¼ì„ ì–´ë–»ê²Œ ì œì–´í• ê²ƒì¸ê°€ë¥¼ 논함. * C++ì´ë¼ë©´ ì´ë¯¸ì§€ë¥¼ 그리는 ê°ì²´ë¥¼ Templeteë¡œ 만들어서 paint()í•¨ìˆ˜ì— ê·¸ëž˜í”½ *를 넘겨서 ìžê¸°ê°€ 알아서 ê·¸ë¦¬ê²Œí•˜ëŠ”ê²ƒì´ ì¢‹ë‹¤. listì— ë„£ê³ for문만 ëŒë¦¬ë©´ ë나니까 * Threadì— ê°„í•œ 간단한 설명 * http://forum.falinux.com/zbxe/?document_srl=441104 를 참조하면 í†µì‹ í”„ë¡œê·¸ëž¨ì„ ì§¤ 수 ìžˆì„ ê²ƒì´ë‹¤. == 4주차(2012/4/11) == * [새싹êµì‹¤/2012/새싹êµì‹¤ê°•ì‚¬êµìœ¡/4주차] === í•œì›í‘œ ë³´ê°• === * íŒŒì¼ ìž…ì¶œë ¥ì´ ì™œ 필요한가 설명함 * ìš´ì˜ ì²´ì œì™€ 메모리(íŒŒì¼ í¬í•¨)ì˜ ê´€ê³„ë¥¼ 설명 * ìš´ì˜ì²´ì œëŠ” íŒŒì¼ ì‹œìŠ¤í…œì„ ê´€ë¦¬í•©ë‹ˆë‹¤. ê´€ë ¨í•´ì„œ ì´ë²ˆì— 가르ì³ì£¼ëŠ”ê²ƒì€ *(í¬ì¸í„°:Pointer)ê´€ë ¨í•´ì„œ FILE 구조를 메모리 참조를 통해서 í•˜ëŠ”ê²ƒì„ ì•Œë ¤ì£¼ê²Œ ë˜ì—ˆìŠµë‹ˆë‹¤. 파ì¼(File)ì€ ë©”ëª¨ë¦¬ì£¼ì†Œë¡œë¶€í„° 시작ë˜ê³ ìš´ì˜ì²´ì œë¥¼ ì´ë¥¼ 관리하기 ë•Œë¬¸ì— Cì—ì„œ 지ì›í•˜ëŠ” ë¼ì´ë¸ŒëŸ¬ë¦¬ë¥¼ 통해 ìš´ì˜ì²´ì œë¡œ 부터 파ì¼ì„ 관리하는 ì •ë³´ë¥¼ 가진 FILE 구조체를 불러오게 ë©ë‹ˆë‹¤. 그래서 우리는 *를 통해 ì£¼ì†Œê°’ì„ ë”°ë¼ê°€ì„œ FILE구조체로 ê·¸ ì •ë³´ë¥¼ 얻어오게 ë˜ì£ . Good Good! * 기본 íŒŒì¼ êµ¬ì¡°ì²´ì—는 대략 ì´ëŸ°ì •ë³´ê°€ 들어가게 ë©ë‹ˆë‹¤. íŒŒì¼ ê²½ë¡œ, ì´ë¦„, í¬ê¸°, '''현재 얼마나 ì½ì—ˆëŠ”지'''. ìžì„¸í•œ 사í•ì€ http://winapi.co.kr/clec/cpp2/17-2-1.htm ì— ë“¤ì–´ê°€ë©´ 있답니다. * ì ˆëŒ€ 경로와 ìƒëŒ€ê²½ë¡œ. 'ì ˆëŒ€ 경로'는 ìš´ì˜ì²´ì œ 기준으로 ìš´ì˜ì²´ì œê°€ ì ¤ 세부로 ë‚˜ëˆ ì£¼ëŠ” ë“œë¼ì´ë¸Œë¥¼ ë¹„ìœ í•´ì„œ 설명해주었습니다. ìš´ì˜ì²´ì œ 기준으로 {{{ C:\\Desktop\test.txt }}}를 ê°™ì€ í´ë” 프로그램으로 불러와봅시다. 잘불러와지네요? 하지만 {{{C:\\Desktop\오리\test.txt }}}ë¡œ ì € txt파ì¼ê³¼ í”„ë¡œê·¸ëž¨ì„ ì˜®ê¸°ë©´ ì‹¤í–‰ì´ ë 까요? 안ë˜ì£ ? ê°™ì€ í´ë”ì— ìžˆëŠ”ë°ë„. 그럼 어떻게 í•´ì•¼í• ê¹Œìš”? 그래서 ìƒëŒ€ê²½ë¡œ ë¼ëŠ”ê²ƒì´ ë‚˜ì™”ìŠµë‹ˆë‹¤. {{{ .\test.txt }}} ë©´ ê°™ì€ í´ë”ì— ìžˆëŠ” test파ì¼ì„ ì°¾ê³ . {{{ ..\test.txt}}} 는 바로 위 ìƒìœ„í´ë”를 찾습니다. 다른í´ë”는 어떻게 í•˜ë‚˜ê³ ìš”? {{{ .\오리\test.txt }}}ë¡œ ì„¤ì •í•˜ë©´ë˜ì£ . '''ìƒëŒ€ 경로'''는 해당 ì‹¤í–‰íŒŒì¼ ê¸°ì¤€ìœ¼ë¡œ íŒŒì¼ ìœ„ì¹˜ë¥¼ 추ì 하는것ì´ëžë‹ˆë‹¤. * ì˜ˆì œë¥¼ 통해 íŒŒì¼ ìž…ì¶œë ¥ ìŠ¤íŠ¸ë¦¼ì„ í‘œí˜„í•´ì£¼ì—ˆì§€ìš”. * stdin, stout. 표준 ìž…ì¶œë ¥ì„ ì§€ì›í•´ì£¼ëŠ” 스트림입니다. fprintf와 printê°€ ë˜‘ê°™ì´ ì“°ì¼ìˆ˜ 있는 ì˜ˆì œë¥¼ ë³´ì—¬ì£¼ì—ˆì£ . {{{ #include <stdio.h> int main(){ int a; fprintf(stdout,"%d",5); printf("%d",5); fscanf(stdin,"%d",&a); scanf("%d",&a); return 0; } }}} * 리다ì´ë ‰ì…˜ > 표시는 현재 ì¶œë ¥ì„ ë‹¤ë¥¸ê³³ìœ¼ë¡œ ëŒë¦´ë•Œ ì“´ë‹¤ê³ í–ˆì£ . 현재 ì´ test.exe파ì¼ì„ 실행시키면 5를 ì¶œë ¥í•œë‹¤ê³ í•©ë‹ˆë‹¤ 윈ë„ìš°ì˜ CMDì—ì„œ ì´íŒŒì¼ì„ 리다ì´ë ‰ì…˜ì„ 통해 test.txtë¡œ ì¶œë ¥ì„ ì‹œì¼œë³´ê² ìŠµë‹ˆë‹¤ {{{ test.exe > test.txt }}} 를 하면 test.txt ì—는 5ê°€ 들어가게ë©ë‹ˆë‹¤. * í•œì›í‘œ ê³¼ì œ Gitì„ ê³µë¶€í•´ì„œ Repository를 ë§Œë“¤ê³ Readme파ì¼ì„ ì˜¬ë ¤ì„œ 다ìŒì£¼ì— 보여주기. === ìš©ìƒí›ˆ, ë°•ë„ê±´ === * í•œì›í‘œì™€ ê°™ìŒ. * ë‘ëª…ì˜ ëª©í‘œì— ëŒ€í•´ 얘기함. * ìš©ìƒí›ˆì€ iOSê°œë°œì„ í•´ë³´ê³ ì‹¶ë‹¤ê³ í•¨. 경험시켜주기 위해 ê³ í•œì¢… ì¡°ì¸. * ë ë°°ì› ë‹ˆ? - [김준ì„] * ë°•ë„ê±´ì˜ í”„ë¡œê·¸ëž¨ ë´ì¤Œ. * Scrollì„ ì˜®ê¸¸ë•Œ ë°±ë¶„ë¥ ì´ ìž˜ëª»ë˜ì—ˆëŠ”ë° %를 ì¨ì„œ ì œëŒ€ë¡œ ìž‘ë™í•˜ì§€ ì•ŠìŒ * ë°±ë¶„ë¥ ê³µì‹ (x/최대값) * 100 ì„ í–ˆëŠ”ë° ì•ˆë¨. ì›ì¸ì€ intë¡œ ë˜ì–´ 0ì´ ìžê¾¸ 리턴ë˜ì„œ 그랬ìŒ. 그래서 (float)(x/최대값) * 100ì„ ì§‘ì–´ë„£ìŒ. == 5주차(2012/4/18) ==  === ë°•ë„ê±´, ìš©ìƒí›ˆ ì°¸ì„ === * 질문 : ìš©ìƒí›ˆ -> ì œ ì¸ìƒì— 대해 ì•Œê³ ì‹¶ì–´ìš”. ìžì‹ ê°ë„ 없는것 ê°™ê³ ìš”. * 답변 : ì§€ê¸ˆì€ ì•Œìˆ˜ 없지만 많ì€ê²ƒì„ 경험해 보았으면 ì¢‹ê² ìŠµë‹ˆë‹¤. 지금 ì´ê²ƒì´ 아니ë¼ë©´ 지금 ë‹¬ë ¤ë‚˜ê°ˆê¸¸ì— ëŒ€í•´ ì‹ ê²½ì“°ê³ ìžì‹ ê°ì„ 가졌으면 ì¢‹ê² ìŠµë‹ˆë‹¤. 순ìžì˜ 성악설과 ì›íš¨ëŒ€ì‚¬ì˜ 해골바가지를 예를 들면서 ìžì‹ ì˜ ë§ˆìŒì€ ë§ê·¸ëŒ€ë¡œ 마ìŒë¨¹ê¸°ì— ë‹¬ë ¸ë‹¤ê³ ë§í–ˆì£ . ìœ„ì„ ì˜ í•œìž ì •ì˜ëŠ” 僞善! 하지만 거짓 위(僞)는 단순히 ìžì‹ ì˜ ì•…(惡)ì„ ìœ„í•´ ì†ì¸ë‹¤ëŠ” ê°œë…ì´ ì•„ë‹™ë‹ˆë‹¤. ì‚¬ëžŒì´ ì‚¬ëžŒì„ ìœ„í•´ ê±°ì§“ì„ í–‰í•˜ë©° ì‚¬ëžŒì˜ ë§ˆìŒìœ¼ë¡œ ì•…(惡)ì„ ë‹¤ìŠ¤ë ¤ ì„ (å–„)ì— ë„£ëŠ”ê²ƒì„ ë§í•˜ê²Œ ë©ë‹ˆë‹¤. ìœ„ì„ ì„ ë‹¨ìˆœížˆ 거짓으로 ìƒê°í•˜ì§€ ë§ëž€ 얘기. 그래서 ì‚¬ëžŒê°„ì˜ ì˜ˆì ˆì´ë‚˜ 규율 ë²•ì¹™ì˜ ê¸°ë°˜ì´ ìƒê¸°ê²Œ ë¬ì£ (ì´ ì–˜ê¸°ëŠ” ì£¼ì œì—ì„œ ë²—ì–´ë‚œ 딴얘기 입니다). ëª¸ì´ ë¨¼ì €ëƒ ë§ˆìŒì´ ë¨¼ì €ëƒë¥¼ ì •í•˜ì§€ 마세요. ìš°ì„ í•´ë³´ë©´ ìžì—°ìŠ¤ëŸ½ê²Œ ë”°ë¼ì˜¤ê²Œ ë˜ê¸°ë„한답니다. 필요하다면 Just do it! 하지만 ì´ê²Œ í•ìƒ 옳ì€ê±´ ì•„ë‹ˆì£ . ì„ íƒì€ ìžìœ . ëŠ¥ë ¥ì¹˜ì˜ ì˜¤ê°í˜•ë„ ë³´ì—¬ì£¼ì—ˆì£ . ë‹¤ë¥¸ì‚¬ëžŒì´ ê°€ì§€ì§€ 못한 장ì ì„ ë‹¹ì‹ ì€ ê°€ì§€ê³ ìžˆìŠµë‹ˆë‹¤. Whatever! 힘들때는 ìƒë‹´í•˜ëŠ”ê²ƒë„ ì¢‹ê³ ì‹œê°„ì„ ì£½ì—¬ë³´ëŠ”ê²ƒë„ í•œë°©ë²•ìž…ë‹ˆë‹¤. í•ìƒ '''ë‹¹ì‹ '''ì´ ì¤‘ìš”í•œê±°ì£ . * 질문 : ë°•ë„ê±´ -> OOP란 무엇ì¸ê°€ìš”? * 답변 : ê°ì²´ 지향 프로그래ë°(Object Oriented Programming)입니다. í”„ë¡œê·¸ëž˜ë° ì„¤ê³„ 기법ì´ì£ . ì „ì—ë„ ì–˜ê¸°í–ˆë“¯ì´ í”„ë¡œê·¸ëž˜ë° ì„¤ê³„ ê¸°ë²•ì€ í”„ë¡œê·¸ëž˜ë¨¸ì˜ ì„¤ê³„ë¥¼ ë„와 ì½”ë“œì˜ ë°˜ë³µì„ ì¤„ì´ê³ ìœ ì§€ë³´ìˆ˜ì„±ì„ ëŠ˜ë¦¬ëŠ”ë° ìžˆìŠµë‹ˆë‹¤. 하지만 ìƒì‚°ì„±ì´ 있는 프로그래머가 ë˜ê³ 싶다면 API를 ì“°ê³ ì•Œê³ ë¦¬ì¦˜ì„ ë³‘í–‰í•´ì„œ 공부해야 ëœë‹¤ëŠ”ê²ƒì„ ì•Œë¦¬ê³ ì‹¶ìŠµë‹ˆë‹¤. ê·¸ë¦¬ê³ ë‹¨ìˆœížˆ Class를 쓰는것과는 다른기법입니다. ê°ì²´ 지향ì 으로 ì„¤ê³„ëœ C++ì´ë‚˜ Javaì—ì„œ Class를 ì“°ê¸°ë•Œë¬¸ì— Class를 ì“°ëŠ”ê²ƒì´ ê°ì²´ì§€í–¥ìœ¼ë¡œ ì•Œê³ ìžˆëŠ” ì‚¬ëžŒë“¤ì´ ë§ŽìŠµë‹ˆë‹¤. 그건... ì•„ë‹ˆì£ . ì ˆì°¨ì§€í–¥ 프로그래ë°ê³¼ 다른ì ì€ ì°¨ì°¨ ê°€ë¥´ì³ ë“œë¦¬ê² ìŠµë‹ˆë‹¤. Cì—ì„œ Class란 ê°œë…ì´ ì„¤ê³„ìƒìœ¼ë¡œ ë°œì „í–ˆëŠ”ì§€ ì•Œë ¤ë“œë ¸ìŠµë‹ˆë‹¤. 함수 í¬ì¸í„°ì™€ êµ¬ì¡°ì²´ì˜€ì£ . 그게 ì›í˜•ìž…니다. * 질문 : ë°•ë„ê±´, ìš©ìƒí›ˆ -> ì €ê¸‰ 언어는 왜 필요한가요? * 답변 : 플래시 프로그래머가 1억개가 넘는 ë°°ì—´ì„ ì„ ì–¸í•˜ëŠ” ë¯¸ì¹œì§“ì„ í•œë‹¤ê³ í•´ë´…ì‹œë‹¤. ì´ ì‚¬ëžŒì´ 1억개가 넘는 ë°°ì—´ì„ ì„ ì–¸í•˜ê³ ëŒë¦¬ë©´ 컴퓨터가 ê°ë‹¹ì„ í• ìˆ˜ 있ì„까요? ì´ê²Œ 왜 뻗는지 ì´í•´ë¥¼ ëª»í•˜ì£ ? ì—¬ëŸ¬ë¶„ë„ ë§ˆì°¬ê°€ì§‘ë‹ˆë‹¤. 지금 C는 ì €ê¸‰ì–¸ì–´ì— ì¡°ê¸ˆ 가까운 편ì´ë¼ 메모리 관리가 ë³´ì´ì§€ë§Œ 스í¬ë¦½íŠ¸ë§Œ 개발해본 개발ìžë‚˜ 방금 ë§í•œ 플래시 프로그래머는 ì´í•´ë¥¼ ëª»í•˜ì£ . ë©”ëª¨ë¦¬ì˜ íš¨ìœ¨ì ì¸ ê´€ë¦¬ì™€ 최ì 화를 위해 í•„ìš”í•˜ë‹¤ê³ ê°„ë‹¨í•˜ê²Œ ìš”ì•½í• ìˆ˜ ìžˆê² ë„¤ìš”. * 질문 : ë°•ë„ê±´, ìš©ìƒí›ˆ -> 플래시 í”„ë¡œê·¸ëž¨ì€ ì™œ 쉬운가요? * 답변 : Windows API를 ì¨ë³¸ë‹¤ë©´ ì´í•´í•˜ê² 지만 윈ë„ìš°ì°½ ë„ìš°ëŠ”ë° 30ì¤„ì´ ë„˜ëŠ” 코드가 í•„ìš”í•˜ì£ ? 한줄로 보여드립니다. javascriptì—ì„œ alert(5)를치면? ë”± ëœ¨ì£ ? ì°¸~~ ì‰½ì£ ? * SVNì„ ì„¤ì¹˜ì‹œí‚´ * SVN ê±°ë¶ì´ë¥¼ ì´ìš©í•˜ì—¬ http://nforge.zeropage.org/svn/coordinateedit ì— ì½”ë“œë¥¼ ì˜¬ë¦¬ëŠ”ê²ƒì„ ì˜¬ë ¤ë†“ìŒ. ë„ê±´ì´ í”„ë¡œê·¸ëž¨ì„ ê·¸ê³³ì— ì˜¬ë ¤ë†“ê³ . ê³ ì³ì„œ ì˜¬ë ¤ë†“ìŒ. 받는건 ìˆ™ì œ!!! ì‹ ë‚¨. * ë°•ë„ê±´ 프로그램 ë´ì¤Œ * forë¬¸ì„ ì‚¬ìš©í•˜ì—¬ ì´ë¯¸ì§€ë¥¼ ê·¸ë¦¬ëŠ”ë° for문안ì—ì„œ forë¬¸ì„ íƒˆì¶œí•˜ëŠ” 조건으로 걸어놓ìŒ. 그래서 ì´ë¯¸ì§€ ìžì²´ê°€ ì•ˆê·¸ë ¤ì§. * if문으로 ì´ìš©í•˜ì—¬ ê°’ì´ 0 밑으로 ë‚´ë ¤ê°€ë©´ 0으로 초기화를 시키면 잘 ê·¸ë ¤ì§. ì´ë²ˆì—ë„ ì„±ê³µ! === 사진 === [http://farm6.staticflickr.com/5038/7087854603_372a6a2e33_m.jpg http://farm6.staticflickr.com/5038/7087854603_372a6a2e33_m.jpg] [http://farm6.staticflickr.com/5038/7087854603_372a6a2e33_m.jpg http://farm6.staticflickr.com/5038/7087854603_372a6a2e33_m.jpg] == 5ì›” 23ì¼ == * ë„ê±´ì´ì™€ 함께하는 ìžë°”스í¬ë¦½íŠ¸ 웹 게임만들기! 거지같어. === 수업 ë‚´ìš© === * 타ì´ë¨¸ -> http://dokeby.tistory.com/3 * ìžë°”스í¬ë¦½íŠ¸ ì´ë²¤íŠ¸ 키 -> http://blog.daum.net/mysmkr/5753065 {{{ <html> <head> <script language = "javascript"> left = 10; function key(){ var image=document.getElementById("demo"); image.style.position="absolute"; alert(left); left += 1; image.style.left = left; //왜 ì´ë¯¸ì§€ì—ì„œ left를 바로 뽑아내지 ì•Šëƒë©´. leftê°€ 문ìžì—´ë¡œ ì¸ì‹ë˜ë‚˜ 보기대문ì´ë‹¤. //image.style.left=(left+1)+'px'; //var l=document.getElementById("demo").style.left += 1; } </script> </head> <body onKeyDown='key();'> <img src = "1.jpg" id="demo" top = 10 left = 10> </body> </html> }}} === 다ìŒì‹œê°„ === * 타ì´ë¨¸ì™€ ì—°ë™í•´ì„œ ì´ë¯¸ì§€ê°€ ìžë™ìœ¼ë¡œ ì¼ì •ì‹œê°„ë™ì•ˆ ì´ë™í•˜ëŠ” javascript를 작성 === ê¶ê¸ˆì === * ì´ë¯¸ì§€ë¥¼ ì¼ë¶€ë§Œ ì¶œë ¥ê°€ëŠ¥í•œì§€ == 5ì›” 24ì¼ == * ìƒí›ˆì´ì™€ 함께하는 새싹êµì‹¤ === 수업내용 === {{{ ìžë°” <-> Objective - C? ê³ ë¯¼ì¤‘ ìžë°” 스í¬ë¦½íŠ¸ -> - ìžë°”를 ë°°ì›Œë„ ë˜ëŠ”것 ê°™ê³ . - ìžë°”ì—ì„œ Web View를 추천합니다. C공부를 심ë„ìžˆê²Œí•˜ê³ ì‹¶ë‹¤. -> Opensource 뒤지기 프로ì 트 소스를 ë³´ë©´ ì•ˆëŠ”ë° ì†ì— 안ìµìŒ -> 다 외울 필요는 없다. ë ˆí¼ëŸ°ìŠ¤ë¥¼ 만들어ë¼. 오늘 ê¶ê¸ˆí•œê±° Sort ì‹ ë‚œë‹¤. - Bubble Sort - Quick Sort를 ë°°ìš°ê³ ì‹¶ë‹¤. 소스를 찾아서 ì§œë³´ê³ -> 다ìŒì‹œê°„ì— ê°€ì ¸ì™€. #include<algorithm.h> quicksort( ); }}} * Javascript 실행해보기 * 메모장으로 Html파ì¼ì„ 만듬 -> ì•ˆì— ì†ŒìŠ¤ë¥¼ ë„£ìŒ * Javascript í•™ìŠµì€ http://www.w3schools.com/js/default.asp ì—ì„œ 해주세요. {{{ <html> <body> <script type="text/javascript"> document.write("<p>My first paragraph</p>"); </script> </body> </html> }}} * 오픈소스 뒤지기 * GitHub : https://github.com * Google Code : http://code.google.com/intl/ko-KR/ * SVN 툴 Tortoise : http://tortoisesvn.net/ * 소스 í¬ì§€ : http://sourceforge.net/ === ê³¼ì œ === * Quick Sort 짜보기 * APM 깔아오기 * JavaScript 해보기 == 5ì›” 31ì¼ == {{{ #include <stdio.h> #include <stdlib.h> #include <time.h> void main() { int i,j,Input; int temp; int count = 0; int a[10] = {0,}; srand(time(NULL)); printf("초기 ë°ì´í„°\n"); /* for(i=0;i<10;i++) { // ìˆ«ìž 10ê°œ ëžœë¤ ìƒì„± a[i] = rand()%10+1; printf("%3d", a[i]); } */ do{ temp = rand()%10+1; for(i = 0;i<10;i++){ if(a[i] == temp){ temp = rand()%10+1; i = -1; } } a[count++] = temp; }while(count != 10); for(i = 0;i<10;i++) printf("%d ",a[i]); puts("\n---------------------------------"); /* for(i=0;i<10;i++) { for(j=0;j<9;j++) { if(a[j]>a[j+1]) { temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } }버블소트 */ /* for(i=0;i<10;i++) { for(j=i+1;j<10;j++) { if(a[i]>a[j]) { temp = a[i]; a[i] = a[j]; a[j] = temp; } } }ì„ íƒ ì†ŒíŠ¸ */ for(i=0;i<10;i++) { // ê²°ê³¼ ì¶œë ¥ printf("%3d", a[i]); } puts(""); } }}} * ê³¼ì œ : APM 깔아오기, 소트(버블, ì„ íƒ) 5개짜리 ë°°ì—´ ì˜ˆì œë¥¼ ë§Œë“¤ê³ ì†ìœ¼ë¡œ ì •ë ¬í•´ì˜¤ê¸°. {{{ #include<stdio.h> int factorial(int n){ if(n == 1) return 1; return n * factorial(n-1); } int summary(int n){ if(n == 1) return 1; return n + summary(n-1); } int main(){ int i,j,sum = 0, fact =1; int input = 5; for(i = 1; i <= input;i++){ sum += i; fact *= i; } printf("sum : %d, fact : %d\n",sum,fact); sum = 0 ; fact =1; fact = factorial(input); sum = summary(input); printf("sum : %d, fact : %d\n",sum,fact); return 0; } }}} * ìˆ™ì œ : ì†ìœ¼ë¡œ ì¨ì˜¤ê¸°. == 6ì›” 1ì¼ == * ë°•ë„ê±´ Part * 복습 {{{ <html> <head> <script language = "javascript"> left = 10; imagename = 1; function key(){ var image=document.getElementById("demo"); image.style.position="absolute"; if(imagename == 4){ imagename = 1; } alert(left); left += 1; image.src = imagename + '.jpg'; imagename = imagename + 1; image.style.left = left; //image.style.left=(left+1)+'px'; //var l=document.getElementById("demo").style.left += 1; } </script> </head> <body onKeyDown='key();'> <img src = "1.jpg" id="demo" top = 10 left = 10> </body> </html> }}} * ì´ë¯¸ì§€ 변경ë˜ëŠ” 기능 추가. * Javascriptê²Œìž„ì€ Tiny Farm? ë†ìž¥ ê²Œìž„ì„ ë§Œë“¤ë„ë¡ í•´ë³´ìž. * ìš°ì„ ì €ìž¥ 기능 없는거 -> ìš°ì„ ë¹¼ìž. 서버 ??? 미쳤ëƒ. ì¿ í‚¤?? ì•„ 힘들어. 패스 * ë†ìž¥ 10 by 10ì •ë„ì— ë†ìž‘ë¬¼ì„ í´ë¦í•˜ë©´ ì¼ì •ì‹œê°„ë™ì•ˆ ìžë¼ì„œ ì´ë¯¸ì§€ê°€ 바뀌는걸로 하ìž. * ê·¸ë¦¬ê³ ë‹¤ ìžë¼ë©´ ìˆ˜í™•ì´ ë˜ê²Œ 하ìž. ----------------------------------- [새싹êµì‹¤/2012] [새싹êµì‹¤/2011]