COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

Similar documents
Building Java Programs

Building Java Programs

Building Java Programs

Topic 4 Expressions and variables

Lecture 2: Operations and Data Types

Building Java Programs. Chapter 2: Primitive Data and Definite Loops

Building Java Programs Chapter 2

Building Java Programs Chapter 2. bug. Primitive Data and Definite Loops. Copyright (c) Pearson All rights reserved. Software Flaw.

Building Java Programs Chapter 2

Building Java Programs

Introduction to Computer Programming

Data and Variables. Data Types Expressions. String Concatenation Variables Declaration Assignment Shorthand operators. Operators Precedence

Chapter Legal intliterals: 22, 1, and d Results of intexpressions:

What we will do today Explain and look at examples of. Programs that examine data. Data types. Topic 4. variables. expressions. assignment statements

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

CS 112 Introduction to Programming

CS 112 Introduction to Programming

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

CSE 142, Summer 2014

Building Java Programs

CSE 142, Summer 2015

Information Science 1

Primitive data, expressions, and variables

COMP Primitive and Class Types. Yi Hong May 14, 2015

Information Science 1

Building Java Programs

Basics of Java Programming

Declaration and Memory

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

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

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

Object-Oriented Programming

LECTURE 3 C++ Basics Part 2

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

Lecture Set 4: More About Methods and More About Operators

CSc 110, Spring 2017 Lecture 3: Expressions, Variables and Loops. Adapted from slides by Marty Stepp and Stuart Reges

Operators. Lecture 3 COP 3014 Spring January 16, 2018

Expressions and Data Types CSC 121 Spring 2015 Howard Rosenthal

CMPT 125: Lecture 3 Data and Expressions

Full file at

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

Chapter 2 Elementary Programming

Lecture Set 4: More About Methods and More About Operators

JAVA OPERATORS GENERAL

Operators. Java operators are classified into three categories:

Basic Operations jgrasp debugger Writing Programs & Checkstyle

Program Fundamentals

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

Expressions and Data Types CSC 121 Fall 2015 Howard Rosenthal

Lecture 3 Tao Wang 1

CIS 110: Introduction to Computer Programming

Ex: If you use a program to record sales, you will want to remember data:

4 Programming Fundamentals. Introduction to Programming 1 1

Chapter 2 ELEMENTARY PROGRAMMING

CSE 1001 Fundamentals of Software Development 1. Identifiers, Variables, and Data Types Dr. H. Crawford Fall 2018

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

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

Lecture Notes. System.out.println( Circle radius: + radius + area: + area); radius radius area area value

DATA TYPES AND EXPRESSIONS

JAVA Programming Fundamentals

CS 106 Introduction to Computer Science I

UNIT- 3 Introduction to C++

Java provides a rich set of operators to manipulate variables. We can divide all the Java operators into the following groups:

CS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University

MODULE 02: BASIC COMPUTATION IN JAVA

Chapter 2: Data and Expressions

Chapter 2 Using Data. Instructor s Manual Table of Contents. At a Glance. Overview. Objectives. Teaching Tips. Quick Quizzes. Class Discussion Topics

Chapter 2 Using Data. Instructor s Manual Table of Contents. At a Glance. A Guide to this Instructor s Manual:

COMP 110 Introduction to Programming. What did we discuss?

CS313D: ADVANCED PROGRAMMING LANGUAGE

Full file at

SSEA Computer Science: CS106A. Dr. Cynthia Lee Lecturer in Computer Science Stanford

Chapter 2: Data and Expressions

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

Programming with Java

SSEA Computer Science: Track A. Dr. Cynthia Lee Lecturer in Computer Science Stanford

BASIC COMPUTATION. public static void main(string [] args) Fundamentals of Computer Science I

Sir Muhammad Naveed. Arslan Ahmed Shaad ( ) Muhammad Bilal ( )

Visual C# Instructor s Manual Table of Contents

CS111: PROGRAMMING LANGUAGE II

Entry Point of Execution: the main Method. Elementary Programming. Learning Outcomes. Development Process

Lecture 6. Assignments. Summary - Variables. Summary Program Parts 1/29/18. Reading: 3.1, 3.2, 3.3, 3.4

Chapter 3: Operators, Expressions and Type Conversion

Chapter 2: Data and Expressions

Course Outline. Introduction to java

Chapter 2. Elementary Programming

Java enum, casts, and others (Select portions of Chapters 4 & 5)

Tester vs. Controller. Elementary Programming. Learning Outcomes. Compile Time vs. Run Time

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

Expressions and Data Types CSC 121 Spring 2017 Howard Rosenthal

Introduction To Java. Chapter 1. Origins of the Java Language. Origins of the Java Language. Objects and Methods. Origins of the Java Language

Chapter 2 Primitive Data Types and Operations. Objectives

Elementary Programming

Slide 1 CS 170 Java Programming 1 Expressions Duration: 00:00:41 Advance mode: Auto

9/10/10. Arithmetic Operators. Today. Assigning floats to ints. Arithmetic Operators & Expressions. What do you think is the output?

SOFTWARE DEVELOPMENT 1. Operators 2018W A. Ferscha (Institute of Pervasive Computing, JKU Linz)

cis20.1 design and implementation of software applications I fall 2007 lecture # I.2 topics: introduction to java, part 1

Getting started with Java

Accelerating Information Technology Innovation

Lecture 3 Operators MIT AITI

Transcription:

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

COSC 236 Web Site I have decided to keep this site for the whole semester I still hope to have blackboard up and running, but you will always find the course material at: http://www.class-notes.us From this site you can click on the COSC-236 tab to download the PowerPoint lectures, the Quiz solutions and the Laboratory assignments. 2

3

Review of Quiz 3 4

Review of Quiz 3 5

Chapter 2 Chapter 2 has TWO distinct parts: The first half (Sections 2.1 and 2.2, pp. 63-89) discusses data types, constants and variables This is the topic of today s lecture We will still concentrate on programs that provide output, but now we will be able to do computations and printing out the results The second half (Sections 2.3, 2.4 and 2.5, pp. 89-118) introduce our first control structure: the loop This is the topic of next Monday s lecture Loops will allow us to do many things much more easily 6

Chapter 2.1 Data types (pp. 64-74) Data Type (p. 64) type: A category or set of data values. Constrains the operations that can be performed on data Many languages ask the programmer to specify types Examples: integer, real number, string, character Internally, computers store everything as 1s and 0s 104 = 0110 1000 Hi = 0000 0000 0100 1000 0000 0000 0110 1001 7

Chapter 2.1 Data types (pp. 64-74) Representation of character and string data in Java Java uses a subset of Unicode to store character data (char) and string data (string) Unicode is 32-bit providing binary representations for characters in most languages of the world For a complete list of Unicode see: http://www.ssec.wisc.edu/~tomw/java/unicode.html Java uses only 16-bits which allows the representation of what is called the Latin character subset 8

Chapter 2.1 Data types (pp. 64-74) Representation of character and string data in Java The Java 16-bit Unicode is based on an older 7-bit ASCII code developed for teletype machines Codes below HEX 20 are teletype control codes HEX 20 through 2F are space and symbols such as those above the numbers on your keyboard HEX 30 through 39 are the numbers 0 through 9 HEX 41 through 5A are the capitol letters HEX 61 through 7A are the small letters 9

Chapter 2.1 Data types (pp. 64-74) Representation of character and string data in Java String data (string) is enclosed in double quotes: This is string data a Character data (char) is enclosed in single quotes T, h, I, s,, I, s,, c, h, a, r,, d, a, t, a a Illegal: This is char data 10

Chapter 2.1 Data types (pp. 64-74) Java's primitive types (p. 64) primitive types: 8 simple types for numbers, text, etc. Java also has object types, which we'll talk about later ± 2 31 1 ±10 308 Why does Java distinguish integers vs. real numbers? 11

Chapter 2.1 Data types (pp. 64-74) Expressions (pp. 65-67) expression: A value or operation that computes a value. Examples: 1 + 4 * 5 (7 + 2) * 6 / 3 42 The simplest expression is a literal value (Example: 42). A complex expression can use operators and parentheses. 12

Chapter 2.1 Data types (pp. 64-74) Arithmetic operators (pp. 68-70) operator: Combines multiple values or expressions. + addition - subtraction (or negation) * multiplication / division % modulus (a.k.a. remainder) NOT PERCENT! As a program runs, its expressions are evaluated. 1 + 1 evaluates to 2 System.out.println(3 * 4); prints 12 How would we print the text 3 * 4? System.out.println( 3 * 4 ); 13

Chapter 2.1 Data types (pp. 64-74) Integer division with / (pp. 68-69) When we divide integers, the quotient is also an integer. 14 / 4 is 3, not 3.5; 45 / 10 = 4; 1425 / 27 = 52 3 4 52 4 ) 14 10 ) 45 27 ) 1425 12 40 135 2 5 75 54 21 More examples: 32 / 5 is 6 84 / 10 is 8 156 / 100 is 1 Dividing by 0 causes an error when your program runs. 14

Chapter 2.1 Data types (pp. 64-74) Integer remainder with % (pp. 69-70) The % operator computes the remainder from integer division. 14 % 4 is 2 218 % 5 is 3 3 43 4 ) 14 5 ) 218 12 20 2 18 15 3 What is the result? 45 % 6 2 % 2 8 % 20 11 % 0 3 0 8 error Applications of % operator: Obtain last digit of a number: 230857 % 10 is 7 Obtain last 4 digits: 658236489 % 10000 is 6489 See whether a number is odd: 7 % 2 is 1, 42 % 2 is 0 15

Chapter 2.1 Data types (pp. 64-74) Precedence (pp. 70-73) precedence: Order in which operators are evaluated. Generally operators evaluate left-to-right. 1-2 - 3 is (1-2) - 3 which is -4 But * / % have a higher level of precedence than + - 1 + 3 * 4 is 13 6 + 8 / 2 * 3 6 + 4 * 3 6 + 12 is 18 Parentheses can force a certain order of evaluation: (1 + 3) * 4 is 16 Please Excuse My Dear Aunt Sally P = Parenthesis E = Exponentiation M/D = Multiply and Divide A/S = Add and Subtract Spacing does not affect order of evaluation 1+3 * 4-2 is 11 16

Chapter 2.1 Data types (pp. 64-74) Precedence examples (pp. 70-73) 1 * 2 + 3 * 5 % 4 \_/ 2 + 3 * 5 % 4 \_/ 2 + 15 % 4 \ / 2 + 3 \ / 5 1 + 8 % 3 * 2-9 \_/ 1 + 2 * 2-9 \ / 1 + 4-9 \ / 5-9 \ / -4 17

Chapter 2.1 Data types (pp. 64-74) Precedence examples (pp. 70-73) What values result from the following expressions? 9 / 5 695 % 20 7 + 6 * 5 7 * 6 + 5 248 % 100 / 5 6 * 3-9 / 4 (5-7) * 4 6 + (18 % (17-12)) 1 15 7 + 30 = 37 42 + 5 = 47 48/5 = 9 18-9/4 = 18 2 = 16 (-2)*4 = -8 6+(18%5) = 6+3 = 9 18

Chapter 2.1 Data types (pp. 64-74) Mixing Types and Casting (pp. 73-74) Examples: 6.022, -42.0, 2.143e17 Placing.0 or. after an integer makes it a double. The operators + - * / % () all still work with double. / produces an exact answer: 15.0 / 2.0 is 7.5 Precedence is the same: () before * / % before + - But What Happens when we mix int and double? When one operand is int and the other double, the int is converted to double = 2.143 x 10 17 Please Excuse My Dear Aunt Sally P = Parenthesis E = Exponentiation M/D = Multiply and Divide A/S = Add and Subtract 19

Chapter 2.1 Data types (pp. 64-74) Real number example 2.0 * 2.4 + 2.25 * 4.0 / 2.0 \ / 4.8 + 2.25 * 4.0 / 2.0 \ / 4.8 + 9.0 / 2.0 \ / 4.8 + 4.5 \ / 9.3 Mixed Example 2 * 2.4 + 2.25 * 4 / 2 \ / 4.8 + 2.25 * 4 / 2 \ / 4.8 + 9.0 / 2 \ / 4.8 + 4.5 \ / 9.3 20

Chapter 2.1 Data types (pp. 64-74) When int and double are mixed, the result is a double. 4.2 * 3 = 4.2 * 3.0 = 12.6 Mixing types (pp. 73-74) The conversion is per-operator, affecting only its operands. 7 / 3 * 1.2 + 3 / 2 \_/ 2 * 1.2 + 3 / 2 \ / 2.4 + 3 / 2 \_/ 2.4 + 1 \ / 3.4 3 / 2 is 1 above, not 1.5. 2.0 + 10 / 3 * 2.5-6 / 4 \ / 2.0 + 3 * 2.5-6 / 4 \ / 2.0 + 7.5-6 / 4 \_/ 2.0 + 7.5-1 \ / 9.5-1 \ / 8.5 21

Chapter 2.1 Data types (pp. 64-74) Casting (pp. 73-74) You can change one type into another through casting The most common is to change what would normally be a double into an int (int) (5.0/3.0) = 1 (int)(10*(11.4 % 3))/10.0 = 2.4 Note: N % D = (N/D (int)(n/d))*d 22

Chapter 2.1 Data types (pp. 64-74) String concatenation string concatenation: Using + between a string and another value to make a longer string. "hello" + 42 is "hello42" 1 + "abc" + 2 is "1abc2" "abc" + 1 + 2 is "abc12" 1 + 2 + "abc" is "3abc" "abc" + 9 * 3 is "abc27" "1" + 1 is "11" 4-1 + "abc" is "3abc" Use + to print a string and an expression's value together. System.out.println("Grade: " + (95.1 + 71.9) / 2); Output: Grade: 83.5 23

Chapter 2.2 Variables (pp. 74-89) Use of Variables (pp. 74-79) variable: A piece of the computer's memory that is given a name and type, and can store a value. Like preset stations on a car stereo, or cell phone speed dial: Steps for using a variable: Declare it - state its name and type Initialize it - store a value into it Use it - print it or use it as part of an expression 24

Chapter 2.2 Variables (pp. 74-89) Step 1: Declaration (p. 80) variable declaration: Sets aside memory for storing a value. Variables must be declared before they can be used. Syntax: type name; The name is an identifier. int x; x double mygpa; mygpa 25

Chapter 2.2 Variables (pp. 74-89) Step 2: Assignment assignment: Stores a value into a variable. The value can be an expression; the variable stores its result. Syntax: name = expression; int x; x = 3; double mygpa; mygpa = 1.0 + 2.25; x 3 mygpa 3.25 26

Chapter 2.2 Variables (pp. 74-89) Step 3: Using variables Once given a value, a variable can be used in expressions: int x; x = 3; System.out.println("x is " + x); // x is 3 System.out.println(5 * x - 1); // 5 * 3-1 You can assign a value more than once: int x; x = 3; System.out.println(x + " here"); // 3 here x = 4 + 7; System.out.println("now x is " + x); // now x is 11 x 11 3 27

Chapter 2.2 Variables (pp. 74-89) Declaration/initialization A variable can be declared/initialized in one statement. Syntax: type name = value; double mygpa = 3.95; int x = (11 % 3) + 12; mygpa 3.95 x 14 28

Chapter 2.2 Variables (pp. 74-89) Assignment and algebra (pp. 79-81) Assignment uses =, but it is not an algebraic equation. = means, "store the value at right in variable at left" The right side expression is evaluated first, and then its result is stored in the variable at left. What happens here? int x = 3; x = x + 2; //??? NOTE: This is an illeagal algebraic expression No value of x can satisfy the equation x = x + 2. x 35 29

Chapter 2.2 Variables (pp. 74-89) Assignment and types (pp. 79-81) A variable can only store a value of its own type. int x = 2.5; // ERROR: incompatible types An int value can be stored in a double variable. The value is converted into the equivalent real number. double mygpa = 4; double avg = 11 / 2; Why does avg store 5.0 and not 5.5? mygpa 4.0 avg 5.0 30

Chapter 2.2 Variables (pp. 74-89) Compiler errors (pp. 80-81) A variable can't be used until it is assigned a value. int x; System.out.println(x); // ERROR: x has no value You may not declare the same variable twice. int x; int x; int x = 3; int x = 5; How can this code be fixed? // ERROR: x already exists // ERROR: x already exists Int x = 3; x = 5; 31

Chapter 2.2 Variables (pp. 74-89) Printing a variable's value (pp. 81-83) Use + to print a string and a variable's value on one line. double grade = (95.1 + 71.9 + 82.6) / 3.0; System.out.println("Your grade was " + grade); int students = 11 + 17 + 4 + 19 + 14; System.out.println("There are " + students + " students in the course."); Output: Your grade was 83.2 There are 65 students in the course. 32

Chapter 2.2 Variables (pp. 74-89) Receipt example What's bad about the following code? public class Receipt { public static void main(string[] args) { // Calculate total owed, assuming 8% tax / 15% tip System.out.println("Subtotal:"); System.out.println(38 + 40 + 30); System.out.println("Tax:"); System.out.println((38 + 40 + 30) *.08); System.out.println("Tip:"); System.out.println((38 + 40 + 30) *.15); System.out.println("Total:"); System.out.println(38 + 40 + 30 + (38 + 40 + 30) *.08 + (38 + 40 + 30) *.15); } } The subtotal expression (38 + 40 + 30) is repeated To many println statements 33

Chapter 2.2 Variables (pp. 74-89) Receipt question (pp. 82-84) How can you improve the receipt program using variables? public class Receipt { public static void main(string[] args) { // Calculate total owed, assuming 8% tax / 15% tip System.out.println("Subtotal:"); System.out.println(38 + 40 + 30); System.out.println("Tax:"); System.out.println((38 + 40 + 30) *.08); System.out.println("Tip:"); System.out.println((38 + 40 + 30) *.15); System.out.println("Total:"); System.out.println(38 + 40 + 30 + (38 + 40 + 30) *.15 + (38 + 40 + 30) *.08); } } 34

Chapter 2.2 Variables (pp. 74-89) Receipt answer (pp. 82-84) public class Receipt { public static void main(string[] args) { // Calculate total owed, assuming 8% tax / 15% tip int subtotal = 38 + 40 + 30; double tax = subtotal *.08; double tip = subtotal *.15; double total = subtotal + tax + tip; } } System.out.println("Subtotal: " + subtotal); System.out.println("Tax: " + tax); System.out.println("Tip: " + tip); System.out.println("Total: " + total); 35

Chapter 2.2 Variables (pp. 74-89) Increment/Decrement Operators (pp. 84-87) It is a common situation in programming to need to add a fixed amount to a variable: x = x + 1; y = y + 2; z = z + 5; Java provides the += assignment operator to implement this: x += 1; y += 2; z += 5; 36

Chapter 2.2 Variables (pp. 74-89) Increment/Decrement Operators (pp. 84-87) It is also common situation in programming to need to subtract a fixed amount from a variable: x = x - 1; y = y - 2; z = z - 5; Java provides the -= assignment operator to implement this: x -= 1; y -= 2; z -= 5; 37

Chapter 2.2 Variables (pp. 74-89) Increment/Decrement Operators (pp. 84-87) It is also common situation in programming to need to multiply a variable by a fixed amount: x = x * 2; y = y * 3; z = z * 5; Java provides the *= assignment operator to implement this: x *= 2; y *= 3; z *= 5; 38

Chapter 2.2 Variables (pp. 74-89) Increment/Decrement Operators (pp. 84-87) It is also common situation in programming to need to divide a variable by a fixed amount: x = x / 2; y = y / 3; z = z / 5; Java provides the /= assignment operator to implement this: x /= 2; y /= 3; z /= 5; 39

Chapter 2.2 Variables (pp. 74-89) Increment/Decrement Operators (pp. 84-87) The special cases of increment by one and decrement by one are so common that Java provides a special operator for these increment and decrement unary operations: x = x + 1; y = y - 1; Java provides the ++ increment unary operator: x++; (postincrement) ++x; (preincrement) and the -- decrement unary operator: y--; (postdecrement) --x; (predecrement) 40

Chapter 2.2 Variables (pp. 74-89) Increment/Decrement Operators (pp. 84-87) The special cases of increment by one and decrement by one are so common that Java provides a special operator for these increment and decrement unary operations: x = x + 1; x++; (postincrement) ++x; (preincrement) y = y - 1; y--; (postdecrement) --x; (predecrement) The post-operators use the value of the variable before they increment or decrement the variable while the pre-operators use the variable after they increment or decrement the variable. This makes no difference to the final value of the variable and hence, no difference in these expressions however, in branch and loop statements it can make a difference. 41

Chapter 2.2 Variables (pp. 74-89) Increment/Decrement Operators (pp. 84-87) 42

Chapter 2.2 Variables (pp. 74-89) Variables and Mixing Types (pp. 87-89) A common programming mistake is to improperly use integers in a division operation: This results in the following output: 43

Chapter 2.2 Variables (pp. 74-89) Variables and Mixing Types (pp. 87-89) An easy fix is to move the 100 to the first operation changing it to 100.0: This results in the following output: 44

Assignments for this week 1. Laboratory for Chapter 2 due in one week (Monday 2/17) NOTE: Due date on handout is incorrect IMPORTANT: When you email me your laboratory Word Document, be sure it is all in one file 2. Read more of Chapter 2 for next Monday (pp. 89-105) 3. Be sure to complete Quiz 4 before leaving class tonight This is another program to write You must demonstrate the program to me before you leave lab 45