*정*
Bronze개인인증
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 19
검색어 입력폼
  • [자료구조] postfix
    [ 소 스 ]#include "stdio.h"#include "stdlib.h"#define MAX_STACK_SIZE 100 // stack의 최대 크기#define MAX_EXPR_SIZE 100 // 입력받는 수열의 최대 길이typedef enum {lparen, rparen, plus, minus, times, divide, eos, operand} precedence; // token 나열int stack[MAX_STACK_SIZE]; // 전역 배열 ( 오직 top를 통해서만 접근 )static int isp[]={0,19,12,12,13,13,0}; // stack 안에서의 우선순위static int icp[]={20,19,12,12,13,13,0}; // 입력받는 수열에서의 우선순위 ( stack 에 저장되기 전 )char expr[MAX_EXPR_SIZE]; // 입력 받는 문자열 ( 수열, infix )char post[MAX_EXPR_SIZE];int top=-1; // 초기 top 은 01값을 갖고 공백 스택을 나타낸다int i=0;void push(int *top, precedence item);precedence pop(int *top);int eval();precedence get_token(char *symbol, int *n);void postfix();void print_token(precedence print);void push(int *top, precedence item){if(*top>=MAX_STACK_SIZE-1) {printf("stack is full.. n"); // stack이 꽉 찼을 경우 경고 출력exit(1);}stack[++*top]=item; // (++*top; stack[*top];) stack에 item을 채움}precedence pop (int *top){if(*top==-1) {printf("stack is empty.. n"); // stack에 item이 없을 경우 (stack이 비어있을 경우) 오류 key 반환exit(1);}else return (precedence)stack[(*top)--]; // (stack[*top]; (*top)--;) stack에서 최상위에 있는 item을 반환}void postfix(void){char symbol;precedence token;int n=0;top = 0;stack[0]=eos;for(token=get_token(&symbol, &n); token != eos; token=get_token(&symbol,&n)){if(token == operand){post[i++]=symbol;}else if (token == rparen){while(stack[top] != lparen) // 왼쪽 괄호가 나올때 까지 토큰들을 제거해서 출력print_token(pop(&top));pop(&top); // 왼쪽 괄호 버림}else{while(isp[stack[top]] >= icp[token]) // symbol의 isp가 token의 icp보다 크거나 같으면 symbol 을 제거하고 출력print_token(pop(&top));push(&top,token);}}while((token = pop(&top)) != eos )print_token(token);}int eval(){precedence token;char symbol;int op1, op2; // postfix 에서 연산 기호를 만났을 경우 pop하게 될 두개의 operand 가 저장될 변수int n=0; // 수식 문자열을 위한 카운터int top=-1;token = get_token(&symbol, &n);while (token!=eos) { // token 값이 0이 아닌 동안if (token==operand) // 만약 token이 operand 라면push(&top, (precedence)( symbol-'0' )); // stack 에 삽입 ( 삽입 시 symbol의 아스키 값에서 '0'의 아스키값인 48을 빼준다 )else { // token 이 연산 기호 라면, 두 피연산자를 pop하여 연산을 수행한 후, 그 결과를 stack에 삽입op2=pop(&top); // stack에서 삭제 (pop)op1=pop(&top);switch (token) { // token 값이case plus : push(&top, (precedence) (op1+op2)); // plus 이면 pop한 두 operand를 더한다break;case minus : push(&top,eos); // -를 만나면 우선 eos 를 넣어주고if(op2==eos) // 두번째 pop 값이 eos 이면printf("%d",-op1); // -op2 출력else push(&top, (precedence) (op1-op2)); // 아니면 pop 한 두 operand 를 뺀다 ( 나중에 pop한 op1 에서 먼저 pop한 op2를 빼주어야 한다 )break;case times : push(&top, (precedence) (op1*op2)); // times 이면 pop 한 두 operand 를 곱한다break;case divide : push(&top, (precedence) (op1/op2)); // divide 이면 pop 한 두 operand 를 서로 나눈다}}token=get_token(&symbol, &n); // 다음 token 검사}return pop(&top); // 결과 반환}precedence get_token(char *symbol, int *n){*symbol=expr[(*n)++]; // symbol 은 문자표현 ( token 은 symbol 이 열거된 값으로 표현, 명칭으로 반환 )switch (*symbol) {case '(' : return lparen; // 왼쪽 괄호case ')' : return rparen; // 오른쪽 괄호case '+' : return plus; // 합case '-' : return minus; // 차case '*' : return times; // 곱case '/' : return divide; // 나누기case '' : return eos; // 공백, 끝은 0default : return operand; // 오류검사는 하지 않고 기본값은 피연산자}}void print_token(precedence yun){char put;switch(yun){case 0 : put='('; break;case 1 : put=')'; break;case 2 : put='+'; break;case 3 : put='-'; break;case 4 : put='*'; break;case 5 : put='/'; break;case 6 : put=''; break;}post[i++]=put;}void main (){int start, result;printf("Input Infix : ");scanf("%s",expr); // expr에 infix 입력 받음printf("Out Postfix : ");postfix(); // infix => postfixfor(start=0; start < i; start++){expr[start]=post[start];printf("%c",expr[start]);}expr[start]=NULL;result=eval();printf("n** result = %d **n",result); // 계산 결과 값 출력}[ 결 과 ]{1){2){3)4){5){
    공학/기술| 2003.10.21| 5페이지| 1,000원| 조회(466)
    미리보기
  • [토론] 우리나라에 토의.토론 문화가 정착하지 못한 이유
    [ 토의와 토론 ]· 우리나라에 토의·토론 문화가 정착하지 못한 이유☞ 그 동안 우리 사회에서 토론은 낯설게 여겨져 왔다. 일상적 삶과 경험에서 토론을 낯설게 한 것은 사회적 관습과 환경이 집단보다는 개인을, 공공의 참여보다는 개인적 사고와 일을 강조하고, 공동체적 탐구 대신에 권위와 정책을 강조해 왔기 때문이다.토의·토론 문화가 정착하지 못하는 것에 있어서는 학교 교육의 문제가 가장 크다. 학교 교육이 입시 위주의 파행적인 운영으로 이루어져 토의·토론에 대한 경험을 하지 못한 학생이 많다. 현재 많은 학교에서 토의·토론을 이용한 수업 들 다양한 활동을 하고 있지만 아직 그런 경험을 많이 못 해본 학생들이 대부분이다. 이런 교육실정에서 토의·토론 문화를 접해보지 못한 사람들이 교사가 될 경우, 자신이 접하지 않은 것을 학생들에게 가르치기에는 역부족인 악순환을 거듭하게 된다.입시에 시달리고 시간에 쫓기다 보면 자연스레 토의·토론과는 거리가 멀어지게 되는데, 이에 따라 자기 의견을 적극적으로, 또 논리적으로 타당한 근거를 들어 말할 수 있는 기회가 줄어들게 되어 이론적으로는 알고 있으나 실제 경험이 부족한 현상이 생기게 된다.그리고 학교 수업시간에 발표나 질문을 할라치면 주위에서 수군수군 대고, 그 학생을 언짢게 보는 경우도 적지 않다. 이는 자신감을 상실하게 하고, 말하고자 하는 의욕을 떨어뜨리게 된다. 그리고 무엇보다 발표나 질문이 타당하지 못한 행동으로 인식되게 하기 쉽다. 이런 일을 어려서 겪을수록 더 심해질 것이다.학교 교육 외의 원인을 찾자면 지극히 개인주의적인 습관을 들 수 있다. 학습을 예로 들자면, 서로 묻고 답하며 (얘기를 나누며) 공부를 한다기 보다는 자기 혼자서 공부하고, 모르면 자습서, 참고서 등을 먼저 찾고, 스스로 해결하려고 하는 것에 원인을 들 수 있다.또 인터넷 문화를 예로 들 수 있다. 인터넷 문화는 토의·토론 문화 정착에 도움을 주고 있다고 볼 수도 있으나 그것은 일부일 뿐이다. 한 주제를 두고 일부에서는 토의·토론을 벌이고 있을 수 있다. 하지만 그 이면에는 검색 사이트를 통하여 타인의 지식, 생각을 그저 긁어다 옮기는 습관으로 토의·토론의 변질적인 모습을 찾아 볼 수 있다. 이는 타인의 지식을 훔쳐가는 행위일 뿐만 아니라 스스로 생각하는 능력을 저하시킨다. 이는 어떠한 주제에 있어 자신의 생각을 확실히 하는 일을 방해하는 것과 같다.
    인문/어학| 2004.09.16| 1페이지| 1,500원| 조회(686)
    미리보기
  • [C++] 커피자판기 (vending machine) 평가A+최고예요
    {{== 설계도 ==== 소스 ==// Containers.h#ifndef CONTAINERS_H#define CONTAINERS_Hclass Containers {int water;int coffee;int cream;int sugar;int cup;public :Containers();int sel_coffee(int);void dsp_status();void fill(int);};#endif// Moneycase.h#ifndef MONEYCASE_H#define MONEYCASE_H#define MAX_MONEY 20class Moneycase {int won_100;int won_500;public :Moneycase();int In_coin(int);void pull(int);void status();void change();};#endif// Panel.h#ifndef PANEL_H#define PANEL_Hclass Panel {public :void Errormsg(int);void Successmsg(int);};#endif// Vendingmachine.h#ifndef VENDINGMACHINE_H#define VENDINGMACHINE_H#include "Containers.h"#include "Moneycase.h"#include "Panel.h"class Vendingmachine {Containers *Cont;Moneycase *Money;Panel *Msg;public :Vendingmachine();~Vendingmachine();void Run();void User();void Admin();};#endif// Containers.cpp#include #include "Containers.h"#define MAX 100 // 내용물의 최대값/*************************************************************//* Function Name : sel_coffee *//* Input : (int) sel*//* Output : (void) *//* 자판기 내의 재료를 초기화 한다.*//*************************************************************/Containers::Containers(){coffee = MAX;water = MAX;sugar = MAX;cream = MAX;cup = MAX;}/*************************************************************//* Function Name : sel_coffee *//* Input : (int) sel*//* Output : (int) 상태가 0 이하이면 에러 메세지를 리턴*//* 선택한 커피에 따라 커피, 물, 설탕, 크림, 컵을 배출한다.*//*************************************************************/int Containers::sel_coffee(int sel){int cof, wat, sug = 0, cre = 0;if ( cup > 0 ) { // 컵이 있어야 판매switch(sel) {case 1 : // 보통커피 (커피 + 물 + 설탕 + 크림)cof = 1;wat = 3;sug = 2;cre = 1;break;case 2 : // 설탕커피 (커피 + 물 + 설탕)cof = 2;wat = 3;sug = 2;break;case 3 : // 블랙커피 (커피 + 물)cof = 3;wat = 3;}coffee = coffee - cof;water = water - wat;sugar = sugar - sug;cream = cream - cre;cup --;// 상태 검사 : 0 이하이면 판매 할 수 없음으로 이전 상태로 돌려놓는다.// 0 이면 판매할 수 있으나, 0 이하이면 재료가 모자르다는 것의 의미.if ( coffee < 0 ) {coffee = coffee + cof;return 1; // 커피가 모자라서 판매할 수 없습니다.}if ( water < 0 ) {water = water + wat;return 2; // 물이 모자라서 판매할 수 없습니다.}if ((sel == 1 || sel == 2) && sugar < 0 ) {// 보통커피나 설탕커피를 선택했는데 모자랄 경우.sugar = sugar + sug;return 3; // 설탕이 모자라서 판매할 수 없습니다.}if ( sel == 1 && cream < 0 ) {cream = cream + cre;return 4; // 크림이 모자라서 판매할 수 없습니다.}return 0; // 맛있게 드세요..}else return 5; // 컵이 모자라서 판매할 수 없습니다.}/*************************************************************//* Function Name : dsp_status *//* Input : (void)*//* Output : (void) 현재 남은 양 출력*//* 자판기에 남은 양을 출력*//*************************************************************/void Containers::dsp_status(){int i;cout < "n남은 커피의 양 (MAX: " < MAX < ")" ;for( i = 0 ; i < coffee ; i++) {if (!(i%20))cout < "n";cout < "-"; // 남은 커피의 양 출력}cout < "nn남은 물의 양 (MAX: " < MAX < ")" ;for( i = 0 ; i < water ; i++) {if (!(i%20))cout < "n";cout < "-"; // 남은 물의 양 출력}cout < "nn남은 설탕의 양 (MAX: " < MAX < ")" ;for( i = 0 ; i < sugar ; i++) {if (!(i%20))cout < "n";cout < "-"; // 남은 설탕의 양 출력}cout < "nn남은 크림의 양 (MAX: " < MAX < ")" ;for( i = 0 ; i < cream ; i++) {if (!(i%20))cout < "n";cout < "-"; // 남은 크림의 양 출력}cout < "nn남은 컵의 양 (MAX: " < MAX < ")" ;for( i= 0 ; i < cup ; i++) {if (!(i%20))cout < "n";cout < "-"; // 남은 컵의 양 출력}}/*************************************************************//* Function Name : fill *//* Input : (int) sel*//* Output : (void) *//* 원하는 양을 초기화 한다. (full 상태)*//*************************************************************/void Containers::fill(int sel){switch(sel) {case 1 :coffee = MAX;break;case 2 :water = MAX;break;case 3 :sugar = MAX;break;case 4 :cream = MAX;break;case 5 :cup = MAX;}}// Moneycase.cpp#include
    공학/기술| 2004.06.30| 19페이지| 2,000원| 조회(2,170)
    미리보기
  • [컴파일러] 어휘분석기 - lex 평가A+최고예요
    case FRONT :if (line[i] == '') currentState = START;else currentState = FRONT;break;case ID_1:if (isalpha(line[i]) || isdigit(line[i]) || line[i] == '_' || line[i] == '.') {currentState = ID_1;currentWord[j++] = line[i];} else { currentState = ID_2;i--;}break;case ID_2: currentWord[j] = '';// make a word with termination symbol at the last positioni--;p = checkKeyword(currentWord);if ( p > 33 && p < 57 )currentState = KEYWORD_ACCEPT;else if (p == 57)currentState = SIZE_ACCEPT;else currentState = ID_ACCEPT;break;
    공학/기술| 2004.06.30| 2페이지| 1,500원| 조회(1,808)
    미리보기
  • [C++] C++ 영화예매소스 평가B괜찮아요
    {1. 프로그램 설계서2. 프로그램 소스[ 헤더 파일 ]// CCinema.h#ifndef CCINEMA_H#define CCINEMA_Hclass CPlayTime;class CCinema {char title[20];CPlayTime *pTime;public :CCinema(char*);~CCinema();void book(int, int, char*);void showSeats(int);void Register();void Run();void showTime();void menu();void Cancel();void comp(int, int);};#endif// CPlayTime.h#ifndef CPlayTime_H#define CPlayTime_Hclass CSeat;class CPlayTime {char time[100];CSeat *pSeat;public :CPlayTime(); // 객체가 배열로 들어갈땐 파라미터를 줄 수 없다.~CPlayTime();void setTime(char*);void book(int, char*);void showSeats(int);void showTime(int);void Cancel(int);int comp(int);};#endif// CSeat.h#ifndef CSEAT_H#define CSEAT_Hclass CSeat {char name[10];public :CSeat();void book(char*);void showSeat(int);void Cancel(int);int comp(int);};#endif[ 소스 파일]// main.cpp#include "CCinema.h"#include void main(){CCinema *p;p = new CCinema ("어린신부");p->menu();delete p;}// CCinema.cpp#include "CCinema.h"#include "CPlayTime.h"#include #include int time, num;char name[5];void CCinema::comp(int, int);CCinema::CCinema(char *title){strcpy(this->title, title);pTime = new CPlayTime [3];pTime[0].setTime("1시");pTime[1].setTime("5시");pTime[2].setTime("8시30분");}CCinema::~CCinema(){delete []pTime;}void CCinema::book(int time, int num, char *name){pTime[time-1].book(num, name);}void CCinema::showSeats(int time){pTime[time-1].showSeats(time);}void CCinema::showTime(){CPlayTime *p= pTime;for(int i=0; ishowTime(i+1);p++;// 두줄 합쳐 pTime[i].showTime();}}void CCinema::Register(){showTime();do {cout < "n" < "회 : ";cin >> time;if ( time > 3 || time < 0 )cout < "잘못된 입력입니다.";} while (!(time < 4 && time >0));showSeats(time); // 원하는 상영 시간에 따른 좌석 예약 상황do {cout < "n" < "좌석번호 : ";cin >> num;if ( num > 100 || num < 0 )cout < "잘못된 입력입니다.";} while (!(num < 101 && num > 0));comp(time-1, num-1);cout < "n" < "이름 : ";cin >> name;book(time, num, name);}void CCinema::comp(int time, int num){if (pTime[time].comp(num)) {cout < "이미 예약된 좌석 입니다.n";Register();}}void CCinema::Cancel(){do {cout < "n" < "회 : ";cin >> time;if ( time > 3 || time < 0 )cout < "잘못된 입력입니다.";} while (!(time < 4 && time >0));do {cout < "n" < "좌석번호 : ";cin >> num;if ( num > 100 || num < 0 )cout < "잘못된 입력입니다.";} while (!(num < 101 && num > 0));pTime[time-1].Cancel(num-1);}void CCinema::Run(){cout < "몇 회의 예약 현황을 확인하시겠습니까? t";cin >> time;showSeats(time);}void CCinema::menu(){char select;cout < "1. 예약tt 2.예약취소t 3.예약확인t 4.종료n";cout < "메뉴를 다시 보길 원하신다면 m을 눌러주세요n";do{cout < "n............: ";cin >> select;switch (select) {case '1' :Register();break;case '2' :Cancel();break;case '3' :Run();break;case '4' :break;case 'm' :menu();break;default :cout < "You type wrong number!!n";}} while (select != '4');}// CPlayTime.cpp#include "CPlayTime.h"#include "CSeat.h"#include
    공학/기술| 2004.06.30| 12페이지| 1,500원| 조회(2,571)
    미리보기
전체보기
받은후기 8
8개 리뷰 평점
  • A+최고예요
    2
  • A좋아요
    0
  • B괜찮아요
    5
  • C아쉬워요
    1
  • D별로예요
    0
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 05월 17일 일요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
5:38 오후
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감