A Beginner s Guide to Programming Logic, Introductory. Chapter 6 Arrays

Similar documents
Programming Logic and Design Sixth Edition

Example. Section: PS 709 Examples of Calculations of Reduced Hours of Work Last Revised: February 2017 Last Reviewed: February 2017 Next Review:

Sequential Search (Searching Supplement: 1-2)

Computer Programming, I. Laboratory Manual. Experiment #3. Selections

A Beginner s Guide to Programming Logic, Introductory. Chapter 5 Looping

numbers by multi-digit whole numbers by using strategies based on place value, the properties of operations and the relationship between

Arrays. Arrays (8.1) Arrays. One variable that can store a group of values of the same type. Storing a number of related values.

DATE OF BIRTH SORTING (DBSORT)

Arrays. What if you have a 1000 line file? Arrays

Guernsey Post 2013/14. Quality of Service Report

CONDITIONAL EXECUTION: PART 2

JAVASCRIPT LOOPS. Date: 13/05/2012 Page: 1 Total Chars: 4973 Total Words: 967

Read and fill in this page now. Your lab section day and time: Name of the person sitting to your left: Name of the person sitting to your right:

Computer Grade 5. Unit: 1, 2 & 3 Total Periods 38 Lab 10 Months: April and May

MAP OF OUR REGION. About

PLD Semester Exam Study Guide Dec. 2018

10/30/2010. Introduction to Control Statements. The if and if-else Statements (cont.) Principal forms: JAVA CONTROL STATEMENTS SELECTION STATEMENTS

Arrays. Array Basics. Chapter 8 Spring 2017, CSUS. Chapter 8.1

MAP OF OUR REGION. About

Arrays and Pointers (part 2) Be extra careful with pointers!

REPETITION CONTROL STRUCTURE LOGO

High Institute of Computer Science & Information Technology Term : 1 st. El-Shorouk Academy Acad. Year : 2013 / Year : 2 nd

Arrays and Pointers (part 2) Be extra careful with pointers!

The PHP language. Teaching you everything about PHP? Not exactly Goal: teach you how to interact with a database via web

ACA 1095 Reporting - Editing Multiple Employees. Selecting Employees to Edit

Marketing Opportunities

Software Development Techniques. December Sample Exam Marking Scheme

Condi(onals and Loops

Pointers. Memory. void foo() { }//return

Difference Between Dates Case Study 2002 M. J. Clancy and M. C. Linn

CHAPTER 5 FLOW OF CONTROL

Arrays and functions Multidimensional arrays Sorting and algorithm efficiency

Chapter 6: Arrays. Starting Out with Games and Graphics in C++ Second Edition. by Tony Gaddis

14. Other Data Types. Compound Data Types: Defined data types (typedef) Unions typedef existing_type new_type_name ;

Year 10 OCR GCSE Computer Science (9-1)

ITC213: STRUCTURED PROGRAMMING. Bhaskar Shrestha National College of Computer Studies Tribhuvan University

INTENT TO FILE (ITF)

CHIROPRACTIC MARKETING CENTER

Lecture 2. The variable 'x' can store integers, characters, string, float, boolean.

ECE 122. Engineering Problem Solving with Java

Unit Title Key Concepts Vocabulary CCS

HPE Secur & HPE Secur Cloud

Special Education Room and Board Reimbursement Claim User Guide

Testing Contact and Response Strategies to Improve Response in the 2012 Economic Census

Grade 7 Math LESSON 14: MORE PROBLEMS INVOLVING REAL NUMBERS TEACHING GUIDE

MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY SUNDAY

CS Programming I: Arrays

ITT8060: Advanced Programming (in F#)

COMPUTER TRAINING CENTER

Analysis/Intelligence: Data Model - Configuration

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

Stat 428 Autumn 2006 Homework 2 Solutions

C++ Programming. Arrays and Vectors. Chapter 6. Objectives. Chiou. This chapter introduces the important topic of data structures collections

FAQs Academic VL Certifications

Nov 20, 2017 Page 1. Tripwire, Inc. Product Support and Discontinuation Policy November 2017

Tutorial 8 (Array I)

Software Development Techniques. 26 November Marking Scheme

Lecture-14 Lookup Functions

V2 3/5/2012. Programming in C. Introduction to Arrays. 111 Ch 07 A 1. Introduction to Arrays

Chapter 7 : Arrays (pp )

CANADIAN PAYMENTS ASSOCIATION ASSOCIATION CANADIENNE DES PAIEMENTS STANDARD 005 STANDARDS FOR THE EXCHANGE OF FINANCIAL DATA ON AFT FILES

Cursors Christian S. Jensen, Richard T. Snodgrass, and T. Y. Cliff Leung

Hitachi-GE Nuclear Energy, Ltd. UK ABWR GENERIC DESIGN ASSESSMENT Resolution Plan for RO-ABWR-0027 Hardwired Back Up System

Maryland Soybeans: Historical Basis and Price Information

Lecture Transcript While and Do While Statements in C++

ADVANCED ALGORITHMS TABLE OF CONTENTS

CPA PEP 2018 Schedule and Fees

Maryland Corn: Historical Basis and Price Information Fact Sheet 495

OBJECT ORIENTED PROGRAMMING USING C++

Freedom of Information Act 2000 reference number RFI

Why arrays? To group distinct variables of the same type under a single name.

Read and fill in this page now. Your instructional login (e.g., cs3-ab): Your lab section days and time: Name of the person sitting to your left:

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

CS3: Introduction to Symbolic Programming. Lecture 8: Introduction to Higher Order Functions. Spring 2008 Nate Titterton

Chapter 4 - Notes Control Structures I (Selection)

Maryland Corn: Historical Basis and Price Information Fact Sheet 495

Indicate the answer choice that best completes the statement or answers the question. Enter the appropriate word(s) to complete the statement.

Arrays. Arizona State University 1

Scheduling. Scheduling Tasks At Creation Time CHAPTER

Repetition Structures

Condition-Controlled Loop. Condition-Controlled Loop. If Statement. Various Forms. Conditional-Controlled Loop. Loop Caution.

Strings and Arrays. Hendrik Speleers

VTC FY19 CO-OP GOOGLE QUALIFICATIONS PARAMETERS & REIMBURSEMENT DOCUMENTATION HOW-TO

CSC128 FUNDAMENTALS OF COMPUTER PROBLEM SOLVING Chapter 4: Repetition Control Structure

Month&Guesstimate& Singapore& Text&

Different kinds of resources provided by a package

/Internet Random Moment Sampling. STATE OF ALASKA Department of Health and Social Services Division of Public Assistance

09/08/2017 CS2530 INTERMEDIATE COMPUTING 9/8/2017 FALL 2017 MICHAEL J. HOLMES UNIVERSITY OF NORTHERN IOWA TODAY S TOPIC: Exceptions and enumerations.

Islamic University of Gaza Computer Engineering Dept. C++ Programming. For Industrial And Electrical Engineering By Instructor: Ruba A.

CRIME ANALYSIS SACRAMENTO COUNTY SHERIFF S DEPARTMENT

Arrays. Defining arrays, declaration and initialization of arrays. Designed by Parul Khurana, LIECA.

Coursework Completion

Product Guide Verizon North LLC. Section 24 Verizon North LLC 3rd Revised Sheet 2 Cancels 2nd Revised Sheet 2 PACKAGED SERVICES - RESIDENCE

EECS2030 Fall 2016 Preparation Exercise for Lab Test 2: A Birthday Book

Organizing and Summarizing Data

EACH MONTH CUTTING EDGE PEER REVIEW RESEARCH ARTICLES ARE PUBLISHED

Scheduled Base Rental Revenue 919, , , ,027 1,013,613 1,038,875 1,064,831 1,091, ,637 1,099,323 1,132,302 1,166,272

MEDIA KIT & RATE CARD THESHEAF. UNIVERSITYof SASKATCHEWAN thesheaf.com

Sinusoidal Data Worksheet

Maryland Corn: Historical Basis and Price Information

Transcription:

A Beginner s Guide to Programming Logic, Introductory Chapter 6 Arrays

Objectives In this chapter, you will learn about: Arrays and how they occupy computer memory Manipulating an array to replace nested decisions Using constants with arrays Searching an array Using parallel arrays A Beginner's Guide to Programming Logic, Introductory 2

Objectives (continued) Searching an array for a range match Remaining within array bounds Using a for loop to process arrays A Beginner's Guide to Programming Logic, Introductory 3

Understanding Arrays and How They Occupy Computer Memory Array Series or list of variables in computer memory All variables share the same name Each variable has a different subscript Subscript (or index) Position number of an item in an array Subscripts are always a sequence of integers A Beginner's Guide to Programming Logic, Introductory 4

How Arrays Occupy Computer Memory Each item has same name and same data type Element: an item in the array Array elements are contiguous in memory Size of the array: number of elements it will hold Adding data values is called populating the array Example num myarray[20] An array that is named myarray, that stores 20 separate numeric values A Beginner's Guide to Programming Logic, Introductory 5

How Arrays Occupy Computer Memory (continued) Figure 6-1 Appearance of a three-element array in computer memory A Beginner's Guide to Programming Logic, Introductory 6

How Arrays Occupy Computer Memory (continued) All elements have same group name Individual elements have unique subscript Subscript indicates distance from first element Subscripts are a sequence of integers Subscripts placed square brackets (sometimes parentheses used instead) following group name Syntax depends on programming language Usually subscripts start at 0 (not 1) output myarray[1] (prints 2 nd element of myarray) myarray[0] = 12 (stores 12 at 1 st position) input myarray[3] (reads input into 4 th position) A Beginner's Guide to Programming Logic, Introductory 7

Manipulating an Array to Replace Nested Decisions Example: Human Resources Department Dependents report List employees who have claimed zero through five dependents Assume no employee has more than five dependents Application produces counts for dependent categories Uses series of decisions Application does not scale up to more dependents A Beginner's Guide to Programming Logic, Introductory 8

Figure 6-3 Flowchart and pseudocode of decision-making process using a series of decisions the hard way A Beginner's Guide to Programming Logic, Introductory 9

Manipulating an Array to Replace Nested Decisions (continued) Array reduces number of statements needed Six accumulators redefined as one array Variable as a subscript to the array Array subscript variable must be integer (no decimal) Array value at appropriate subscript must be: Incremented by 1 each time logic passes through loop Value at subscript 0 holds count of employees with 0 dependents, value at subscript 1 holds count of employees with 1 dependent, Array contents should be initialized to 0 A Beginner's Guide to Programming Logic, Introductory 10

Figure 6-4 Flowchart and pseudocode of decision-making process but still the hard way A Beginner's Guide to Programming Logic, Introductory 11

Figure 6-5 Flowchart and pseudocode of decision-making process using an array but still a hard way A Beginner's Guide to Programming Logic, Introductory 12

Manipulating an Array to Replace Nested Decisions (continued) Figure 6-6 Flowchart and pseudocode of efficient decision-making process using an array A Beginner's Guide to Programming Logic, Introductory 13

Figure 6-7 Flowchart and pseudocode for Dependents Report program A Beginner's Guide to Programming Logic, Introductory 14

Figure 6-7 Flowchart and pseudocode for Dependents Report program (continued) A Beginner's Guide to Programming Logic, Introductory 15

Manipulating Arrays with Loops We very often want to process element-by-element through an array In other words, do the same thing to every element We use a standard loop structure for this (in this example, 5 is the size of the array): index = 0 index < 5 yes Do something to the array at subscript index (array[index]) index = index + 1 no A Beginner's Guide to Programming Logic, Introductory 16

Using Constants with Arrays Use constants in several ways To hold the size of an array As the array values As a subscript A Beginner's Guide to Programming Logic, Introductory 17

Using a Constant as the Size of an Array Avoid magic numbers (unnamed constants) Declare a named numeric constant to be used every time array is accessed Make sure any subscript remains less than the constant value Constant created automatically in many languages Example num SIZE = 20 num arr[size] index < SIZE yes index = index + 1 output arr[index] A Beginner's Guide to Programming Logic, Introductory 18 no

Using Constants as Array Element Values Sometimes the values stored in arrays should be constants Example string MONTH[12] = "January", "February", "March", "April", "May", "June", "July", "August", "September", "October, "November", "December" A Beginner's Guide to Programming Logic, Introductory 19

Using a Constant as an Array Subscript Use a numeric constant as a subscript to an array Example Declare a named constant as num INDIANA = 5 Display value with: output salesarray[indiana] A Beginner's Guide to Programming Logic, Introductory 20

Searching an Array Sometimes must search through an array to find a value Example: mail-order business Item numbers are three-digit, non-consecutive numbers Customer orders an item, check if item number is valid Create an array that holds valid item numbers Search array for exact match A Beginner's Guide to Programming Logic, Introductory 21

Figure 6-8 Flowchart and pseudocode for program that verifies item availability A Beginner's Guide to Programming Logic, Introductory 22

Figure 6-8 Flowchart and pseudocode for program that verifies item availability (continued) A Beginner's Guide to Programming Logic, Introductory 23

Figure 6-8 Flowchart and pseudocode for program that verifies item availability (continued) A Beginner's Guide to Programming Logic, Introductory 24

Searching an Array (continued) Flag: variable that indicates whether an event occurred Technique for searching an array Set a subscript variable to 0 to start at the first element Initialize a flag variable to false to indicate the desired value has not been found Examine each element in the array If the value matches, set the flag to True If the value does not match, increment the subscript and examine the next array element A Beginner's Guide to Programming Logic, Introductory 25

Using Parallel Arrays Example: mail-order business Two arrays, each with six elements Valid item numbers Valid item prices Each price in valid item price array in same position as corresponding item in valid item number array Parallel arrays Each element in one array associated with element in same relative position in other array Look through valid item array for customer item When match is found, get price from item price array A Beginner's Guide to Programming Logic, Introductory 26

Figure 6-9 Parallel arrays in memory A Beginner's Guide to Programming Logic, Introductory 27

Use parallel arrays Using Parallel Arrays Two or more arrays contain related data A subscript relates the arrays Elements at the same position in each array are logically related to one another Indirect relationship Relationship between an item s number and its price Parallel arrays are very useful A Beginner's Guide to Programming Logic, Introductory 28

Figure 6-10 Flowchart and pseudocode of program that finds an item s price using parallel arrays A Beginner's Guide to Programming Logic, Introductory 29

Figure 6-10 Flowchart and pseudocode of program that finds an item s price using parallel arrays (continued) A Beginner's Guide to Programming Logic, Introductory 30

Figure 6-10 Flowchart and pseudocode of program that finds an item s price using parallel arrays (continued) A Beginner's Guide to Programming Logic, Introductory 31

Improving Search Efficiency Program should stop searching the array when a match is found Use a flag variable to stop the loop as soon as the required item has been found Improves efficiency Why? The larger the array, the better the improvement by doing an early exit Why? A Beginner's Guide to Programming Logic, Introductory 32

Figure 6-11 Flowchart and pseudocode of the module that finds item price, exiting the loop as soon as it is found A Beginner's Guide to Programming Logic, Introductory 33

Improving Search Efficiency (continued) Figure 6-11 Flowchart and pseudocode of the module that finds item price, exiting the loop as soon as it is found (continued) A Beginner's Guide to Programming Logic, Introductory 34

Searching an Array for a Range Match Sometimes programmers want to work with ranges of values in arrays (1 through 5, or 20 through 30) Example: mail-order business Read customer order data; determine discount based on quantity ordered First approach Array with as many elements as each possible order quantity Store appropriate discount for each possible order quantity A Beginner's Guide to Programming Logic, Introductory 35

Searching an Array for a Range Match (continued) Figure 6-13 Usable but inefficient discount array A Beginner's Guide to Programming Logic, Introductory 36

Searching an Array for a Range Match (continued) Drawbacks of first approach Requires very large array; uses a lot of memory Stores same value repeatedly How do you know you have enough elements? Customer can always order more Better approach Create a discount array with four elements for each discount rate Parallel array with discount range Use loop to make comparisons A Beginner's Guide to Programming Logic, Introductory 37

Searching an Array for a Range Match (continued) 0-8 items get a 0% discount 9-12 items get a 10% discount 13-25 items get a 15% discount 26 items or more get a 20% discount Figure 6-14 Parallel arrays to use for determining discount A Beginner's Guide to Programming Logic, Introductory 38

Figure 6-15 Program that determines discount rate A Beginner's Guide to Programming Logic, Introductory 39

Remaining within Array Bounds Every array has finite size Number of elements in the array Number of bytes in the array Arrays composed of elements of same data type Elements of same data type occupy same number of bytes in memory Number of bytes in an array is always a multiple of number of array elements Access data using subscript containing a value that accesses memory occupied by the array A Beginner's Guide to Programming Logic, Introductory 40

Remaining within Array Bounds It is possible to try to access an element beyond the bounds of the array (beyond the memory allocated to the array) Example: num myarray[10] output myarray[10] A Beginner's Guide to Programming Logic, Introductory 41

Figure 6-16 Determining the month string from user s numeric entry A Beginner's Guide to Programming Logic, Introductory 42

Remaining within Array Bounds (continued) Program logic assumes every number entered by the user is valid When invalid subscript is used: Some languages stop execution and issue an error Other languages access a memory location outside of the array Invalid array subscript is a logical error Out of bounds: using a subscript that is not within the acceptable range for the array Program should prevent bounds errors A Beginner's Guide to Programming Logic, Introductory 43

Using a for Loop to Process Arrays for loop: single statement Initializes loop control variable Compares it to a limit Alters it for loop especially convenient when working with arrays To process every element Must stay within array bounds Highest usable subscript is one less than array size A Beginner's Guide to Programming Logic, Introductory 44

Using a for Loop to Process Arrays (continued) Figure 6-17 Pseudocode that uses a for loop to display an array of department names A Beginner's Guide to Programming Logic, Introductory 45

Using a for Loop to Process Arrays (continued) Figure 6-26 Pseudocode that uses a more efficient for loop to output month names A Beginner's Guide to Programming Logic, Introductory 46

Summary Array: series or list of variables in memory Same name and type Different subscript Use a variable as a subscript to the array to replace multiple nested decisions Some array values determined during program execution Other arrays have hard-coded values A Beginner's Guide to Programming Logic, Introductory 47

Summary (continued) Search an array Initialize the subscript Test each array element value in a loop Set a flag when a match is found Parallel arrays: each element in one array is associated with the element in second array Elements have same relative position For range comparisons, store either the low- or high-end value of each range A Beginner's Guide to Programming Logic, Introductory 48

Summary (continued) Access data in an array Use subscript containing a value that accesses memory occupied by the array Subscript is out of bounds if not within defined range of acceptable subscripts for loop is a convenient tool for working with arrays Process each element of an array from beginning to end A Beginner's Guide to Programming Logic, Introductory 49