First Programs. CSE 1310 Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington

Similar documents
First Programs. CSE 1310 Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington

First Programs. CSE 1310 Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington

Formatted Output (printf) CSE 1310 Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington

Variables, Types, Operations on Numbers

Methods (Functions) CSE 1310 Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington

Decisions (If Statements) And Boolean Expressions

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

M105: Introduction to Programming with Java Midterm Examination (MTA) Makeup Spring 2013 / 2014

CS 302: Introduction to Programming

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

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

Introduction to Java Applications

STUDENT LESSON A7 Simple I/O

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

Programming in Java

Wentworth Institute of Technology. Engineering & Technology WIT COMP1000. Java Basics

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

CS 152: Data Structures with Java Hello World with the IntelliJ IDE

Arithmetic and IO. 25 August 2017

Common Mistakes with Functions. CSE 1310 Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington

COMP 202 Java in one week

Maximization and Minimization Problems. CSE 1310 Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington

Java Reference Card. 1. Classes. 2. Methods. 3. Conditionals. 4. Operators

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

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

Activity 4: Methods. Content Learning Objectives. Process Skill Goals

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

What did we talk about last time? Examples switch statements

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

4. Java Project Design, Input Methods

COMP 202. Java in one week

Strings. CSE 1310 Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington

Section 2.2 Your First Program in Java: Printing a Line of Text

Getting started with Java

Selections. EECS1021: Object Oriented Programming: from Sensors to Actuators Winter 2019 CHEN-WEI WANG

Basic Programming Language Syntax

FUNDAMENTAL DATA TYPES

First Java Program - Output to the Screen

COMP1730/COMP6730 Programming for Scientists. Data: Values, types and expressions.

Expressions, Statements, Variables, Assignments, Types

Wentworth Institute of Technology. Engineering & Technology WIT COMP1000. Methods

Introduction to Software Development (ISD) David Weston and Igor Razgon

when you call the method, you do not have to know exactly what those instructions are, or even how the object is organized internally

Programming with Java

Interpreted vs Compiled. Java Compile. Classes, Objects, and Methods. Hello World 10/6/2016. Python Interpreted. Java Compiled

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

CS111: PROGRAMMING LANGUAGE II

CS 106 Introduction to Computer Science I

Motivating Examples (1.1) Selections. Motivating Examples (1.2) Learning Outcomes. EECS1022: Programming for Mobile Computing Winter 2018

Topics. The Development Process

2.8. Decision Making: Equality and Relational Operators

Primitive Data, Variables, and Expressions; Simple Conditional Execution

CMSC 150 INTRODUCTION TO COMPUTING LAB WEEK 3 STANDARD IO FORMATTING OUTPUT SCANNER REDIRECTING

CEN 414 Java Programming

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

Date: Dr. Essam Halim

Java Programming Fundamentals - Day Instructor: Jason Yoon Website:

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

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

COMP-202: Foundations of Programming. Lecture 2: Variables, and Data Types Sandeep Manjanna, Summer 2015

Full file at

Class 9: Static Methods and Data Members

Elementary Programming

2 nd Week Lecture Notes

BASIC INPUT/OUTPUT. Fundamentals of Computer Science

Course Outline. Introduction to java

Introduction to Computer Science Unit 2. Notes

Simple Java Reference

Research Group. 2: More types, Methods, Conditionals

1 class Lecture5 { 2 3 "Methods" / References 8 [1] Ch. 5 in YDL 9 [1] Ch. 20 in YDL 0 / Zheng-Liang Lu Java Programming 176 / 199

Expressions and Variables

Basic Programming Elements

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

Università degli Studi di Bologna Facoltà di Ingegneria. Principles, Models, and Applications for Distributed Systems M

Introduction to Java Applications

CHAPTER 4 MATHEMATICAL FUNCTIONS, CHARACTERS, STRINGS

I. Variables and Data Type week 3

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

Visual Programming. Lecture 2: More types, Methods, Conditionals

Fundamentals of Programming Session 4

Data Structure and Programming Languages

CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 10: OCT. 6TH INSTRUCTOR: JIAYIN WANG

Files. CSE 1310 Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington

Arrays and Array Lists. CSE 1310 Introduction to Computers and Programming Vassilis Athitsos and Alexandra Stefan University of Texas at Arlington

Datatypes, Variables, and Operations

COMP 202. Built in Libraries and objects. CONTENTS: Introduction to objects Introduction to some basic Java libraries string

COMP 202 Java in one week

Loops (while and for)

Files. CSE 1310 Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington

DM550 Introduction to Programming part 2. Jan Baumbach.

Warm up Exercise. What are the types and values of the following expressions: * (3 + 1) 3 / / 2.0 (int)1.0 / 2

School of Computer Science CPS109 Course Notes 5 Alexander Ferworn Updated Fall 15

Files & Exception Handling. CSE 1310 Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington

AP Computer Science Unit 1. Programs

Java Coding 3. Over & over again!

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

COMP-202: Foundations of Programming. Lecture 4: Methods Jackie Cheung, Winter 2016

Chapter 2: Data and Expressions

Chapter 2: Data and Expressions

Numerical Data. CS 180 Sunil Prabhakar Department of Computer Science Purdue University

Transcription:

First Programs CSE 1310 Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1

Output System.out.println( ) prints out something. System.out.println is the first piece of Java that we learn in this class. We will see in detail what kind of things can get printed. In the beginning, the things we care about printing are: Numbers. Strings (text). 2

Examples of System.out.println Program: public class hello1 { System.out.println("Have a nice day."); System.out.println(6.3 + 12/7); In Netbeans, the program output always starts with "run:" and ends with "BUILD SUCCESSFUL ". Output: run: Have a nice day. 7.3 BUILD SUCCESSFUL (total time: 0 seconds) 3

Examples of System.out.println Program: public class hello1 { System.out.println("Have a nice day."); System.out.println(6.3 + 12/7); Output: In Netbeans, the program output always starts with "run:" and ends with "BUILD SUCCESSFUL ". From now on, we will not be showing those lines. We will call "program output" what is between those lines. Have a nice day. 7.3 4

Syntax of System.out.println Program: public class hello1 { System.out.println("Have a nice day."); System.out.println(6.3 + 12/7); What you want to print is called the argument. To use System.out.println, you write a line like this: System.out.println(argument); In other words, you write System.out.println, followed by a left parenthesis, followed by an argument, followed by a right parenthesis, followed by a semicolon. 5

Syntax of System.out.println Program: public class hello1 { System.out.println("Have a nice day."); System.out.println(6.3 + 12/7); If the argument is text (also called a string), then it must be enclosed in double quotes. If the argument is a numerical expression, then System.out.println prints the result of that expression. 6

Syntax of System.out.println Is each of these lines correct or not? If correct, what will it print? System.out.println("hello"); System.out.println(hello); 7

Syntax of System.out.println Is each of these lines correct or not? If correct, what will it print? System.out.println("hello"); Correct, prints hello. System.out.println(hello); Incorrect, missing double quotes. Will not run. 8

Syntax of System.out.println Is each of these lines correct or not? If correct, what will it print? System.out.println("6.3 + 12/7"); System.out.println(6.3 + 12/7); 9

Syntax of System.out.println Is each of these lines correct or not? If correct, what will it print? System.out.println("6.3 + 12/7"); Correct, prints 6.3 + 12/7 Note that the argument here is text. System.out.println(6.3 + 12/7); Correct, prints 7.3 Note that the argument here is a numerical expression. 10

Syntax of System.out.println Is each of these lines correct or not? If correct, what will it print? System.out.println("hello") System.out.println(6.3 + 12/7) 11

Syntax of System.out.println Is each of these lines correct or not? If correct, what will it print? System.out.println("hello") Incorrect. Missing semicolon at the end. Will not run. System.out.println(6.3 + 12/7) Incorrect. Missing semicolon at the end. Will not run. 12

Syntax of System.out.println Is each of these lines correct or not? If correct, what will it print? System.out.println "hello"; System.out.println 6.3 + 12/7; 13

Syntax of System.out.println Is each of these lines correct or not? If correct, what will it print? System.out.println "hello"; Incorrect. Missing parentheses. Will not run. System.out.println 6.3 + 12/7; Incorrect. Missing parentheses. Will not run. 14

Syntax of System.out.println Is each of these lines correct or not? If correct, what will it print? System.out.println "hello" (); System.out.println 6.3 + 12/7 (); 15

Syntax of System.out.println Is each of these lines correct or not? If correct, what will it print? System.out.println "hello" (); Incorrect. Misplaced parentheses. Will not run. System.out.println 6.3 + 12/7 (); Incorrect. Misplaced parentheses. Will not run. 16

Syntax of System.out.println As we saw a few slides ago, to use System.out.println, you write a line like this: System.out.println(argument); Java (like any programming language) is very strict. If you do not follow the syntax EXACTLY, it will refuse to execute that line. This is true not only for System.out.println, but for any syntax rules that we will see in this course. 17

Java as a Calculator. public class hello1 { System.out.println((23*3) + 12/4.5); System.out.println(6.3 + 12/7-4); Output: 71.66666666666667 3.3 We can type in arbitrary numerical expressions, and Java evaluates them. This is still not that exciting. However, such calculations are a useful building block for real programs. 18

More Math Calculations public class hello1 { System.out.println(Math.pow(2, 10)); System.out.println(8 * Math.pow(2 + 3.5/7, 4)); System.out.println(Math.sqrt(3)); System.out.println(4 - Math.sqrt(3+5/7.2)); Powers: 2 10 becomes Math.pow(2, 10) Output: 1024.0 312.5 1.7320508075688772 2.077906234221534 8 2 + 3.5 7 Roots 4 becomes 8 * Math.pow(2 + 3.5/7, 4) 3 becomes Math.sqrt(3) 4 3 + 5 7.2 becomes 4 - Math.sqrt(3+5/7.2) 19

More Math Calculations public class hello1 { System.out.println(Math.PI); System.out.println(Math.sin(Math.PI / 2)); System.out.println(Math.cos(Math.PI / 2)); System.out.println(Math.tan(Math.PI / 2)); System.out.println(Math.log(12.5)); Output: 3.141592653589793 1.0 6.123233995736766E-17 1.633123935319537E16 2.5257286443082556 The pi constant: Math.PI The sine of x: Math.sin(x) The cosine of x: Math.cos(x) The tangent of x: Math.tan(x) The natural logarithm of x: Math.log(x) 20

Division: Floating Point and Integer public class hello1 { System.out.println(7.0 / 4.0); System.out.println(7 / 4.0); System.out.println(7.0 / 4); System.out.println(7 / 4); System.out.println(7 % 4); Output: 1.75 1.75 1.75 1 3 Floating point division: 7.0 / 4.0 7 / 4.0 7.0 / 4 They all evaluate to 1.75 Integer division: 7 / 4 evaluates to 1 7 % 4 produces the remainder of 7/4, so it evaluates to 3. 21

Circumference and Area of Circle We want to write a program to compute the circumference and area of a circle. What do the the circumference and area of a circle depend on? 22

Circumference and Area of Circle We want to write a program to compute the circumference and area of a circle. What do the the circumference and area of a circle depend on? The radius of the circule. circumference = 2 * pi * radius area = pi * radius 2 23

Circumference and Area of Circle Suppose we have a circle with radius = 20.231. Computing the circumference of the circle: Circumference = 2 * pi * radius Code? 24

Circumference and Area of Circle Suppose we have a circle with radius = 20.231. Computing the circumference of the circle: Circumference = 2 * pi * radius System.out.println(2 * Math.PI * 20.231); Output: 127.11512194955021 25

Circumference and Area of Circle Suppose we have a circle with radius = 20.231. Computing the circumference of the circle: Circumference = 2 * pi * radius System.out.println(2 * Math.PI * 20.231); Output: 127.11512194955021 Computing the area of the circle: area = pi * radius 2 Code? 26

Circumference and Area of Circle Suppose we have a circle with radius = 20.231. Computing the circumference of the circle: Circumference = 2 * pi * radius System.out.println(2 * Math.PI * 20.231); Output: 127.11512194955021 Computing the area of the circle: area = pi * radius 2 System.out.println(Math.PI * Math.pow(20.231, 2)); Output: 1285.8330160806754 27

Circumference and Area of Circle Suppose we have a circle with radius = 20.231. Program: public class hello1 { System.out.println(2 * Math.PI * 20.231); System.out.println(Math.PI * Math.pow(20.231, 2)); Is this a good program to sell to a user? 28

Circumference and Area of Circle Suppose we have a circle with radius = 20.231. Program: public class hello1 { System.out.println(2 * Math.PI * 20.231); System.out.println(Math.PI * Math.pow(20.231, 2)); Is this a good program to sell to a user? No: the only way for the user to use this program is to modify the code every time, to specify the radius. That is bad. Users should not need to be programmers. 29

Circumference and Area of Circle Suppose we have a circle with radius = 20.231. Program: public class hello1 { System.out.println(2 * Math.PI * 20.231); System.out.println(Math.PI * Math.pow(20.231, 2)); Any other issues/problems with this program? 30

Circumference and Area of Circle Suppose we have a circle with radius = 20.231. Program: public class hello1 { System.out.println(2 * Math.PI * 20.231); System.out.println(Math.PI * Math.pow(20.231, 2)); Any other issues/problems with this program? The radius is specified TWICE. This is bad practice, introduces the risk of errors. Also, more painful to change the radius, we must change it in two places. 31

Circumference and Area of Circle Suppose we have a circle with radius = 20.231. Program: public class hello1 { System.out.println(2 * Math.PI * 20.231); System.out.println(Math.PI * Math.pow(20.231, 2)); Any other issues/problems with this program? The program is hard to read and understand. If you show it to a programmer, is it clear what the program is supposed to be doing? The output is just numbers, not very user-friendly. 32

Using Variables public class hello1 { double radius = 20.231; double circumference = 2 * Math.PI * radius; double area = Math.PI * Math.pow(radius, 2); System.out.println(circumference); System.out.println(area); This code has the same output as the previous version. However: The radius is specified only once (better than specifying twice). If you show this program to any programmer, it is fairly obvious what it does (easy to read). 33

Declaring a Variable One Way At any point, you can create a variable, by doing a variable declaration. Syntax for variable declaration (one way): type variable_name; For example: String name; int number_of_fingers; double radius; If you declare variables this way, they do not have a value yet. You need to give them a value at some point later in your code. 34

Declaring a Variable One Way public class xyz { String name; int number_of_fingers; double radius; radius = 20.231; System.out.println(radius); number_of_fingers = 5; name = "Tim"; System.out.println(name); 35

Declaring a Variable Second Way Syntax for variable declaration (second way): type variable_name = initial_value; If you use this way, then when you declare the variable you are also giving it an initial value. For example: String name = "Tim"; int number_of_fingers = 5; double radius = 20.231; 36

Types There are many different types in Java. However, initially, you just need to know these three: double int String You need to think carefully, and use the correct type for your variable. For integers (positive and negative), use int. For floating point numbers, use double. For text, use String. 37

Variable Names The textbook describes the rules for variable names. Here is a simplified version: variable names should start with a letter (upper or lower case). variable names should only include letters, numbers, and underscores. variable names are case-sensitive. variable names cannot be equal to reserved words, such as double, class, int, public, 38

After you declare a variable, you can use it in the rest of the code: You can use its value. You can change its value. Using Variables Setting or changing the value of a variable is called assignment. public class hello1 { int candies = 5; System.out.println(candies); candies = 7; System.out.println(candies); candies = candies + 10; System.out.println(candies); Output: 39

After you declare a variable, you can use it in the rest of the code: You can use its value. You can change its value. Using Variables Setting or changing the value of a variable is called assignment. public class hello1 { int candies = 5; System.out.println(candies); candies = 7; System.out.println(candies); candies = candies + 10; System.out.println(candies); Output: 5 7 17 40

Declarations and Assignments In this program: Which lines of code are declarations? Which lines of code are assignments? public class hello1 { int candies = 5; System.out.println(candies); candies = 7; System.out.println(candies); candies = candies + 10; System.out.println(candies); Output: 5 7 17 41

Declarations and Assignments In this program: Which lines of code are declarations? int candies = 5; Which lines of code are assignments? int candies = 5; candies = 7; candies = candies + 10; public class hello1 { int candies = 5; System.out.println(candies); candies = 7; System.out.println(candies); candies = candies + 10; System.out.println(candies); Output: 5 7 17 42

Declarations and Assignments Note that this line is BOTH a declaration AND and an assignment: int candies = 5; public class hello1 { int candies = 5; System.out.println(candies); candies = 7; System.out.println(candies); candies = candies + 10; System.out.println(candies); Output: 5 7 17 43

Declarations and Assignments This code will not run. Why? public class hello1 { int candies; System.out.println(candies); candies = 7; System.out.println(candies); candies = candies + 10; System.out.println(candies); 44

Declarations and Assignments This code will not run. Why? The first time we try to print variable candies, the variable has not been assigned a value yet. You cannot use a variable until it has been assigned a value. Java programs will not run if you have any violation of this principle. public class hello1 { int candies; System.out.println(candies); candies = 7; System.out.println(candies); candies = candies + 10; System.out.println(candies); 45

Fix One Way One easy way to fix the code is to assign an initial value to candies when we declare it. public class hello1 { int candies = 5; System.out.println(candies); candies = 7; System.out.println(candies); candies = candies + 10; System.out.println(candies); Output: 5 7 17 46

Fix Another Way Another way to fix the code is to assign a value to candies after we declare it (but before we use it). public class hello1 { int candies; candies = 5; System.out.println(candies); candies = 7; System.out.println(candies); candies = candies + 10; System.out.println(candies); Output: 5 7 17 47

Returning to the Circles Program Version with variables: public class hello1 { double radius = 20.231; double circumference = 2 * Math.PI * radius; double area = Math.PI * Math.pow(radius, 2); System.out.println(circumference); System.out.println(area); Which lines are declarations? Which lines are assignments? 48

Returning to the Circles Program Version with variables: public class hello1 { double radius = 20.231; double circumference = 2 * Math.PI * radius; double area = Math.PI * Math.pow(radius, 2); System.out.println(circumference); System.out.println(area); Which lines are declarations? Shown in red. Which lines are assignments? Shown in red. Here each declaration line is also an assignment. 49

Returning to the Circles Program Version with variables: public class hello1 { double radius = 20.231; double circumference = 2 * Math.PI * radius; double area = Math.PI * Math.pow(radius, 2); System.out.println(circumference); System.out.println(area); Problem: the radius is hardcoded. Why is this a problem? 50

Problem: Radius is Hardcoded Why is this a problem? Biggest reason: the user needs to be a programmer. You cannot use this program without changing the program. 51

Solution Allow the user to enter the radius value as input. 52

import java.util.scanner; public class hello1 { Scanner in = new Scanner(System.in); System.out.printf("Please enter the radius: "); double radius = in.nextdouble(); double circumference = 2 * Math.PI * radius; double area = Math.PI * Math.pow(radius, 2); System.out.println(circumference); System.out.println(area); Revised program with user input. There are several new things here: the import line. The Scanner object. The System.out.printf method. 53

import java.util.scanner; public class hello1 { Scanner in = new Scanner(System.in); System.out.printf("Please enter the radius: "); double radius = in.nextdouble(); double circumference = 2 * Math.PI * radius; double area = Math.PI * Math.pow(radius, 2); System.out.println(circumference); System.out.println(area); The Scanner object allows us to obtain user input. To create a Scanner object, we need to: Put the import statement at the top of the Java file. Create a Scanner object, as shown in the first line of the main method: Scanner in = new Scanner(System.in); 54

import java.util.scanner; public class hello1 { Scanner in = new Scanner(System.in); System.out.printf("Please enter the radius: "); double radius = in.nextdouble(); double circumference = 2 * Math.PI * radius; double area = Math.PI * Math.pow(radius, 2); System.out.println(circumference); System.out.println(area); The System.out.printf method is a more powerful version of the System.out.println method. One difference is that System.out.println always prints a new line at the end, whereas System.out.printf does not. 55

println and printf public class hello1 { public static void main(string[] args) { System.out.println("hello"); System.out.printf("hello\n"); These two lines do the exact same thing: System.out.println("hello"); System.out.printf("hello\n"); 56

Back to the Circles Program import java.util.scanner; public class hello1 { Scanner in = new Scanner(System.in); System.out.printf("Please enter the radius: "); double radius = in.nextdouble(); double circumference = 2 * Math.PI * radius; double area = Math.PI * Math.pow(radius, 2); System.out.println(circumference); System.out.println(area); Next problem to fix: the output is just numbers. Please enter the radius: 5.2 32.67256359733385 84.94866535306801 57

Back to the Circles Program import java.util.scanner; public class hello1 { Scanner in = new Scanner(System.in); System.out.printf("Please enter the radius: "); double radius = in.nextdouble(); double circumference = 2 * Math.PI * radius; double area = Math.PI * Math.pow(radius, 2); System.out.println(circumference); System.out.println(area); It would be nicer to have output like this: Please enter the radius: 5.2 The circumference is 32.672564 The area is 84.948665 58

Circles Program with (Somewhat) import java.util.scanner; Nicer Output public class hello1 { Scanner in = new Scanner(System.in); System.out.printf("Please enter the radius: "); double radius = in.nextdouble(); double circumference = 2 * Math.PI * radius; double area = Math.PI * Math.pow(radius, 2); System.out.printf("The circumference is %f\n", circumference); System.out.printf("The area is %f\n", area); Please enter the radius: 5.2 The circumference is 32.672564 The area is 84.948665 59

System.out.printf public class example1 { int days = 31; String month = "July"; double temperature = 85.3; System.out.printf("There are %d days in %s\n", days, month); System.out.printf("Average temperature in %s: %f degrees\n", month, temperature); Output: There are 31 days in July Average temperature in July: 85.300000 degrees System.out.printf gives you an easy way to print nicer output, by combining text, variables, and other values. 60

System.out.printf public class example1 { int days = 31; String month = "July"; double temperature = 85.3; System.out.printf("There are %d days in %s\n", days, month); System.out.printf("Average temperature in %s: %f degrees\n", month, temperature); printf works as follows: It starts printing the text in the first argument. There are 61

System.out.printf public class example1 { int days = 31; String month = "July"; double temperature = 85.3; System.out.printf("There are %d days in %s\n", days, month); System.out.printf("Average temperature in %s: %f degrees\n", month, temperature); printf works as follows: It starts printing the text in the first argument. When it finds the first % sign, it prints the second argument. There are 31 62

System.out.printf public class example1 { int days = 31; String month = "July"; double temperature = 85.3; System.out.printf("There are %d days in %s\n", days, month); System.out.printf("Average temperature in %s: %f degrees\n", month, temperature); printf works as follows: It starts printing the text in the first argument. When it finds the first % sign, it prints the second argument. It continues printing text. There are 31 days in 63

System.out.printf public class example1 { int days = 31; String month = "July"; double temperature = 85.3; System.out.printf("There are %d days in %s\n", days, month); System.out.printf("Average temperature in %s: %f degrees\n", month, temperature); printf works as follows: It starts printing the text in the first argument. When it finds the first % sign, it prints the second argument. It continues printing text. When it finds the second % sign, it prints the third argument. There are 31 days in July 64

System.out.printf public class example1 { int days = 31; String month = "July"; double temperature = 85.3; System.out.printf("There are %d days in %s\n", days, month); System.out.printf("Average temperature in %s: %f degrees\n", month, temperature); printf works as follows: It starts printing the text in the first argument. When it finds the first % sign, it prints the second argument. It continues printing text. When it finds the second % sign, it prints the third argument. And so on, until the entire text is processed. 65

System.out.printf public class example1 { int days = 31; String month = "July"; System.out.printf("There are %d days in %s\n", days, "July"); System.out.printf("Average temperature in %s: %f degrees\n", month, (85.1 + 85.5) / 2.0); The values that you provide in the second argument, third argument, and so on, can be: variables, like days in the example above. constants, like "July" in the example above. expressions, like (85.1 + 85.5) / 2.0 in the example above. 66

Format Specifiers public class example1 { int days = 31; String month = "July"; System.out.printf("There are %d days in %s\n", days, "July"); System.out.printf("Average temperature in %s: %f degrees\n", month, (85.1 + 85.5) / 2.0); %d, %f, %s are called format specifiers. A format specifier must match the value that will be printed. %d is for values of type int %f is for values of type double %s is for values of type String We will see a few more format specifiers soon. 67

Another Example: Converting Weeks to Days Let s write a program that: Asks the user to enter a number of weeks. Converts that number of weeks to a number of days. 68

Another Example: Converting Weeks to Days import java.util.scanner; public class example1 { Scanner in = new Scanner(System.in); System.out.printf("Please enter number of weeks: "); int weeks = in.nextint(); int days = weeks * 7; System.out.printf("There are %d days in %d weeks\n", days, weeks); 69

Another Example: Computing the Average of Three Numbers Let s write a program that: Asks the user to enter three numbers. Computes and prints out the average of those numbers. 70

Another Example: Computing the Average of Three Numbers import java.util.scanner; public class example1 { Scanner in = new Scanner(System.in); System.out.printf("Please enter the first number: "); double n1 = in.nextdouble(); System.out.printf("Please enter the second number: "); double n2 = in.nextdouble(); System.out.printf("Please enter the third number: "); double n3 = in.nextdouble(); double average = (n1 + n2 + n3) / 3.0; System.out.printf("The average is %f\n", average); 71

Another Example: Computing the Gravity Force Law of gravity: F = G m 1m 2 r 2 F: force of gravity between two objects. m 1 : mass of the first object. m 2 : mass of the second object. r: distance between the two objects. Let s write a program that applies the law of gravity to compute the gravity force between two objects. Asks the user to enter the masses of the two objects. Asks the user to enter the distance between the two objects. Computes and prints out the gravity force. 72

Another Example: Computing the Gravity Force import java.util.scanner; public class example1 { Scanner in = new Scanner(System.in); System.out.printf("Please enter the first mass: "); double m1 = in.nextdouble(); System.out.printf("Please enter the second mass: "); double m2 = in.nextdouble(); System.out.printf("Please enter the radius: "); double r = in.nextdouble(); double G = 6.694E-11; double gravity = G * m1 * m2 / (r * r); System.out.printf("The gravity force is %f\n", gravity); 73

Comments /* A program that converts weeks into days. Written on 7/15/2015. */ import java.util.scanner; public class example1 { Scanner in = new Scanner(System.in); System.out.printf("Enter number of weeks: "); int weeks = in.nextint(); // Here is where we convert weeks into days. int days = weeks * 7; System.out.printf("Result: %d days\n", days); Comments allow you to make notes on the program for yourself, and for other people reading your code. Comments are ignored by Java. Single line comments: they start with // (see line in green above) Multiple-line comments: they start with /*, end with */ (see lines in red) 74

import java.util.scanner; Comments public class example1 { Scanner in = new Scanner(System.in); // Create scanner object. System.out.printf("Enter number of weeks: "); int weeks = in.nextint(); // Get user input int days = weeks * 7; // Converting weeks into days. System.out.printf("Result: %d days\n", days); Comments starting with // can be placed at the end of a line (see code marked in red) 75

Some Guidelines To learn how to code, you need PRACTICE. What will usually not work: Listen to the lectures. Go and try to do the assignments. What will usually work: Listen to the lectures and KEEP NOTES. Actually run every piece of code that we do in class. Understand every line of every piece of code we do in class. Think of variations of what we do in class, and try them. Predict what the variation will do, and verify by running it. Then try the assignments. 76

Some Guidelines You need to understand the terminology: method, string, double, int, main class name, numerical expression, variable, declaration, assignment, newline character You will encounter many terms in this course. YOU NEED TO LEARN EXACTLY WHAT THEY MEAN. DO NOT RELY ON ENGLISH. These terms have meanings in conversational English that are only vaguely related with their meaning in programming. 77