0% found this document useful (0 votes)
54 views

Array

This document discusses arrays in programming. It defines an array as a collection of elements of the same type. Arrays can have one, two, or more dimensions. Common array applications include sorting data and finding minimum/maximum values. Arrays are declared with syntax that specifies the type and size. Individual elements are accessed using subscripts. Loops are commonly used to initialize, manipulate, and print array elements. Examples demonstrate sorting arrays, initializing with random values, and other array operations.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
54 views

Array

This document discusses arrays in programming. It defines an array as a collection of elements of the same type. Arrays can have one, two, or more dimensions. Common array applications include sorting data and finding minimum/maximum values. Arrays are declared with syntax that specifies the type and size. Individual elements are accessed using subscripts. Loops are commonly used to initialize, manipulate, and print array elements. Examples demonstrate sorting arrays, initializing with random values, and other array operations.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 26

Programming

Arrays
COMP102 Prog. Fundamentals I: Arrays / Slide 2

Arrays
 An array is a collection of data elements that are of
the same type (e.g., a collection of integers, collection
of characters, collection of doubles).
COMP102 Prog. Fundamentals I: Arrays / Slide 3

Arrays
 1-dimensional array.

 3-dimensional array (3rd dimension is the day).


Oct 14
Oct 15
Oct 16
COMP102 Prog. Fundamentals I: Arrays / Slide 4

Array Applications

 Given a list of test scores, determine the


maximum and minimum scores.
 Read in a list of student names and rearrange
them in alphabetical order (sorting).
 Given the height measurements of students in
a class, output the names of those students
who are taller than average.
COMP102 Prog. Fundamentals I: Arrays / Slide 5

Array Declaration
 Syntax:
<type> <arrayName>[<array_size>]
Ex. int Ar[10];
 The array elements are all values of the type <type>.
 The size of the array is indicated by <array_size>, the
number of elements in the array.
 <array_size> must be an int constant or a constant
expression. Note that an array can have multiple
dimensions.
COMP102 Prog. Fundamentals I: Arrays / Slide 6

Array Declaration
// array of 10 uninitialized ints
int Ar[10];

0 1 2 3 4 5 6 7 8 9
Ar -- -- -- -- -- -- -- -- -- --

0 1 2 3 4 5
COMP102 Prog. Fundamentals I: Arrays / Slide 7

Subscripting
 Declare an array of 10 integers:
int Ar[10]; // array of 10 ints
 To access an individual element we must apply a
subscript to array named Ar.
 A subscript is a bracketed expression.
– The expression in the brackets is known as the index.
 First element of array has index 0.
Ar[0]
 Second element of array has index 1, and so on.
Ar[1], Ar[2], Ar[3],…
 Last element has an index one less than the size of the array.
Ar[9]
 Incorrect indexing is a common error.
COMP102 Prog. Fundamentals I: Arrays / Slide 8

Subscripting
// array of 10 uninitialized ints
int Ar[10];
--
Ar[3] = 1;
int x = Ar[3]; 1 --

-- -- --

0 1 2 3 4 5 6 7 8 9
Ar -- -- -- 1 -- -- -- -- -- --
Ar[0] Ar[1] Ar[2] Ar[3] Ar[4] Ar[5] Ar[6] Ar[7] Ar[8]Ar[9]
COMP102 Prog. Fundamentals I: Arrays / Slide 9

Subscripting Example 1
//For loop to fill & print a 10-int array
#include <iostream>
using namespace std;
int main ( ) {
int index, ar[10]; // array for 10 integers
// Read in 10 elements.
cout << "Enter 10 integers: ";
for(index = 0; index < 10; index ++)
cin >> ar[index];
cout << endl;
cout << "The integers are ";
for(index = 0; index < 10; index ++)
cout << ar[index] << " ";
cout << endl;
return 0;
}
COMP102 Prog. Fundamentals I: Arrays / Slide 10

Sorting with Arrays: Ex. 2


// Compare and sort three integers
void swap (int&, int&);
int main ( ) {
int ar[3]; // input integers
// Read in three elements.
cout << "Enter three integers: ";
cin >> ar[0] >> ar[1] >> ar[2];
if (ar[0] > ar[1]) swap (ar[0], ar[1]);
if (ar[1] > ar[2]) swap (ar[1], ar[2]);
if (ar[0] > ar[1]) swap (ar[0], ar[1]);
cout << "The sorted integers are " << ar[0]
<<", " << ar[1] << ", " << ar[2]
<< endl;
return 0;
}
COMP102 Prog. Fundamentals I: Arrays / Slide 11

Swapping Function: Ex. 2


// Function for swapping two integers
void swap (int& first, int& second) {
int temp;
temp = first;
first = second;
second = temp;
}
COMP102 Prog. Fundamentals I: Arrays / Slide 12

Array Element Manipulation Ex. 3


 Consider
int Ar[10], i = 7, j = 2, k = 4;
Ar[0] = 1;
Ar[i] = 5;
Ar[j] = Ar[i] + 3;
Ar[j+1] = Ar[i] + Ar[0];
Ar[Ar[j]] = 12;
cin >> Ar[k]; // where the next input value is 3

0 1 2 3 4 5 6 7 8 9
Ar 1 -- 8 6 3 -- -- 5 12 --
Ar[0] Ar[1] Ar[2] Ar[3] Ar[4] Ar[5] Ar[6] Ar[7] Ar[8]Ar[9]
COMP102 Prog. Fundamentals I: Arrays / Slide 13

Array Initialization Ex. 4


int Ar[10] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0};

0 1 2 3 4 5 6 7 8 9
Ar 9 8 7 6 5 4 3 2 1 0

Ar[3] = -1;

6 -1

0 1 2 3 4 5 6 7 8 9
Ar 9 8 7 -1 5 4 3 2 1 0
Initializing arrays with random
COMP102 Prog. Fundamentals I: Arrays / Slide 14

values
The following loop initializes the array myList with random
values between 0 and 99:

for (int i = 0; i < ARRAY_SIZE; i++)


{
myList[i] = rand() % 100;
}
COMP102 Prog. Fundamentals I: Arrays / Slide 15

Program with Arrays


int main()
{
int values[5]= {11,1,3,6,10};
for (int i = 1; i < 5; i++) 0 11
{ 1 1
values[i] = values[i] + values[i-1]; 2 3
}
3 6
values[0] = values[1] + values[4];
4 10
}
COMP102 Prog. Fundamentals I: Arrays / Slide 16

Printing arrays
To print an array, you have to print each element in the array
using a loop like the following:

for (int i = 0; i < ARRAY_SIZE; i++)


{
cout << myList[i] << " ";
}
COMP102 Prog. Fundamentals I: Arrays / Slide 17

Copying Arrays
Can you copy array using a syntax like this?
list = myList;

This is not allowed in C++. You have to copy individual


elements from one array to the other as follows:

for (int i = 0; i < ARRAY_SIZE; i++)


{
list[i] = myList[i];
}
COMP102 Prog. Fundamentals I: Arrays / Slide 18

Summing All Elements


Use a variable named total to store the sum. Initially total is
0. Add each element in the array to total using a loop like
this:

double total = 0;
for (int i = 0; i < ARRAY_SIZE; i++)
{
total += myList[i];
}
COMP102 Prog. Fundamentals I: Arrays / Slide 19

Finding the Largest Element


Use a variable named max to store the largest element.
Initially max is myList[0]. To find the largest element in the
array myList, compare each element in myList with max,
update max if the element is greater than max.

double max = myList[0];


for (int i = 1; i < ARRAY_SIZE; i++)
{
if (myList[i] > max) max = myList[i];
}
Finding the smallest index of the
COMP102 Prog. Fundamentals I: Arrays / Slide 20

largest element
double max = myList[0];
int indexOfMax = 0;
for (int i = 1; i < ARRAY_SIZE; i++)
{
if (myList[i] > max)
{
max = myList[i];
indexOfMax = i;
}
}
COMP102 Prog. Fundamentals I: Arrays / Slide 21

Shifting Elements
double temp = myList[0]; // Retain the first element
// Shift elements left
for (int i = 1; i < myList.length; i++)
{
myList[i - 1] = myList[i];
}
// Move the first element to fill in the last position
myList[myList.length - 1] = temp;
#include <iostream> // Random Shuffling
#include <cstdlib>
#include <ctime>
using namespace std;
const int ARRAY_SIZE = 10;
int main(){
int myList[ARRAY_SIZE]= {1,2,3,4,5,6,7,8,9,10};
srand(time(0));
for ( int i = 0; i < ARRAY_SIZE; i++)
{ // Generate an index randomly
int index = rand() % ARRAY_SIZE;
int temp = myList[i];
myList[i] = myList[index];
myList[index] = temp;
}
for ( int i = 0; i < ARRAY_SIZE; i++)
cout << myList[i] <<' ';
cout << endl;
return 0;}
#include <iostream> // Create 6 random numbers for Mark 6
#include <cstdlib>
#include <ctime>
using namespace std;
const int ARRAY_SIZE = 6;
int main(){
int used[50] ={0}; //indicate if a random number is used.
int Mark[6], temp;
srand(time(0));
int i = 0;
while (i < 6){
temp = rand()%49 + 1;
if (used[temp] == 0) { //temp is not used
Mark[i] = temp; i++;
used[temp] = 1;
}
for ( int i = 0; i< 6; i++)
cout << Mark[i] << endl;
return 0;
}
#include <iostream> //Print numbers in reversed order
#include <cstdlib>
#include <ctime>
#include <iomanip>
using namespace std;
int main(){
srand(time(0));
int numbers[500];
int num_num;

cout<< "How many numbers (up to 500)?";


cin >> num_num;

for ( int i= 0; i < num_num; i++)


numbers[i] = rand()%100;

cout << "\n Your numbers reversed are:\n";


for ( int j= num_num-1 ; j >= 0; j--)
cout << setw(3) << numbers[j];
cout << endl;
return 0;}
#include <iostream> //print histogram
#include <fstream>
#include <iomanip>
using namespace std;
int main(){
ifstream ins;
int count[26]={0};
char next;
ifstream input_stream;
char input_file_name[16]; // declare the input file names
cout << "Enter the input file name (max 15 characters):\n";
cin >> input_file_name;
ins.open(input_file_name); // open the file
ins >> next; // get the first char
while(!ins.eof()){ // loop to read each line
next = tolower(next);
if (isalpha(next))
count[ next - 'a']++;
ins >> next; }
ins.close();
for (char i = 'a'; i <='z'; i++) // print_histogram(count);
cout << i << ": " << count[i-'a'] << endl;
return 0;
}
void print_histogram( int list[]){
int max = list[0];
for (int i = 1; i < 26; i++){
if (max < list[i])
max = list[i];
}

double ratio= 70.0 /max ;

for ( i = 0; i < 26; i++){


cout << char ('a'+i) <<": “
<< setw(5) <<list[i] <<‘ ‘;
int count = list[i]* ratio;
for ( int j = 0; j < count; j++)
cout <<'*';
cout << endl;
}
cout << endl;
}

You might also like