Presentation is loading. Please wait.

Presentation is loading. Please wait.

Engineering Problem Solving With C++ An Object Based Approach Chapter 6 One-Dimensional Arrays.

Similar presentations


Presentation on theme: "Engineering Problem Solving With C++ An Object Based Approach Chapter 6 One-Dimensional Arrays."— Presentation transcript:

1

2 Engineering Problem Solving With C++ An Object Based Approach Chapter 6 One-Dimensional Arrays

3 Arrays An array is a collection of data which shares a common identifier and data type. Individual elements of the array are specified using offsets referred to as subscripts or indices. In C++ the offsets or subscripts always start with 0.

4 Defining Arrays General form data_type array_identifier[size]; The size of the array may be specified by a defined constant or constant literal. Example: double m[8]; m[0] m[1] m[2] m[3] m[4] m[5] m[6] m[7]

5 Initializing Arrays Initializing the array when declared char vowels[5] = {'a', 'e', 'i', 'o', 'u'}; bool ansKey[] ={true, true, false, true, false, false}; char word[] = "Hello"; double rainfall[] = {.25, 0.0, 0.0,.5,.3, 0.0, 0.0} vowels 'a''e''i''o''u' truefalse truefalsetrue ansKey word 'H''e''l' 'o''\0'.250.0.5.30.0 rainfall

6 Accessing Array Elements Subscripts are used to access individual elements of an array. General format: array_identifier[index] Example for (int I=0; I<8; I++) m[I] = double(I) + 0.5; Subscripts may be any integer expression.

7 Functions and arrays An array identifier references the first element of the array. When arrays are passed as arguments to functions, the address of the array is passed, thus by default, arrays are always passed by reference. Generally we specify additional parameters with the array to provided information regarding the number of elements in the array.

8 Example #include using namespace std; const int maxSize=20; //function prototypes void ReadArray(double a[], int &howMany); int FindMin(const double a[], int howMany); int main( ) {double darr[maxSize]; int cnt, where; ReadArr(darr, cnt); where = FindMin(darr, cnt); cout << "The smallest value in the array is " << darr[where] << endl; }

9 // This function inputs values into an array until –99 or array // limit reached void ReadArray(double a[], int & howMany) {double temp; howMany = 0; cin >> temp; while ((howMany < maxSize) && (temp != -99)) { a[howMany] = temp; howMany++; cin >> temp; }

10 //This function returns the subscript of the minimum value // in an array int FindMin(const double a[], int howMany) { int minElem = 0; for (int I=1; I<howMany; I++) if (a[I] < a[minElem]) minElem = I; return minElem; }

11 Function overloading In C++ we can have many functions with the same name provided the function signature is different. The function signature includes the name of the function and the parameter list.

12 #include using namespace std; int Area (int Side); // Area of Square int Area (int Length, int Width); // Area of Rectangle double Area (double Radius);// Area of Circle const double PI= 3.14159; int main() { cout << "Area of Square:" << Area(10) << endl; cout << "Area of Rect:" << Area(8,12) << endl; cout << "Area of Circle: " << Area(2.5) << endl; return 0; } Example

13 int Area (int Side) // Area of Square { return (Side * Side); } int Area (int Length, int Width) // Area of Rectangle { return (Length * Width); } double Area (double Radius)// Area of Circle { return (PI* Radius * Radius); } Overloaded Function Implementations

14 Sorting Algorithms Sorting algorithms arrange the data into either ascending or descending order, based on the values in the array. Sorting algorithms to be discussed –Selection sort –Quick sort – covered in Data Structures

15 Basic Premise of Selection Sort Find minimum value, place it in the first position. Find next minimum value, place it in the second position. Continue doing this until you have placed the second to the largest value in the second to the last position.

16 Practice! Fill in the following table to show how the array is sorted into ascending order using the selection sort. arr[0] arr[1] arr[2] arr[3] arr[4] 2945185136 1845295136 swap min and arr[1] 18 29 45 51 36 18 29 36 51 45 18 29 3645 51 swap min and arr[0]

17 Searching Unordered Arrays Simple Sequential Search –Examine each element starting with the first one, until either a match is found or the end of the list is reached Can be implemented with a function which returns true if in the list and false if not found Can be implemented with a function which returns the location of the element if found, or –1 if not found

18 Searching Ordered Lists Modified Sequential Search –Stops either when item is found, or when the element examined is past where the item should be in the list. Binary Search –Examine middle element, if not found determine if item should be in top part or bottom part of list. –Repeat with appropriate sublist, until sublist is empty.

19 Example of Binary Search for 48 7059564337282214115 arr[0]arr[9] arr[mid]arr[9]arr[5] 4337 arr[5]arr[6] mid is 5 43 arr[6] arr[mid] mid is 6 mid is 7 7059564337

20 Character Strings C style strings –array of characters terminated by \0 character –remember when declaring the character array to add an extra space to the array for '\0' –literal string constants are enclosed in double quote marks, "a string" –file names when using file I/O must be C style strings.

21 Input and strings >> uses whitespace (' ', '\t', '\n') to determine the beginning and end of data whitespace characters can not be read using >>, to read strings with embedded whitespace use getline() char phrase[30]; getline(phrase, 30); peek() returns the next character in a stream without removing it from the stream

22 C++ functions for C style strings #include uses namespace std; int main() {char str1[30]="John", str2[30]="Johnson"; char phrase[20]="'s shirt was green", sentence[30]; if (strcmp(str1,str2) < -1) strcpy (sentence, str1); // puts "John" into sentence else strcpy (sentence,str2); // puts "Johnson into sentence strcat(sentence, phrase); cout << "Sentence is: " << sentence << endl; return 0; }

23 The string class include declaring string objects string word="Engineering"; string word2; string member functions –size( ) –empty( ) –substr (int start, int len) –c_str()

24 Overloaded operators for string class relational operators == = concatenation+ += assignment=

25 Example Using string Class #include uses namespace std; int main() {string str1="John", str2="Johnson"; string phrase = "'s shirt was green", sentence; if (str1 < str2) sentence = str1;// puts "John" into sentence else sentence = str2; // puts "Johnson into sentence sentence += phrase; cout << "Sentence is: " << sentence << endl; return 0; }


Download ppt "Engineering Problem Solving With C++ An Object Based Approach Chapter 6 One-Dimensional Arrays."

Similar presentations


Ads by Google