이산수학 2장 연습문제
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

이산수학 2장 연습문제에 대한 보고서 자료입니다.

본문내용

, char *element, unsigned long *subset);
void bitSet(unsigned long *subset, char *ptr);
int confirm(unsigned long subset, char target);
(utils.h) 집합을 만들고 목표 값이 참인지 검사하는 함수의 원형
04. 문제 1번에서 정의된 집합을 이용하여, A, B, C의 원소의 수를 구하는 프로그램을 작성하라.
#include \"subset.h\"
#include \"utils.h\"
#include \"printout.h\"
int main()
{
unsigned long seta = 0L,
setb = 0L,
setc = 0L,
/* A, B, C의 원소의 수가 같으므로 테스트용 집합 추가 */
testset = 0L;
makeSet(\"A\", \"adfhmx\", &seta);
makeSet(\"B\", \"mnprtv\", &setb);
makeSet(\"C\", \"hkqsuy\", &setc);
makeSet(\"T\", \"abcdwxyz\", &testset);
printf(\"\\nnumber of set-A\'s element: %i\\n\", count(&seta));
printf(\"number of set-B\'s element: %i\\n\", count(&setb));
printf(\"number of set-C\'s element: %i\\n\", count(&setc));
printf(\"number of set-T\'s element: %i\\n\", count(&testset));
return 0;
}
(subset.c) 함수의 원소의 수를 구하는 프로그램의 주 함수.
#include
#include
#include
#define UNIVSET 26
#define A_VALUE 97
#define SETBIT(name, n) ((name) |= (01 << (n)))
#define GETBIT(name, n) (((name) >> (n)) & 01)
(subset.h) 원소의 수를 구하는 프로그램의 헤더파일.
#include \"subset.h\"
#include \"printout.h\"
void printSet(char *setname, unsigned long subset)
{
int i;
int status = 0;
printf(\"%s = {\", setname);
for(i = 0; i < UNIVSET; i++)
if(GETBIT(subset, i)) {
if(status != 0)
printf(\", \");
printf(\"%c\", i + A_VALUE);
status = 1;
}
printf(\"}\\n\");
}
void printBit(unsigned long subset)
{
int i;
for(i = 0; i < UNIVSET; i++)
printf(\"%i\", (subset >> i) & 01);
putchar(\'\\n\');
}
(printout.c) 집합과 비트 열을 출력하는 함수.
void printSet(char *setname, unsigned long subset);
void printBit(unsigned long subset);
(printout.h) 집합과 비트 열을 출력하는 함수들의 원형.
#include \"subset.h\"
#include \"printout.h\"
#include \"utils.h\"
void makeSet(char *name, char *element, unsigned long *subset)
{
bitSet(subset, element);
printSet(name, *subset);
printBit(*subset);
}
void bitSet(unsigned long *subset, char *ptr)
{
for(; *ptr != \'\\0\'; ptr++)
if(islower(*ptr))
SETBIT(*subset, *ptr - A_VALUE);
}
int count(unsigned long *subset) /* 원소의 개수를 세는 함수 */
{
int i;
int cnt;
for(i = 0, cnt = 0; i < UNIVSET; i++)
if(GETBIT(*subset, i))
cnt++;
return cnt;
}
(utils.c) 집합을 만들고 원소의 수를 세는 함수.
void bitSet(unsigned long *subset, char *ptr);
void makeSet(char *name, char *element, unsigned long *subset);
int count(unsigned long *subset);
(utils.h) 집합을 만들고 원소의 수를 세는 함수의 원형.
05. 문제 1번에서 정의된 집합을 이용하여, A X B의 원소를 출력하는 프로그램을 작성하라.
#include \"subset.h\"
#include \"utils.h\"
#include \"printout.h\"
int main()
{
unsigned long seta = 0L,
setb = 0L;
int i, j; /* 2중 루프를 위한 변수들 */
int status = 0; /* 쉼표를 찍기 위한 변수 */
makeSet(\"A\", \"adfhmx\", &seta);
makeSet(\"B\", \"mnprtv\", &setb);
printf(\"\\nA X B =\\n{\");
for(i = 0; i < UNIVSET; i++)
if(GETBIT(seta, i)) /* A의 원소 중에서 하나 선택 */
for(j = 0; j < UNIVSET; j++)
if(GETBIT(setb, j)) { /* 선택된 A의 원소와 B의 모든 원소 조합 */
if(status != 0)
printf(\", \");
printf(\"(%c, %c)\", i + A_VALUE, j + A_VALUE);
status = 1;
}
printf(\"}\\n\");
return 0;
}
(subset.c) 카티션곱을 출력하는 프로그램의 주 함수.
(subset.h) (printout.c) (printout.h) (utils.c) (utils.h) 이 파일들은 04번 문제의 파일과 같음

키워드

  • 가격1,000
  • 페이지수10페이지
  • 등록일2009.03.13
  • 저작시기2007.4
  • 파일형식한글(hwp)
  • 자료번호#522818
본 자료는 최근 2주간 다운받은 회원이 없습니다.
다운로드 장바구니