[주제]- overload 메소드를 활용하여 2개의 정수 or 실수를 계산하는 계산기 구현 [중요]- 모든 문자는 문자열로 받았기 때문에 메소드에 인자로 보낼 때는 정수형 or 실수형으로 변환 필요 ※ Integer.parseInt(문자열): 문자열을 정수형으로 변환 ※ Double.parseDuble(문자열): 문자열을 실수형으로 변환 [소스 코딩]package calculatorMethod; import java.util.Scanner; class calculatorMethod { public static void main(String[] args) {/* * 1. 첫 번째 수 입력 * 2. 연산자 입력 * 3. 두 번째 수 입력 * ※ 모두 문자열로 입력 받음 * * [추가 구현] * 정수인지 실수..
[주제]- 반복문과 조건문을 활용하여 계산기 만들기 [중요]- 문자열을 입력 받을 때는 개행(Enter) 값이 포함되어 있기 때문에 'equals()'를 사용하여 문자 비교가 필요 [소스 코딩]package calculatorClass; import java.util.Scanner; class calculatorClass{ public static void main(String[] args) {/* [계산기] - 두 수를 입력 받기 - 첫 번째 수 입력 → 연산자 입력 → 두 번째 수 입력 → 결과 출력*/ Scanner sc = new Scanner(System.in); int num1 = 0, num2 = 0, result = 0; String op, endAnswer; boolean calLoop ..
[계산기 처리 과정] - 중위표기법 수식 → ConvToRPNExp 함수(후위표기법으로 변환) → EvalRPNExp 함수(후위표기법 계산) → 연산 결과 [소스 코딩] ※ 스택은 이전에 '연결 리스트 기반으로 구현된 스택' 소스를 활용※ 후위표기법으로 변환 처리는 이전에 'InfixToPostfix' 소스를 활용※ 후위표기법 계산 처리는 이전에 'PostCalculator' 소스를 활용 ■ ListBaseStack.h #ifndef __LB_STACK_H__#define __LB_STACK_H__ #define TRUE 1#define FALSE 0 typedef int Data; // 사용자 정의 int형 Data 선언 typedef struct _node // 사용자 정의 구조체 'Node' 정의{..
[소스 코딩]※ 스택은 이전에 '연결 리스트 기반으로 구현된 스택' 소스를 활용 ■ ListBaseStack.h #ifndef __LB_STACK_H__#define __LB_STACK_H__ #define TRUE 1#define FALSE 0 typedef int Data; // 사용자 정의 int형 Data 선언 typedef struct _node // 사용자 정의 구조체 'Node' 정의{ Data data; // 입력 받은 데이터를 저장할 data 선언 struct _node * next; // 다음 노드를 가리킬 노드 포인터 next 선언} Node; typedef struct _listStack // 사용자 정의 구조체 'ListStack' 정의{ Node * head; // ListSta..
[구현 원칙]- 피연산자는 무조건 스택으로 옮김- 수식 조회 시 연산자를 만나면 스택에서 2개의 피연산자를 꺼내어 계산 처리- 계산결과는 다시 스택에 저장 [계산 시 중요 포인트]- 스택에서 먼저 꺼낸 피연산자가 두 번째 피연산자가 됨(오른쪽)- 나중에 꺼낸 피연산자가 첫 번째 피연산자가 됨(왼쪽) [후위표기법 계산 과정] - 중위표기법에서 후위표기법으로 변환된 상태- 변환된 수식에서 맨 왼쪽부터 하나씩 처리 - 피연산자는 무조건 스택에 저장 - 피연산자는 스택에 저장 - 피연산자는 스택에 저장 - 연산자는 계산 수식으로 이동 - 연산자가 조회되면 스택에서 2개의 피연산자를 꺼냄- 처음 꺼낸 피연산자는 계산 수식의 연산자 '오른쪽'으로 이동- 다음 꺼낸 피연산자는 계산 수식의 연산자 '왼쪽'으로 이동 -..
[소스 코딩]※ 스택은 이전에 '연결 리스트 기반으로 구현된 스택' 소스를 활용 ■ ListBaseStack.h #ifndef __LB_STACK_H__#define __LB_STACK_H__ #define TRUE 1#define FALSE 0 typedef int Data; // 사용자 정의 int형 Data 선언 typedef struct _node // 사용자 정의 구조체 'Node' 정의{ Data data; // 입력 받은 데이터를 저장할 data 선언 struct _node * next; // 다음 노드를 가리킬 노드 포인터 next 선언} Node; typedef struct _listStack // 사용자 정의 구조체 'ListStack' 정의{ Node * head; // ListSta..
[구현하는 계산기 기능]- '후위 표기법 변환 알고리즘'을 사용하여 구현└ 중위 표기법 수식 방식으로 사용자에게 입력 받음 → 프로그램에서 후위 표기법 수식으로 변경 → 계산 및 출력 ※ 이유: 연산자의 우선순위를 신경쓰지 않아도 되고, 소괄호도 처리할 필요가 없기 때문 [구현 시 중요한 부분]- 소괄호를 파악하여 그 부분을 먼저 연산- 연산자의 우선순위를 근거로 연산의 순위를 결정 [구현 시 제한사항]- 수식을 이루는 피연산자는 한자리 숫자(0~9)로만 이뤄진다고 가정 [수식의 표기법] ※ 예) 5 + 2 / 7 1. 중위 표기법(infix notation): 5 + 2 / 7- 피연산자 사이에 연산자가 존재하는 일반적인 표기법 2. 전위 표기법(prefix notation): + 5 / 2 7- 각 ..
- Total
- Today
- Yesterday
- 설명
- Reference
- VCL
- Delphi
- 상황
- ADODB
- 독해
- 문법
- 말하기
- SysUtils
- 대상
- SWT
- 영어
- 일기
- 알고리즘
- 작문
- 자료구조
- 응용
- java
- Pte
- 정렬
- 여행영어 100일의 기적
- 계산기
- 왕초보 영어회화 100일의 기적
- wfd
- tdataset
- RA
- 스택
- 교육센터
- System
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |