1 / 18

C++ Programming Lecture 14 Arrays – Part I

C++ Programming Lecture 14 Arrays – Part I. By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department. Outline. Introduction. Arrays declarations and initialization. Const variables. Character arrays. Static arrays. Examples. Introduction . Arrays

Download Presentation

C++ Programming Lecture 14 Arrays – Part I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. C++ ProgrammingLecture 14Arrays – Part I By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department

  2. Outline • Introduction. • Arrays declarations and initialization. • Const variables. • Character arrays. • Static arrays. • Examples. The Hashemite University

  3. Introduction • Arrays • Structures of related data items. • Static entity - same size throughout program. • Structures and classes are also static entities that group related data items. • In chapter 5 dynamic arrays concepts will be introduced in which you can change the ize of the array throughout the program based on pointers concepts. • Queues, vectors, link lists, and stacks are some examples of dynamic arrays in C++ which are based on pointers. The Hashemite University

  4. Arrays I • Array • One type of data structures. • Consecutive group of memory locations • Same name and type • Static data structure in which its size remain the same during the program execution. • To refer to an element, specify • Array name and position number • Format: arrayname[ position number ] • First element at position 0 • n element array c: c[ 0 ], c[ 1 ]…c[ n - 1 ] The Hashemite University

  5. Arrays II • Array elements are like normal variables c[ 0 ] = 3; cout << c[ 0 ]; • Performing operations in subscript. If x = 3, c[ 5 – 2 ] == c[ 3 ] == c[ x ] • ith element in an array has the index (or subscript) of i – 1. • Array element i has a an index of i. • The subscript must be an integer value, where it could be: • Constant. • Variable. • Expression. • A result of a function call. The Hashemite University

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

  7. Declaring Arrays • Declaring arrays - specify: • Name • Type of array • Number of elements • Examples int c[ 10 ]; float hi[ 3284 ]; • Declaring multiple arrays of same type • Similar format as other variables • Example int b[ 100 ], x[ 27 ]; The Hashemite University

  8. Arrays Initialization • Two methods to initialize an array: • Using a loop. • Using an initializers list. • Initializers int n[ 5 ] = { 1, 2, 3, 4, 5 }; • If not enough initializers, rightmost elements become 0 • If too many initializers, a syntax error is generated int n[ 5 ] = { 0 } • Sets all the elements to 0 since the first element is initialized to 0 and the rest are implicitly initialized to 0. • If size omitted, the initializers determine it int n[] = { 1, 2, 3, 4, 5 }; • 5 initializers, therefore n is a 5 element array The Hashemite University

  9. 1 // Fig. 4.4: fig04_04.cpp 2 // Initializing an array with a declaration Notice how they array is declared and elements referenced. 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 ] = { 32, 27, 64, 18, 95, 14, 90, 70, 60, 37 }; 15 16 cout << "Element" << setw( 13 ) << "Value" << endl; 17 18 for ( int i = 0; i < 10; i++ ) 19 cout << setw( 7 ) << i << setw( 13 ) << n[ i ] << endl; 20 21 return 0; 22 } Element Value 0 32 1 27 2 64 3 18 4 95 5 14 6 90 7 70 8 60 9 37 The Hashemite University

  10. const Variables • Also called named constants or read-only variables. • Reserve space in memory. • Must be initialized when declared to avoid getting a syntax error. • A constant variable cannot be modified throughout the program after it is being declared. • Arrays sizes are usually declared with type const since they are static. • If you want to declare the size of an array using a variable this variable must be declared const, otherwise you will get a syntax error, e.g.: int x = 10; int c_class[x]; // syntax error //But const int x = 10; int c_class[x]; //Correct The Hashemite University

  11. 1 // Fig. 4.7: fig04_07.cpp 2 // A const object must be initialized Notice that const variables must be initialized because they cannot be modified later. 3 4 int main() 5 { 6 const int x; // Error: x must be initialized 7 8 x = 7; // Error: cannot modify a const variable 9 10 return 0; 11 } Fig04_07.cpp: Error E2304 Fig04_07.cpp 6: Constant variable 'x' must be initialized in function main() Error E2024 Fig04_07.cpp 8: Cannot modify a const object in function main() *** 2 errors in Compile *** The Hashemite University

  12. Character Arrays I • Strings is the same as array of characters. • All strings end with NULL or '\0' • Character array initialization: • With string literal, Examples: char string1[] = "hello"; • With initializers, Examples: char string1[] = { 'h', 'e', 'l', 'l', 'o', '\0’ }; • Input from keyboard char string2[ 10 ]; cin >> string2; • Takes user input • Side effect: if too much text entered, data written beyond array The Hashemite University

  13. Character Arrays II • Subscripting is the same as for a normal array String1[ 0 ] is 'h' string1[ 2 ] is 'l' • Remember that cin stop reading from keyboard at the first white space. • If you enter a string with smaller size than the array size using cin, cin will automatically add a NULL at the end of the string within the array. • cout stop printing an array of character when it reaches the ‘\0’. • Character arrays that do not terminate with NULL (i.e. not strings) cannot be printed using cout , it will enter an infinite loop  logical error. The Hashemite University

  14. 1 // Fig. 4_12: fig04_12.cpp 2 // Treating character arrays as strings Inputted strings are separated by whitespace characters. "there"stayed in the buffer. 3 #include <iostream> 4 5 using std::cout; 6 using std::cin; 7 using std::endl; Notice how string elements are referenced like arrays. 8 9 int main() 10 { 11 char string1[ 20 ], string2[] = "string literal"; 12 13 cout << "Enter a string: "; 14 cin >> string1; 15 cout << "string1 is: " << string1 16 << "\nstring2 is: " << string2 17 << "\nstring1 with spaces between characters is:\n"; 18 19 for ( int i = 0; string1[ i ] != '\0'; i++ ) 20 cout << string1[ i ] << ' '; 21 22 cin >> string1; // reads "there" 23 cout << "\nstring1 is: " << string1 << endl; 24 25 cout << endl; 26 return 0; 27 } Enter a string: Hello there string1 is: Hello string2 is: string literal string1 with spaces between characters is: H e l l o string1 is: there The Hashemite University

  15. Static Arrays • Similar to static storage variable you can define an array to be static. • So this array will not be destroyed when you outside the scope in which it exists. • If you do not initialize a static array, by default the compiler will initialize all its elements to 0. The Hashemite University

  16. Examples • On board: • Drawing histograms. • Average, sum, product, and display of an array. • Static arrays. The Hashemite University

  17. Notes • Going outside the range of an array is a logical error in C++. • There are additional examples of using arrays in the textbook, study them. The Hashemite University

  18. Additional Notes • This lecture covers the following material from the textbook: • Fourth Edition • Chapter 4: Sections 4.1 – 4.4 The Hashemite University

More Related