1.00/1.001 - Session 2 Fall 2004. Basic Java Data Types, Control Structures. Java Data Types. 8 primitive or built-in data types



Similar documents
1.00 Lecture 1. Course information Course staff (TA, instructor names on syllabus/faq): 2 instructors, 4 TAs, 2 Lab TAs, graders

Example of a Java program

Introduction to Java

Object Oriented Software Design

Introduction to Computer Programming, Spring Term 2014 Practice Assignment 3 Discussion

Chapter 2 Introduction to Java programming

Keywords are identifiers having predefined meanings in C programming language. The list of keywords used in standard C are : unsigned void

JAVA - QUICK GUIDE. Java SE is freely available from the link Download Java. So you download a version based on your operating system.

Java Basics: Data Types, Variables, and Loops

Translating to Java. Translation. Input. Many Level Translations. read, get, input, ask, request. Requirements Design Algorithm Java Machine Language

Object Oriented Software Design

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.

Java Interview Questions and Answers

J a v a Quiz (Unit 3, Test 0 Practice)

CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013

Sources: On the Web: Slides will be available on:

Interactive Applications (CLI) and Math

Part I. Multiple Choice Questions (2 points each):

First Java Programs. V. Paúl Pauca. CSC 111D Fall, Department of Computer Science Wake Forest University. Introduction to Computer Science

5.2 Q2 The control variable of a counter-controlled loop should be declared as: a.int. b.float. c.double. d.any of the above. ANS: a. int.

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C

Conditional Statements Summer 2010 Margaret Reid-Miller

Introduction to Java Applications Pearson Education, Inc. All rights reserved.

AP Computer Science Java Subset

Phys4051: C Lecture 2 & 3. Comment Statements. C Data Types. Functions (Review) Comment Statements Variables & Operators Branching Instructions

UIL Computer Science for Dummies by Jake Warren and works from Mr. Fleming

Java Programming Fundamentals

Building Java Programs

Sample CSE8A midterm Multiple Choice (circle one)

DNA Data and Program Representation. Alexandre David

9 Control Statements. 9.1 Introduction. 9.2 Objectives. 9.3 Statements

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.

CompSci 125 Lecture 08. Chapter 5: Conditional Statements Chapter 4: return Statement

CS 106 Introduction to Computer Science I

Lecture 2 Notes: Flow of Control

Chapter 3 Operators and Control Flow

Introduction to Java. CS 3: Computer Programming in Java

Selection Statements

VB.NET Programming Fundamentals

Basic Java Constructs and Data Types Nuts and Bolts. Looking into Specific Differences and Enhancements in Java compared to C

Moving from CS 61A Scheme to CS 61B Java

JavaScript: Control Statements I

MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question.

Boolean Expressions, Conditions, Loops, and Enumerations. Precedence Rules (from highest to lowest priority)

Informatica e Sistemi in Tempo Reale

Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007

Pemrograman Dasar. Basic Elements Of Java

Statements and Control Flow

Conditionals (with solutions)

Lecture 1 Introduction to Java

The Java Virtual Machine (JVM) Pat Morin COMP 3002

Topic 11 Scanner object, conditional execution

Java Crash Course Part I

Chapter 2: Elements of Java

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

CS1020 Data Structures and Algorithms I Lecture Note #1. Introduction to Java

System.out.println("\nEnter Product Number 1-5 (0 to stop and view summary) :

Chapter 8 Selection 8-1

LOOPS CHAPTER CHAPTER GOALS

We will learn the Python programming language. Why? Because it is easy to learn and many people write programs in Python so we can share.

Outline. Conditional Statements. Logical Data in C. Logical Expressions. Relational Examples. Relational Operators

Basic Programming and PC Skills: Basic Programming and PC Skills:

Primitive data types in Java

CSE 1223: Introduction to Computer Programming in Java Chapter 2 Java Fundamentals

Chapter 3: Writing C# Expressions

Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program

Unit 6. Loop statements

COS 217: Introduction to Programming Systems

The C Programming Language course syllabus associate level

Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program

Variables, Constants, and Data Types

Iteration CHAPTER 6. Topic Summary

Simple C++ Programs. Engineering Problem Solving with C++, Etter/Ingber. Dev-C++ Dev-C++ Windows Friendly Exit. The C++ Programming Language

Crash Course in Java

An Overview of Java. overview-1

Topics. Parts of a Java Program. Topics (2) CS 146. Introduction To Computers And Java Chapter Objectives To understand:

1.1 Your First Program

File class in Java. Scanner reminder. Files 10/19/2012. File Input and Output (Savitch, Chapter 10)

Week 1: Review of Java Programming Basics

1) Which of the following is a constant, according to Java naming conventions? a. PI b. Test c. x d. radius

5 Arrays and Pointers

Chapter 1 Java Program Design and Development

CS 111 Classes I 1. Software Organization View to this point:

Visual Logic Instructions and Assignments

Introduction to Java Lecture Notes. Ryan Dougherty

Java Cheatsheet. Tim Coppieters Laure Philips Elisa Gonzalez Boix

Debugging. Common Semantic Errors ESE112. Java Library. It is highly unlikely that you will write code that will work on the first go

Introduction to Programming (in C++) Loops. Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer Science, UPC

Example. Introduction to Programming (in C++) Loops. The while statement. Write the numbers 1 N. Assume the following specification:

C / C++ and Unix Programming. Materials adapted from Dan Hood and Dianna Xu

An Introduction to Assembly Programming with the ARM 32-bit Processor Family

Factoring Quadratic Expressions

Java CPD (I) Frans Coenen Department of Computer Science

arrays C Programming Language - Arrays

Chapter 2 Elementary Programming

Programming and Data Structures with Java and JUnit. Rick Mercer

Tutorial on C Language Programming

Transcription:

1.00/1.001 - Session 2 Fall 2004 Basic Java Data Types, Control Structures Java Data Types 8 primitive or built-in data types 4 integer types (byte, short, int, long) 2 floating point types (float, double) Boolean (boolean) Character (char) These are not objects 1

Java Data Types These are defined (almost) identically on every machine on which Java runs, unlike other programming languages Java is a strongly typed language: Every variable must have a declared type Type byte short int long float double char boolean Size (bits) 8 16 32 64 32 64 16 1 Java Data Types Range -128 to 127-32,768 to 32,767-2,147,483,648 to 2,147,483,647-9,223,372,036,854,775,808L to 9,223,372,036,854,775,807L +/- 3.4E+38F (6-7 significant digits) +/- 1.8E+308 (15 significant digits) ISO Unicode character set true or false 2

What data type would you use? What would you use to store: Speed of light Your grade in this course Your grade point average this term Number of refrigerators in a room Location of a point on a screen 2 65 $234.77 Half of $234.77 Bits per second transmitted by modem What data type would you use? What would you use to store: Speed of light double Your grade in this course char Your grade point average this term double/float Number of refrigerators in a room int Location of a point on a screen float/int 2 65 BigInteger $234.77 double/int Half of $234.77 double/int Bits per second transmitted by modem int/float 3

Using Java Data Types public class DataTypes { public static void main(string[] args) { boolean isreal=true; // Names are case sensitive, // start w/letter, have nos,_,$ byte d= 122; // Must be less than 127 short e= -29000; // Must be less than 32767 int f= 100000; // Must be less than 2.1 billion long g= 999999999999L; // Must put L on end float h= 234.99F; // Must be < 3E38; F on end double i= 55E100; char cvalue= '4'; // char '4' is not integer 4 } } // Strings are objects, not primitives. Example: String name= Claudius ; Arithmetic Operators Table in precedence order, highest precedence at top Operators ++ -- + (unary) - (unary) * / % + - Meaning increment decrement unary + ( x = +a) unary ( x = -a) multiplication division modulo addition subtraction Associativity Right to left Left to right Left to right 4

Using Arithmetic Operators public class DataType2 { public static void main(string[] args) { int j, k, m; int d= 122; j= d++; // j is 122 and d is 123 System.out.println("j= " + j); k= ++d; // k is 124 and d is 124 System.out.println("k= " + k); m= --d; // m is 123 and d is 123 System.out.println("m= " + m); m= k % j; // Remainder op for int types // k=124, j=122, so m= 2 System.out.println("m= " + m); j= 5; k= 3; m= j/k; // Integer division: m= 1 System.out.println("m= " + m); System.exit(0); } } Logical Operators Produce results of type boolean Comparisons use 8 operators: Equal == Not equal!= Less than < Less than or equal <= Greater than > Greater than or equal >= Logical and && Logical or 5

Logical Operators Example: double c= 0.0, b= 3.0; if (c!= 0.0 && b/c > 5.0) System.out.println( Boo ); // Never use == with float or double (this is bad // example) // Short circuit evaluation: quit after false // subexpression There are also bitwise operators; we won t use these much (if at all) Assignment Operators Assignment is not the same as equality!!! = is not the same as == Assignments are expressions: int x, y; x = y = 5; // Same as x = (y= 5); assoc from R to L Short cut forms exist: int x = 5, y = 3; x += y; // Same as x= x + y; Forms include +=, -=, *=, /=, &=, ^=, =, %= 6

Exercises Get the percent grad students in 1.00: int students= 240; int grads= 35; ; Represent 15*i correctly: int i= 100000000 + 100000000; ; Write expression to test if int x greater than double y and x less than y 2 and x not equal x 2 : ; if ( ; Increment int z by int a: ; ; // Declare x, y // Write logical expression // Declare a, z // Increment z by a Exercises Get the percent grad students in 1.00: int students= 240; int grads= 35; double pctgrad= grads/(double) students; Represent 15*i correctly: int i= 100000000 + 100000000; long j= 15L*i; Write expression to test if int x greater than double y and x less than y 2 and x not equal x 2 : int x; double y; if (x > y && x < y*y && x!= x*x) Increment int z by int a: int a=5, z=2; int z += a; 7

Control Structures: Branch General form Example if (boolean) statement; if (boolean) statement1; else statement2; if (boolean1) statement1; else if (booleann) statementn; else statement; if (x == y) a = 20; if (x ==z) { b = 10; c = 20; } if ( x == y ) { a = 10; b = 20; } else x = y; if ( x > 60) y = 20; else if (x < 30) { z += y; y = 25; } else y= 40; Control Structures: Branch A statement can be replaced by a block or set of statements enclosed in a pair of braces: { } An else clause belongs to its nearest if statement. If you want to associate it with a farther if statement, put intervening if statements within { } if (x > 3) { if (y < 7) z= 5; } else // This else belongs to if (x > 3) z = y; Ternary comparison statement (boolean? expr_if_true : expr_if_false) boolean iscelsius= true; double tc= 10.0; double displaytemp= (iscelsius? tc : 1.8*tC + 32.0); 8

Control example Input a, b and c Solve ax 2 + bx + c= 0 discriminant = b*b - 4.0*a*c discriminant < 0 No discriminant 0 No Yes Yes Print Sorry, no real root root = - 0.5 * b / a root = (-b + discriminant) / 2*a root2 = (-b - discriminant) / 2*a Print root Print root Print root2 System.exit(0) Control example import javax.swing.*; // To support simple input public class Control { // Quadratic formula public static void main(string[] args) { final double TOL= 1E-15; // Constant(use final ) String input; input= JOptionPane.showInputDialog("Enter a"); double a= Double.parseDouble(input); input= JOptionPane.showInputDialog("Enter b"); double b= Double.parseDouble(input); input= JOptionPane.showInputDialog("Enter c"); double c= Double.parseDouble(input); 9

Control example double discriminant= b*b - 4.0*a*c; if ( discriminant < 0) System.out.println("Sorry, no real root"); else if (Math.abs(discriminant) <= TOL) { double root= -0.5 * b / a; System.out.println("Root is " + root); } else { // Redefine root ; blocks have own scopes double root=(-b + Math.sqrt(discriminant))/ (2.0*a); double root2=(-b- Math.sqrt(discriminant))/ (2.0*a); System.out.println("Roots" + root +," + root2); } System.exit(0); } } Control example The previous program has a deliberate, subtle bug Can you see it? Is it likely that you d find it by testing? Is it likely you d find it by using the debugger and reading the code? Fix the error by rearranging the order of the if-else clauses 10

Control exercise 1 Write code in main() If demand d > supply s, raise price p by a(d-s) If demand == supply, do nothing If demand d < supply s, lower price p by b(d-s) Control exercise 1 solution // Exercise 1 Remember to declare, initialize all // variables. if (d > s) p += a*(d-s); else if (d < s) // Can omit if (d < s) p -= b*(d-s); // Can omit == clause since (d-s)=0 11

Control exercise 2 Write code in main() If weather today cloudy, tomorrow rain If weather today warm and cloudy, tomorrow is warmer If weather today sunny, tomorrow cloudy If weather today warm and sunny, tomorrow is colder and cloudy If weather today rain, tomorrow sunny (Use strings for cloudy, warm, etc.) Control exercise solutions // Exercise 2. Remember to declare, // initialize all variables. if (todaycloud.equals("sunny")) { tomorrowcloud= "Cloudy"; if (todaytemp.equals("warm")) tomorrowtemp= "Colder"; } else if (todaycloud.equals("cloudy")) { tomorrowcloud= "Rain"; if (todaytemp.equals("warm")) tomorrowtemp= "Warmer"; } else // Rain tomorrowcloud= "Sunny"; 12

Control structure: Iteration while (boolean) statement; General form do statement; while (boolean); // Always executes stmt at least once for (start_expr; end_bool; cont_expr) statement; Example while (x > 0) { System.out.println( x= + x); x--; } do { System.out.println( x= + x); x--; } while (x > 0) for ( x= 20; x > 0; x--) System.out.println( x= + x); for loops for (start_expr; end_bool; cont_expr) for (j= 0; j < 20; j++) statement; z += j; is equivalent to: start_expr; j= 0; while (end_bool) { while (j < 20) { statement; z += j; cont_expr; j++; } } 13

Example Method-Computing ln(x) The natural logarithm of any number x in the interval (0,2) is approximated by the formula ln(x) = (x-1) (x-1) 2 /2 + (x-1) 3 /3 -(x-1) 4 /4 + (x-1) 5 /5 + Iteration Example 1: ln (x) import javax.swing.*; public class Iteration { public static void main(string[] args) { String input= JOptionPane.showInputDialog("Ent x (0-2)"); double x= Double.parseDouble(input); // Compute 20 terms of // ln x= (x-1) - (x-1)^2/2 + (x-1)^3/3 -... final int ITERATIONS= 20; // Fixed no of iterations double logx= 0.0; double x1= x-1; for (int i= 1; i <= ITERATIONS; i++) { if (i % 2 == 0) // i even logx -= Math.pow(x1, i)/i; else logx += Math.pow(x1, i)/i; } System.out.println( ln x= " + logx); } } 14

Iteration Example 2: Ln x import javax.swing.*; // Same series as example 1 public class Iteration2 { public static void main(string[] args) { String input= JOptionPane.showInputDialog("Ent x (0-2)"); double x= Double.parseDouble(input); final double TOLERANCE= 0.00001; // Tol sets no of terms double logx= 0.0; double x1= x-1; int i= 1; double term= 0.0; // Define outside do {} do { term= Math.pow(x1, i)/i; if (i % 2 == 0) // i even logx -= term; else logx += term; i++; } while (Math.abs(term) > TOLERANCE); System.out.println("Ln x= " + logx); System.out.println("Found in " + i + " iterations"); } } 15