Data structure and
programming
Topic 8- Array
int marks[5]; char animals[4][20];
1
Outline
❑ An overview of the lessons
▪Introduction
▪ Problem when not using array
▪Array
▪ What is array?
▪ How to use array?
▪ More on array
2
Introduction
❑ Problem
▪ Problem #1: Suppose we want to get 100 students’ names then display theirs
names in a list. Will you use 100 variables? Disadvantages:
Too many creation of variables?
Var name1, name2, ..., name100 : Sequence of characters What if we have more than 100
Begin variables?
read(name1, name2, ..., name100)
End
▪ Problem #2: Suppose we want to get 100 subjects’ scores of a students then
do summation of those score.
Var score1, score2, …, score100, sum : float
Will we need 100 Begin
variables to store read(score1, score2, ..., score100)
those scores? sum score 1+ score2 + … + score100
3
End
Array
❑ What is an array?
▪ Array is a kind of data structure that stores many variables (elements) as a
single special variable.
▪ Each variable in an array is called an array element and they have the same
variable type
▪ You could have an array of integers or an array of characters or an array of
anything that has a defined data type.
Array
▪ An overview of an array:
element
Index or position
4
Array
❑ Declaring (creating) an array
▪ To declare an array, we have to choose
▪ Type of element in the array
▪ Number of elements in the array
▪ Syntax
Var identifier[number of elements] : Type of element in array
Suppose that we add values (10, 20, .., 100) to the array.
▪ Examples: Creating array The array now look like this:
Var num[20] : Integer
Var scores[10] : Float
Var name[50] : Array/sequence of characters
Var s[5][100] : Array of string (5 elements) 5
Array
❑ Index or position
▪ In array, the value of index is
▪ Start from 0 (some language may start with index 1)
▪ E.g: In C language, index starts from 0 but in Matlab index starts from 1
▪ Integer number
▪ Last value of index is equal to number of elements in array minus 1
(when its index starts with 0)
▪ Index in the bracket can either be a direct integer value or a variable or an
expression Var n : Integer
Var score[10] : Integer
Var score[10] : Integer
Begin
Begin
n 0
score[0] 70
score[n] 70
score[1] 80
score[n+1] 80
End
End
6
Array
❑ Access/use to an array
▪ To display array’s elements, we need to access to each element
▪ To access a specific element in an array, use arrayName[index]
▪ Ex: Suppose the array named ele
Var i : Integer
▪ Then to access: ele[0], ele[1], …., ele[9] Var num[10] : Integer
Begin
▪ Examples for (i0; i<10; ii+1) do
read(num[i])
end for
Var scores[10] : Float
Begin for (i0; i<10; ii+1) do
read(scores[0]) write(num[i])
read(scores[1]) end for
write(“Score student 1: ”, scores[0]) End
write(“Score student 2: ”, scores[1])
End
What does this algorithm do?
7
Array
❑ Access/use to an array
▪ To access a specific element in an array, use arrayName[index]
▪ Suppose we have an array named ele Var i : Integer
▪ Usage: ele[0], ele[1], …., ele[9] Var gender[10] : Sequence of character
Var m, n: Integer
Begin
What does these algorithms do? for (i0; i<10; ii+1) do
Then sum all those numbers together.
Finally, display display #male, #female
read(gender[i])
Then count all males and females
Var i : Integer
end for
Get 10 numbers from the user.
Var num[10] : Integer
m0
Get 10 gender from the user.
Var s: Integer
Begin n0
Finally, display the result.
for (i0; i<10; ii+1) do for (i0; i<10; ii+1) do
read(num[i]) if (gender[i]==‘M’) then
end for m=m+1
s0 else if (gender[i]==‘F’) then
for (i0; i<10; ii+1) do n=n+1
s s + num[i] end if
end for end for
write(s)
End write(m, n) 8
End
•
•
•
•
•
•
Array
❑ Using array to solve the previous problems?
▪ Solution for Problem #1:
▪ Use an array with the size of 100 and its type is a string (sequence of characters)
Var names[100][20] : Sequence of characters Var scores[100] : float
Begin Var sum : float
for(i0; i<=99; i++) do Begin
read(names[i]) sum 0
for(i0; i<=99; i++) do
end for
read(scores[i])
End end for
for(i0; i<=99; i++) do
▪ Solution for Problem #2: sum sum + scores[i]
end for
▪ Use an array with the size of 100 and its type is a float write(“Total scores: ”, sum)
▪ Combine those variables into one by declaring End
an array then do loop to find summation. 9
Example 1
10
Example 2: Array example with initialization values
11
Assignment Deadline: 1 week
❑ Practice exercises
1- Write C programs for the problems below:
a. Declare and store an array with 5 English’s vowels
b. Declare and store an array with English’s alphabet A-Z
c. Declare and store an array with even integer numbers 2, 4, … 100
d. Declare and store an array of 10 user names. Ask the user to input
all those 10 names. Then display their names on the screen
12
Assignment Deadline: 1 week
2- Write a C program to ask a user for 20 scores then
▪ Find the average of those scores
▪ Show the scores that are greater than the average
▪ Count number of students who got score more than average
Input number #1: 10
Input number #2: 20
…..
Input number #20: 200
=>OUTPUT: Average is: 105. Scores that are more than average are: 110, 120,
130,140,150,160,170,180,190,200 Coding hour
13
Assignment Deadline: 1 week
3-Write a program in C get 10 numbers input by a user and store in an array.
Then find the sum all elements in the array. Display the result.
4-The same to exercise #1. We also would like to count a total number of
duplicate elements and non-duplicate elements in the array.
5-The same to exercise #1. In addition, we also want to print all unique
elements in an array
14