Kingdom of Saudi Arabia Princes Nora bint Abdul Rahman University College of Computer Since and Information System CS242 ARRAYS

Similar documents
Chapter 4 - Arrays. 4.1 Introduction. Arrays Structures of related data items Static entity (same size throughout program) A few types

Chapter 4 - Arrays. 4.1 Introduction. Arrays Structures of related data items Static entity (same size throughout program)

Arrays. Week 4. Assylbek Jumagaliyev

Outline. Introduction. Arrays declarations and initialization. Const variables. Character arrays. Static arrays. Examples.

C++ PROGRAMMING SKILLS Part 4: Arrays

CHAPTER 3 ARRAYS. Dr. Shady Yehia Elmashad

Arrays. Outline. Multidimensional Arrays Case Study: Computing Mean, Median and Mode Using Arrays Prentice Hall, Inc. All rights reserved.

Objectivities. Experiment 1. Lab6 Array I. Description of the Problem. Problem-Solving Tips

Pointers and Strings Prentice Hall, Inc. All rights reserved.

C: How to Program. Week /Apr/23

C Arrays. Group of consecutive memory locations Same name and type. Array name + position number. Array elements are like normal variables

Chapter 7 Array. Array. C++, How to Program

C: How to Program. Week /Apr/16

C Arrays Pearson Education, Inc. All rights reserved.

Pointers and Strings. Adhi Harmoko S, M.Komp

IS 0020 Program Design and Software Tools

Computer Programming Lecture 14 Arrays (Part 2)

C How to Program, 7/e by Pearson Education, Inc. All Rights Reserved.

BITG 1113: Array (Part 1) LECTURE 8

Chapter 3 - Functions

BITG 1233: Array (Part 1) LECTURE 8 (Sem 2, 17/18)

Lecture 04 FUNCTIONS AND ARRAYS

Chapter 5 - Pointers and Strings

Chapter 5 - Pointers and Strings

C Pointers. 7.2 Pointer Variable Definitions and Initialization

Functions and Recursion

Chapter 6. Arrays. Copyright 2007 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.

calling a function - function-name(argument list); y = square ( z ); include parentheses even if parameter list is empty!

Lecture 2 Arrays, Searching and Sorting (Arrays, multi-dimensional Arrays)

Deitel Series Page How To Program Series

CS242 COMPUTER PROGRAMMING

Content. In this chapter, you will learn:

C++ Basics. Data Processing Course, I. Hrivnacova, IPN Orsay

Chapter 2 - Control Structures

Array. Arrays. Declaring Arrays. Using Arrays

C How to Program, 6/e by Pearson Education, Inc. All Rights Reserved.

Kingdom of Saudi Arabia Princes Nora bint Abdul Rahman University College of Computer Since and Information System CS240 BRANCHING STATEMENTS

Review. Outline. Array Pointer Object-Oriented Programming. Fall 2013 CISC2200 Yanjun Li 1. Fall 2013 CISC2200 Yanjun Li 2

Review. Outline. Array Pointer Object-Oriented Programming. Fall 2017 CISC2200 Yanjun Li 1. Fall 2017 CISC2200 Yanjun Li 2

CSE101-Lec#17. Arrays. (Arrays and Functions) Created By: Amanpreet Kaur & Sanjeev Kumar SME (CSE) LPU. LPU CSE101 C Programming

Tutorial 13 Salary Survey Application: Introducing One- Dimensional Arrays

Outline Introduction Arrays Declaring Arrays Examples Using Arrays Passing Arrays to Functions Sorting Arrays

Pointers and Strings Prentice Hall, Inc. All rights reserved.

Review of Important Topics in CS1600. Functions Arrays C-strings

Operator Overloading in C++ Systems Programming

CMPS 221 Sample Final

Chapter 2 - Control Structures

In this chapter you will learn:

Arrays and Applications

Classes and Data Abstraction. Topic 5

Chapter 8 Arrays and Strings. Objectives. Objectives (cont d.) Introduction. Arrays 12/23/2016. In this chapter, you will:

KOM3191 Object Oriented Programming Dr Muharrem Mercimek ARRAYS ~ VECTORS. KOM3191 Object-Oriented Computer Programming

More Functions. Pass by Value. Example: Exchange two numbers. Storage Classes. Passing Parameters by Reference. Pass by value and by reference

Chapter 15 - C++ As A "Better C"

Chapter 2 - Control Structures

C++ As A "Better C" Chih-Wei Tang ( 唐之瑋 ) Department of Communication Engineering National Central University JhongLi, Taiwan.

Arrays and functions Multidimensional arrays Sorting and algorithm efficiency

Abstract Data Type (ADT) & ARRAYS ALGORITHMS & DATA STRUCTURES I COMP 221

Chapter 3 - Functions

엄현상 (Eom, Hyeonsang) School of Computer Science and Engineering Seoul National University COPYRIGHTS 2017 EOM, HYEONSANG ALL RIGHTS RESERVED

CSc Introduc/on to Compu/ng. Lecture 8 Edgardo Molina Fall 2011 City College of New York

Two Dimensional Array - An array with a multiple indexs.

For loops, nested loops and scopes. Jordi Cortadella Department of Computer Science

Lesson 06 Arrays. MIT 11053, Fundamentals of Programming By: S. Sabraz Nawaz Senior Lecturer in MIT Department of MIT FMC, SEUSL

Arrays. Systems Programming Concepts

Procedural Programming

5.1. Chapter 5: The Increment and Decrement Operators. The Increment and Decrement Operators. The Increment and Decrement Operators

Week 3: Pointers (Part 2)

Programming for Engineers Arrays

Chapter 3 - Functions. Chapter 3 - Functions. 3.1 Introduction. 3.2 Program Components in C++

Two Dimensional Array - An array with a multiple indexs.

! A program is a set of instructions that the. ! It must be translated. ! Variable: portion of memory that stores a value. char

Introduction to C++ Introduction to C++ 1

CSC 211 Intermediate Programming. Arrays & Pointers

Outline. For loops, nested loops and scopes. Calculate x y. For loops. Scopes. Nested loops. Algorithm: repeated multiplication x x x x

An array is a collection of data that holds fixed number of values of same type. It is also known as a set. An array is a data type.

CSI33 Data Structures

1- Write a single C++ statement that: A. Calculates the sum of the two integrates 11 and 12 and outputs the sum to the consol.

Here, type declares the base type of the array, which is the type of each element in the array size defines how many elements the array will hold

Introduction to C++ Systems Programming

Functions, Arrays & Structs

Multiple-Subscripted Arrays

Introduction to C++ (Extensions to C)

Chapter 18 - C++ Operator Overloading

How to declare an array in C?

Lab Instructor : Jean Lai

CSC 330 Object Oriented Programming. Operator Overloading Friend Functions & Forms

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

Exercise 1.1 Hello world

Gabriel Hugh Elkaim Spring CMPE 013/L: C Programming. CMPE 013/L: C Programming

The American University in Cairo Department of Computer Science & Engineering CSCI &09 Dr. KHALIL Exam-I Fall 2011

Yacoub Sabatin Muntaser Abulafi Omar Qaraeen

Control Statements: Part Pearson Education, Inc. All rights reserved.

C++ Programming Chapter 7 Pointers

UNIT- 3 Introduction to C++

tablica: array: dane_liczbowe

Computer Science II Lecture 1 Introduction and Background

File I/O. File Names and Types. I/O Streams. Stream Extraction and Insertion. A file name should reflect its contents

Getting started with C++ (Part 2)

by Pearson Education, Inc. All Rights Reserved.

Transcription:

Kingdom of Saudi Arabia Princes Nora bint Abdul Rahman University College of Computer Since and Information System CS242 1 ARRAYS

Arrays 2 Arrays Structures of related data items Static entity (same size throughout program)

Arrays 3 Array Consecutive group of memory locations Same name and type (int, char, etc.) To refer to an element Specify array name and position number (index) Format: arrayname[ position number ] First element at position 0 N-element array c c[ 0 ], c[ 1 ] c[ n - 1 ] Nth element as position N-1

Arrays 4 Array elements like other variables Assignment, printing for an integer array c c[ 0 ] = 3; cout << c[ 0 ]; Can perform operations inside subscript c[ 5 2 ] same as c[3]

Arrays 5 Name of array (Note that all elements of this array have the same name, c) c[0] c[1] c[2] c[3] c[4] c[5] c[6] c[7] c[8] c[9] c[10] c[11] -45 6 0 72 1543-89 0 62-3 1 6453 78 Position number of the element within array c

Declaring Arrays 6 When declaring arrays, specify Name Type of array Any data type Number of elements type arrayname[ arraysize ]; int c[ 10 ]; // array of 10 integers float d[ 3284 ]; // array of 3284 floats Declaring multiple arrays of same type Use comma separated list, like regular variables int b[ 100 ], x[ 27 ];

Examples Using Arrays 7 Initializing arrays For loop Set each element Initializer list Specify each element when array declared int n[ 5 ] = { 1, 2, 3, 4, 5 }; If not enough initializers, rightmost elements 0 If too many syntax error To initialize all array elements to 0 int n[ 5 ] = { 0 }; If array size omitted, initializers determine size int n[] = { 1, 2, 3, 4, 5 }; 5 initializers, therefore 5 element array

Examples 8 1 2 // Initializing an array. 3 #include <iostream> 4 5 using std::cout; 6 using std::endl; 7 8 #include <iomanip> 9 10 using std::setw; 11 12 int main() 13 { 14 int n[ 10 ]; // n is an array of 10 integers 15 16 // initialize elements of array n to 0 17 for ( int i = 0; i < 10; i++ ) 18 n[ i ] = 0; // set element at location i to 0 19 20 cout << "Element" << setw( 13 ) << "Value" << endl; Declare a 10-element array of integers. Initialize array to 0 using a for loop. Note that the array has elements n[0] to n[9]. 21 22 // output contents of array n in tabular format 23 for ( int j = 0; j < 10; j++ ) 24 cout << setw( 7 ) << j << setw( 13 ) << n[ j ] << endl; 25

Examples 9 1 2 // Initializing an array with a declaration. 3 #include <iostream> 4 5 using std::cout; 6 using std::endl; 7 8 #include <iomanip> 9 10 using std::setw; 11 12 int main() 13 { Note the use of the initializer list. 14 // use initializer list to initialize array n 15 int n[ 10 ] = { 32, 27, 64, 18, 95, 14, 90, 70, 60, 37 }; 16 17 cout << "Element" << setw( 13 ) << "Value" << endl; 18 19 // output contents of array n in tabular format 20 for ( int i = 0; i < 10; i++ ) 21 cout << setw( 7 ) << i << setw( 13 ) << n[ i ] << endl; 22 23 return 0; // indicates successful termination 24 25 } // end main

Examples 10 Element Value 0 32 1 27 2 64 3 18 4 95 5 14 6 90 7 70 8 60 9 37

Examples Using Arrays 11 Array size Can be specified with constant variable (const) const int size = 20; Constants cannot be changed Constants must be initialized when declared

Example 12 1 2 // Initialize array s to the even integers from 2 to 20. 3 #include <iostream> 4 5 using std::cout; 6 using std::endl; 7 8 #include <iomanip> 9 10 using std::setw; 11 12 int main() 13 { 14 // constant variable can be used to specify array size 15 const int arraysize = 10; sizes. 16 17 int s[ arraysize ]; // array s has 10 elements 18 19 for ( int i = 0; i < arraysize; i++ ) // set the values 20 s[ i ] = 2 + 2 * i; 21 Note use of const keyword. Only const variables can specify array 22 cout << "Element" << setw( 13 ) << "Value" << endl; 23 The program becomes more scalable when we set the array size using a const variable. We can change arraysize, and all the loops will still work (otherwise, we d have to update every loop in the program).

Example 13 24 // output contents of array s in tabular format 25 for ( int j = 0; j < arraysize; j++ ) 26 cout << setw( 7 ) << j << setw( 13 ) << s[ j ] << endl; 27 28 return 0; // indicates successful termination 29 30 } // end main Element Value 0 2 1 4 2 6 3 8 4 10 5 12 6 14 7 16 8 18 9 20

Example 14 1 // 2 // A const object must be initialized. 3 4 int main() 5 { Uninitialized const results in a syntax error. Attempting to modify the const is another 6 const int x; // Error: x must be initialized error. 7 8 x = 7; // Error: cannot modify a const variable 9 10 return 0; // indicates successful termination 11 12 } // end main d:\cpphtp4_examples\ch04\fig04_07.cpp(6) : error C2734: 'x' : const object must be initialized if not extern d:\cpphtp4_examples\ch04\fig04_07.cpp(8) : error C2166: l-value specifies const object

15 1 2 // Compute the sum of the elements of the array. 3 #include <iostream> 4 5 using std::cout; 6 using std::endl; 7 8 int main() 9 { 10 const int arraysize = 10; 11 12 int a[ arraysize ] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; 13 14 int total = 0; 15 16 // sum contents of array a 17 for ( int i = 0; i < arraysize; i++ ) 18 total += a[ i ]; 19 20 cout << "Total of array element values is " << total << endl; 21 22 return 0; // indicates successful termination 23 24 } // end main Total of array element values is 55

Example 161 2 // Student poll program. 3 #include <iostream> 4 5 using std::cout; 6 using std::endl; 7 8 #include <iomanip> 9 10 using std::setw; 11 12 int main() 13 { 14 // define array sizes 15 const int responsesize = 40; // size of array responses 16 const int frequencysize = 11; // size of array frequency 17 18 // place survey responses in array responses 19 int responses[ responsesize ] = { 1, 2, 6, 4, 8, 5, 9, 7, 8, 20 10, 1, 6, 3, 8, 6, 10, 3, 8, 2, 7, 6, 5, 7, 6, 8, 6, 7, 21 5, 6, 6, 5, 6, 7, 5, 6, 4, 8, 6, 8, 10 }; 22 23 // initialize frequency counters to 0 24 int frequency[ frequencysize ] = { 0 }; 25

Example 17 26 // for each answer, select value of an element of array 27 // responses and use that value as subscript in array 28 // frequency to determine element to increment 29 for ( int answer = 0; answer < responsesize; answer++ ) 30 ++frequency[ responses[answer] ]; 31 32 // display results 33 cout << "Rating" << setw( 17 ) << "Frequency" << endl; 34 35 // output frequencies in tabular format 36 for ( int rating = 1; rating < frequencysize; rating++ ) 37 cout << setw( 6 ) << rating 38 << setw( 17 ) << frequency[ rating ] << endl; 39 40 return 0; // indicates successful termination 41 42 } // end main responses[answer] is the rating (from 1 to 10). This determines the index in frequency[] to increment.

Example 18 Rating Frequency 1 2 2 2 3 2 4 2 5 5 6 11 7 5 8 7 9 1 10 3

Examples Using Arrays 19 Strings Arrays of characters All strings end with null ('\0') Examples char string1[] = "hello"; Null character implicitly added string1 has 6 elements char string1[] = {'h','e','l','l','o','\0 }; Subscripting is the same String1[ 0 ] is 'h' string1[ 2 ] is 'l'

Examples Using Arrays 20 Input from keyboard char string2[ 10 ]; cin >> string2; Puts user input in string Stops at first whitespace character Adds null character If too much text entered, data written beyond array We want to avoid this. Printing strings cout << string2 << endl; Does not work for other array types Characters printed until null found

21 1 2 // Treating character arrays as strings. 3 #include <iostream> 4 5 using std::cout; 6 using std::cin; 7 using std::endl; 8 9 int main() 10 { 11 char string1[ 20 ], // reserves 20 characters 12 char string2[] = "string literal"; // reserves 15 characters 13 14 // read string from user into array string2 15 cout << "Enter the string \"hello there\": "; and printing them out. 16 cin >> string1; // reads "hello" [space terminates input] 17 18 // output strings 19 cout << "string1 is: " << string1 20 << "\nstring2 is: " << string2; 21 Two different ways to declare strings. string2 is initialized, and its size determined automatically. Examples of reading strings from the keyboard 22 cout << "\nstring1 with spaces between characters is:\n"; 23

22 24 // output characters until null character is reached 25 for ( int i = 0; string1[ i ]!= '\0'; i++ ) 26 cout << string1[ i ] << ' '; 27 28 cin >> string1; // reads "there" 29 cout << "\nstring1 is: " << string1 << endl; 30 31 return 0; // indicates successful termination 32 33 } // end main Enter the string "hello there": hello there string1 is: hello string2 is: string literal string1 with spaces between characters is: h e l l o string1 is: there Can access the characters in a string using array notation. The loop ends when the null character is found.

Sorting Arrays 23 Swapping variables int x = 3, y = 4; y = x; x = y; What happened? Both x and y are 3! Need a temporary variable Solution int x = 3, y = 4, temp = 0; temp = x; // temp gets 3 x = y; // x gets 4 y = temp; // y gets 3

24 1 2 // This program sorts an array's values into ascending order. 3 #include <iostream> 4 5 using std::cout; 6 using std::endl; 7 8 #include <iomanip> 9 10 using std::setw; 11 12 int main() 13 { 14 const int arraysize = 10; // size of array a 15 int a[ arraysize ] = { 2, 6, 4, 8, 10, 12, 89, 68, 45, 37 }; 16 int hold; // temporary location used to swap array elements 17 18 cout << "Data items in original order\n"; 19 20 // output original array 21 for ( int i = 0; i < arraysize; i++ ) 22 cout << setw( 4 ) << a[ i ]; 23

25 24 // bubble sort 25 // loop to control number of passes 26 for ( int pass = 0; pass < arraysize - 1; pass++ ) 27 28 // loop to control number of comparisons per pass 29 for ( int j = 0; j < arraysize - 1; j++ ) 30 31 // compare side-by-side elements and swap them if 32 // first element is greater than second element 33 if ( a[ j ] > a[ j + 1 ] ) { 34 hold = a[ j ]; 35 a[ j ] = a[ j + 1 ]; 36 a[ j + 1 ] = hold; 37 38 } // end if 39 Do a pass for each element in the array. If the element on the left (index j) is larger than the element on the right (index j + 1), then we swap them. Remember the need of a temp variable.

26 40 cout << "\ndata items in ascending order\n"; 41 42 // output sorted array 43 for ( int k = 0; k < arraysize; k++ ) 44 cout << setw( 4 ) << a[ k ]; 45 46 cout << endl; 47 48 return 0; // indicates successful termination 49 50 } // end main Data items in original order 2 6 4 8 10 12 89 68 45 37 Data items in ascending order 2 4 6 8 10 12 37 45 68 89

Multiple-Subscripted Arrays 27 Multiple subscripts a[ i ][ j ] Tables with rows and columns Specify row, then column Array of arrays a[0] is an array of 4 elements a[0][0] is the first element of that array Row 0 Row 1 Row 2 Column 0 Column 1 Column 2 Column 3 a[ 0 ][ 0 ] a[ 1 ][ 0 ] a[ 2 ][ 0 ] a[ 0 ][ 1 ] a[ 1 ][ 1 ] a[ 2 ][ 1 ] a[ 0 ][ 2 ] a[ 1 ][ 2 ] a[ 2 ][ 2 ] a[ 0 ][ 3 ] a[ 1 ][ 3 ] a[ 2 ][ 3 ] Column subscript Array name Row subscript

Multiple-Subscripted Arrays 28 To initialize Default of 0 Initializers grouped by row in braces int b[ 2 ][ 2 ] = { { 1, 2 }, { 3, 4 } }; Row 0 Row 1 1 2 3 4 int b[ 2 ][ 2 ] = { { 1 }, { 3, 4 } }; 1 0 3 4

Multiple-Subscripted Arrays 29 Referenced like normal cout << b[ 0 ][ 1 ]; Outputs 0 Cannot reference using commas cout << b[ 0, 1 ]; Syntax error Function prototypes Must specify sizes of subscripts 1 0 3 4 First subscript not necessary, as with single-scripted arrays void printarray( int [][ 3 ] );

30 1 2 // Initializing multidimensional arrays. 3 #include <iostream> 4 5 using std::cout; 6 using std::endl; 7 8 void printarray( int [][ 3 ] ); 9 10 int main() 11 { 12 int array1[ 2 ][ 3 ] = { { 1, 2, 3 }, { 4, 5, 6 } }; 13 int array2[ 2 ][ 3 ] = { 1, 2, 3, 4, 5 }; 14 int array3[ 2 ][ 3 ] = { { 1, 2 }, { 4 } }; 15 16 cout << "Values in array1 by row are:" << endl; 17 printarray( array1 ); 18 19 cout << "Values in array2 by row are:" << endl; 20 printarray( array2 ); 21 22 cout << "Values in array3 by row are:" << endl; 23 printarray( array3 ); 24 25 return 0; // indicates successful termination 26 27 } // end main Note the format of the prototype. Note the various initialization styles. The elements in array2 are assigned to the first row and then the second.

31 28 29 // function to output array with two rows and three columns 30 void printarray( int a[][ 3 ] ) 31 { 32 for ( int i = 0; i < 2; i++ ) { // for each row 33 34 for ( int j = 0; j < 3; j++ ) arrays. // output column values 35 cout << a[ i ][ j ] << ' '; 36 37 cout << endl; // start new line of output 38 39 } // end outer for structure 40 41 } // end function printarray For loops are often used to iterate through arrays. Nested loops are helpful with multiple-subscripted Values in array1 by row are: 1 2 3 4 5 6 Values in array2 by row are: 1 2 3 4 5 0 Values in array3 by row are: 1 2 0 4 0 0