Transcript C 11

2007 1학기
11 프로젝트 기초 실습
1
간단한 달력 출력하기
 어느 해의 1월 달력 출력
 년, 월 달력 출력
2
Perfect C
날짜의 총 일수 구하기
 주어진 년 월 일로 날짜수를 구하기
3
Perfect C
날짜의 요일 알아내기
 1년 1월 1일은
 월요일
4
Perfect C
int maxDayMonth[]= {31, 28, 31, 30, 31, 30,
31, 31, 30, 31, 30, 31}
int getTotalDates(int year, int month, int date)
 m년, n월, p일 입력한 경우의 총 일수 계산 : 1/1/1이 1일
 [(m-1)년의 말일까지 일수] + [m년의 1/1~(n-1)월의 말일까지 일수] +
[입력한 날짜 p]
 평년은 365일, 윤년은 366일로
char *EDAY[] = {“SUN”, “MON”, …, “SAT”};
char *KDAY[] = {“일”, “월”, …, “토”};
totalDates = getTotalDates(m, n, p);
day = totalDates % 7;
printf(“%s요일(%s)”, KDAY[day], EDAY[day]);
5
Perfect C
함수 예
void printHead(int year, int month);
// [2008년 1월]과 일~토 출력
void printCalendar(int year, int month);
// 날짜 출력
int getMaxDayMonth(int year, int month);
// 인자의 년, 월에 해당하는 마지막 날을 반환하는 함수
int getTotalDates(int year, int month);
// 인자의 년, 월의 이전 달까지의 총 일수를 반환하는 함수
int getDay(int dates);
// 요일을 반환하는 함수, 총 일자를 7로 나눈 나머지를 반환하는 함수
int isLeap(int year);
// 윤년을 점검하는 함수
6
Perfect C
다양한 달력 출력하기
 년의 모든 달력 출력
7
Perfect C
가위 바위 보
 각 결과를 정수 0, 1, 2
 연산식 (사람 – 컴퓨터 + 3) % 3
8
Perfect C
프로그램 구성 예
 프로그램 구성 예





사람으로 부터 가위, 바위, 보 입력 받음 : 표준입력
컴퓨터 가위, 바위, 보 생성 : 난수발생
사람과 컴퓨터간 무승, 승, 패 판가름 : 연산식 참조
결과 출력 : 조건문 이용
Advanced : 0,1,2이외의 숫자를 입력하면 끝나고 그렇지 않으면
계속 수행
 컴퓨터 가위, 바위, 보 만드는 방법




9
난수에 시드를 주기 위해 함수 srand( time(NULL) )을 호출
#include <stdlib.h>
srand(time(null)); // 매번 난수를 다르게 발생시키기 위하여
rand() % 3 // 0, 1, 2 난수발생
Perfect C
골드바흐의 추측
 골드바흐이 추측
 모든 짝수는 두 개의 소수의 합으로 표현
 다음과 같이 프로그래밍
10
Perfect C