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

Similar documents
Building Java Programs

Building Java Programs

Topic 5 for loops and nested loops

Building Java Programs Chapter 2

Building Java Programs

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

Building Java Programs Chapter 2

CS 112 Introduction to Programming

Introduction to Computer Programming

Recap: Assignment as an Operator CS 112 Introduction to Programming

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

Repetition with for loops

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

Primitive data, expressions, and variables

Building Java Programs

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

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

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

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

CS 112 Introduction to Programming

LEC03: Decisions and Iterations

Chapter 4: Control structures. Repetition

Chapter 4: Control structures

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

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

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

Topic 6 Nested for Loops

Lecture 13: Two- Dimensional Arrays

CIS 110: Introduction to Computer Programming

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

CompSci 125 Lecture 11

ECE 122. Engineering Problem Solving with Java

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

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

STUDENT LESSON A12 Iterations

Definite Loops. Computer Science S-111 Harvard University David G. Sullivan, Ph.D. Using a Variable for Counting

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

Bjarne Stroustrup. creator of C++

Control Structures II. Repetition (Loops)

true false Imperative Programming III, sections , 3.0, 3.9 Introductory Programming Control flow of programs While loops: generally Loops

Repe$$on CSC 121 Spring 2017 Howard Rosenthal

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

Unit 1 Lesson 4. Introduction to Control Statements

Building Java Programs

CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 8: SEP. 29TH INSTRUCTOR: JIAYIN WANG

CS 106 Introduction to Computer Science I

Handout 5 cs180 - Programming Fundamentals Spring 15 Page 1 of 8. Handout 5. Loops.

Top-Down Program Development

Repe$$on CSC 121 Fall 2015 Howard Rosenthal

Loops and Files. Chapter 04 MIT 12043, Fundamentals of Programming By: S. Sabraz Nawaz

Repetition CSC 121 Fall 2014 Howard Rosenthal

Repetition and Loop Statements Chapter 5

COSC 123 Computer Creativity. Java Decisions and Loops. Dr. Ramon Lawrence University of British Columbia Okanagan

CSEN 202 Introduction to Computer Programming

COMP-202 Unit 4: Programming With Iterations. CONTENTS: The while and for statements

Java Programming: Guided Learning with Early Objects Chapter 5 Control Structures II: Repetition

Outline for Today CSE 142. Programming a Teller Machine. CSE142 Wi03 I-1. ATM Algorithm for Dispensing Money

Topics. Introduction to Repetition Structures Often have to write code that performs the same task multiple times. Controlled Loop

Warmup : Name that tune!

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

CS 112 Introduction to Programming

Computer Programming. Basic Control Flow - Loops. Adapted from C++ for Everyone and Big C++ by Cay Horstmann, John Wiley & Sons

Java Programming: Guided Learning with Early Objects Chapter 5 Control Structures II: Repetition

Basic computer skills such as using Windows, Internet Explorer, and Microsoft Word. Chapter 1 Introduction to Computers, Programs, and Java

Activity 6: Loops. Content Learning Objectives. Process Skill Goals

Repetition, Looping CS101

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

Simple Java Programming Constructs 4

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

Introduction to Java & Fundamental Data Types

Lecture 7. Instructor: Craig Duckett OUTPUT

Week 2: Data and Output

Loops / Repetition Statements. There are three loop constructs in C. Example 2: Grade of several students. Example 1: Fixing Bad Keyboard Input

CS 177 Week 5 Recitation Slides. Loops

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

Principles of Computer Science I

CS110D: PROGRAMMING LANGUAGE I

CSC 1051 Data Structures and Algorithms I

CS1150 Principles of Computer Science Loops (Part II)

Iteration statements - Loops

Loops. CSE 114, Computer Science 1 Stony Brook University

All copyrights reserved - KV NAD, Aluva. Dinesh Kumar Ram PGT(CS) KV NAD Aluva

Outline. CIS 110: Introduction to Computer Programming. Announcements. For Loops. Redundancy in Patterns. A Solution with Our Current Tools

CSE 113 A. Announcements - Lab

Loops (while and for)

COMP 202. Programming With Iterations. CONTENT: The WHILE, DO and FOR Statements. COMP Loops 1

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

Chapter 7. Iteration. 7.1 Multiple assignment

Chapter 4 Loops. int x = 0; while ( x <= 3 ) { x++; } System.out.println( x );

Java. Programming: Chapter Objectives. Why Is Repetition Needed? Chapter 5: Control Structures II. Program Design Including Data Structures

*Starting Out with C++: From Control Structures through Objects, 7/E* by *Tony Gaddis* COMPUTER PROGRAMMING LECTURE 05 LOOPS IMRAN IHSAN

(Refer Slide Time: 00:26)

Announcements - Grades UBLearns grades just updated Monday, March 28 th (11:00am). Please check grades.

Key Points. COSC 123 Computer Creativity. Java Decisions and Loops. Making Decisions Performing Comparisons. Making Decisions

Introduction to Programming in C Department of Computer Science and Engineering. Lecture No. #16 Loops: Matrix Using Nested for Loop

Structured Programming. Dr. Mohamed Khedr Lecture 9

Introduction to the Java Basics: Control Flow Statements

COMP-202: Foundations of Programming. Lecture 4: Flow Control Loops Sandeep Manjanna, Summer 2015

CS111: PROGRAMMING LANGUAGE II

Transcription:

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

COSC 236 Web Site 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 4 Horizontal redundancy cannot be eliminated cones(); squares(); us(); 4

Review of Quiz 4 cones(); squares(); us(); squares(); cones(); 5

The for loop (pp. 89-91) The for loop is an important programming structure that allows us to repeat a series of instructions multiple times In its simplest form, the for loop repeats the instructions a fixed number of times A counter keeps track of how many times the instructions have been executed A test is made on the counter to see if we have executed the instructions the specified number of times 6

The for loop (pp. 89-91) Hence, the basic steps in the simple form of the for loop are: Initialize the counter (ie: set the counter to 1) Test the counter to see if you have gone through the loop the specified number of times (ntimes) Do the instructions, then Increment the counter each time you go through the loop This is accomplished in Java using the following syntax: for (int i = 1; i <= ntimes; i++) { instructions to be repeated 7

The for loop (pp. 89-91) Hence, the basic steps in the simple form of the for loop are: Initialize the counter (ie: set the counter to 1) Test the counter to see if you have gone through the loop the specified number of times (ntimes) Do the instructions, then Increment the counter each time you go through the loop This is accomplished in Java using the following syntax: for (int i = 1; i <= ntimes; i++) { instructions to be repeated 8

Repetition with for loops (pp. 89-91) So far, repeating a statement is redundant: System.out.println("Homer says:"); System.out.println("I am so smart"); System.out.println("I am so smart"); System.out.println("I am so smart"); System.out.println("I am so smart"); System.out.println("S-M-R-T... I mean S-M-A-R-T"); Java's for loop statement performs a task many times. System.out.println("Homer says:"); for (int i = 1; i <= 4; i++) { // repeat 4 times System.out.println("I am so smart"); System.out.println("S-M-R-T... I mean S-M-A-R-T"); 9

for loop syntax (pp. 89-91) for (initialization; test; update) { statement; statement;... statement; header body Perform initialization once. Repeat the following: Check if the test is true. If not, stop. Execute the statements. Perform the update. 10

Initialization (pp. 89-91) for (int i = 1; i <= 6; i++) { System.out.println("I am so smart"); Tells Java what variable (and what type of variable) to use in the loop Performed once as the loop begins The variable is called a loop counter can use any name, not just i can start at any value, not just 1 can be most any type (but be carful) 11

Section 2.3 The for Loop Initialization (pp. 89-91) 12

Test (pp. 89-91) for (int i = 1; i <= 6; i++) { System.out.println("I am so smart"); Tests the loop counter variable against a limit Uses comparison operators: NOTE: There are equal (==) < less than and not equal (!=) comparison <= less than or equal to operators, but they should > greater than not be used as loop counter >= greater than or equal to comparison operators. = DO NOT USE (this is NOT a comparison, it is a replacement operator) 13

Test (pp. 89-91) 14

Increment and decrement (pp. 89-91) shortcuts to increase or decrease a variable's value by 1 Shorthand Equivalent longer version variable++; variable = variable + 1; variable--; variable = variable - 1; Examples: int x = 2; x++; // x = x + 1; // x now stores 3 double gpa = 2.5; gpa--; // gpa = gpa - 1; // gpa now stores 1.5 15

Modify-and-assign (pp. 89-91) shortcuts to modify a variable's value Shorthand Equivalent longer version variable += value; variable = variable + value; variable -= value; variable = variable - value; variable *= value; variable = variable * value; variable /= value; variable = variable / value; variable %= value; variable = variable % value; Examples: x += 3; // x = x + 3; gpa -= 0.5; // gpa = gpa - 0.5; number *= 2; // number = number * 2; 16

Increment/decrement & modify-assign (pp. 89-91) 17

Repetition over a range (pp. 89-91) System.out.println("1 squared = " + 1 * 1); System.out.println("2 squared = " + 2 * 2); System.out.println("3 squared = " + 3 * 3); System.out.println("4 squared = " + 4 * 4); System.out.println("5 squared = " + 5 * 5); System.out.println("6 squared = " + 6 * 6); Intuition: "I want to print a line for each number from 1 to 6" The for loop does exactly that! for (int i = 1; i <= 6; i++) { System.out.println(i + " squared = " + (i * i)); "For each integer i from 1 through 6, print..." 18

Example using a loop (pp. 89-91) 19

Tracing Loops (pp. 91-94) 5 1 2 4 for (int i = 1; i <= 4; i++) { 3 System.out.println(i + " squared = " + (i * i)); System.out.println("Whoo!"); 1 Currently: i = Output: 1 squared = 1 2 squared = 4 3 squared = 9 4 squared = 16 Whoo! 23451 5 2 3 4 20

Multi-line loop body (pp. 89-91) System.out.println("+----+"); for (int i = 1; i <= 3; i++) { System.out.println("\\ /"); System.out.println("/ \\"); System.out.println("+----+"); Output: +----+ \ / / \ \ / / \ \ / / \ +----+ 21

Expressions for counter (pp. 95-96) int hightemp = 5; for (int i = -3; i <= hightemp / 2; i++) { System.out.println(i * 1.8 + 32); Output: 26.6 28.4 30.2 32.0 33.8 35.6 i -3-2 -1 0 1 2 3 22

System.out.print (pp. 95-96) Prints without moving to a new line allows you to print partial messages on the same line int highesttemp = 5; for (int i = -3; i <= highesttemp / 2; i++) { System.out.print((i * 1.8 + 32) + " "); Output: 26.6 28.4 30.2 32.0 33.8 35.6 Concatenate " " to separate the numbers 23

Counting down (pp. 95-96) The update can use -- to make the loop count down. The test must say > instead of < System.out.print("T-minus "); for (int i = 10; i >= 1; i--) { System.out.print(i + ", "); System.out.println("blastoff!"); System.out.println("The end."); Output: T-minus 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, blastoff! The end. 24

Nested for loops (pp. 97-99) An Example of Two Nested for loops Exercise Analogy: Do six sets of three reps 25

Nested loops (pp. 97-99) nested loop: A loop placed inside another loop. for (int i = 1; i <= 5; i++) { for (int j = 1; j <= 10; j++) { System.out.print("*"); System.out.println(); // to end the line Outside Loop Inside Loop Output: ********** ********** ********** ********** ********** The outer loop repeats 5 times; the inner one 10 times. 5 sets of 10 reps" exercise analogy 26

Nested for loop exercise (pp. 97-99) What is the output of the following nested for loops? for (int i = 1; i <= 5; i++) { for (int j = 1; j <= i; j++) { System.out.print("*"); System.out.println(); Output: * * * * * * * * * * * * * * * This set of two nested for loops generates a right triangle. 27

Nested for loop exercise (pp. 97-99) What is the output of the following nested for loops? for (int i = 1; i <= 5; i++) { for (int j = 1; j <= i; j++) { System.out.print(i); System.out.println(); Output: 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 28

Common errors (pp. 97-99) The following sets of code produces an infinite loop: for (int i = 1; i <= 5; i++) { for (int j = 1; i <= 10; j++) { System.out.print("*"); System.out.println(); Why? for (int i = 1; i <= 5; i++) { for (int j = 1; j <= 10; i++) { System.out.print("*"); System.out.println(); Why? 29

Complex lines (pp. 97-99) What nested for loops produce the following output? inner loop (repeated characters on each line)...1...2..3.4 5 We must build multiple complex lines of output using: an outer "vertical" loop for each of the lines inner "horizontal" loop(s) for the patterns within each line outer loop (loops 5 times because there are 5 lines) 30

Outer and inner loop (pp. 97-99) First write the outer loop, from 1 to the number of lines. for (int line = 1; line <= 5; line++) {... Now look at the line contents. Each line has a pattern: some dots (0 dots on the last line), then a number...1...2..3.4 5 Linear relationship: dots = a*line + b Where: a and b are constants line = 1: 4 = a + b line = 2: 3 = 2a + b Hence, a = -1, b = 5 Dots = 5 - lines Observation: the number of dots is linearly related to the line number. 31

Nested for loop exercise (pp. 97-99) Make a table to represent any patterns on each line....1...2..3.4 5 line # of dots 1 4 2 3 3 2 4 1 5 0-1 * line To print a character multiple times, use a for loop. for (int j = 1; j <= 4; j++) { System.out.print("."); -1-2 -3-4 -5-1 * line + 5 4 3 2 1 0 // 4 dots 32

Nested for loop solution (pp. 97-99) Answer: for (int line = 1; line <= 5; line++) { for (int j = 1; j <= (-1 * line + 5); j++) { System.out.print("."); System.out.println(line); Output:...1...2..3.4 5 33

Nested for loop exercise (pp. 97-99) What is the output of the following nested for loops? for (int line = 1; line <= 5; line++) { for (int j = 1; j <= (-1 * line + 5); j++) { System.out.print("."); for (int k = 1; k <= line; k++) { System.out.print(line); System.out.println(); Answer:...1...22..333.4444 55555 34

Nested for loop exercise (97-99) Modify the previous code to produce this output:...1...2...3...4... 5... Answer: for (int line = 1; line <= 5; line++) { for (int j = 1; j <= (-1 * line + 5); j++) { System.out.print("."); System.out.print(line); for (int j = 1; j <= (line - 1); j++) { System.out.print("."); System.out.println(); 35

Mapping loops to numbers (pp. 97-99) for (int count = 1; count <= 5; count++) { System.out.print(... ); What statement in the body would cause the loop to print: 4 7 10 13 16 Line 1: 4 = a + b Line 2: 7 = 2*a + b Hence, a = 3 and b = 1 Number = 3*count + 1 for (int count = 1; count <= 5; count++) { System.out.print(3 * count + 1 + " "); 36

Loop tables (pp. 97-99) What statement in the body would cause the loop to print: 2 7 12 17 22 To see patterns, make a table of count and the numbers. Each time count goes up by 1, the number should go up by 5. But count * 5 is too great by 3, so we subtract 3. count number to print 5 * count 1 2 5 2 7 10 3 12 15 4 17 20 5 22 25 5 * count - 3 2 7 12 17 22 Line 1: 2 = a + b Line 2: 7 = 2a + b Hence, a = 5 and b = -3 Number = 5*count - 3 37

Loop tables question (pp. 97-99) What statement in the body would cause the loop to print: 17 13 9 5 1 Let's create the loop table together. Each time count goes up 1, the number printed should... But this multiple is off by a margin of... count number to print 1 17 2 13 3 9 4 5 5 1-4 * count -4 * count + 21-4 17-8 13-12 9-16 5-20 1 Line 1: 17 = a + b Line 2: 13 = 2a + b Hence, a = -4 and b = 21 Number = -4*count +21 38

Assignments for this week 1. Laboratory for Chapter 2 due in one week (Monday 9/22) 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 Wednesday (pp. 99-118) 3. Be sure to complete Quiz 5 before leaving class tonight This is another program to write You must demonstrate the program to me before you leave lab 39