Presentation is loading. Please wait.

Presentation is loading. Please wait.

제2장 데이터 및 수식.

Similar presentations


Presentation on theme: "제2장 데이터 및 수식."— Presentation transcript:

1 제2장 데이터 및 수식

2 데이터와 식 또 다른 프로그래밍의 기본 개념을 살펴봅시다. 2장의 주요 강의 내용: 문자 스트링 기본 데이터
변수의 선언과 사용 수식과 연산자 우선순위 데이터 변환 사용자로부터의 입력 Java 에플릿 그래픽 소개 © 2004 Pearson Addison-Wesley. All rights reserved

3 목차 문자 스트링 (Character Strings) 상호작용 프로그램 (Interactive Programs)
변수와 배정 (Variables and Assignment) 기본 데이터 타입 (Primitive Data Types) 수식 (Expressions) 데이터 변환 (Data Conversion) 그래픽 (Graphics) 애플릿 (Applets) 형상 그리기 (Drawing Shapes) © 2004 Pearson Addison-Wesley. All rights reserved

4 문자 스트링(Charter Strings)
스트링 리터럴(string literal) 이중 인용부호로 둘러싸인 문자들 예: "This is a string literal." "123 Main Street" "X" 모든 문자 스트링 String 클래스에서 정의되는 Java의 객체 모든 스트링 리터럴은 스트링 객체를 나타냄 © 2004 Pearson Addison-Wesley. All rights reserved

5 System.out.println ("Whatever you are, be a good one.");
문자 스트링의 프린트 print, println 메소드 사용 예제 Lincoln 프로그램 출력장소 지정 System.out 객체(모니터 출력) System.out.println ("Whatever you are, be a good one."); 메소드 이름 객체 메소드의 입력 데이터 (매개변수(parameter)) © 2004 Pearson Addison-Wesley. All rights reserved

6 Hello.java © 2004 Pearson Addison-Wesley. All rights reserved

7 스트링 접합 플러스 기호(+) 데이터 종류에 따라 자동으로 적절한 연산 선택 스트링 + 스트링, 스트링 + 수, 수 + 스트링
산술 덧셈 기호 두 스트링 접합 연산자 "Peanut butter " + "and jelly" 데이터 종류에 따라 자동으로 적절한 연산 선택 스트링 접합: 스트링 + 스트링, 스트링 + 수, 수 + 스트링 산술 덧셈: 숫자 + 숫자 왼쪽에서부터 오른쪽으로 연산을 수행함 © 2004 Pearson Addison-Wesley. All rights reserved

8 Min1.java © 2004 Pearson Addison-Wesley. All rights reserved

9 탈출 시퀀스(Escape Sequence)
자바의 탈출 시퀀스: 탈출 시퀀스 \b \t \n \r \" \' \\ 의미 백스페이스(backspace) 탭(tab) 개행(newline) 열복귀(carriage return) 이중 인용부호(double quote) 단일 인용부호(single quote) 백슬래쉬(backslash) System.out.println("I said "Hello" to you."); System.out.println("I said \"Hello\" to you."); © 2004 Pearson Addison-Wesley. All rights reserved

10 목차 문자 스트링 상호작용 프로그램 변수와 배정 기본 데이터 타입 수식 데이터 변환 그래픽 애플릿 형상 그리기
© 2004 Pearson Addison-Wesley. All rights reserved

11 상호작용(Interactive) 프로그램
프로그램은 입력(input)을 필요로 한다. Scanner 클래스 다양한 타입의 입력 값들을 읽기 위한 편리한 방법 제공 Scanner 객체는 사용자키보드 등 다양한 경로로 들어오는 여러 타입의 입력을 받을 수 있도록 설정될 수 있다. java.util 클래스 라이브러리(class library)에 속함 사용하기 위하여는 프로그램에 import 되어야 함 System.in 표준입력 키보드 (입력)을 나타내는 객체 © 2004 Pearson Addison-Wesley. All rights reserved

12 Scanner scan = new Scanner (System.in);
입력 방법(Reading Input) 키보드 입력을 위한 Scanner 객체 생성 Scanner scan = new Scanner (System.in); new 연산자로 Scanner 객체 Scanner 객체를 이용하여 다양한 입력 메소드를 호출 가능 scan.nextLine( ); scan.nextInt( ); scan.nextFloat( ); scan.nextDouble( ); . . . © 2004 Pearson Addison-Wesley. All rights reserved

13 Echo.java © 2004 Pearson Addison-Wesley. All rights reserved

14 입력 토큰(Input Tokens) 토큰(token) 구분 Scanner 클래스의 next 메소드
공백 문자(white space)가 사용된다. space 문자(빈칸), 탭(tab), 개행(new line) 문자 등 Scanner 클래스의 next 메소드 다음 입력의 토큰(token)을 스트링으로 읽어서 반환 nextInt/nextDouble 메소드 데이터를 int나 double 타입으로 읽어들인다. © 2004 Pearson Addison-Wesley. All rights reserved

15 GasMileage.java © 2004 Pearson Addison-Wesley. All rights reserved

16 목차 문자 스트링 상호작용 프로그램 변수와 배정 기본 데이터 타입 수식 데이터 변환 그래픽 애플릿 형상 그리기
© 2004 Pearson Addison-Wesley. All rights reserved

17 하나의 선언문에서 같은 타입의 여러 개의 변수를 동시에 선언할 수 있다.
변수(Variables) 변수 메모리 내 한 위치의 이름 변수선언 변수의 이름과 그 위치에 저장할 데이터의 타입을 선언 변수 명(variable name) 데이터 타입(data type) int total; int count, temp, result; 하나의 선언문에서 같은 타입의 여러 개의 변수를 동시에 선언할 수 있다. © 2004 Pearson Addison-Wesley. All rights reserved

18 변수의 초기화(variable Initialization)
변수는 선언 할 때 초기 값을 부여 할 수 있다. int sum = 0; int base = 32, max = 149; © 2004 Pearson Addison-Wesley. All rights reserved

19 배정(Assignment) 배정문은 변수의 값을 변경하는데 사용 된다. 배정 연산자: = total = 55;
배정 연산자: = total = 55; 오른쪽 식이 먼저 계산되고 그 결과가 왼쪽 변수에 저장 새로운 값은 기존에 저장되어있던 값을 덮어쓴다. 변수에 저장하는 값은 선언된 타입과 일치하여야 한다. © 2004 Pearson Addison-Wesley. All rights reserved

20 Sum.java © 2004 Pearson Addison-Wesley. All rights reserved

21 상수(Constants) 변수와 비슷한 식별자(identifier) 이지만 그 값이 변하지 않음 예약어 final 사용
final int MIN_HEIGHT = 69; 만일 값이 설정된 상수의 값을 변경하려고 하면 ? 상수 왜 사용하지 ? 1. 의미 부여 예: 250이라는 숫자보다는 MAX_LOAD가 의미를 잘 전달한다 2. 프로그램 관리가 편리해 진다. 예: 여러 곳에서 사용된 상수 값을 변경하려는 경우, 선언문 한곳만 수정 3. 변화되면 안 되는 값이라는 것을 명백히 함으로써 , 부주의한 오류 예방 © 2004 Pearson Addison-Wesley. All rights reserved

22 목차 문자 스트링 상호작용 프로그램 변수와 배정 기본 데이터 타입 수식 데이터 변환 그래픽 애플릿 형상 그리기
© 2004 Pearson Addison-Wesley. All rights reserved

23 기본 데이터(Primitive Data)
8가지의 기본 데이터 타입 4가지 정수(integer) 타입: byte, short, int, long 2가지 부동 소수점(floating point) 타입: float, double 1가지 문자 (character) 타입: char 1가지 부울 (boolean) 타입: boolean © 2004 Pearson Addison-Wesley. All rights reserved

24 수를 나타내는(Numeric) 기본 데이터
여러 가지 기본 데이터 타입의 차이점 데이터의 크기 저장할 수 있는 데이터의 범위 타입 byte short int long float double 기억장소 8 비트 16 비트 32 비트 64 비트 최소값 -128 -32,768 -2,147,483,648 < -9 x 1018 +/- 3.4 x with 7 significant digits +/- 1.7 x with 15 significant digits 최대값 127 32,767 2,147,483,647 > 9 x 1018 © 2004 Pearson Addison-Wesley. All rights reserved

25 문자(Characters) char 변수 하나의 문자 저장
문자 리터럴(Character literal)은 단일 인용 부호로 표현 'a' 'X' '7' '$' ',' '\n' 선언의 예: char topGrade = 'A'; char terminator = ';', separator = ' '; 스트링 객채( String object) 여러 개의 문자 저장 기본 데이터 타입 아님 © 2004 Pearson Addison-Wesley. All rights reserved

26 문자 집합(Character Sets) 문자 집합 char 변수 특정 순서를 갖는 문자들로 이루어져 있고
각 문자는 하나의 코드(수)로 표현된다. Java는 유니코드 문자 집합 (Unicode character set) 사용 문자당 16 비트 사용 : 65,536개의 문자 지원 여러 나라의 언어의 기호와 문자를 포함 char 변수 유니코드 문자 하나를 저장할 수 있다. © 2004 Pearson Addison-Wesley. All rights reserved

27 문자(Characters) ASCII 문자 집합 유니코드 보다 더 오래되고 작은 문자 집합 문자당 8비트 사용
Unicode 문자 집합의 부분집합 uppercase letters lowercase letters punctuation digits special symbols control characters A, B, C, … a, b, c, … period, semi-colon, … 0, 1, 2, … &, |, \, … carriage return, tab, ... © 2004 Pearson Addison-Wesley. All rights reserved

28 부울(Boolean) 부울(boolean) 값 부울 변수 true, false boolean done = false;
두 가지 상태를 나타내는 모드 경우에 사용할 수 있다. 예: 전구의 켜짐 /꺼짐, 회원/비회원, 일의 완료/비완료 © 2004 Pearson Addison-Wesley. All rights reserved

29 목차 문자 스트링 상호작용 프로그램 변수와 배정 기본 데이터 타입 수식 데이터 변환 그래픽 애플릿 형상 그리기
© 2004 Pearson Addison-Wesley. All rights reserved

30 식(Expressions) 식 수식(Arithmetic expressions)
연산자(operator)와 피연산자(operand)의 결합 수식(Arithmetic expressions) 수식연산자(arithmetic operator)를 사용하여 값을 계산한다 덧셈(Addition) + 뺄셈(Subtraction) - 곱셈(Multiplication) * 나눗셈(Division) / 나머지연산(Remainder) % 하나 혹은 두 개의 피연산자가 부동 소수점 값이면 그 연산의 결과도 부동 소수점 값이 된다. © 2004 Pearson Addison-Wesley. All rights reserved

31 나눗셈과 나머지연산 나눗셈(/) 두 개의 피연산자가 모두 정수이면, 결과는 정수가 된다. (소수점 이하는 버림)
14 / 결과는 4 8 / 결과는 나머지 연산자(%) 나눗셈 후 그 나머지 계산 14 % 결과는 2 8 % 결과는 8 © 2004 Pearson Addison-Wesley. All rights reserved

32 연산자 우선순위(precedence) 연산자들이 결합되어 복잡한 수식 표현 연산자 우선순위
result = total + count / max - offset; 연산자 우선순위 어느 연산을 먼저 할 지 결정하는 규칙 곱셈, 나눗셈, 나머지 연산 먼저 덧셈, 뺄셈, 스트링 접합 나중 동일한 우선순위를 갖는 연산자들은 왼쪽에서 오른쪽으로 괄호(parentheses)안의 계산은 먼저 수행한다. © 2004 Pearson Addison-Wesley. All rights reserved

33 연산자 우선순위(계속) 예) 다음 수식에서 연산되는 순서는? a + b + c + d + e a + b * c - d / e
1 2 3 4 3 1 4 2 a / (b + c) - d % e 2 1 4 3 a / (b * (c + (d - e))) 4 3 2 1 © 2004 Pearson Addison-Wesley. All rights reserved

34 수식 트리(Expression Trees)
수식 연산은 수식 트리로 표현할 수 있다. 우선순위 아랫부분 연산 먼저 , 윗부분 연산 나중 a + / - d b c a + (b – c) / d 우선순위 © 2004 Pearson Addison-Wesley. All rights reserved

35 “=“ 배정기호의 오른쪽에 있는 수식이 먼저 계산되고
배정 (Assignment) 배정 수행은 수식연산보다 낮은 우선순위를 갖는다. “=“ 배정기호의 오른쪽에 있는 수식이 먼저 계산되고 answer = sum / 4 + MAX * lowest; 4 1 3 2 그 다음에 연산된 결과가 배정기호 오른쪽에 있는 변수에 저장된다. © 2004 Pearson Addison-Wesley. All rights reserved

36 (count의 원래 값을 새 값으로 덮어쓴다.)
배정 (Assignment) 배정문의 좌우에 같은 변수를 포함할 수 있다. 먼저 count에 저장된 현재 값에 1을 더하고 count = count + 1; 그 다음 계산 결과를 count에 저장한다. (count의 원래 값을 새 값으로 덮어쓴다.) (원래 값은 다시 복원할 수 없음) © 2004 Pearson Addison-Wesley. All rights reserved

37 증가/감소 연산(Increment and Decrement)
증가/감소 연산자 하나의 피연산자(operand)를 갖는다. 증가 연산자(++)는 피연산자의 값에 1을 더한다. 감소 연사자(--)는 피연산자의 값에 1을 뺀다. count++; count = count + 1; © 2004 Pearson Addison-Wesley. All rights reserved

38 증가/감소 연산 전위/후위 증가, 감소 연산 count++ ++count 후위 형태(postfix form): 값을 읽고 증가
전위/후위 증가, 감소 연산 후위 형태(postfix form): 값을 읽고 증가 count++ 전위 형태(prefix form): 먼저 증가 후 값을 읽음 ++count 두 가지 형태가 단독으로 사용될 때는 동일한 결과 다른 수식 안에 사용되었을 때는 다른 결과를 준다. count = 3; a = 3 + count++;  a: 6, count: 4 count = 3; a = count;  a: 7, count: 4 © 2004 Pearson Addison-Wesley. All rights reserved

39 배정 연산자(Assignment Operators)
필요성 어떤 변수에 대해 연산한 후 그 결과를 동일 변수에 다시 저장 그 절차를 간단히 해주기 위한 배정 연산자 제공 num += count; num = num + count; © 2004 Pearson Addison-Wesley. All rights reserved

40 배정 연산자(Assignment Operators)
Java의 배정연산자들 연산자 += -= *= /= %= 사용 예 x += y x -= y x *= y x /= y x %= y 동일 결과 x = x + y x = x - y x = x * y x = x / y x = x % y © 2004 Pearson Addison-Wesley. All rights reserved

41 배정 연산자(Assignment Operators)
배정 연산자의 오른쪽이 복잡한 수식인 경우 오른쪽 수식 전체가 먼저 계산된 후 그 계산 결과가 왼쪽의 변수와 결합하게 된다. 예, result /= (total-MIN) % num; result = result / ((total-MIN) % num); © 2004 Pearson Addison-Wesley. All rights reserved

42 목차 문자 스트링 상호작용 프로그램 변수와 배정 기본 데이터 타입 수식 데이터 변환 그래픽 애플릿 형상 그리기
© 2004 Pearson Addison-Wesley. All rights reserved

43 데이터 변환(Data Conversion)
필요성 어떤 데이터 값을 다른 타입 값으로 변환하는 것이 편리한 경우 예: 정수를 실수처럼 사용하기를 원할 때 현 계산에 한하여 변수 값의 타입을 변환하여 사용한다. 변환 사용 후 변수는 계속 이전 타입 값을 유지한다 3가지 데이터 변환 배정 변환(assignment conversion) 상향 변환(promotion) 캐스팅 변환(casting) © 2004 Pearson Addison-Wesley. All rights reserved

44 데이터 변환(Data Conversion)
변환 시 정보를 잃지 않도록 조심 해서 사용해야 한다. 확장 변환(widening conversion) 작은 데이터 타입에서 더 큰 타입으로 변환 정보가 손실되지 않아서 안전하다. (예, short 에서 int) 축소변환(Narrowing conversion) 큰 데이터 타입에서 작은 데이터 타입으로 변환 정보를 잃을 수 있다. (예 int 에서 short) © 2004 Pearson Addison-Wesley. All rights reserved

45 배정 변환(Assignment Conversion)
어떤 타입의 값이 다른 타입 변수에 배정될 때 일어난다. 확장 변환만 배정 변환 가능 다음 배정문은 자동으로 dollars의 값을 float로 변환한다. float money; int dollars; money = dollars; 주의: 위 문장 수행 후, dollars의 값이나 타입은 변경 없음 © 2004 Pearson Addison-Wesley. All rights reserved

46 데이터 변환(Data Conversion)
상향 변환(Promotion) 연산자가 연산 수행을 위해 피연산자 값을 변경할 필요가 있을 때 자동적으로 일어난다. count의 값은 floating point 값으로 자동 변환 float sum,result; int count; result = sum / count; © 2004 Pearson Addison-Wesley. All rights reserved

47 캐스팅 변환(Casting) 캐스팅(Casting) 예 강력하고 위험한 명시적인 캐스팅 변환
확장(widening) 과 축소(narrowing) 변환 모두 가능 값 앞에 괄호 안의 type 지정함으로써 수행 된다. 나눗셈의 결과는 부동 소수(floating point)를 원한다면 float result; int total, count; result = (float) total / count; total이 부동 소수 값이 되면 count도 부동 소수로 상향 변환된다. © 2004 Pearson Addison-Wesley. All rights reserved

48 목차 문자 스트링 상호작용 프로그램 변수와 배정 기본 데이터 타입 수식 데이터 변환 그래픽 애플릿 형상 그리기
© 2004 Pearson Addison-Wesley. All rights reserved

49 그래픽(Graphics) 소개 그래픽 트랙 그림 모니터 해상도( monitor resolution) 각 장의 마지막 부분
그래픽과 그래픽 사용자 인터페이스(User interface) 그림 그림은 그림의 한 점을 나타내는 화소(pixels)로 나누어져 있고, 각 화소에는 그 점의 색정보가 저장된다. 그림을 표현하는데 사용된 픽셀들의 수를 해상도(resolution)라 한다. 모니터 해상도( monitor resolution) 모니터에 디스플레이될 수 있는 픽셀들의 수 © 2004 Pearson Addison-Wesley. All rights reserved

50 좌표계(Coordinate Systems)
화소(pixel) 2차원 좌표계(two-dimensional coordinate system)를 통해 지칭될 수 있다. Java 좌표계 위쪽 좌측 모서리(top-left corner)를 원점(0,0) 112 Y X (0, 0) 40 (112, 40) © 2004 Pearson Addison-Wesley. All rights reserved

51 색상 표현 흑백 그림 컬러 그림 하나의 비트를 사용하여 각 픽셀을 저장 (0 = white, 1 = black)
한 픽셀은 색을 표현해야 한다. 세가지 기본 색인 Red, Greed, Blue의 혼합으로 표현 각각의 기본 색은 0에서 255사이의 숫자로 표현된다. 세가지 숫자로 표현된 컬러를 적록청 값(RGB-value)라 한다. © 2004 Pearson Addison-Wesley. All rights reserved

52 Color 클래스 컬러 표현 Color class의 미리 정의된 컬러들
Color class로부터 만들어지는 객체(object)로 표현된다. Color class의 미리 정의된 컬러들 객체(Object) Color.black Color.blue Color.cyan Color.orange Color.white Color.yellow RGB 값 0, 0, 0 0, 0, 255 0, 255, 255 255, 200, 0 255, 255, 255 255, 255, 0 © 2004 Pearson Addison-Wesley. All rights reserved

53 목차 문자 스트링 상호작용 프로그램 변수와 배정 기본 데이터 타입 수식 데이터 변환 그래픽 애플릿 형상 그리기
© 2004 Pearson Addison-Wesley. All rights reserved

54 애플릿(Applets) Java의 두 가지 종류의 프로그램 어플리케이션 애플릿 Java 어플리케이션(application)
Java 애플릿(applet) 어플리케이션 main 메소드를 (method)를 갖고 있는 독립적인 프로그램 Java 인터프리터로 실행할 수 있는 프로그램 애플릿 웹(Web)상에서 전송되어 웹 브라우저에서 실행되는 프로그램 JDK의 appletviewer로도 실행 가능 main 메소드가 없고 특정 메소드들을 갖는다. © 2004 Pearson Addison-Wesley. All rights reserved

55 애플릿(Applets) 예, paint method: Graphics 객체(object) 애플릿에 의해 자동 실행됨
보통 애플릿의 내용을 그리는데 사용 paint 메쏘드는 매개변수로 Graphics 클래스의 객체를 받는다. Graphics 객체(object) 그림을 그리는데 필요한 그래픽 문맥(graphics context) 정의 Graphics 클래스는 여러 가지 형상을 그리는데 사용하는 메소드들을 제공한다. © 2004 Pearson Addison-Wesley. All rights reserved

56 애플릿(Applets) 애플릿을 정의 하는 클래스 애플릿 실행
Applet 혹은 JApplet 클래스를 확장(extend)해야 한다. 상속(inheritance) 개념 (8장) 애플릿 실행 HTML 문서에서 태그(tag)를 통해 클래스 파일 참조해야 한다. 애플릿의 클래스 파일이 웹 상에서 전송되고 브라우저(browser) 내의 Java interpreter통해 실행 © 2004 Pearson Addison-Wesley. All rights reserved

57 Einstein.java © 2004 Pearson Addison-Wesley. All rights reserved

58 HTML 애플릿 태그 주의: java 소스파일이 아닌 클래스 파일 사용 <html> <head>
<title>The Einstein Applet</title> </head> <body> <applet code="Einstein.class" width=350 height=175> </applet> </body> </html> 주의: java 소스파일이 아닌 클래스 파일 사용 © 2004 Pearson Addison-Wesley. All rights reserved

59 목차 문자 스트링 상호작용 프로그램 변수와 배정 기본 데이터 타입 수식 데이터 변환 그래픽 애플릿 형상 그리기
© 2004 Pearson Addison-Wesley. All rights reserved

60 형상 그리기(drawing shapes)
Graphics class의 메소드 사용 사각형 그리기 void drawRect (int x, int y, int width, int height) void fillRect (int x, int y, int width, int height) 매개변수는 좌표(coordinates)와 크기(sizes)를 정의한다. 타원형(oval) 경계사각형(bounding rectangle)으로 정의한다. 왼쪽 윗모서리 좌표와 타원이 들어갈 사각형의 폭과 높이로 정의 호(arc) 타원의(oval) 한 부분으로 생각할 수 있다. © 2004 Pearson Addison-Wesley. All rights reserved

61 Drawing a Line page.drawLine (10, 20, 150, 45); or
X Y 10 150 20 45 page.drawLine (10, 20, 150, 45); page.drawLine (150, 45, 10, 20); or © 2004 Pearson Addison-Wesley. All rights reserved

62 Drawing a Rectangle page.drawRect (50, 20, 100, 40); 50 X 20 40 100 Y
© 2004 Pearson Addison-Wesley. All rights reserved

63 Drawing an Oval 경계 사각형 (bounding rectangle)
X Y 175 20 80 경계 사각형 (bounding rectangle) 50 page.drawOval (175, 20, 50, 80); © 2004 Pearson Addison-Wesley. All rights reserved

64 Drawing Shapes 배경 색상(background color) 지정 전경색상(foreground color) 지정
setBackground (Color.cyan); 전경색상(foreground color) 지정 page.setColor (Color.blue); Snowman.java (103쪽[한글:107쪽]) 참조 © 2004 Pearson Addison-Wesley. All rights reserved

65 Snowman.java © 2004 Pearson Addison-Wesley. All rights reserved

66 요약(Summary) 문자 스트링 상호작용 프로그램 변수와 배정 기본 데이터 타입 수식 데이터 변환 그래픽 애플릿 형상 그리기
© 2004 Pearson Addison-Wesley. All rights reserved


Download ppt "제2장 데이터 및 수식."

Similar presentations


Ads by Google