Lecture 2: Operations and Data Types

Similar documents
Building Java Programs

Building Java Programs

Building Java Programs

Topic 4 Expressions and variables

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

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

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

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

Building Java Programs

CSE 142, Summer 2014

Building Java Programs

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

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

CSE 142, Summer 2015

CS 112 Introduction to Programming

Primitive data, expressions, and variables

CS 112 Introduction to Programming

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

Primitive Data, Variables, and Expressions; Simple Conditional Execution

CS 106A, Lecture 5 Booleans and Control Flow

CS111: PROGRAMMING LANGUAGE II

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

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

Lesson 5: Introduction to the Java Basics: Java Arithmetic THEORY. Arithmetic Operators

Object-Oriented Programming

Lecture 6. Assignments. Java Scanner. User Input 1/29/18. Reading: 2.12, 2.13, 3.1, 3.2, 3.3, 3.4

Full file at

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

Basics of Java Programming

Program Fundamentals

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

CS 106 Introduction to Computer Science I

Expressions and Data Types CSC 121 Spring 2015 Howard Rosenthal

Welcome to the Primitives and Expressions Lab!

Building Java Programs

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

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

Operators. Java operators are classified into three categories:

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

Chapter 2. Elementary Programming

DATA TYPES AND EXPRESSIONS

Lecture 6: While Loops and the Math Class

MODULE 02: BASIC COMPUTATION IN JAVA

JAVA OPERATORS GENERAL

Chapter 4 Fundamental Data Types. Big Java by Cay Horstmann Copyright 2009 by John Wiley & Sons. All rights reserved.

Basic Operations jgrasp debugger Writing Programs & Checkstyle

double float char In a method: final typename variablename = expression ;

Declaration and Memory

Course Outline. Introduction to java

Chapter 7 Arithmetic

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

CIS 110: Introduction to Computer Programming

LECTURE 3 C++ Basics Part 2

Chapter 2: Overview of C++

More Things We Can Do With It! Overview. Circle Calculations. πr 2. π = More operators and expression types More statements

Variables and data types

Getting started with Java

COMP 110 Introduction to Programming. What did we discuss?

CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall Office hours:

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

Expressions and Data Types CSC 121 Fall 2015 Howard Rosenthal

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

2/9/2012. Chapter Four: Fundamental Data Types. Chapter Goals

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

CMPT 125: Lecture 3 Data and Expressions

Built-in data types. logical AND logical OR logical NOT &&! public static void main(string [] args)

COMP-202: Foundations of Programming. Lecture 3: Boolean, Mathematical Expressions, and Flow Control Sandeep Manjanna, Summer 2015

Sequence structure. The computer executes java statements one after the other in the order in which they are written. Total = total +grade;

Chapter 4 Fundamental Data Types. Big Java by Cay Horstmann Copyright 2009 by John Wiley & Sons. All rights reserved.

Programming with Java

ISA 563 : Fundamentals of Systems Programming

Built-in data types. public static void main(string [] args) logical AND logical OR logical NOT &&! Fundamentals of Computer Science

Computer Programming, I. Laboratory Manual. Experiment #2. Elementary Programming

CIS133J. Working with Numbers in Java

What did we talk about last time? Examples switch statements

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

Big Java. Fifth Edition. Chapter 3 Fundamental Data Types. Cay Horstmann

Java Programming Fundamentals - Day Instructor: Jason Yoon Website:

Algorithms and Programming I. Lecture#12 Spring 2015

Define a method vs. calling a method. Chapter Goals. Contents 1/21/13

Introduction to Java & Fundamental Data Types

Zheng-Liang Lu Java Programming 45 / 79

COSC 123 Computer Creativity. Introduction to Java. Dr. Ramon Lawrence University of British Columbia Okanagan

CSC 1214: Object-Oriented Programming

Computational Expression

Chapter 4: Conditionals and Recursion

CEN 414 Java Programming

Lecture Set 4: More About Methods and More About Operators

TOPIC 2 INTRODUCTION TO JAVA AND DR JAVA

On a 64-bit CPU. Size/Range vary by CPU model and Word size.

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

CS 302: Introduction to Programming

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

int: integers, no fractional part double: floating-point numbers (double precision) 1, -4, 0 0.5, , 4.3E24, 1E-14

PRIMITIVE VARIABLES. CS302 Introduction to Programming University of Wisconsin Madison Lecture 3. By Matthew Bernstein

Transcription:

Lecture 2: Operations and Data Types Building Java Programs: A Back to Basics Approach by Stuart Reges and Marty Stepp Copyright (c) Pearson 2013. All rights reserved.

Data types 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 Internally, computers store everything as 1s and 0s 104 à 01101000 "hi" à 01101000110101 2

Java's primitive types primitive types: 8 simple types for numbers, text, etc. Java also has object types, which we'll talk about later Name Description Examples int integers (up to 2 31-1) 42, -3, 0, 926394 double real numbers (up to 10 38 ) 3.1, -0.25, 9.4e3 boolean logical values true, false 3

Expressions 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. A complex expression can use operators and parentheses. 4

Arithmetic operators operator: Combines multiple values or expressions. + addition - subtraction (or negation) * multiplication / division % modulus (a.k.a. remainder) 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? 5

Integer division with / When we divide integers, the quotient is also an integer. 14 / 4 is 3, not 3.5 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. 6

Integer remainder with % The % operator computes the remainder from integer division. 14 % 4 is 2 218 % 5 is 3 What is the result? 45 % 6 3 43 4 ) 14 5 ) 218 2 % 2 12 20 8 % 20 2 18 11 % 0 15 3 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 7

Expressions Find the exact change for 137 cents using quarters, dimes, nickels and cents. Use the least number of coins. How many quarters? 137 / 25 = 5 quarters (Integer Division!) What s leftover? 137 % 25 = 12 cents How many dimes? 12 / 10 = 1 dime What s leftover? 12 % 10 = 2 cents How many nickels? 2 / 5 = 0 nickels. What s leftover? 2 % 5 = 2 cents. 8

Precedence 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 Spacing does not affect order of evaluation 1+3 * 4-2 is 11 9

Precedence examples 1 * 2 + 3 * 5 % 4 \_/ 2 + 3 * 5 % 4 \_/ 2 + 15 % 4 \ / 2 + 3 \ / 5 n 1 + 8 % 3 * 2-9 n \_/ 1 + 2 * 2-9 n \ / 1 + 4-9 n \ / 5-9 n \ / -4 10

Real numbers (type double) Examples: 6.022, -42.0, 2.143 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 + - 11

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 12

Mixing types When int and double are mixed, the result is a double. 4.2 * 3 is 12.6 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 13

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

Variables 15

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 So many println statements 16

Variables 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 17

Declaration 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 18

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; x 3 double mygpa; mygpa = 1.0 + 2.25; mygpa 3.25 19

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); // 14 You can assign a value more than once: int x; x = 3; System.out.println(x + " here"); x 11 3 // 3 here x = 4 + 7; System.out.println("now x is " + x); // now x is 11 20

Declaration/initialization A variable can be declared/initialized in one statement. Syntax: type name = value; double mygpa = 3.95; mygpa 3.95 int x = (11 % 3) + 12; x 14 21

Assignment and algebra 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; //??? x 35 22

Assignment and types 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; mygpa 4.0 double avg = 11 / 2; avg 5.0 Why does avg store 5.0 and not 5.5? 23

Compiler errors Order matters. int x; 7=x; // ERROR: should be x=7; 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; // ERROR: x already exists int x = 3; int x = 5; // ERROR: x already exists How can this code be fixed? 24

Printing a variable's value 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. 25

Receipt question 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); 26

Receipt answer 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); 27

Flow of a Program 28

Try 29

Output Output of FooBarBazMumble: foo mumble bar baz mumble 30

Lab 1 Write a program from scratch. (NO COPY AND PASTE ALLOWED) SAVE YOUR PROGRAM IN A FOLDER CALLED MATHEX ON CS50IDE. You will write two static methods in addition to the main() method. Your methods should be called printmath() and printcat(). In the printmath() method, use both println and print commands to print some math expressions and check the evaluated value at runtime. You must use each of the operators + - * / % () and have at least five expressions. In the printcat() method, use both println and print commands to print some examples of String concatenation. You must use both numbers and letters in your concatenation. Print at least five concatenations. 31

Lab 2 Write a program from scratch. (NO COPY AND PASTE ALLOWED) SAVE YOUR PROGRAM IN A FOLDER CALLED ExactChange ON CS50IDE. Use the following template(or something similar) to write a program that gives exact change with the least number of coins for a given number of cents. Use intermediate variables to help your calculation. public static void main(string[] args){ int totalcents = 137; //137 can be any number.. // your code here. } Output: 5 quarters, 1 dimes, 0 nickels, 2 pennies. 32

Lab 2 Let {a1,a2,a3,,an} be a list of n real numbers. The average of the list denoted by ave = (a1+a2+ +an)/n. The deviation of the entry ai from the average denoted by di = ai-ave. The variance of the list = [ (d1)^2 + (d2)^2 + + (dn)^2 ] / n. The standard deviation of the list = the square root of the variance of the list. 33

Lab 3 For example, if the list is {2,4,5,8,16}. Average=7 d1=2-7=-5 d2=4-7=-3 d3=5-7=-2 d4=8-7=1 d5=16-7=9 Variance=[(-5)^2+(-3)^2+(-2)^2+1^2+9^2]/5=24 Standard deviation=square root of 24=4.898979486 34

Lab 3 Create a folder called Statistics to store your code. Create three integer variables to store three test scores: test1, test2, test3. Create an double variable to compute the average of the scores. Create three double variables to compute the deviations. Create two double variables to compute the variance and standard deviation. Hint: To compute the square root of 9 for example, use Math.sqrt(9). 35

Lab 3 Your output should look something like: The test scores are: 78, 82, 89. The average of the scores is: 83.0 The variance is: 20.666666666666668 The standard deviation is: 4.546060565661952 36