Data Representation and Applets

Similar documents
Applets and the Graphics class

Data Representation and Applets

Data Representation and Applets

CSC 1051 Data Structures and Algorithms I. Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University

Data Representation and Applets

CSC 1051 Algorithms and Data Structures I. Midterm Examination October 7, Name:


CSC 1051 Algorithms and Data Structures I. Midterm Examination February 24, Name: KEY 1

CSC 1051 Algorithms and Data Structures I. Midterm Examination October 9, Name: KEY

Data Representation Classes, and the Java API

Learning objectives: Objects and Primitive Data. Introduction to Objects. A Predefined Object. The print versus the println Methods

Graphical User Interfaces

Graphical User Interfaces

Graphical User Interfaces

Designing Classes Part 2

Chapter 2 Exercise Solutions

Appendix F: Java Graphics

CS1004: Intro to CS in Java, Spring 2005

Appendix F: Java Graphics

CSC 1051 Algorithms and Data Structures I. Midterm Examination February 26, Name: Key

Preparation: Get to know the Java coordinate system. 3. How is the background color of the window specified? Copy the exact code:

2: Basics of Java Programming

Objects and Primitive Data

CSCI 2010 Principles of Computer Science. Data and Expressions 08/09/2013 CSCI

Chapter. Let's explore some other fundamental programming concepts

Data and Expressions. Outline. Data and Expressions 12/18/2010. Let's explore some other fundamental programming concepts. Chapter 2 focuses on:

Basics of Java Programming variables, assignment, and input

Lecture 3: Variables and assignment

Graphics Applets. By Mr. Dave Clausen

AYBUKE BUYUKCAYLI KORAY OZUYAR MUSTAFA SOYLU. Week 21/02/ /02/2007 Lecture Notes: ASCII

ECE 122 Engineering Problem Solving with Java

Graphics Applets. By Mr. Dave Clausen

CONTENTS: Compilation Data and Expressions COMP 202. More on Chapter 2

Introduction to Computer Science I

CSC 1051 Algorithms and Data Structures I. Midterm Examination February 25, Name: KEY A

Using sticks to count was a great idea for its time. And using symbols instead of real sticks was much better.

Designing Classes. Where do objects come from? Where do objects come from? Example: Account datatype. Dr. Papalaskari 1

@Override public void start(stage primarystage) throws Exception { Group root = new Group(); Scene scene = new Scene(root);

CSC 1051 Data Structures and Algorithms I

CSC Algorithms and Data Structures I. Midterm Examination February 25, Name:

CSC System Development with Java Introduction to Java Applets Budditha Hettige

CSC 1051 Algorithms and Data Structures I. Midterm Examination October 6, Name:

CSC 1051 Algorithms and Data Structures I. Midterm Examination March 2, Name:

Command-Line Applications. GUI Libraries GUI-related classes are defined primarily in the java.awt and the javax.swing packages.

Chapter. We've been using predefined classes. Now we will learn to write our own classes to define objects

CMPT 125: Lecture 3 Data and Expressions

Lab 3: Work with data (IV)

What did we talk about last time? Examples switch statements

A variable is a name for a location in memory A variable must be declared

An applet is a program written in the Java programming language that can be included in an HTML page, much in the same way an image is included in a

Declaration and Memory

Algorithms in everyday life. Algorithms. Algorithms and Java basics: pseudocode, variables, assignment, and interactive programs

Intermediate Programming & Design (C++) Notation

CSC 1051 Data Structures and Algorithms I

Algorithms in everyday life. Algorithms. Algorithms and Java basics: pseudocode, variables, assignment, and interactive programs

The type of all data used in a C (or C++) program must be specified

Module 2 - Part 2 DATA TYPES AND EXPRESSIONS 1/15/19 CSE 1321 MODULE 2 1

CSC 1051 Data Structures and Algorithms I. Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University

Introduction to Java Chapters 1 and 2 The Java Language Section 1.1 Data & Expressions Sections

Algorithms and Java basics: pseudocode, variables, assignment, and interactive programs

The type of all data used in a C++ program must be specified

CSC 1051 Algorithms and Data Structures I. Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University

12/22/11. } Rolling a Six-Sided Die. } Fig 6.7: Rolling a Six-Sided Die 6,000,000 Times

[301] Bits and Memory. Tyler Caraza-Harter

CSC 1051 Data Structures and Algorithms I

CS 112 Introduction to Programming

Admin. CS 112 Introduction to Programming. Recap: Java Static Methods. Recap: Decomposition Example. Recap: Static Method Example

Algorithms and Java basics: pseudocode, variables, assignment, and interactive programs

Java Applets. Last Time. Java Applets. Java Applets. First Java Applet. Java Applets. v We created our first Java application

Discussion. Why do we use Base 10?

TWO-DIMENSIONAL FIGURES

Java Foundations: Introduction to Program Design & Data Structures, 4e John Lewis, Peter DePasquale, Joseph Chase Test Bank: Chapter 2

public static void main(string[] args) { GTest mywindow = new GTest(); // Title This program creates the following window and makes it visible:

Using Classes and Objects

REPRESENTING INFORMATION:

Module 1: Information Representation I -- Number Systems

Chapter 3 - Introduction to Java Applets

Using Classes and Objects

CISC 1600 Lecture 3.1 Introduction to Processing

CSC 1051 Algorithms and Data Structures I. Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University

Program Fundamentals

1.1 Bits and Bit Patterns. Boolean Operations. Figure 2.1 CPU and main memory connected via a bus. CS11102 Introduction to Computer Science

More Programming Constructs -- Introduction

Goals. Java - An Introduction. Java is Compiled and Interpreted. Architecture Neutral & Portable. Compiled Languages. Introduction to Java

CS313D: ADVANCED PROGRAMMING LANGUAGE

Chapter 3 Syntax, Errors, and Debugging. Fundamentals of Java

Data Conversion & Scanner Class

COMP 110 Introduction to Programming. What did we discuss?

Algorithms and Conditionals

COMP-202 Unit 2: Java Basics. CONTENTS: Using Expressions and Variables Types Strings

Variables, Constants, and Data Types

Notes from April 3 Tuesday

Chapter 2 Elementary Programming

Chapter. Focus of the Course. Object-Oriented Software Development. program design, implementation, and testing

CS-201 Introduction to Programming with Java

Chapter 1. Introduction to Computers and Programming. M hiwa ahmad aziz

Summary. 962 Chapter 23 Applets and Java Web Start

IT 1204 Section 2.0. Data Representation and Arithmetic. 2009, University of Colombo School of Computing 1

PROGRAMMING LANGUAGE 2

Expressions and Casting

Transcription:

Data Representation and Applets CSC 1051 Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Overview Binary representation Data types revisited Type conversions Image representation Java Applets Course website: http://www.csc.villanova.edu/~map/1051/ Some slides in this presentation are adapted from the slides accompanying Java Software Solutions by Lewis & Loftus Data Representation Review A byte is a group of eight bits Computers store all information digitally, using binary codes: numbers text images audio video program instructions 9278 9279 9280 9281 9282 9283 9284 9285 9286 01110100 01110100 a number? a letter? the red component of a pixel? a program instruction? Computing devices store & use binary codes to represent data of all kinds Dr. Papalaskari 1

Binary codes 1 bit 0 1 2 bits 00 01 10 11 Each additional bit doubles the number of possible codes 3 bits 000 001 010 011 100 101 110 111 4 bits 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Binary Codes How many codes? How many codes of N bits? 1 bit? 2 bits? 3 bits? 4 bits? 5 bits? How many bits are needed to represent 64 items? How many bits are needed to represent 80 items? How many bits are needed to represent each of the 50 states (so that each state corresponds to a unique code)? Storage requirements examples If a code requires 5 bits, a document consisting of 4000 such codes will require a total of: 5 x 4000 = 20,000 bits how many bytes is that? If a code requires 8 bits (i.e., a byte), a document consisting of 2000 such codes will require 2000 bytes. how many bits is that? If a code requires 32 bits, a program that needs to store 2000 such codes will require bits or bytes. Storage Capacity Every memory device has a storage capacity, indicating the number of bytes it can hold Unit Symbol Number of Bytes kilobyte KB 2 10 = 1024 megabyte MB 2 20 (over one million) gigabyte GB 2 30 (over one billion) terabyte TB 2 40 (over one trillion) petabyte PB 2 50 (a whole bunch) Dr. Papalaskari 2

Overview Review Variables Binary representation Data types revisited Type conversions Image representation Java Applets A variable is a name for a location in memory A variable must be declared by specifying the variable's name and the type of information that it will hold data type variable name int sum; double milespergallon; String name, petname; " Numeric Primitive Data The difference between the numeric primitive types is their size and the values they can store: Type Storage Min Value Max Value Example: Representing Text Characters, including spaces, digits, and punctuation are represented by numeric codes H i, H e a t h e r. byte short int long float double 8 bits 16 bits 32 bits 64 bits 32 bits 64 bits -128-32,768-2,147,483,648 < -9 x 10 18 127 32,767 2,147,483,647 > 9 x 10 18 +/- 3.4 x 10 38 with 7 significant digits +/- 1.7 x 10 308 with 15 significant digits 72 105 44 32 72 101 97 116 104 101 114 46 The ASCII (American Standard Code for Information Interchange) character set uses eight bits per character, allowing for 256 unique characters 01110100 ASCII 00000000 01110100 UNICODE The Unicode character set extends ASCII to sixteen bits per character, allowing for 65,536 unique characters. Dr. Papalaskari 3

Characters in Java A char variable stores a single character Character literals are delimited by single quotes: 'a' 'X' '7' '$' ',' '\n char topgrade = 'A'; char terminator = ';', separator = ' '; Overview Binary representation Data types revisited Type conversions Image representation Java Applets char nexttotopgrade = (char)(topgrade + 1); Note the difference between a primitive character variable, which holds only one character, and a String object, which can hold multiple characters Automatic type conversion Values of different types can be combined in an assignment or an expression Example: int dollars = 5; double money = dollars + 2.50; System.out.println(dollars + " dollars"); These are all examples of widening conversions, i.e, smaller data type è larger data type Converting from one type to another Widening conversions small data type è larger one eg: int è double 32 bits è 64 bits Narrowing conversions large data type è smaller one eg: double è int 64 bits è 32 bits narrowing conversions can lose information! narrowing conversions cannot happen automatically (for example, through assignment) Dr. Papalaskari 4

Casting Casting forces a change of type, even if information is lost Can be used for both widening and narrowing conversion To cast, put the type in parentheses in front of the value to be converted: int total = 5; double result = (double) total / 2; int answer = (int) result + 4; double angle = 0; // 0 radians int x = (int)(math.cos(angle) * 300); (cast has higher precedence than arithmetic operators) Data Conversion Widening Conversions Narrowing Conversions How to use cast? How to use cast? Forcing floating point division between int expressions Scaling a double and converting to int int qp = 35; int credits = 10; double gpa = (double) qp / credits; double gpa = 3.2; int gpapercent = (int) (gpa / 4) * 100; gpa should be 3.5 int qp = 35; int credits = 10; double gpa = (double) (qp / credits);? double gpa = 3.2; gpapercent should be 80 int gpapercent = (int) ((gpa / 4) * 100);? Dr. Papalaskari 5

Overview What s a picture? Binary representation Data types revisited Type conversions Image representation Java Applets programs represent pictures as grids of picture elements or pixels Stephanos with his eraser collection Representing Images Example: Representing Pixels red=116 green=86 blue=142 y = 8 Color ( 01110100, 01010110, 10001110 ) x = 11 Bitmap 1 bit Grayscale 8 bits RGB Color 3 colors: red, green, blue 8 bits/color 24 bits fff Dr. Papalaskari 6

Additive/Subtractive Color We choose 3 primary colors that can be combined to produce almost all visible colors Additive primaries - combining light Red Green Blue Subtractive primaries - combining ink, thus subtracting light Cyan Yellow Magenta Bitmap image A 2000 by 1000 bitmap image contains pixels. Thus, we need bits to to represent this image, or bytes Bitmap 1 bit/pixel Grayscale Image RGB Image A 2000 by 1000 grayscale image contains pixels. Grayscale 8 bits/pixel A 2000 by 1000 RGB image contains pixels. RGB color 24 bits/pixel 3 bytes/pixel Thus, we need bytes Thus, we need bytes to represent this image, or bits to represent this image, or bits Dr. Papalaskari 7

Graphics and images in Java Images are represented as objects in Java. Color components and positions for pixels can be represented as integers (but also in other ways). Java libraries allow flexibility, providing many alternative ways of representing and processing images. Overview Binary representation Data types revisited Type conversions Image representation Java Applets We will be using the Graphics class of the awt package and Japplet from the swing Applets A Java applet is a program that is intended to be transported over the Web and executed using a web browser An applet doesn't have a main method The type of program we have seen so far is a Java application - a stand-alone program with a main method Example: Einstein.java // Einstein.java Author: Lewis/Loftus // // Demonstrates a basic applet. import javax.swing.japplet; import java.awt.*; public class Einstein extends JApplet // Draws a quotation by Albert Einstein among some shapes. public void paint (Graphics page) page.drawrect (50, 50, 40, 40); // square page.drawrect (60, 80, 225, 30); // rectangle page.drawoval (75, 65, 20, 20); // circle page.drawline (35, 60, 100, 120); // line page.drawstring ("Out of clutter, find simplicity.", 110, 70); page.drawstring ("-- Albert Einstein", 130, 100); Dr. Papalaskari 8

// Einstein.java Author: Lewis/Loftus // // Demonstrates a basic applet. import javax.swing.japplet; import java.awt.*; public class Einstein extends JApplet // Draws a quotation by Albert Einstein among some shapes. public void paint (Graphics page) page.drawrect (50, 50, 40, 40); // square page.drawrect (60, 80, 225, 30); // rectangle page.drawoval (75, 65, 20, 20); // circle page.drawline (35, 60, 100, 120); // line page.drawstring ("Out of clutter, find simplicity.", 110, 70); page.drawstring ("-- Albert Einstein", 130, 100); Drawing a Line 20 45 Y 10 150 Start x y page.drawline (10, 20, 150, 45); or End x y page.drawline (150, 45, 10, 20); X Drawing a Rectangle Drawing an Oval 50 X 175 X 20 20 40 80 100 bounding rectangle Y Start x y Width Height Y 50 page.drawrect (50, 20, 100, 40); page.drawoval (175, 20, 50, 80); Dr. Papalaskari 9

Drawing an Arc An arc is defined by an oval, a start angle, and an arc angle: Filled vs unfilled shapes Instead of using drawrect(), drawoval() etc, we can use fillrect(), filloval() etc We can set the color using setcolor() See Snowman.java See also Snowman applet on a webpage // Snowman.java Author: Lewis/Loftus // // Demonstrates basic drawing methods and the use of color. import javax.swing.japplet; import java.awt.*; public class Snowman extends JApplet // Draws a snowman. public void paint (Graphics page) final int MID = 150; final int TOP = 50; continued page.setcolor (Color.white); page.filloval (MID-20, TOP, 40, 40); // head page.filloval (MID-35, TOP+35, 70, 50); // upper torso page.filloval (MID-50, TOP+80, 100, 60); // lower torso page.setcolor (Color.black); page.filloval (MID-10, TOP+10, 5, 5); // left eye page.filloval (MID+5, TOP+10, 5, 5); // right eye setbackground (Color.cyan); page.drawarc (MID-10, TOP+20, 20, 10, 190, 160); // smile page.setcolor (Color.blue); page.fillrect (0, 175, 300, 50); // ground page.drawline (MID-25, TOP+60, MID-50, TOP+40); // left arm page.drawline (MID+25, TOP+60, MID+55, TOP+60); // right arm continued page.setcolor (Color.yellow); page.filloval (-40, -40, 80, 80); // sun page.drawline (MID-20, TOP+5, MID+20, TOP+5); // brim of hat page.fillrect (MID-15, TOP-20, 30, 25); // top of hat Dr. Papalaskari 10

The Java Color Class A color in a Java program is represented as an object created from the Color class The Color class also contains several predefined colors, eg: Object RGB Value Color.black 0, 0, 0 Color.blue 0, 0, 255 Color.cyan 0, 255, 255 Color.orange 255, 200, 0 Color.white 255, 255, 255 compiler Color.yellow 255, 255, 0 machine-dependent Using a color: page.setcolor(color.blue); low-level language 00101011 00000000 Creating a new color: 00010001 Machine 01010000 00101000 Color salmon = new Color(255, 140, 128); code page.setcolor(salmon); Translation of programs into machine code High-level language source code 01001010 00000000 00010001 01010000 00101000 01001010 Java Translation is different High-level language Java source code Java compiler Bytecode interpreter Java bytecode machine-independent intermediate language Bytecode compiler machine-dependent low-level language 00101011 00000000 Machine 00010001 01010000 code 00101000 01001010 00000000 00010001 01010000 00101000 CSC 1051 M.A. 01001010 Papalaskari, Villanova University The HTML applet Tag An applet is embedded into an HTML file using a tag that references the bytecode file of the applet The bytecode version of the program is transported across the web and executed by a Java interpreter that is part of the browser. <html> <head> <title>the Einstein Applet</title> </head> <body> <applet code="einstein.class" width=350 height=175> </applet> </body> </html> Dr. Papalaskari 11