Escolar Documentos
Profissional Documentos
Cultura Documentos
LAB 3
LAB 3
ARRAYS & POINTERS
A. Arrays
1. Simple Array
#include <iostream>
using namespace std;
int main()
{
int sample[10]; // this reserves 10 integer elements
int idx;
return 0;
}
Exercise :
a) Modify the program above by utilizing a constant variable SIZE to define the size
of the array to value 10 and making use of this constant value throughout your
program.
b) Create a new array of type integer named as myZeroArray with number of element
as many as your constant SIZE defined earlier and initial with zero 0 value to all
elements in this array in a single statement. Display this array.
c) Create another new array named as myOtherArray and initial with 3 different
integer values in this array. Think of a way to display the content of this array
without specify value 3 as the number of element in this array. (Hint: this array is
containing int data type in each element)
TMF1434/TMC1434 Data Structure and Algorithms 2
LAB 3
Sample Answer:
#include <iostream>
using namespace std;
const int SIZE = 10;
int main()
{
int sample[SIZE]; // this reserves 10 integer elements
int idx;
int myZeroArray[SIZE] = {0};
int myOtherArray[] = {10 , 20 , 30};
return 0;
}
TMF1434/TMC1434 Data Structure and Algorithms 3
LAB 3
2. Multidimensional Array
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int TwoDArray [3][3] = {{-501, 206, 2011},
{989, 101, 206},
{303, 456, 596}};
cout << "Row 0: " << TwoDArray [0][0] << " "
<< TwoDArray [0][1] << " "
<< TwoDArray [0][2] << endl;
cout << "Row 1: " << TwoDArray [1][0] << " "
<< TwoDArray [1][1] << " "
<< TwoDArray [1][2] << endl;
cout << "Row 2: " << TwoDArray [2][0] << " "
<< TwoDArray [2][1] << " "
<< TwoDArray [2][2] << endl;
getch();
return 0;
}
B. POINTERS
int main()
{
int balance;
int *balptr;
int value;
balance = 3200;
balptr = &balance;
value = *balptr;
Exercise :
Modify the program, create a new pointer of type int named it as newBalance and
copy the content of balptr to this pointer. Print out the contents of both balptr and
newBalance as well the value of their references.
TMF1434/TMC1434 Data Structure and Algorithms 4
LAB 3
Sample Answer:
#include <iostream>
using namespace std;
int main()
{
int balance;
int *balptr;
int value;
int *newBalance;
balance = 3200;
balptr = &balance;
value = *balptr;
newBalance = balptr;
cout << "Content of balptr is: (address of value)" << balptr << '\n';
cout << "Address of balptr is: " << &balptr << '\n';
cout << "Value of balptr's dereference is: " << *balptr << '\n\n';
#include <iostream>
using namespace std;
int main()
{
int x, *p, **q;
x = 10;
p = &x;
q = &p;
#include <iostream>
using namespace std;
int main()
{
// uninitialized pointer (bad)
int* pTemperature;
cout << "Is it sunny (y/n)?" << endl;
char UserInput = 'y';
cin >> UserInput;
if (UserInput == 'y')
{
pTemperature = new int;
*pTemperature = 30;
}
#include <iostream>
using namespace std;
void f(int *j);
int main()
{
int i;
int *p;
p = &i; // p now points to i
f(p);
cout << i; // i is now 100
return 0;
}
int main()
{
int i;
f(&i);
cout << i;
return 0;
}
#include <iostream>
using namespace std;
void display(int num[10]);
int main()
{
int t[10],i;
for(i=0; i<10; ++i)
t[i]=i;
In the following program, examine the function cube( ), which converts the value of
each element in an array into its cube. To call cube( ), pass the address of the array as
the first argument, and the size of the array as the second.
#include <iostream>
using namespace std;
void cube(int *n, int num);
int main()
{
int i, nums[10];
for(i=0; i<10; i++) nums[i] = i+1;
cout << "Original contents: ";
Original contents: 1 2 3 4 5 6 7 8 9 10
Self-Practice Exercises
#include <iostream>
using namespace std;
int main(){
int number[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int *pNumbers = number;
cout << "Values - Using the Array";
cout << "\n number[0]: " << number[0];
cout << "\n number[1]: " << number[1];
cout << "\n number[2]: " << number[2];
cout << "\n number[3]: " << number[3];
cout << "\n number[4]: " << number[4];
In the following program, extracts words, separated by spaces, from a string. For
example, given "Hello Tom," the program would extract "Hello" and "Tom." For example,
if you enter This is a test. the program displays the following:
This
is
a
test.
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
char str[80];
char token[80];
int i, j;
if(!str[i]) break;
}
return 0;
}
TMF1434/TMC1434 Data Structure and Algorithms 1
LAB 3 1
B-2 Exercise:
This program acts similar way as program B-1 in previous section, here is the pointer
version of the tokenizing program: (You may only use a single array or two arrays as in
program A-3)
Answer:
#include <iostream>
using namespace std;
int main(){
char str[20] = "This is a test";
cout << "\n\n*Content of str array: \n";
B-3: This program acts similar way as program B-1 in previous section, here is the
#include <iostream>
pointer version
#include of the tokenizing program:
<cstdio>
using namespace std;
int main()
{
char str[80];
char token[80];
char *p, *q;
p = str;