0% found this document useful (0 votes)
2 views25 pages

Array Functions for Software Engineering

The document discusses the concept of passing arrays to functions in programming, emphasizing that arrays are passed by reference and the importance of including the array's dimension as a parameter. It provides examples of functions that find the smallest and largest values in an array, as well as functions for adding elements of arrays and handling two-dimensional arrays. Additionally, it covers best practices such as using 'const' for arrays that should not be modified within a function.

Uploaded by

zaidnazimmughal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views25 pages

Array Functions for Software Engineering

The document discusses the concept of passing arrays to functions in programming, emphasizing that arrays are passed by reference and the importance of including the array's dimension as a parameter. It provides examples of functions that find the smallest and largest values in an array, as well as functions for adding elements of arrays and handling two-dimensional arrays. Additionally, it covers best practices such as using 'const' for arrays that should not be modified within a function.

Uploaded by

zaidnazimmughal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

Programming

Passing
Arrays to
Functions
COMP102 Prog. Fundamentals I: Passing Arrays to Function / Slide 2

Passing Arrays as Parameters


● Arrays are always passed by reference.
● The “[ ]” in the formal parameter
specification indicates that the variable is
an array.
● It is a good practice to pass the dimension
of the array as another parameter.
● If the function must not change any
element of the array then const should be
used in the formal parameter specification
of that array.
COMP102 Prog. Fundamentals I: Passing Arrays to Function / Slide 3

Smallest Value
● Problem
■ Find the smallest value in a list of integers
● Input
■A list of integers and a value indicating the
number of integers
● Output
■ Smallest value in the list
● Note
■ List remains unchanged after finding the
smallest value!
COMP102 Prog. Fundamentals I: Passing Arrays to Function / Slide 4

Preliminary Design
● Realizations
■ When looking for value with distinguishing
characteristics, need a way of remembering best
candidate found so far
■ Best written as a function - likely to be used often
● Design
■ Search array looking for smallest value
– Use a loop to consider each element in turn
– If current element is smallest so far, then update smallest
value so far candidate
■ When done examining all of the elements, the smallest
value seen so far is the smallest value
COMP102 Prog. Fundamentals I: Passing Arrays to Function / Slide 5

Necessary Information

● Information to be maintained
■ Array with values to be inspected for smallest
value
■ Number of values in array
■ Index of current element being considered
■ Smallest value so far
COMP102 Prog. Fundamentals I: Passing Arrays to Function / Slide 6

A More Detailed Design


● Solution:
■ Function that takes two parameters: an
integer array and the array size; returns
smallest value
■ Initialize smallest value to first element
■ For each of the other elements in the array
– If it is smaller than the smallest value so far,
update the value of the smallest value so far to
current element
■ Quit at end of array and return smallest value
seen as value of the function
COMP102 Prog. Fundamentals I: Passing Arrays to Function / Slide 7

Passing An Array Example 3


Notice empty brackets

int ListMinimum(const int Ar[], int asize) {


int SmallestValueSoFar = Ar[0];
for (int i = 1; i < asize; ++i) { Could we just
assign a 0
if (Ar[i] < SmallestValueSoFar ) {
and have it
SmallestValueSoFar = Ar[i];
work?
}
}
return SmallestValueSoFar ;
}
COMP102 Prog. Fundamentals I: Passing Arrays to Function / Slide 8

Using ListMinimum

● What happens with the following?


int Number[6] ={3, 88, -7, 9, 1, 24};
cout << ListMinimum(Number, 6) << endl;

int List[3];
List[0] = 9; List[1] = 12; List[2] = 45;
cout << ListMinimum(List, 3) << endl;
COMP102 Prog. Fundamentals I: Passing Arrays to Function / Slide 9

Some Useful Functions


void DisplayList(const int Ar[], int asize) {
for (int index = 0; index < asize; ++index) {
cout << Ar[index] << " ";
}
cout << endl;
}
void GetList(int Ar[], int size){
for (int index = 0; index < Size; index++) {
cin >> Ar[index];
}
}
COMP102 Prog. Fundamentals I: Passing Arrays to Function / Slide 10

Useful Functions Being Used


const int MaxSize = 25;
int Values[MaxSize];

GetList(Values,MaxSize );
DisplayList(Values, MaxSize);
COMP102 Prog. Fundamentals I: Passing Arrays to Function / Slide 11

Finding the Maximum element

Entire array is passed by reference through address of the first


element and dimension of the array.
// Find the largest value in an array
// input: n - number of elements to check
// a[ ] - array of elements
// output:index to the largest element
#include <iostream.h>
int max_element(int size, const int a[]) {
int max_index = 0;

for (int i=1; i<size; i++)


if (a[i] > a[max_index])
max_index = i;
return max_index;
} // end max_element;
COMP102 Prog. Fundamentals I: Passing Arrays to Function / Slide 12

Finding the Maximum element

int main() {
int A[10] = {9,8,7,6,5,4,10,2,1,0};
cout << “The maximum element of this array is: ”
<< A[max_element(10,A)] << endl;
return 0;
}
//Example 1:passing array elements to a function
#include <iostream>
using namespace std;
void print_square (int);
const int ARRAY_SIZE = 5;
int main(){
int index;
int base[ARRAY_SIZE] = {3, 7, 2, 4, 5};

for(index = 0; index < ARRAY_SIZE; index++)


print_square(base[index]);

cout << endl;


return 0;
}
void print_square(int number) {
cout << " " << number * number;
}
#include <iostream> //Example 2: passing a whole array
using namespace std;
double average (int, const int[]);
int main(){
const int array_size = 5;
double ave;
int base[array_size] = {3, 7, 2, 4, 5};

ave = average(array_size, base);


cout << "The average of the numbers ";
for (int index = 0; index < array_size; index++){
cout << base[index];
if ( index < array_size - 1)
cout << ", ";
}
cout << " is " << ave << endl;
return 0;
}
//Example 2: passing a whole array

double average( int size, const int inp_list[]) {


double sum = 0.0;

for ( int index = 0; index < size; index++)


sum += inp_list[index];

return sum/size;
}
COMP102 Prog. Fundamentals I: Passing Arrays to Function / Slide 16

Example 5
// Add a[i] and b[i] and store the sum in c[i]
void add_array(int size, // in: array size
double a[], // in: first array
double b[], // in: second array
double c[] ) // out: result array
// array elements with subscripts ranging from
// 0 to size-1 are added element by element
// Pre: a[i] and b[i] (0<=i<=size-1) are defined
// Post: c[i] = a[i] + b[i] (0<=i<=size-1)

{ int i;
// Add a[i] and b[i] and store result in c[i]
for (i=0; i < size; i++)
c[i] = a[i] + b[i];
}
COMP102 Prog. Fundamentals I: Passing Arrays to Function / Slide 17

Example 5
int main() {
const int size = 5;
double x[size] = {1.8, 2.2, 3.4, 5.1, 6.7},
y[size] = {2.0, 4.5, 1.3, 4.0, 5.5},
z[size];
int ind;

add_array(size , x, y, z);
cout << "Content of array z is: \n";
for (i = 0; i < size; i++)
cout << "z[" << i << "] is "
<< z[i] << endl;

return 0;
}
COMP102 Prog. Fundamentals I: Passing Arrays to Function / Slide 18

add_array (5, x, y, z );
COMP102 Prog. Fundamentals I: Passing Arrays to Function / Slide 19

Passing Two-Dimensional Arrays to


Functions

You can pass a two-dimensional array to a


function; however, C++ requires that the
column size to be specified in the function
declaration. Example 6 gives an example
with a function that sum up two two-
dimensional array into a third one.
COMP102 Prog. Fundamentals I: Passing Arrays to Function / Slide 20

Example 6
// Sum up two 2-dimensional arrays into a third one
#include <iostream>
using namespace std;
const int max_cols = 5;
// c[i][j] = a[i][j] + b[i][j]
void add_array(double a[][max_cols],
double b[][max_cols],
double c[][max_cols],
int rows)
{ int i, j;
for (i=0; i < rows; i++)
for (j=0; j < max_cols; j++)
c[i][j] = a[i][j] + b[i][j];
}
int main() {
const int max_rows = 2;
double a[max_rows][max_cols] = {{1.8, 2.2, 3.4, 5.1, 6.7},
{1.0, 2.0, 3.0, 5.0, 6.0}},
b[max_rows][max_cols] = {{0.2, -0.2, -1.4, -3.1, -4.7},
{1.0, 0.0, -1.0, -3.0, -4.0}},
c[max_rows][max_cols];
int i, j;
add_array(a, b, c, max_rows);
// fix how decimals are shown
cout.setf(ios::fixed); // use decimal notation
cout.setf(ios::showpoint); // show decimals
cout.precision(1); // one decimal place
cout << "Content of array c is: \n";
for (i = 0; i < max_rows; i++){
for (j=0; j < max_cols; j++)
cout << c[i][j] << ", ";
cout << endl;
}
return 0;
}
COMP102 Prog. Fundamentals I: Passing Arrays to Function / Slide 22

Pass-by-Reference
void m(int, int []);
int main()
{
int x = 1; // x represents an int value
int y[10]; // y represents an array of int values
y[0] = 1; // Initialize y[0]

m(x, y); // Invoke m with arguments x and y

cout << "x is " << x << endl;


cout << "y[0] is " << y[0] << endl;
return 0;
}
void m(int number, int numbers[])
{
number = 1001; // Assign a new value to number
numbers[0] = 5555; // Assign a new value to numbers[0]
}
COMP102 Prog. Fundamentals I: Passing Arrays to Function / Slide 23

Reverse function

void reverse(const int list[], int newList[], int size)


{
for (int i = 0, j = size - 1; i < size; i++, j--)
{
newList[j] = list[i];
}
}
int main(){
int list1[5] = {1, 2 , 4, 5, 6};
int list2[5];
reverse(list1, list2 ,5); list 1 2 3 4 5 6
return 0;
}
newList 6 5 4 3 2 1
COMP102
void Prog. Fundamentals
add_array( double a[], //I: in:
Passing Arrays to Function / Slide 24
first array
int size_a,
Reverse function
double b[], // in: second array
int size_b,
double c[],
int size_c) // out: result array
//c[i] = a[i] + b[i]
{
for (int i = 0; i < size_c; i++)
c[i] = 0;
for (int i=0; i < size_a && i <size_c; i++)
c[i] += a[i];
for (int i=0; i < size_b && i <size_c; i++)
c[i] += b[i];
}
int main()
{
double a[5] = {1,2,3,4,5};
double b[3] = {100,200,300};
double c[10];
list 1 2 3 4 5 6
add_array(a,5,b,3,c,10);
for (int i = 0; i < 10; i++)

return 0;
newList
cout << c[i] << endl;
6 5 4 3 2 1
}
COMP102 Prog. Fundamentals I: Passing Arrays to Function / Slide 25

Problem: Counting Occurrence of


Each Letter
● Generate 100 lowercase
letters randomly and assign to
an array of characters.
● Count the occurrence of each
letter in the array.

● //CountLettersInArray.cpp

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy