본문내용
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번 문제의 파일과 같음
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번 문제의 파일과 같음
추천자료
컴퓨터과학개론 한금희,함미옥 공저 3장 연습문제
fundamentals of microelectronics_razavi Solution ch_06 전자회로 연습문제 솔루션
운영체제 - William Stallings 운영체제 교재 연습문제 정답모음
William Stallings - Operating systems - Chapter8 연습문제 풀이
William Stallings - Operating systems - Chapter7 연습문제 풀이
William Stallings - Operating systems - Chapter6 연습문제 풀이
William Stallings - Operating systems - Chapter5 연습문제 풀이
William Stallings - Operating systems - Chapter4 연습문제 풀이
William Stallings - Operating systems - Chapter3 연습문제 풀이
토질역학(구미서관)-8장 레포트 연습문제
인간공학 1장, 2장, 3장 연습문제 풀이
IT융합 시대의 멀티미디어 배움터 2.0 1장.2장 연습문제
1장. 리눅스의 기본 개념과 프로그램 작성 연습문제
천인국 C언어로 쉽게 풀어쓴 자료구조 2장 연습문제 정답 chapter2