Download presentation
Presentation is loading. Please wait.
Published byCorey Wilkinson Modified over 9 years ago
1
Visual C++ Programming: Concepts and Projects Chapter 11B: Pointers (Tutorial)
2
Tutorial: Sorting with a Pointer Array Problem description – Create an array of integers and display its values and the address of each element – Create an array of pointers to integers – Assign the address of each element in the integer array to the corresponding elements of the pointer array – Sort the data by swapping pointers – Display the sorted data by using a for loop to access each element of the pointer array 2Programming with Visual C++
3
Problem Description 3Programming with Visual C++
4
Problem Description (continued) 4Programming with Visual C++
5
Problem Description (continued) 5Programming with Visual C++
6
Design Interface sketch Control table Instance variables – Data table – Drawing objects 6Programming with Visual C++
7
Design (continued) 7Programming with Visual C++
8
Design (continued) 8Programming with Visual C++
9
Design (continued) 9Programming with Visual C++
10
Design (continued) Variables for DrawLines() Each line drawn from the pointer array to the data array text boxes needs starting and ending coordinates 10Programming with Visual C++
11
Design (continued) 11Programming with Visual C++
12
Design (continued) Event handlers – btnData_Click() Generates random numbers in the data array Captures data array element addresses and assigns to the pointer array Displays data and pointers Draws lines connecting them 12Programming with Visual C++
13
Design (continued) 13Programming with Visual C++
14
Design (continued) Event handlers – btnSort_Click() Sort the data by swapping pointers Draw lines from each pointer to the appropriate data item Display the sorted data in a MessageBox 14Programming with Visual C++
15
Design (continued) 15Programming with Visual C++
16
Design (continued) Algorithm for DrawLines() – Uses the following textbox properties Location.X Location.Y Width Height 16Programming with Visual C++
17
Design (continued) 17Programming with Visual C++
18
Design (continued) 18Programming with Visual C++
19
Design (continued) Algorithm for DrawLines() (continued) – Draws lines connecting pointer array text boxes to data array text boxes – Lines begin at the midpoint of the right side of each pointer text box (ptrX, ptrY) 19Programming with Visual C++
20
Design (continued) 20Programming with Visual C++
21
Design (continued) 21Programming with Visual C++
22
Design (continued) Algorithm for DrawLines() (continued) – In this example, the pointer text boxes are separated by 32 pixels vertically 22Programming with Visual C++
23
Design (continued) 23Programming with Visual C++
24
Design (continued) 24Programming with Visual C++
25
Design (continued) Algorithm for DrawLines() (continued) – Lines end at the midpoint of the left side of the appropriate data text box (arrX, arrY) – Variable startX stores the y coordinate of the first data text box 25Programming with Visual C++
26
Design (continued) 26Programming with Visual C++
27
Design (continued) 27Programming with Visual C++
28
Design (continued) Algorithm for DrawLines() (continued) – The location of arrY is calculated by: Determining how many elements away from the first element you must go Multiplying the number of elements by 32 (the number of pixels separating each element) 28Programming with Visual C++
29
Design (continued) 29Programming with Visual C++
30
Design (continued) Algorithm for DrawLines() (continued) – To determine how many elements away from the first element you must go, subtract the pointer array value from the address of the first data element ( &(arr[0]) ) 30Programming with Visual C++
31
Design (continued) 31Programming with Visual C++
32
Development The interface – Based on Figure 11-32 Coding – Instance variable declarations and Form1_Load() – The btnData_Click() event handler – The btnSort_Click() event handler – The drawLines() method 32Programming with Visual C++
33
Development (continued) 33Programming with Visual C++
34
Development (continued) The btnData_Click() event handler – Assigns random numbers to each array element – Displays the data values in arr to the data text boxes – Displays the addresses of each element of the data array To the data text box labels To the pointer array elements – Displays the pointer array values – Draws the lines connecting pointer and data text boxes 34Programming with Visual C++
35
Development (continued) 35Programming with Visual C++
36
Development (continued) 36Programming with Visual C++
37
Development (continued) 37Programming with Visual C++
38
Development (continued) 38Programming with Visual C++
39
Development (continued) 39Programming with Visual C++
40
Development (continued) The btnSort_Click() event handler – Sorts the pointer array according to the values in the data array – Displays the pointers – Creates output string – Draws the connecting lines (once before and once after the MessageBox is displayed) 40Programming with Visual C++
41
Development (continued) 41Programming with Visual C++
42
Development (continued) The DisplayPointer() method – Displays pointer values on the interface 42Programming with Visual C++
43
Development (continued) 43Programming with Visual C++
44
Development (continued) The drawLines() method – Calculates ptrX, ptrY – Calculates the corresponding arrX and arrY – Draws lines between (ptrX, ptrY) on the pointer array and (arrX, arrY) on the data array for each element of the pointer array 44Programming with Visual C++
45
Development (continued) 45Programming with Visual C++
46
Testing Run your program several times – btnSort should be initially disabled – When btnData is clicked, random numbers are generated and displayed, and the memory cell addresses of the data array are displayed – When btnSort is clicked, the pointer array elements are swapped until they point to the data array elements in sorted order 46Programming with Visual C++
47
On Your Own Descending order – Rewrite your bubble sort method Removing the swap() method – Place the instructions back in their proper place in the bubble sort 47Programming with Visual C++
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.