Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 6 One-Dimensional Arrays ELEC 206 Computer Tools for Electrical Engineering.

Similar presentations


Presentation on theme: "Chapter 6 One-Dimensional Arrays ELEC 206 Computer Tools for Electrical Engineering."— Presentation transcript:

1

2 Chapter 6 One-Dimensional Arrays ELEC 206 Computer Tools for Electrical Engineering

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.  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"; vowels 'a''e''i''o''u' truefalse truefalsetrue ansKey word 'H''e''l' 'o''\0'

6 Accessing Array Elements  Subscripts are used to access individual elements of an array.  General format: array_identifier[offset]  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 provide information regarding the number of elements in the array.

8 Example #include using namespace std; const int maxSize=20; //function prototypes void ReadArr(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) { 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

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[0] 18 29 45 51 36 18 29 36 51 45 18 29 3645 51

17 Quick Sort  Select a pivot value - generally the first value in the list.  If list is greater than 2 values, divide list into two groups; values less than pivot, and values greater than the pivot.  Place pivot between these groups.  Recursively, repeat process with each group greater than 2. If group size is two, compare and swap if necessary.

18 Quick Sort Conceptual Example 1261524731203198 6738121524312119 3678121524312119 3678121521192431 3678121519212431

19 Separate function 1261524731203198 1267241531203198 1267315312024198 1267383120241915 6127383120241915 6712383120241915 6731283120241915 6738123120241915

20 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

21 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.

22 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

23 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.

24 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

25 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; }

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

27 Overloaded operators for string class  relational operators == =  concatenation+ +=  assignment=

28 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 "Chapter 6 One-Dimensional Arrays ELEC 206 Computer Tools for Electrical Engineering."

Similar presentations


Ads by Google