programming for engineers arrays - albany.edu · Ø if the search key is less than the middle...
TRANSCRIPT
![Page 1: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/1.jpg)
1
Programming for Engineers
ArraysICEN 200– Spring 2018Prof. Dola Saha
![Page 2: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/2.jpg)
2
Array
Ø Arrays are data structures consisting of related data items of the same type.
Ø A group of contiguous memory locations that all have the same type.
Ø To refer to a particular location or element in the array§ Array’s name § Position number of the particular element in the array
![Page 3: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/3.jpg)
3
Example Array
![Page 4: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/4.jpg)
4
Array indexing
Ø The first element in every array is the zeroth element. Ø An array name, like other identifiers, can contain only
letters, digits and underscores and cannot begin with a digit.
Ø The position number within square brackets is called an index or subscript.
Ø An index must be an integer or an integer expression§ array_name[x], array_name[x+y], etc.
Ø For example, if a = 5 and b = 6, then the statemento c[a + b] += 2;
adds 2 to array element c[11].
![Page 5: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/5.jpg)
5
Array in memory
Ø Array occupies contiguous space in memoryØ The following definition reserves 12 elements for integer
array c, which has indices in the range 0-11.o int c[12];
Ø The definition o int b[100]; double x[27];
reserves 100 elements for integer array b and 27 elements for double array x.
Ø Like any other variables, uninitialized array elements contain garbage values.
![Page 6: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/6.jpg)
6
Initializing array
Output
![Page 7: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/7.jpg)
7
Use of size_t
Ø Notice that the variable i is declared to be of type size_t, which according to the C standard represents an unsigned integral type.
Ø This type is recommended for any variable that represents an array’s size or an array’s indices.
Ø Type size_t is defined in header <stddef.h>, which is often included by other headers (such as <stdio.h>).
Ø [Note: If you attempt to compile Fig. 6.3 and receive errors, simply include <stddef.h> in your program.]
![Page 8: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/8.jpg)
8
Initializing with initializer list
Output
![Page 9: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/9.jpg)
9
Initializing with fewer initializers
Ø If there are fewer initializers than elements in the array, the remaining elements are initialized to zero.
Ø Example:// initializes entire array to zerosint n[10] = {0};
Ø The array definition o int n[5] = {32, 27, 64, 18, 95, 14};
causes a syntax error because there are six initializers and only five array elements.
![Page 10: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/10.jpg)
10
Initializing without array size
Ø If the array size is omitted from a definition with an initializer list, the number of elements in the array will be the number of elements in the initializer list.
Ø For example, o int n[] = {1, 2, 3, 4, 5};
would create a five-element array initialized with the indicated values.
![Page 11: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/11.jpg)
11
Initializing to even list
Output
![Page 12: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/12.jpg)
12
Preprocessor
Ø The #define preprocessor directive is introduced in this program.
Ø #define SIZE 5§ defines a symbolic constant SIZE whose value is 5.
Ø A symbolic constant is an identifier that’s replaced with replacement text by the C preprocessor before the program is compiled.
Ø Using symbolic constants to specify array sizes makes programs more modifiable.
![Page 13: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/13.jpg)
13
Adding elements of an array
![Page 14: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/14.jpg)
14
Using Arrays to Summarize Poll (1)
![Page 15: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/15.jpg)
15
Using Arrays to Summarize Poll (2)
![Page 16: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/16.jpg)
16
Histogram with Array elements (1)
![Page 17: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/17.jpg)
17
Histogram with Array elements (1)
![Page 18: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/18.jpg)
18
Character Arrays & String RepresentationØ Store strings in character arrays. Ø So far, the only string-processing capability we have is
outputting a string with printf. Ø A string such as "hello" is really an array of individual
characters in C.Ø A character array can be initialized using a string literal. Ø For example,
o char string1[] = "first";initializes the elements of array string1 to the individual characters in the string literal "first".
![Page 19: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/19.jpg)
19
Size of Character ArrayØ In this case, the size of array string1 is
determined by the compiler based on the length of the string.
Ø The string "first" contains five characters plus a special string-termination character called the null character.
Ø Thus, array string1 actually contains six elements. Ø The character constant representing the null
character is '\0'. Ø All strings in C end with this character.
![Page 20: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/20.jpg)
20
Character Array IndexingØ The preceding definition is equivalent to
o char string1[] = {'f', 'i', 'r', 's', 't', '\0'};
Ø Because a string is really an array of characters, we can access individual characters in a string directly using array index notation.
Ø For example, string1[0] is the character 'f' and string1[3] is the character 's'.
![Page 21: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/21.jpg)
21
Scanning stringØ We also can input a string directly into a character array from the
keyboard using scanf and the conversion specifier %s. Ø For example,
o char string2[20];
creates a character array capable of storing a string of at most 19 characters and a terminating null character.
Ø The statemento scanf("%19s", string2);
reads a string from the keyboard into string2. Ø The name of the array is passed to scanf without the preceding &
used with nonstring variables. Ø The & is normally used to provide scanf with a variable’s location
in memory so that a value can be stored there.
![Page 22: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/22.jpg)
22
Scanning stringØ Function scanf will read characters until a space, tab,
newline or end-of-file indicator is encountered.
Ø The string2 should be no longer than 19 characters to leave room for the terminating null character.
Ø If the user types 20 or more characters, your program may crash or create a security vulerability.
Ø For this reason, we used the conversion specifier %19s so that scanf reads a maximum of 19 characters and does not write characters into memory beyond the end of the array string2.
![Page 23: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/23.jpg)
23
Memory Management in Scanning String
Ø It’s your responsibility to ensure that the array into which the string is read is capable of holding any string that the user types at the keyboard.
Ø Function scanf does not check how large the array is.
Ø Thus, scanf can write beyond the end of the array.
Ø You can use gets(text) to get the text from user.
![Page 24: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/24.jpg)
24
Printing String
Ø A character array representing a string can be output with printf and the %s conversion specifier.
Ø
Ø The array string2 is printed with the statemento printf("%s\n", string2);
Ø Function printf, like scanf, does not check how large the character array is.
Ø The characters of the string are printed until a terminating null character is encountered.
![Page 25: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/25.jpg)
25
Treating Character Arrays as String (1)
![Page 26: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/26.jpg)
26
Treating Character Arrays as String (2)
![Page 27: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/27.jpg)
27
Passing Arrays to FunctionsØ To pass an array argument to a function, specify the array’s
name without any brackets. Ø For example,
int hourlyTemperatures[HOURS_IN_A_DAY];modifyArray(hourlyTemperatures, HOURS_IN_A_DAY);
the function call passes array hourlyTemperatures and its size to function modifyArray.
Ø The name of the array evaluates to the address of the first element of the array.
Ø The called function can modify the element values in the callers’ original arrays.
![Page 28: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/28.jpg)
28
Passing Array to Functions (1)
![Page 29: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/29.jpg)
29
Passing Array to Functions (2)
![Page 30: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/30.jpg)
30
Passing Array to Functions (3)
![Page 31: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/31.jpg)
31
Passing Array to Functions (4)
![Page 32: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/32.jpg)
32
Protecting Array Elements
Ø Function tryToModifyArray is defined with parameter const int b[], which specifies that array bis constant and cannot be modified.
Ø The output shows the error messages produced by the compiler—the errors may be different for your compiler.
![Page 33: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/33.jpg)
33
Classwork Assignment
Ø Search an Array: Write a program to initialize an array of size S with an initializer list. Also get a value for num1from user. Pass the array as well as num1 to a function. Within the function, check each element of array whether it matches num1. If it matches, return 1, else return 0 to the main function.
![Page 34: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/34.jpg)
34
Binary Search – searching in a sorted array
Ø The linear searching method works well for small or unsorted arrays.
Ø However, for large arrays linear searching is inefficient.
Ø If the array is sorted, the high-speed binary search technique can be used.
Ø The binary search algorithm eliminates from consideration one-half of the elements in a sorted array after each comparison.
![Page 35: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/35.jpg)
35
Binary Search – searching in a sorted arrayØ The algorithm locates the middle element of the array and
compares it to the search key. Ø If they’re equal, the search key is found and the index of
that element is returned. Ø If they’re not equal, the problem is reduced to searching
one-half of the array. Ø If the search key is less than the middle element of the
array, the first half of the array is searched, otherwise the second half of the array is searched.
![Page 36: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/36.jpg)
36
Demo
Ø Demo from Princetonhttps://www.cs.princeton.edu/courses/archive/fall06/cos226/demo/demo-bsearch.ppt
![Page 37: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/37.jpg)
37
Binary Search – C code (1)
![Page 38: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/38.jpg)
38
Binary Search – C code (2)
![Page 39: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/39.jpg)
39
Binary Search – C code (3)
![Page 40: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/40.jpg)
40
Binary Search – C code (4)
![Page 41: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/41.jpg)
41
Binary Search – C code (5)
![Page 42: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/42.jpg)
42
Binary Search – C code (6)
![Page 43: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/43.jpg)
43
Binary Search – C code (7)
![Page 44: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/44.jpg)
44
Multidimensional ArraysØ Arrays in C can have multiple indices. Ø A common use of multidimensional arrays is to represent
tables of values consisting of information arranged in rows and columns.
Ø Multidimensional arrays can have more than two indices.
3x4 Array
![Page 45: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/45.jpg)
45
InitializationØ Where it is defined§ Braces for each dimensiono int b[2][2] = {{1, 2}, {3, 4}};
§ If there are not enough initializers for a given row, the remaining elements of that row are initialized to 0.
o int b[2][2] = {{1}, {3, 4}};§ If the braces around each sublist are removed from the array1
initializer list, the compiler initializes the elements of the first row followed by the elements of the second row.
o int b[2][2] = {1, 2, 3, 4};
![Page 46: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/46.jpg)
46
Multidimensional Array Example Code (1)
![Page 47: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/47.jpg)
47
Multidimensional Array Example Code (2)
![Page 48: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/48.jpg)
48
Two Dimensional Array Manipulation
Ø Example§ studentGrades[3][4]§ Row of the array represents a student.§ Column represents a grade on one of the four exams the students took during the
semester.
Ø The array manipulations are performed by four functions. § Function minimum determines the lowest grade of any student for the semester. § Function maximum determines the highest grade of any student for the semester. § Function average determines a particular student’s semester average. § Function printArray outputs the two-dimensional array in a neat, tabular format.
![Page 49: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/49.jpg)
49
2D Array Manipulation Code (1)
![Page 50: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/50.jpg)
50
2D Array Manipulation Code (2)
![Page 51: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/51.jpg)
51
2D Array Manipulation Code (3)
![Page 52: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/52.jpg)
52
2D Array Manipulation Code (4)
![Page 53: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/53.jpg)
53
2D Array Manipulation Code (5)
![Page 54: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/54.jpg)
54
2D Array Manipulation Code (6)
![Page 55: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/55.jpg)
55
2D Array Manipulation Code (7)
![Page 56: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/56.jpg)
56
Lab Assignment
Ø Matrix Addition/Subtraction – two matrices should have same number of rows and columns.
https://en.wikipedia.org/wiki/Matrix_addition
Addition Subtraction
![Page 57: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/57.jpg)
57
Ø If A is a 𝑛×𝑚 matrix and B is a 𝑚×𝑝 matrix, then Matrix Multiplication is given by following formula
Matrix Multiplication
https://en.wikipedia.org/wiki/Matrix_multiplication
![Page 58: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/58.jpg)
58
Matrix Multiplication - Illustrated
![Page 59: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/59.jpg)
59
Variable Length ArrayØ In early versions of C, all arrays had constant size. Ø If size is unknown at compilation time§ Use dynamic memory allocation with malloc
Ø The C standard allows a variable-length array § An array whose length, or size, is defined in terms of an
expression evaluated at execution time.
![Page 60: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/60.jpg)
60
Variable Length Array Code (1)
![Page 61: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/61.jpg)
61
Variable Length Array Code (2)
![Page 62: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/62.jpg)
62
Variable Length Array Code (3)
![Page 63: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/63.jpg)
63
Variable Length Array Code (4)
![Page 64: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/64.jpg)
64
Variable Length Array Code (5)
![Page 65: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/65.jpg)
65
Scan string with space
Ø Function scanf will read characters until a space, tab, newline or end-of-file indicator is encountered.
Ø Use fgets function.§ char *fgets(char *str, int n, FILE *stream)
§ str – character array § n – maximum number of characters to be read§ stream – where we are reading the data from
![Page 66: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/66.jpg)
66
Classwork
Ø Reverse an array
![Page 67: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/67.jpg)
67
Classwork
Ø Represent a 2D array by a 1D array
![Page 68: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/68.jpg)
68
Classwork
Ø Insert an element in a sorted array
![Page 69: Programming for Engineers Arrays - albany.edu · Ø If the search key is less than the middle element of the array, the first half of the array is searched, otherwise the second halfof](https://reader030.vdocument.in/reader030/viewer/2022041202/5d4c82c588c9938d7b8b6150/html5/thumbnails/69.jpg)
69
Classwork
Ø Find second minimum