[go: up one dir, main page]

0% found this document useful (0 votes)
5 views53 pages

Java Spring and System of Us

Java Array and System

Uploaded by

Oliyad Seboka
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views53 pages

Java Spring and System of Us

Java Array and System

Uploaded by

Oliyad Seboka
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 53

Chapter 8

Arrays and Strings


Introduction
• Simple data type: variables of these types can store
only one value at a time
• Structured data type: a data type in which each data
item is a collection of other data items

C++ Programming: Program Design Including Data Structures, Sixth Edition 2


Arrays
• Array: a collection of a fixed number of components,
all of the same data type
• One-dimensional array: components are arranged in
a list form
• Syntax for declaring a one-dimensional array:

• intExp: any constant expression that evaluates to


a positive integer

C++ Programming: Program Design Including Data Structures, Sixth Edition 3


Accessing Array Components
• General syntax:

• indexExp: called the index


– An expression with a nonnegative integer value
• Value of the index is the position of the item in the
array
• []: array subscripting operator
– Array index always starts at 0

C++ Programming: Program Design Including Data Structures, Sixth Edition 4


Accessing Array Components
(cont’d.)

C++ Programming: Program Design Including Data Structures, Sixth Edition 5


Accessing Array Components
(cont’d.)

C++ Programming: Program Design Including Data Structures, Sixth Edition 6


Processing One-Dimensional
Arrays
• Basic operations on a one-dimensional array:
– Initializing
– Inputting data
– Outputting data stored in an array
– Finding the largest and/or smallest element
• Each operation requires ability to step through
elements of the array
– Easily accomplished by a loop

C++ Programming: Program Design Including Data Structures, Sixth Edition 7


Processing One-Dimensional
Arrays (cont’d.)
• Given the declaration:
int list[100]; //array of size 100
int i;
• Use a for loop to access array elements:
for (i = 0; i < 100; i++) //Line 1
cin >> list[i]; //Line 2

C++ Programming: Program Design Including Data Structures, Sixth Edition 8


Array Index Out of Bounds
• Index of an array is in bounds if the index is >=0 and
<= ARRAY_SIZE-1
– Otherwise, the index is out of bounds
• In C++, there is no guard against indices that are out
of bounds

C++ Programming: Program Design Including Data Structures, Sixth Edition 9


Array Initialization During
Declaration
• Arrays can be initialized during declaration
– Values are placed between curly braces
– Size determined by the number of initial values in the
braces
• Example:
double sales[] = {12.25, 32.50, 16.90,
23, 45.68};

C++ Programming: Program Design Including Data Structures, Sixth Edition 10


Partial Initialization of Arrays
During Declaration
• The statement:
int list[10] = {0};
–Declares an array of 10 components and initializes all of
them to zero
• The statement:
int list[10] = {8, 5, 12};
–Declares an array of 10 components and initializes
list[0] to 8, list[1] to 5, list[2] to 12
–All other components are initialized to 0

C++ Programming: Program Design Including Data Structures, Sixth Edition 11


Some Restrictions on Array
Processing
• Aggregate operation: any operation that manipulates
the entire array as a single unit
– Not allowed on arrays in C++
• Example:

• Solution:

C++ Programming: Program Design Including Data Structures, Sixth Edition 12


Arrays as Parameters to Functions
• Arrays are passed by reference only
• Do not use symbol & when declaring an array as a
formal parameter
• Size of the array is usually omitted
– If provided, it is ignored by the compiler
• Example:

C++ Programming: Program Design Including Data Structures, Sixth Edition 13


Constant Arrays
as Formal Parameters
• Can prevent a function from changing the
actual parameter when passed by reference
– Use const in the declaration of the formal
parameter
• Example:

C++ Programming: Program Design Including Data Structures, Sixth Edition 14


Base Address of an Array and
Array in Computer Memory
• Base address of an array: address (memory location)
of the first array component
• Example:
– If list is a one-dimensional array, its base address is the
address of list[0]
• When an array is passed as a parameter, the base
address of the actual array is passed to the formal
parameter

C++ Programming: Program Design Including Data Structures, Sixth Edition 15


Functions Cannot Return a Value
of the Type Array
• C++ does not allow functions to return a value of
type array

C++ Programming: Program Design Including Data Structures, Sixth Edition 16


Integral Data Type
and Array Indices
• C++ allows any integral type to be used as an array
index
– Improves code readability
• Example:

C++ Programming: Program Design Including Data Structures, Sixth Edition 17


Other Ways to Declare Arrays
• Examples:

C++ Programming: Program Design Including Data Structures, Sixth Edition 18


Searching an Array
for a Specific Item
• Sequential search (or linear search):
– Searching a list for a given item, starting from the first
array element
– Compare each element in the array with value being
searched for
– Continue the search until item is found or no more data is
left in the list

C++ Programming: Program Design Including Data Structures, Sixth Edition 19


Selection Sort
• Selection sort: rearrange the list by selecting an
element and moving it to its proper position
• Steps:
– Find the smallest element in the unsorted portion of the
list
– Move it to the top of the unsorted portion by swapping
with the element currently there
– Start again with the rest of the list

C++ Programming: Program Design Including Data Structures, Sixth Edition 20


Selection Sort (cont’d.)

C++ Programming: Program Design Including Data Structures, Sixth Edition 21


C-Strings (Character Arrays)
• Character array: an array whose components are of
type char
• C-strings are null-terminated ('\0‘) character
arrays
• Example:
– 'A' is the character A
– "A" is the C-string A
– "A" represents two characters, 'A' and '\0‘

C++ Programming: Program Design Including Data Structures, Sixth Edition 22


C-Strings (Character Arrays)
(cont’d.)
• Example:
char name[16];
• Since C-strings are null terminated and name has 16
components, the largest string it can store has 15
characters
• If you store a string whose length is less than the
array size, the last components are unused

C++ Programming: Program Design Including Data Structures, Sixth Edition 23


C-Strings (Character Arrays)
(cont’d.)
• Size of an array can be omitted if the array is
initialized during declaration
• Example:
char name[] = "John";
– Declares an array of length 5 and stores the C-string
"John" in it
• Useful string manipulation functions
– strcpy, strcmp, and strlen

C++ Programming: Program Design Including Data Structures, Sixth Edition 24


String Comparison
• C-strings are compared character by character using
the collating sequence of the system
– Use the function strcmp
• If using the ASCII character set:
– "Air" < "Boat"
– "Air" < "An"
– "Bill" < "Billy"
– "Hello" < "hello"

C++ Programming: Program Design Including Data Structures, Sixth Edition 25


Reading and Writing Strings
• Most rules for arrays also apply to C-strings (which
are character arrays)
• Aggregate operations, such as assignment and
comparison, are not allowed on arrays
• C++ does allow aggregate operations for the input
and output of C-strings

C++ Programming: Program Design Including Data Structures, Sixth Edition 26


String Input
• Example:
cin >> name;
– Stores the next input C-string into name
• To read strings with blanks, use get function:
cin.get(str, m+1);
– Stores the next m characters into str but the newline
character is not stored in str
– If input string has fewer than m characters, reading stops
at the newline character

C++ Programming: Program Design Including Data Structures, Sixth Edition 27


String Output
• Example:
cout << name;
– Outputs the content of name on the screen
– << continues to write the contents of name until it finds
the null character
– If name does not contain the null character, then strange
output may occur
• << continues to output data from memory adjacent to
name until a '\0' is found

C++ Programming: Program Design Including Data Structures, Sixth Edition 28


Specifying Input/Output Files at
Execution Time
• User can specify the name of an input and/or output
file at execution time:

C++ Programming: Program Design Including Data Structures, Sixth Edition 29


string Type
and Input/Output Files
• Argument to the open function must be a null-
terminated string (a C-string)
– If using a string variable for the name of an I/O file, the
value must first be converted to a C-string before calling
open
– Use the c_str function to convert
• Syntax:
strVar.c_str()
– Where strVar is a variable of type string

C++ Programming: Program Design Including Data Structures, Sixth Edition 30


Parallel Arrays
• Two (or more) arrays are called parallel if their
corresponding components hold related information
• Example:
int studentId[50];
char courseGrade[50];

C++ Programming: Program Design Including Data Structures, Sixth Edition 31


Two- and Multidimensional Arrays
• Two-dimensional array: collection of a fixed number
of components (of the same type) arranged in two
dimensions
– Sometimes called matrices or tables
• Declaration syntax:

– intExp1 and intExp2 are expressions with positive


integer values specifying the number of rows and columns
in the array
C++ Programming: Program Design Including Data Structures, Sixth Edition 32
Accessing Array Components
• Accessing components in a two-dimensional array:

– Where indexExp1 and indexExp2 are expressions


with positive integer values, and specify the row and
column position
• Example:
sales[5][3] = 25.75;

C++ Programming: Program Design Including Data Structures, Sixth Edition 33


Accessing Array Components
(cont’d.)

C++ Programming: Program Design Including Data Structures, Sixth Edition 34


Two-Dimensional Array
Initialization During Declaration
• Two-dimensional arrays can be initialized when they
are declared:
– Elements of each row are enclosed within braces and
separated by commas
– All rows are enclosed within braces
– For number arrays, unspecified elements are set to 0

C++ Programming: Program Design Including Data Structures, Sixth Edition 35


Two-Dimensional Arrays and
Enumeration Types
• Enumeration types can be used for array
indices:

C++ Programming: Program Design Including Data Structures, Sixth Edition 36


Processing Two-Dimensional
Arrays
• Ways to process a two-dimensional array:
– Process entire array
– Row processing: process a single row at a time
– Column processing: process a single column at a time
• Each row and each column of a two-dimensional
array is a one-dimensional array
– To process, use algorithms similar to processing one-
dimensional arrays

C++ Programming: Program Design Including Data Structures, Sixth Edition 37


Initialization
• Examples:
– To initialize row number 4 (fifth row) to 0:

– To initialize the entire matrix to 0:

C++ Programming: Program Design Including Data Structures, Sixth Edition 38


Print
• Use a nested loop to output the components of a
two dimensional array:

C++ Programming: Program Design Including Data Structures, Sixth Edition 39


Input
• Examples:
– To input into row number 4 (fifth row):

– To input data into each component of matrix:

C++ Programming: Program Design Including Data Structures, Sixth Edition 40


Sum by Row
• Example:
– To find the sum of row number 4:

C++ Programming: Program Design Including Data Structures, Sixth Edition 41


Sum by Column
• Example:
– To find the sum of each individual column:

C++ Programming: Program Design Including Data Structures, Sixth Edition 42


Largest Element in Each Row
and Each Column
• Example:
– To find the largest element in each row:

C++ Programming: Program Design Including Data Structures, Sixth Edition 43


Passing Two-Dimensional Arrays
as Parameters to Functions
• Two-dimensional arrays are passed by reference as
parameters to a function
– Base address is passed to formal parameter
• Two-dimensional arrays are stored in row order
• When declaring a two-dimensional array as a formal
parameter, can omit size of first dimension, but not
the second

C++ Programming: Program Design Including Data Structures, Sixth Edition 44


Arrays of Strings
• Strings in C++ can be manipulated using either the
data type string or character arrays (C-strings)
• On some compilers, the data type string may not
be available in Standard C++ (i.e., non-ANSI/ISO
Standard C++)

C++ Programming: Program Design Including Data Structures, Sixth Edition 45


Arrays of Strings
and the string Type
• To declare an array of 100 components of type
string:
string list[100];
• Basic operations, such as assignment, comparison,
and input/output, can be performed on values of the
string type
• The data in list can be processed just like any one-
dimensional array

C++ Programming: Program Design Including Data Structures, Sixth Edition 46


Arrays of Strings and C-Strings
(Character Arrays)

C++ Programming: Program Design Including Data Structures, Sixth Edition 47


Another Way to Declare
a Two-Dimensional Array
• Can use typedef to define a two-dimensional array
data type:

• To declare an array of 20 rows and 10 columns:

C++ Programming: Program Design Including Data Structures, Sixth Edition 48


Multidimensional Arrays
• n-dimensional array: collection of a fixed number of
elements arranged in n dimensions (n >= 1)
• Declaration syntax:

• To access a component:

C++ Programming: Program Design Including Data Structures, Sixth Edition 49


Summary
• Array: structured data type with a fixed number of
components of the same type
– Components are accessed using their relative positions in
the array
• Elements of a one-dimensional array are arranged in
the form of a list
• An array index can be any expression that evaluates
to a nonnegative integer
– Must always be less than the size of the array

C++ Programming: Program Design Including Data Structures, Sixth Edition 50


Summary (cont’d.)
• The base address of an array is the address of the
first array component
• When passing an array as an actual parameter, use
only its name
– Passed by reference only
• A function cannot return an array type value
• In C++, C-strings are null terminated and are stored
in character arrays

C++ Programming: Program Design Including Data Structures, Sixth Edition 51


Summary (cont’d.)
• Commonly used C-string manipulation functions
include:
– strcpy, strcmp, and strlen
• Parallel arrays are used to hold related information
• In a two-dimensional array, the elements are
arranged in a table form

C++ Programming: Program Design Including Data Structures, Sixth Edition 52


Summary (cont’d.)
• To access an element of a two-dimensional array,
you need a pair of indices:
– One for row position, one for column position
• In row processing, a two-dimensional array is
processed one row at a time
• In column processing, a two-dimensional array is
processed one column at a time

C++ Programming: Program Design Including Data Structures, Sixth Edition 53

You might also like