Task - Hand Execution of Arrays
Overview
In this task you will demonstrate how arrays work by hand executing a number of small code snippets.
Instructions
Watch the Hand Execution with Arrays video, this shows how to step through code that makes use of arrays. You can apply the same process and visualisations for working with vectors as well.
Use the process shown to demonstrate how the following code snippets execute with the provided input values.
Program 1:
Demonstrate how the following code works with the supplied values:
double ( const vector &data )
{
int result = 0;
for(int i = 0; i < data.size(); i++)
{
if ( data[i] == 0 )
{
result++;
}
}
return result;
}
1. Include the following on the first image:
1. Hand execute the above with a vector that has the following data
|----|----|----|----|----|
| 7 | 0 | 1 | -3 | 12 |
|----|----|----|----|----|
2. Hand execute the above with a vector that has the following data
|----|----|----|----|----|
| 0 | 2 | 0 | 11 | -1 |
|----|----|----|----|----|
3. In the image, note an appropriate name you could use for this function
Program 2:
void ( vector &data )
{
for(int i = 0; i < data.size(); i++)
{
if ( data[i] < 0 )
{
data[i] = data[i] * -1;
}
}
}
Note that this procedure updates the passed in vector.
1. Include the following on the second image:
1. Hand execute the above with a vector that has the following data
|----|----|----|----|----|
| 2 | -5 | 0 | -3 | 23 |
|----|----|----|----|----|
2. Hand execute the above with a vector that has the following data
|----|----|----|----|----|
| 0 | -2 | -4 | 11 | -1 |
|----|----|----|----|----|
3. In the image, note an appropriate name you could use for this function
Program 3:
Note that this procedure updates the passed in vector. Remember that pop_back() removes the last element from the vector. You can represent this by crossing out the whole box from the vector.
1. Include the following on the third image:
1. Hand execute the above with the following values:
|----|----|----|----|----|
| 2 | -5 | 0 | 1 | 23 |
|----|----|----|----|----|
idx:
2
2. Hand execute the above with the following values:
data:
|----|----|
| 0 | -2 |
|----|----|
3. Hand execute the above with the following values:
|----|----|
| 4 | 3 |
|----|----|
4. In the image, note an appropriate name you could use for this function
Program 4:
void ( vector &data, int idx, double value )
{
data.push_back(value);
if ( idx >= data.size() - 1 ) return; if ( idx < 0 ) idx = 0;
for(int i = data.size() - 1; i > idx; i--)
{
data[i] = data[i - 1]; data[i - 1] = value;
}
}
Note that this procedure updates the passed in vector. This will change the value in a few of the vector elements, so make sure to give yourself lots of space in those boxes. Take care with this one...
1. Include the following on the fourth image:
1. Hand execute the above with the following values:
data:
|----|----|----|----|----|
| 4 | -6 | 0 | 8 | -7 |
|----|----|----|----|----|
idx:
2
value:
-7
2. In the image, note an appropriate name you could use for this function