More actions
imported>zeldababo No edit summary |
imported>zeldababo No edit summary |
||
| Line 1: | Line 1: | ||
3주차: 세 살 코딩버릇을 여든까지 | |||
* 배열, 포인터, 어드레스, 함수, Call-by-value, Call-by-reference, 구조체 - | |||
이번 시간에 이건 꼭 해야 돼! (이거 궁서체다 강사 진지하다) | |||
# Wiki에 Ice breaking 및 진행 상황 정리. | |||
# Koistudy.net 과제 확인 및 빠른 복습 후 수업 진행 | |||
# 코딩 Keyword 설명 | |||
# 구글 협업 문서 만들어보기 | |||
# 보기 좋은 코드의 중요성? | |||
코딩을 하다 보면 자신의 코드를 다시 한번 점검해야 하는 경우가 꼭 생깁니다. 하지만 항상 문제가 생기죠. 이게 main문의 괄호(curly bracket : {} ) 인지 for문의 {} 인지 헷갈릴 때가 있죠? 이번 시간 이후에 한번 검색해보세요. 코딩 띄어쓰기, 괄호를 어떻게 붙여야 하는지에 대해서 말입니다. 꼭! 잊지 마세요. 중요하답니다. | |||
유지보수가 어렵게 코딩 하는 방법(이렇게 하진 맙시다) 15페이지까지. | |||
http://www.hanb.co.kr/events/eventview.html?event_id=freebook | |||
# 코딩 실습 | |||
#include<stdio.h> | |||
#include<string.h> | |||
typedef struct _CALORIE{ | |||
char name[40]; | |||
float value; | |||
}CALORIE; | |||
int calregist(CALORIE *, int); | |||
float calcalc(CALORIE *, int); | |||
int main(){ | |||
CALORIE cal[500] = { {"쌀류", 150.0}, {"짜장면", 57.1}, {"국수",133.3}, {"우동",100.0}, {"소면",133.3}, {"식빵", 250.0}}; | |||
int cal_num = 6; | |||
int mode =0; | |||
printf("칼로리 계산기\n"); | |||
while(1){ | |||
printf("등록은 1, 계산은 2, 종료는 0을 입력하세요 : "); | |||
scanf("%d", &mode); | |||
if(mode == 0) break; | |||
else if(mode == 1) cal_num = calregist(cal, cal_num); | |||
else if(mode == 2) printf("총칼로리 : %6.2fkcal\n\n", calcalc(cal, cal_num)); | |||
} | |||
return 0; | |||
} | |||
int calregist(CALORIE *pcal, int num){ | |||
printf("식품명을 입력하세요 : "); | |||
scanf("%s", (pcal+num)->name); | |||
printf("그 식품의 칼로리를 입력하세요[kcal/100g] : "); | |||
scanf("%f", &(pcal+num)->value); | |||
printf("등록되었습니다.\n\n"); | |||
return num+1; | |||
} | |||
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; | |||
} | |||
# 코딩 KeyWord (선생님들께 질문해보세요) | |||
3.1 함수(function)는 뭐고. 왜 생겼는가? 쓰면 좋은 점은? 함수의 범위(Scope)란? | |||
3.2 같은 타입(Type)의 변수를 한꺼번에 관리해주는 배열(array)란? | |||
3.3 메모리 주소(address)와 변수의 메모리 할당. 그리고 *포인터 (pointer) | |||
3.4 Call-by-value, Call-by-reference.? 무엇이 다른가? | |||
3.5 자기자신을 부르는 재귀 함수? | |||
3.6 난 나만의 Type을 만들겠어 구조체(struct)와 typedef! | |||
. | |||
모르는 것이 생겼을 때 | |||
C Library reference Guide http://www.acm.uiuc.edu/webmonkeys/book/c_guide/ | |||
WinAPI http://winapi.co.kr/ 를 찾아보시는 것을 항상 추천 드립니다. | |||
# 과제 | |||
컴퓨터 공학을 다니면서 우리와 관련된 것을 알아보는 것은 당연하겠죠? | |||
컴퓨터 관련 자유주제에 대해 조사해오세요~! 구글 협업문서로 조를 이루어 해봅시다. | |||
강사의 계정에 구글 협업 문서 만들기 -> 학생들의 계정 공유 등록 까지 마쳐봅시다. | |||
Revision as of 18:18, 1 April 2012
3주차: 세 살 코딩버릇을 여든까지
- 배열, 포인터, 어드레스, 함수, Call-by-value, Call-by-reference, 구조체 -
이번 시간에 이건 꼭 해야 돼! (이거 궁서체다 강사 진지하다)
- Wiki에 Ice breaking 및 진행 상황 정리.
- Koistudy.net 과제 확인 및 빠른 복습 후 수업 진행
- 코딩 Keyword 설명
- 구글 협업 문서 만들어보기
- 보기 좋은 코드의 중요성?
코딩을 하다 보면 자신의 코드를 다시 한번 점검해야 하는 경우가 꼭 생깁니다. 하지만 항상 문제가 생기죠. 이게 main문의 괄호(curly bracket : {} ) 인지 for문의 {} 인지 헷갈릴 때가 있죠? 이번 시간 이후에 한번 검색해보세요. 코딩 띄어쓰기, 괄호를 어떻게 붙여야 하는지에 대해서 말입니다. 꼭! 잊지 마세요. 중요하답니다.
유지보수가 어렵게 코딩 하는 방법(이렇게 하진 맙시다) 15페이지까지. http://www.hanb.co.kr/events/eventview.html?event_id=freebook
- 코딩 실습
#include<stdio.h>
#include<string.h>
typedef struct _CALORIE{
char name[40];
float value;
}CALORIE;
int calregist(CALORIE *, int);
float calcalc(CALORIE *, int);
int main(){
CALORIE cal[500] = { {"쌀류", 150.0}, {"짜장면", 57.1}, {"국수",133.3}, {"우동",100.0}, {"소면",133.3}, {"식빵", 250.0}};
int cal_num = 6;
int mode =0;
printf("칼로리 계산기\n");
while(1){
printf("등록은 1, 계산은 2, 종료는 0을 입력하세요 : ");
scanf("%d", &mode);
if(mode == 0) break;
else if(mode == 1) cal_num = calregist(cal, cal_num);
else if(mode == 2) printf("총칼로리 : %6.2fkcal\n\n", calcalc(cal, cal_num));
}
return 0;
}
int calregist(CALORIE *pcal, int num){
printf("식품명을 입력하세요 : ");
scanf("%s", (pcal+num)->name);
printf("그 식품의 칼로리를 입력하세요[kcal/100g] : ");
scanf("%f", &(pcal+num)->value);
printf("등록되었습니다.\n\n");
return num+1;
}
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;
}
- 코딩 KeyWord (선생님들께 질문해보세요)
3.1 함수(function)는 뭐고. 왜 생겼는가? 쓰면 좋은 점은? 함수의 범위(Scope)란? 3.2 같은 타입(Type)의 변수를 한꺼번에 관리해주는 배열(array)란? 3.3 메모리 주소(address)와 변수의 메모리 할당. 그리고 *포인터 (pointer) 3.4 Call-by-value, Call-by-reference.? 무엇이 다른가? 3.5 자기자신을 부르는 재귀 함수? 3.6 난 나만의 Type을 만들겠어 구조체(struct)와 typedef! . 모르는 것이 생겼을 때 C Library reference Guide http://www.acm.uiuc.edu/webmonkeys/book/c_guide/ WinAPI http://winapi.co.kr/ 를 찾아보시는 것을 항상 추천 드립니다.
- 과제
컴퓨터 공학을 다니면서 우리와 관련된 것을 알아보는 것은 당연하겠죠? 컴퓨터 관련 자유주제에 대해 조사해오세요~! 구글 협업문서로 조를 이루어 해봅시다. 강사의 계정에 구글 협업 문서 만들기 -> 학생들의 계정 공유 등록 까지 마쳐봅시다.