Contents
- 1. 참여� 명단
- 2. 수업진행 �황
- 3. 목표
- 4. ê°•ì�˜ ì •ë³´
- 5. 6월 13�
1. 참여ìž� 명단 ¶
| 학번 | �름 |
| 06 | 김준� |
| 12 | 한�표 |
| 12 | 용�훈 |
| 12 | 박�건 |
2. 수업진행 ìƒ�황 ¶
| �름 | 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. 목표 ¶
- 김준ì„� : 기존 기íš�í–ˆë�˜ 커리í�˜ëŸ¼ 프로ì �트 결과물 3ê°œ ì�´ìƒ�. ê·¸ë¦¬ê³ C언어ì�˜ 파ì�¼ìž…ì¶œë ¥ ë°� 네트워í�¬ 프로그래ë°�까지 ê°€ë¥´ì¹˜ê² ë‹¤. 그외 ìž¡ì‹�ì�€ +@
- 박�건 : 컴퓨터� 관한 여러가지 잡 지� + 프로그램 사용법 습�, 네트워� 프로그래�, 게임 만들어보기.
- ìš©ìƒ�훈 : 기본ì �ì�¸ c언어와 안드로ì�´ë“œ,ì•„ì�´í�° 어플ì�„ 만들기 프로그래ë°� 사용법 습ë“�.
- 한ì›�표 : 다양한 컴퓨터 프로그램ì—� ì�µìˆ™í•´ì§€ê³ 커리í�˜ëŸ¼ì�„ 열심히 ë”°ë�¼ê°€ê² 다.
4.2. 1회차(2012/3/21) ¶
- ê°œì�¸ì �ì�¸ 얘기 ë°� 수준 íƒ�색
- Linux�서 GCC를 사용한 컴파� 시범
- Wiki작성 법 ë°� íšŒê³ ìž‘ì„±ë²• ë…¼ì�˜
- 진로 �색(?)
4.2.1. íšŒê³ ¶
- 한ì›�표 : 새싹êµ�실 첫 수업ì�´ì—ˆë‹¤. ë°•ë�„ê±´, ìš©ìƒ�훈ì�´ë�¼ëŠ” ë�™ê¸°ë“¤ê³¼ ê°™ì�´ 하게ë�˜ì—ˆëŠ”ë�° 앞으로 친해졌으면 좋곘다. 처ì�Œì—�는 새싹êµ�실ì�„ 하는 ì�´ìœ 와, 진행방ì‹� 등ì—� 대해 ì„ ë°°ë‹˜ê»˜ 설명ì�„ 들었다. ê·¸ë¦¬ê³ wiwkiì—� 가입해서 앞으로 우리가 새싹êµ�실ì—�서 배운것, ëŠ�낀것ì�„ ì§�ì ‘ íŽ¸ì§‘í• ìˆ˜ 있다는 것ì�´ 좋았다. ê·¸ 후ì—� Virtual Boxë�¼ëŠ” 것으로. Hello Worldë�¼ëŠ” 프로그램ì�„ 짯는ë�° 새로운 환경ì�„ ë³¼ 수 있어서 좋았지만 한편으로는 처ì�Œë³´ëŠ” 환경ì�´ë�¼ 어색한 ê°�ì�´ 있었다. ê·¸ë¦¬ê³ ì–´í”Œ 프로그램ì�„ 보여주셨는ë�°. 친구들ì�€ ì�´í•´í•˜ëŠ”ê²ƒ ê°™ì�€ë�° 나만 잘 못하는 것 같았다.
- ìš©ìƒ�훈 : 오늘 경험했ë�˜ ì�¼ì�€ 새싹êµ�실ì�€ "어떻게 ë�œë‹¤"ë�¼ê³ 설명하는 시간ì�´ì—ˆë‹¤. 처ì�Œì—� 새싹êµ�실ì—� 들어가면 무지 ì–´ìƒ‰í• ê²ƒ 가았는ë�° ê·¸ë ‡ì§€ 않았다. 컴퓨터 3대를 앞ì—�ë‘�ê³ wikiì—� 한해서 처ì�Œ ì�´ì•¼ê¸°ë¥¼ 들었다. ìƒ�소한것ì�´ì–´ì„œ ë§Žì�´ ì‹ ê¸°í•˜ì…¨ë‹¤. ê·¸ë¦¬ê³ ë²„ì¸„ì–¼ 박스 ë°›ê³ ë¦¬ëˆ…ìŠ¤ 환경를 처ì�Œë³´ì•˜ë‹¤. 재미있ì�„것 같다. ê·¸ë¦¬ê³ ê°€ìž¥ ì‹ ê¸°í•œ ì�¼ì�€ ê³ ë“±í•™êµ� ì„ ë°°ë‹˜ì�¸ 박성현 ì„ ë°°ë‹˜ì�„ 뵙는ë�° 너무 ì‹ ê¸° 하였다. ë¨¼ì € ì�¸ì‚¬ë¥¼ ë“œë ¸ì–´ì•¼ 했는ë�°.. ì�¸ì‚¬ë“œë¦¬ê³ ì „í™”ë²ˆí˜¸ë�„ ì•Œë ¤ë“œë ¸ë‹¤. ì‹ ê¸°í•œ 하루였다.
- ë°•ë�„ê±´ : 캡스톤설계실(208-216)ì—�서 김준ì„� ì„ ë°°ë‹˜ê³¼, 한ì›�표, ìš©ìƒ�훈 ë�™ê¸°ë“¤ê³¼ ê°™ì�´ 3ì›” 21ì�¼ PM6시ì—� gcc, Linux, android example, wiki작성법 등ì�„ ë°°ì› ë‹¤. 나랑 비슷해보ì�´ëŠ” 친구가 있어서 ê°™ì�´ 프로ì �트 í• ìˆ˜ 있ì�„것 같다.
- 김준ì„� :ìš©ìƒ�훈, 한ì›�표, ë°•ë�„ê±´ì�„ ì�´ë�Œê³ 새싹ì�„ 캡실ì—�서 진행해보았다. 우리반ì�˜ ì§•í�¬ìŠ¤ëŠ” ë��나지 않았다. ê¼ ê±¸ëŸ¬ë‚´ë�„ 기본ì�„ 아는 친구들ì�´ 아무것ë�„ 모르는것처럼 들어와. 여튼, 그래ë�„ 새로 새싹ì�„ ê°€ë¥´ì¹ ìˆ˜ ìžˆê³ ì¢€ ì•Œê³ ìžˆëŠ” í•™ìƒ�들ì�´ 들어와서 좋다. ê°•ì�˜ë¥¼ 다ì�Œì‹œê°„ì—� íŒ�íŒ�나가ë�„ ë� 것 같다. 2주차ì—� 대해 코딩하는것ì�´ë‚˜ 앞으로ì�˜ 진로ì—� 대해 ë¬¼ì–´ë³´ì•˜ê³ í˜„ìž¬ ì „ì²´ì �ì�¸ ì§„ë�„나 수준ì�„ ê°„ì ‘ì �으로 알 수 있게 ë�œê²ƒì�´ 가장 í�° 성과다.
4.3.2. êµ�육 ë‚´ìš© ¶
- 장소 시간 : 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 ë¬¸ì œë¥¼ 풀어보았습니다
4.3.3. ì½” 딩 ¶
- 한ì›�표 - 세 ì •ìˆ˜ ì •ë ¬í•˜ê¸°
#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;
}
4.3.4. 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;
}
4.4.1. ICE breaking ¶
- ë°•ë�„ê±´ - 게임했습니다. 카트ë�¼ì�´ë�” 했습니다. 1주ì�¼ ë‚´ë‚´. 프로그래ë°�했습니다. map editor만드는거 굉장히 노가다ì—�ìš”. 빡ì³�ìš”. í•™êµ�수업ì�€ ì„ ëŒ€ê°€ 매우 ì§œì¦�나요. C는 í• ë§Œí•´ìš”. êµ�수님ì�´ í›…í›… 지나가는ë�° ì „ ìƒ�관없ì�Œ. 나 좀 짱임. ê³ ë“±í•™êµ� 친구들과 만나서 ë§‰ì°½ê³ ê¸° 먹ì�Œ. ë�¼ì§€ ë�˜ê² ì�Œ.
- ìš©ìƒ�훈 - ê³¼ì œì—� 치여살ì�Œ. í•™êµ� ì§œì¦�남. ê³ ë“±í•™êµ� 친구 ì‚´ì§� ë§Œë‚˜ê³ . 주ë§�ì—�는 MT를 ë¹ ì§€ê³ í• ë¨¸ë‹ˆ ëŒ�ì—� 갔습니다. 참잘했어요. ê·¸ë¦¬ê³ ê°€ì¡±ë“¤ 외ì‹�했었ì�Œ. ê³¼ì œí–ˆì�Œ. 소설ì�´ë‚˜ ìž�기계발서 ì�½ëŠ”ê±° 좋아해서 그거 ì�½ê³ . ìš´ë�™í–ˆìŠµë‹ˆë‹¤. 매ì�¼. 달리기. 웨ì�´íЏë�„ í•˜ê³ ì‚½ë‹ˆë‹¤. ì „ ê±´ê°•í•´ 질꺼ì—�ìš” 뿌잉뿌잉 *^^*
- 김준ì„� - ì•„ì�´íŒ¨ë“œ 개발ì�„ 하는ë�° ë�°ë“œë�¼ì�¸ì�€ 지났어. 그래서 êµ�수님께 사과메ì�¼ì�„ 보냈어. ê·¸ë¦¬ê³ ìº¡ìŠ¤í†¤ 설계실ì—�서 새로운 프로ì �트를 ì œì•ˆì�„ 받습니다. ì›�래 댄스스í�¬ì¸ ë�™ì•„리를 í•˜ê³ ìžˆëŠ”ë�° ë°œë ˆë¥¼ 배우게 ë�¬ì�Œ. 수요ì�¼ë§ˆë‹¤ ìš´ë�™ê³¼ ê±´ê°• ì¡°êµ�활ë�™ì�„ í•˜ê³ ìžˆê³ ëª©ìš”ì�¼ì�€ êµ�수님 ì• ë¥¼ ë´�줌. ì–´ì œ ì§€ì�¸ì¤‘ì—� ìƒ�당한 ë¶„ì�´ 있어서 밤새서 ì§€ì¼œì£¼ê³ í•œë¹› 리ë�”스ì—�서 ë�…후ê°�쓰는거 í–ˆì�Œ. 휴학ìƒ�ì�¸ë�° í•™êµ�ì—� 24시간 ìžˆê³ ì˜�ì–´í•™ì›� 10시ì—� ì�¼ì–´ë‚˜ëŠ”ê±° 너무 힘듬. 난 아침ì—� 못ì�¼ì–´ë‚˜~ ê·¸ë¦¬ê³ ìƒˆì‹¹ 강사들 êµ�육하는 ê±° 4타임 너무 귀찮ì�Œ=ã…‚= 강사가 못알아 먹어!!!! ë� 여튼 ì›�표ë�„ 와서 4시간 와서 ë°°ìš°ê³ ê°”ì�Œ. ì�¼ì£¼ì�¼ì�´ 부족함. 시간ì�„ 대출해줘!
4.4.3.1. 한ì›�표 ë³´ê°• 수업(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)
- a�름�는 첫번째 주소가 들어가있습니다.
- 구조체와 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;
}
4.4.3.2. ë°•ë�„ê±´ ìš©ìƒ�훈 수업(2012/4/8) ¶
- 한�표 수업과 같�
- 둘다 ìž˜ì•Œê³ ìžˆì–´ì„œ ê°œë…�ì �ì�¸ 부분ì�„ ì„¤ëª…í•˜ê³ ì§€ë‚˜ê°�
- 함수형 í�¬ì�¸í„° 설명 - 함수ì�˜ ì�´ë¦„ì—�는 주소값ì�„ ê°€ì§€ê³ ìžˆì–´ì„œ í�¬ì�¸í„°ë¡œ ì œì–´í• ìˆ˜ 있다.
- 함수는 변수가 남아� 실행� �다?
#include<stdio.h>
int func(){
return 0;
}
int main(){
printf("%d\n",func(1,2,3,4));
return 0;
}
- 박�건과 용�훈 멘붕하는거 봄
4.4.3.3. ë°•ë�„ê±´ ìž�율 학습 ¶
- 게임ì�„ 만들때 ì�´ë¯¸ì§€ë¥¼ 그린다. 200개가 넘는 그림ì�„ 어떻게 ì œì–´í• ê²ƒì�¸ê°€ë¥¼ 논함.
- C++ì�´ë�¼ë©´ ì�´ë¯¸ì§€ë¥¼ 그리는 ê°�체를 Templete로 만들어서 paint()함수ì—� 그래픽 *를 넘겨서 ìž�기가 알아서 그리게하는것ì�´ 좋다. listì—� ë„£ê³ for문만 ë�Œë¦¬ë©´ ë��나니까
- C++ì�´ë�¼ë©´ ì�´ë¯¸ì§€ë¥¼ 그리는 ê°�체를 Templete로 만들어서 paint()함수ì—� 그래픽 *를 넘겨서 ìž�기가 알아서 그리게하는것ì�´ 좋다. listì—� ë„£ê³ for문만 ë�Œë¦¬ë©´ ë��나니까
- Thread� 간한 간단한 설명
- http://forum.falinux.com/zbxe/?document_srl=441104 를 참조하면 í†µì‹ í”„ë¡œê·¸ëž¨ì�„ 짤 수 있ì�„ 것ì�´ë‹¤.
- http://forum.falinux.com/zbxe/?document_srl=441104 를 참조하면 í†µì‹ í”„ë¡œê·¸ëž¨ì�„ 짤 수 있ì�„ 것ì�´ë‹¤.
4.5.1. 한ì›�표 ë³´ê°• ¶
- 파ì�¼ ìž…ì¶œë ¥ì�´ 왜 필요한가 설명함
- ìš´ì˜� ì²´ì œì™€ 메모리(파ì�¼ í�¬í•¨)ì�˜ 관계를 설명
- ìš´ì˜�ì²´ì œëŠ” 파ì�¼ 시스템ì�„ 관리합니다. ê´€ë ¨í•´ì„œ ì�´ë²ˆì—� 가르ì³�주는것ì�€ *(í�¬ì�¸í„°: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ê°€ 똑같ì�´ ì“°ì�¼ìˆ˜ 있는 ì˜ˆì œë¥¼ ë³´ì—¬ì£¼ì—ˆì£ .
- ìš´ì˜�ì²´ì œëŠ” 파ì�¼ 시스템ì�„ 관리합니다. ê´€ë ¨í•´ì„œ ì�´ë²ˆì—� 가르ì³�주는것ì�€ *(í�¬ì�¸í„°:Pointer)ê´€ë ¨í•´ì„œ FILE 구조를 메모리 참조를 통해서 하는것ì�„ ì•Œë ¤ì£¼ê²Œ ë�˜ì—ˆìŠµë‹ˆë‹¤. 파ì�¼(File)ì�€ 메모리주소로부터 시작ë�˜ê³ ìš´ì˜�ì²´ì œë¥¼ ì�´ë¥¼ 관리하기 때문ì—� Cì—�서 ì§€ì›�하는 ë�¼ì�´ë¸ŒëŸ¬ë¦¬ë¥¼ 통해 ìš´ì˜�ì²´ì œë¡œ 부터 파ì�¼ì�„ 관리하는 ì •ë³´ë¥¼ 가진 FILE 구조체를 불러오게 ë�©ë‹ˆë‹¤. 그래서 우리는 *를 통해 주소값ì�„ ë”°ë�¼ê°€ì„œ FILE구조체로 ê·¸ ì •ë³´ë¥¼ 얻어오게 ë�˜ì£ . Good Good!
#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파ì�¼ì�„ ì˜¬ë ¤ì„œ 다ì�Œì£¼ì—� 보여주기.
4.5.2. ìš©ìƒ�훈, ë°•ë�„ê±´ ¶
- 한�표와 같�.
- �명� 목표� 대해 얘기함.
- ìš©ìƒ�훈ì�€ iOS개발ì�„ í•´ë³´ê³ ì‹¶ë‹¤ê³ í•¨. 경험시켜주기 위해 ê³ í•œì¢… ì¡°ì�¸.
- ë� ë°°ì› ë‹ˆ? - 김준ì„�
- ë� ë°°ì› ë‹ˆ? - 김준ì„�
- 박�건� 프로그램 �줌.
- Scrollì�„ 옮길때 ë°±ë¶„ë¥ ì�´ 잘못ë�˜ì—ˆëŠ”ë�° %를 ì�¨ì„œ ì œëŒ€ë¡œ ìž‘ë�™í•˜ì§€ 않ì�Œ
- ë°±ë¶„ë¥ ê³µì‹� (x/최대값) * 100 ì�„ 했는ë�° 안ë�¨. ì›�ì�¸ì�€ int로 ë�˜ì–´ 0ì�´ ìž�꾸 리턴ë�˜ì„œ 그랬ì�Œ. 그래서 (float)(x/최대값) * 100ì�„ ì§‘ì–´ë„£ì�Œ.
- Scrollì�„ 옮길때 ë°±ë¶„ë¥ ì�´ 잘못ë�˜ì—ˆëŠ”ë�° %를 ì�¨ì„œ ì œëŒ€ë¡œ ìž‘ë�™í•˜ì§€ 않ì�Œ
4.6.1. ë°•ë�„ê±´, ìš©ìƒ�훈 ì°¸ì„� ¶
- 질문 : ìš©ìƒ�훈 -> ì œ ì�¸ìƒ�ì—� 대해 ì•Œê³ ì‹¶ì–´ìš”. ìž�ì‹ ê°�ë�„ 없는것 ê°™ê³ ìš”.
- 답변 : 지금ì�€ 알수 없지만 ë§Žì�€ê²ƒì�„ 경험해 보았으면 ì¢‹ê² ìŠµë‹ˆë‹¤. 지금 ì�´ê²ƒì�´ 아니ë�¼ë©´ 지금 ë‹¬ë ¤ë‚˜ê°ˆê¸¸ì—� 대해 ì‹ ê²½ì“°ê³ ìž�ì‹ ê°�ì�„ 가졌으면 ì¢‹ê² ìŠµë‹ˆë‹¤. 순ìž�ì�˜ 성악설과 ì›�효대사ì�˜ 해골바가지를 예를 들면서 ìž�ì‹ ì�˜ 마ì�Œì�€ ë§�그대로 마ì�Œë¨¹ê¸°ì—� ë‹¬ë ¸ë‹¤ê³ ë§�í–ˆì£ . ìœ„ì„ ì�˜ 한ìž� ì •ì�˜ëŠ” 僞善! 하지만 ê±°ì§“ 위(僞)는 단순히 ìž�ì‹ ì�˜ ì•…(惡)ì�„ 위해 ì†�ì�¸ë‹¤ëŠ” ê°œë…�ì�´ 아닙니다. 사람ì�´ 사람ì�„ 위해 ê±°ì§“ì�„ 행하며 사람ì�˜ 마ì�Œìœ¼ë¡œ ì•…(惡)ì�„ ë‹¤ìŠ¤ë ¤ ì„ (å–„)ì—� 넣는것ì�„ ë§�하게 ë�©ë‹ˆë‹¤. ìœ„ì„ ì�„ 단순히 거짓으로 ìƒ�ê°�하지 ë§�란 얘기. 그래서 사람간ì�˜ ì˜ˆì ˆì�´ë‚˜ 규율 법칙ì�˜ 기반ì�´ ìƒ�기게 ë�¬ì£ (ì�´ 얘기는 ì£¼ì œì—�서 벗어난 딴얘기 입니다). 몸ì�´ ë¨¼ì €ëƒ� 마ì�Œì�´ ë¨¼ì €ëƒ�를 ì •í•˜ì§€ 마세요. ìš°ì„ í•´ë³´ë©´ ìž�연스럽게 ë”°ë�¼ì˜¤ê²Œ ë�˜ê¸°ë�„한답니다. 필요하다면 Just do it! 하지만 ì�´ê²Œ í•ìƒ� 옳ì�€ê±´ ì•„ë‹ˆì£ . ì„ íƒ�ì�€ ìž�ìœ . ëŠ¥ë ¥ì¹˜ì�˜ 오ê°�형ë�„ ë³´ì—¬ì£¼ì—ˆì£ . 다른사람ì�´ 가지지 못한 장ì �ì�„ ë‹¹ì‹ ì�€ ê°€ì§€ê³ ìžˆìŠµë‹ˆë‹¤. Whatever! 힘들때는 ìƒ�담하는것ë�„ ì¢‹ê³ ì‹œê°„ì�„ 죽여보는것ë�„ 한방법입니다. í•ìƒ� ë‹¹ì‹ ì�´ ì¤‘ìš”í•œê±°ì£ .
- 답변 : 지금ì�€ 알수 없지만 ë§Žì�€ê²ƒì�„ 경험해 보았으면 ì¢‹ê² ìŠµë‹ˆë‹¤. 지금 ì�´ê²ƒì�´ 아니ë�¼ë©´ 지금 ë‹¬ë ¤ë‚˜ê°ˆê¸¸ì—� 대해 ì‹ ê²½ì“°ê³ ìž�ì‹ ê°�ì�„ 가졌으면 ì¢‹ê² ìŠµë‹ˆë‹¤. 순ìž�ì�˜ 성악설과 ì›�효대사ì�˜ 해골바가지를 예를 들면서 ìž�ì‹ ì�˜ 마ì�Œì�€ ë§�그대로 마ì�Œë¨¹ê¸°ì—� ë‹¬ë ¸ë‹¤ê³ ë§�í–ˆì£ . ìœ„ì„ ì�˜ 한ìž� ì •ì�˜ëŠ” 僞善! 하지만 ê±°ì§“ 위(僞)는 단순히 ìž�ì‹ ì�˜ ì•…(惡)ì�„ 위해 ì†�ì�¸ë‹¤ëŠ” ê°œë…�ì�´ 아닙니다. 사람ì�´ 사람ì�„ 위해 ê±°ì§“ì�„ 행하며 사람ì�˜ 마ì�Œìœ¼ë¡œ ì•…(惡)ì�„ ë‹¤ìŠ¤ë ¤ ì„ (å–„)ì—� 넣는것ì�„ ë§�하게 ë�©ë‹ˆë‹¤. ìœ„ì„ ì�„ 단순히 거짓으로 ìƒ�ê°�하지 ë§�란 얘기. 그래서 사람간ì�˜ ì˜ˆì ˆì�´ë‚˜ 규율 법칙ì�˜ 기반ì�´ ìƒ�기게 ë�¬ì£ (ì�´ 얘기는 ì£¼ì œì—�서 벗어난 딴얘기 입니다). 몸ì�´ ë¨¼ì €ëƒ� 마ì�Œì�´ ë¨¼ì €ëƒ�를 ì •í•˜ì§€ 마세요. ìš°ì„ í•´ë³´ë©´ ìž�연스럽게 ë”°ë�¼ì˜¤ê²Œ ë�˜ê¸°ë�„한답니다. 필요하다면 Just do it! 하지만 ì�´ê²Œ í•ìƒ� 옳ì�€ê±´ ì•„ë‹ˆì£ . ì„ íƒ�ì�€ ìž�ìœ . ëŠ¥ë ¥ì¹˜ì�˜ 오ê°�형ë�„ ë³´ì—¬ì£¼ì—ˆì£ . 다른사람ì�´ 가지지 못한 장ì �ì�„ ë‹¹ì‹ ì�€ ê°€ì§€ê³ ìžˆìŠµë‹ˆë‹¤. Whatever! 힘들때는 ìƒ�담하는것ë�„ ì¢‹ê³ ì‹œê°„ì�„ 죽여보는것ë�„ 한방법입니다. í•ìƒ� ë‹¹ì‹ ì�´ ì¤‘ìš”í•œê±°ì£ .
- 질문 : 박�건 -> OOP란 무엇�가요?
- 답변 : ê°�ì²´ 지향 프로그래ë°�(Object Oriented Programming)입니다. 프로그래ë°� 설계 기법ì�´ì£ . ì „ì—�ë�„ 얘기했듯ì�´ 프로그래ë°� 설계 기법ì�€ 프로그래머ì�˜ 설계를 ë�„와 코드ì�˜ 반복ì�„ 줄ì�´ê³ ìœ ì§€ë³´ìˆ˜ì„±ì�„ 늘리는ë�° 있습니다. 하지만 ìƒ�산성ì�´ 있는 프로그래머가 ë�˜ê³ 싶다면 API를 ì“°ê³ ì•Œê³ ë¦¬ì¦˜ì�„ 병행해서 공부해야 ë�œë‹¤ëŠ”ê²ƒì�„ ì•Œë¦¬ê³ ì‹¶ìŠµë‹ˆë‹¤. ê·¸ë¦¬ê³ ë‹¨ìˆœížˆ Class를 쓰는것과는 다른기법입니다. ê°�ì²´ 지향ì �으로 설계ë�œ C++ì�´ë‚˜ Javaì—�서 Class를 쓰기때문ì—� Class를 쓰는것ì�´ ê°�체지향으로 ì•Œê³ ìžˆëŠ” 사람들ì�´ 많습니다. 그건... ì•„ë‹ˆì£ . ì ˆì°¨ì§€í–¥ 프로그래ë°�ê³¼ 다른ì �ì�€ 차차 가르ì³� ë“œë¦¬ê² ìŠµë‹ˆë‹¤. Cì—�서 Class란 ê°œë…�ì�´ 설계ìƒ�으로 ë°œì „í–ˆëŠ”ì§€ ì•Œë ¤ë“œë ¸ìŠµë‹ˆë‹¤. 함수 í�¬ì�¸í„°ì™€ êµ¬ì¡°ì²´ì˜€ì£ . 그게 ì›�형입니다.
- 답변 : ê°�ì²´ 지향 프로그래ë°�(Object Oriented Programming)입니다. 프로그래ë°� 설계 기법ì�´ì£ . ì „ì—�ë�„ 얘기했듯ì�´ 프로그래ë°� 설계 기법ì�€ 프로그래머ì�˜ 설계를 ë�„와 코드ì�˜ 반복ì�„ 줄ì�´ê³ ìœ ì§€ë³´ìˆ˜ì„±ì�„ 늘리는ë�° 있습니다. 하지만 ìƒ�산성ì�´ 있는 프로그래머가 ë�˜ê³ 싶다면 API를 ì“°ê³ ì•Œê³ ë¦¬ì¦˜ì�„ 병행해서 공부해야 ë�œë‹¤ëŠ”ê²ƒì�„ ì•Œë¦¬ê³ ì‹¶ìŠµë‹ˆë‹¤. ê·¸ë¦¬ê³ ë‹¨ìˆœížˆ Class를 쓰는것과는 다른기법입니다. ê°�ì²´ 지향ì �으로 설계ë�œ C++ì�´ë‚˜ Javaì—�서 Class를 쓰기때문ì—� Class를 쓰는것ì�´ ê°�체지향으로 ì•Œê³ ìžˆëŠ” 사람들ì�´ 많습니다. 그건... ì•„ë‹ˆì£ . ì ˆì°¨ì§€í–¥ 프로그래ë°�ê³¼ 다른ì �ì�€ 차차 가르ì³� ë“œë¦¬ê² ìŠµë‹ˆë‹¤. Cì—�서 Class란 ê°œë…�ì�´ 설계ìƒ�으로 ë°œì „í–ˆëŠ”ì§€ ì•Œë ¤ë“œë ¸ìŠµë‹ˆë‹¤. 함수 í�¬ì�¸í„°ì™€ êµ¬ì¡°ì²´ì˜€ì£ . 그게 ì›�형입니다.
- 질문 : ë°•ë�„ê±´, ìš©ìƒ�훈 -> ì €ê¸‰ 언어는 왜 필요한가요?
- 답변 : 플래시 프로그래머가 1억개가 넘는 ë°°ì—´ì�„ ì„ ì–¸í•˜ëŠ” 미친짓ì�„ í•œë‹¤ê³ í•´ë´…ì‹œë‹¤. ì�´ 사람ì�´ 1억개가 넘는 ë°°ì—´ì�„ ì„ ì–¸í•˜ê³ ë�Œë¦¬ë©´ 컴퓨터가 ê°�당ì�„ í• ìˆ˜ 있ì�„까요? ì�´ê²Œ 왜 뻗는지 ì�´í•´ë¥¼ ëª»í•˜ì£ ? 여러분ë�„ 마찬가집니다. 지금 C는 ì €ê¸‰ì–¸ì–´ì—� 조금 가까운 편ì�´ë�¼ 메모리 관리가 ë³´ì�´ì§€ë§Œ 스í�¬ë¦½íŠ¸ë§Œ 개발해본 개발ìž�나 방금 ë§�한 플래시 프로그래머는 ì�´í•´ë¥¼ ëª»í•˜ì£ . 메모리ì�˜ 효율ì �ì�¸ 관리와 최ì �화를 위해 í•„ìš”í•˜ë‹¤ê³ ê°„ë‹¨í•˜ê²Œ ìš”ì•½í• ìˆ˜ ìžˆê² ë„¤ìš”.
- 답변 : 플래시 프로그래머가 1억개가 넘는 ë°°ì—´ì�„ ì„ ì–¸í•˜ëŠ” 미친짓ì�„ í•œë‹¤ê³ í•´ë´…ì‹œë‹¤. ì�´ 사람ì�´ 1억개가 넘는 ë°°ì—´ì�„ ì„ ì–¸í•˜ê³ ë�Œë¦¬ë©´ 컴퓨터가 ê°�당ì�„ í• ìˆ˜ 있ì�„까요? ì�´ê²Œ 왜 뻗는지 ì�´í•´ë¥¼ ëª»í•˜ì£ ? 여러분ë�„ 마찬가집니다. 지금 C는 ì €ê¸‰ì–¸ì–´ì—� 조금 가까운 편ì�´ë�¼ 메모리 관리가 ë³´ì�´ì§€ë§Œ 스í�¬ë¦½íŠ¸ë§Œ 개발해본 개발ìž�나 방금 ë§�한 플래시 프로그래머는 ì�´í•´ë¥¼ ëª»í•˜ì£ . 메모리ì�˜ 효율ì �ì�¸ 관리와 최ì �화를 위해 í•„ìš”í•˜ë‹¤ê³ ê°„ë‹¨í•˜ê²Œ ìš”ì•½í• ìˆ˜ ìžˆê² ë„¤ìš”.
- 질문 : 박�건, 용�훈 -> 플래시 프로그램� 왜 쉬운가요?
- 답변 : Windows API를 ì�¨ë³¸ë‹¤ë©´ ì�´í•´í•˜ê² 지만 윈ë�„ìš°ì°½ ë�„우는ë�° 30줄ì�´ 넘는 코드가 í•„ìš”í•˜ì£ ? 한줄로 보여드립니다. javascriptì—�서 alert(5)를치면? ë”± ëœ¨ì£ ? ì°¸~~ ì‰½ì£ ?
- 답변 : Windows API를 ì�¨ë³¸ë‹¤ë©´ ì�´í•´í•˜ê² 지만 윈ë�„ìš°ì°½ ë�„우는ë�° 30줄ì�´ 넘는 코드가 í•„ìš”í•˜ì£ ? 한줄로 보여드립니다. javascriptì—�서 alert(5)를치면? ë”± ëœ¨ì£ ? ì°¸~~ ì‰½ì£ ?
- SVN� 설치시킴
- SVN ê±°ë¶�ì�´ë¥¼ ì�´ìš©í•˜ì—¬ http://nforge.zeropage.org/svn/coordinateedit ì—� 코드를 올리는것ì�„ ì˜¬ë ¤ë†“ì�Œ. ë�„ê±´ì�´ 프로그램ì�„ 그곳ì—� ì˜¬ë ¤ë†“ê³ . ê³ ì³�서 ì˜¬ë ¤ë†“ì�Œ. 받는건 ìˆ™ì œ!!! ì‹ ë‚¨.
- SVN ê±°ë¶�ì�´ë¥¼ ì�´ìš©í•˜ì—¬ http://nforge.zeropage.org/svn/coordinateedit ì—� 코드를 올리는것ì�„ ì˜¬ë ¤ë†“ì�Œ. ë�„ê±´ì�´ 프로그램ì�„ 그곳ì—� ì˜¬ë ¤ë†“ê³ . ê³ ì³�서 ì˜¬ë ¤ë†“ì�Œ. 받는건 ìˆ™ì œ!!! ì‹ ë‚¨.
- 박�건 프로그램 �줌
- for문ì�„ 사용하여 ì�´ë¯¸ì§€ë¥¼ 그리는ë�° for문안ì—�서 for문ì�„ 탈출하는 조건으로 걸어놓ì�Œ. 그래서 ì�´ë¯¸ì§€ ìž�ì²´ê°€ ì•ˆê·¸ë ¤ì§�.
- if문으로 ì�´ìš©í•˜ì—¬ ê°’ì�´ 0 밑으로 ë‚´ë ¤ê°€ë©´ 0으로 초기화를 시키면 잘 ê·¸ë ¤ì§�. ì�´ë²ˆì—�ë�„ 성공!
- for문ì�„ 사용하여 ì�´ë¯¸ì§€ë¥¼ 그리는ë�° for문안ì—�서 for문ì�„ 탈출하는 조건으로 걸어놓ì�Œ. 그래서 ì�´ë¯¸ì§€ ìž�ì²´ê°€ ì•ˆê·¸ë ¤ì§�.
4.7.1. 수업 ë‚´ìš© ¶
- 타�머 -> 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>
4.7.2. 다ì�Œì‹œê°„ ¶
- 타ì�´ë¨¸ì™€ ì—°ë�™í•´ì„œ ì�´ë¯¸ì§€ê°€ ìž�ë�™ìœ¼ë¡œ ì�¼ì •시간ë�™ì•ˆ ì�´ë�™í•˜ëŠ” javascript를 작성
4.8.1. 수업내용 ¶
ìž�ë°” <-> Objective - C? ê³ ë¯¼ì¤‘ ìž�ë°” 스í�¬ë¦½íЏ -> - ìž�바를 배워ë�„ ë�˜ëŠ”ê²ƒ ê°™ê³ . - ìž�ë°”ì—�서 Web View를 추천합니다. C공부를 심ë�„ìžˆê²Œí•˜ê³ ì‹¶ë‹¤. -> Opensource 뒤지기 프로ì �트 소스를 ë³´ë©´ 안는ë�° ì†�ì—� 안ì�µì�Œ -> 다 외울 필요는 없다. ë ˆí�¼ëŸ°ìŠ¤ë¥¼ 만들어ë�¼. 오늘 ê¶�금한거 Sort ì‹ ë‚œë‹¤. - Bubble Sort - Quick Sort를 ë°°ìš°ê³ ì‹¶ë‹¤. 소스를 찾아서 ì§œë³´ê³ -> 다ì�Œì‹œê°„ì—� ê°€ì ¸ì™€. #include<algorithm.h> quicksort( );
- Javascript 실행해보기
- 메모장으로 Html파�� 만듬 -> 안� 소스를 넣�
- 메모장으로 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/
- GitHub : https://github.com
- SVN 툴 Tortoise : http://tortoisesvn.net/
- 소스 �지 : http://sourceforge.net/
4.8.2. ê³¼ì œ ¶
- Quick Sort 짜보기
- APM 깔아오기
- JavaScript 해보기
4.9. 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;
}
- ìˆ™ì œ : ì†�으로 ì�¨ì˜¤ê¸°.
4.10. 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? �장 게임� 만들�� 해보�.
- ìš°ì„ ì €ìž¥ 기능 없는거 -> ìš°ì„ ë¹¼ìž�. 서버 ??? 미쳤ëƒ�. ì¿ í‚¤?? ì•„ 힘들어. 패스
�건�� 작� �장
-> 위ì—�서 ë´�야함. - ìš°ì„ ì €ìž¥ 기능 없는거 -> ìš°ì„ ë¹¼ìž�. 서버 ??? 미쳤ëƒ�. ì¿ í‚¤?? ì•„ 힘들어. 패스
-> keyword : javascript image resize crop
-> http://charism.tistory.com/44
-> ì�´ë¯¸ì§€ ë ˆì�´ì–´ : http://www.jsmadeeasy.com/javascripts/Images/img_layer/img_layer.htm
-> 시작� 합니다.
-> 작물ì�„ 키우는 공간ì�´ 5 by 5 좌표 ì„¤ì •
-> 누르면 작물� ��니다.
-> 대마, 양귀비, 마리화나
-> 작물들� 시간� 따� ��납니다. => Timer를 �용.
-> 좌표를 í�´ë¦í•˜ë©´. jAVASCRIPT ê°�ì²´ê°€ ìƒ�겨서 시간ì—� ë”°ë�¼ ì�´ë¯¸ì§€ê°€ 변해.
-> 투명ë�„ ì˜ˆì œ : http://findfun.tistory.com/348
-> íŠ¹ì • 색 투명처리 : http://jpjmjh.blogspot.kr/2010/02/ie6-png-투명처리-하기.html
4.11.1. 검사 ¶
- ìˆ™ì œ 미í�¡ => 앞으로 ì•Œê³ ë¦¬ì¦˜ 하면 ì†�으로 ë°°ì—´ì�´ 변하는것ì�„ ì�¨ì˜¬ê²ƒ. 해온건 잘했ì�Œ.
- APM 설치완료 => 블로그 ë³´ê³ . 사용법 ì�µížˆê¸°. APM_SETUPí�´ë�”ì—� htdocsí�´ë�”ì—� index.html ê±´ë“¤ê³ ì˜¤ê¸°.
4.11.2. 수업 ¶
- prime 넘버 찾는 ì•Œê³ ë¦¬ì¦˜ 구하기.
//ìž�ë°” 코드 public class MyTest { /** * @param args */ public static void main(String[] args) { ///prime 넘버는 1ê³¼ ìž�ì‹ ì�„ ì œì™¸í•˜ê³ ë‚˜ëˆ ì§€ì§€ 않는 수. int count = 0; boolean flag = false; for(int i = 2; i< 1000; i++){ flag = true; for(int j = 2; j<i; j++){ if( (i % j) == 0) flag = false; } if(flag == true){ System.out.println(i + "is prime Number!"); count++; } } System.out.println("Count : " + count); } }
4.11.3. ìˆ™ì œ ¶
- APM_SETUPí�´ë�”ì—� htdocsí�´ë�”ì—� index.htmlì�„ 하기. http://www.w3schools.com/js/default.asp 가서 javascriptì˜ˆì œ index.htmlì—� ìž‘ì„±í•˜ê³ ë�Œì•„가는것 확ì�¸.
5.1. ìš©ìƒ�훈 ¶
- 함수��터 질문 : int *compare(int a, int b), function call� �한 stack(FILO : first in last out)� 내부 변화. int형 ��터는 int형으로 반환해야지?
- Class얘기
- 시험기간 : http://cau.ac.kr/~bongbong/c12/ 가서 final exam� 준비해�
- 스í�¬ë¦½íЏ 언어가 나오는 ì�´ìœ c언어 asam
- http://www.ted.com/talks/view/lang/ko//id/799 우리가 게임ì�„ 해야하는ì�´ìœ .





















