CSEB114: PRINCIPLE OF PROGRAMMING Chapter 8: Arrays.

Slides:



Advertisements
Similar presentations
Introduction to C Programming
Advertisements

Chapter 7: Arrays In this chapter, you will learn about
C Language.
Programming and Data Structure
Kernighan/Ritchie: Kelley/Pohl:
POINTER Prepared by MMD, Edited by MSY1.  Basic concept of pointers  Pointer declaration  Pointer operator (& and *)  Parameter passing by reference.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Chapter 6 - Arrays Outline 6.1Introduction 6.2Arrays.
 2000 Prentice Hall, Inc. All rights reserved. Chapter 6 - Arrays Outline 6.1Introduction 6.2Arrays 6.3Declaring Arrays 6.4Examples Using Arrays 6.5Passing.
1 Chapter 9 Arrays and Pointers. 2  One-dimensional arrays  The Relationship between Arrays and Pointers  Pointer Arithmetic and Element Size  Passing.
1 Lecture 9  Arrays  Declaration  Initialization  Applications  Pointers  Declaration  The & and * operators  NULL pointer  Initialization  Readings:
Chapter 6 C Arrays Acknowledgment The notes are adapted from those provided by Deitel & Associates, Inc. and Pearson Education Inc. Arrays are data structures.
Arrays Data Structures - structured data are data organized to show the relationship among the individual elements. It usually requires a collecting mechanism.
Introduction to Programming with C++ Fourth Edition
Introduction of Arrays. Arrays Array form an important part of almost all programming language. It provides a powerful feature and can be used as such.
Chapter 8 Arrays and Strings
Arrays. Objectives Learn about arrays Explore how to declare and manipulate data into arrays Learn about “array index out of bounds” Become familiar with.
 2007 Pearson Education, Inc. All rights reserved C Arrays.
Introduction to C Programming CE Lecture 9 Data Structures Arrays.
CS1061 C Programmuing Lecture 12 Arrays A. O’Riordan, 2004.
21-2 Understand various methods of sorting. Use the qsort function to sort. Binary search Related Chapter: ABC 8.5.
Java Unit 9: Arrays Declaring and Processing Arrays.
Programming Languages -1 (Introduction to C) arrays Instructor: M.Fatih AMASYALI
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Chapter 6 - Arrays Outline 6.1Introduction 6.2Arrays.
 2006 Pearson Education, Inc. All rights reserved Arrays.
MAHENDRAN CHAPTER 6. Session Objectives Explain Type of Functions Discuss category of Functions Declaration & Prototypes Explain User Defined Functions.
Chapter 8 Arrays and Strings
Chapter 6 Arrays Associate Prof. Yuh-Shyan Chen Dept. of Computer Science and Information Engineering National Chung-Cheng University.
Introduction to Arrays in Java Corresponds with Chapter 6 of textbook.
EGR 2261 Unit 8 One-dimensional Arrays  Read Malik, pages in Chapter 8.  Homework #8 and Lab #8 due next week.  Quiz next week.
ARRAY Prepared by MMD, Edited by MSY1.  Introduction to arrays  Declaring arrays  Initializing arrays  Examples using arrays  Relationship with pointers.
ARRAYS 1 Week 2. Data Structures  Data structure  A particular way of storing and organising data in a computer so that it can be used efficiently 
Arrays Module 6. Objectives Nature and purpose of an array Using arrays in Java programs Methods with array parameter Methods that return an array Array.
1 © 2002, Cisco Systems, Inc. All rights reserved. Arrays Chapter 7.
C Lecture Notes 1 Arrays Lecture 6. C Lecture Notes 2 6.1Introduction Arrays –Structures of related data items –Static entity – same size throughout program.
Lecture 7 Introduction to Programming in C Arne Kutzner Hanyang University / Seoul Korea.
Arrays  Array is a collection of same type elements under the same variable identifier referenced by index number.  Arrays are widely used within programming.
Chapter 8: Arrays Introduction to arrays Declaring arrays Initializing arrays Examples using arrays Relationship with pointers Array passing to a function.
1 CHAPTER 5 POINTER. 2 Pointers  Basic concept of pointers  Pointer declaration  Pointer operator (& and *)  Parameter passing by reference  Dynamic.
19&20-2 Know how to declare pointer variables. Understand the & (address) and *(indirection) operators. Dynamic Memory Allocation Related Chapter: ABC.
1 Arrays and Vectors Chapter 7 Arrays and Vectors Chapter 7.
Week # 2: Arrays.  Data structure  A particular way of storing and organising data in a computer so that it can be used efficiently  Types of data.
Computer Programming Lecture 8 Arrays. 2 switch-statement Example (3) If use press left arrowIf use press right arrow If use press up arrow If use press.
CSEB 114: PRINCIPLE OF PROGRAMMING Chapter 7: Pointers.
 2007 Pearson Education, Inc. All rights reserved C Arrays.
CSEB 114: PRINCIPLE OF PROGRAMMING Chapter 7: Pointers.
 2008 Pearson Education, Inc. All rights reserved. 1 Arrays and Vectors.
UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Arrays.
Chapter 8 Arrays. A First Book of ANSI C, Fourth Edition2 Introduction Atomic variable: variable whose value cannot be further subdivided into a built-in.
CHAPTER 7: Arrays CSEB113 PRINCIPLES of PROGRAMMING CSEB134 PROGRAMMING I by Badariah Solemon 1BS (Feb 2012)
Prepared by MMD, Edited by MSY1 CHAPTER 4 ARRAY. Prepared by MMD, Edited by MSY2 Arrays  Introduction to arrays  Declaring arrays  Initializing arrays.
UNIT-4 1. Arrays: Definition and declaration, Initialization, Accessing elements of arrays, Storing values in arrays, Inter-function Communication: Passing.
JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN © 2008 Pearson Education, Inc., Upper.
Arrays Declaring arrays Passing arrays to functions Searching arrays with linear search Sorting arrays with insertion sort Multidimensional arrays Programming.
C++ Array 1. C++ provides a data structure, the array, which stores a fixed-size sequential collection of elements of the same type. An array is used.
SEQUENTIAL AND OBJECT ORIENTED PROGRAMMING Arrays.
Arrays Department of Computer Science. C provides a derived data type known as ARRAYS that is used when large amounts of data has to be processed. “ an.
1 Agenda Arrays: Definition Memory Examples Passing arrays to functions Multi dimensional arrays.
KUKUM-06/07 EKT120: Computer Programming 1 Week 6 Arrays-Part 1.
Windows Programming Lecture 03. Pointers and Arrays.
DYNAMIC MEMORY ALLOCATION. Disadvantages of ARRAYS MEMORY ALLOCATION OF ARRAY IS STATIC: Less resource utilization. For example: If the maximum elements.
Computer Programming BCT 1113
Hassan Khosravi / Geoffrey Tien
Numeric Arrays Numeric Arrays Chapter 4.
Chapter 6 - Arrays Outline 6.1 Introduction 6.2 Arrays
7 Arrays.
EKT150 : Computer Programming
Lecture 18 Arrays and Pointer Arithmetic
Review of Arrays and Pointers
Data Structures (CS212D) Week # 2: Arrays.
7 Arrays.
Presentation transcript:

CSEB114: PRINCIPLE OF PROGRAMMING Chapter 8: Arrays

Objectives  In this chapter, you will learn about  Introduction to Array  Array declaration  Array initialization  Assigning values to array elements  Reading values from array elements  Relationship with pointers  Passing array to function  2 Dimensional arrays  Simple Searching  Simple Sorting prepared by NI, edited by MAF

Introduction to Array  In C, a group of items of the same type can be set up using Array  An array is a group of consecutive memory locations related by the fact that they all have the same name and the same type.  The compiler must reserve storage (space) for each element/item of a declared array.  The size of an array is static (fixed) throughout program execution.  To refer to a particular location or element in the array, we specify the name of the array (index or subscript) and the position number of the particular element in the array. prepared by NI, edited by MAF

Let say we have an array called a a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] Name of the array The position number within the square brackets is formally called a subscript. A subscript can be an integer or an integer expression. For example if x = 1 and y = 2, then a[x+y] is equal to a[3]. Notice that the position starts from 0.

Array Declaration  Array declaration is made by specifying the data type, it’s name and the number of space (size) so that the computer may reserve the appropriate amount of memory.  General syntax: data_type array_name[size];  Examples:  int my_array[100];  char name[20];  double bigval[5*200];  int a[27], b[10], c[76]; prepared by NI, edited by MAF

Array Initialization  There are 2 ways to initialize an array: during compilation and during execution.  During compilation:  int arr[ ] = {1, 2, 3, 4, 5};  unsized array We can define how many elements that we want since the array size is not given.  int arr[3] = {90, 21, 22}; We can define only 3 elements since the array size is already given.  int arr[5] = {2,4} Initialize the first two elements to the value of 2 and 4 respectively, while the other elements are initialized to zero.  int arr[5] = {0} Initialize all array elements to zero. prepared by NI, edited by MAF

Array Initialization cont…  During execution:  Using loop to initialize all elements to zero int arr[3], index; for (index = 0; index < 3; index++) arr[index] = 0;  Using loop and asking the user to specify the value for each element. int arr[3], index; for (index = 0; index < 3; index++) { printf (“arr[%d]:”,index); scanf(“%d”,&arr[index]); } prepared by NI, edited by MAF

Assigning value to array element  We can assign a value to a specific array element by using its index number.  Example: let’s say we have an array that represent the number of inhabitant in 5 unit apartments. int apartment[5]={3,2,6,4,5};  The above initialization indicates that there are 3 people living in apartment 0, 2 people living in apartment 1 and so on.  Let say that we have a new born in apartment 3, so we need to change the number of inhabitant living in apartment three. apartment[3] = apartment[3] + 1;  Now, we have the following values in our array:  3,2,6,5,5 prepared by NI, edited by MAF

Reading values from array elements  We can read a value from a specific array element by referring to the index.  For example, let’s say we want to know how many people leaving in apartment 3, we could simple do this: int apartment[5] = {3,2,6,4,5}; int no_of_people; no_of_people = apartment[3]; printf(“Apartment 3 has %d people”, no_of_people);  The above C code will produce the following output: Apartment 3 has 4 people. Hint!!! Remember that array index starts at 0 prepared by NI, edited by MAF

Example 1: finding total inhabitants #include #define size 5 void main(void) { int apartment[size] = {3,2,6,4,5}; int index, total = 0; for (index = 0; index < size; index++) { total = total + apartment[index]; } printf("There are total of %d inhabitants",total); } prepared by NI, edited by MAF Output: There are total of 20 inhabitants

Example 2: list down number of inhabitants in each apartment #include int main(void) { int apartment[5] = {3,2,6,4,5}; int index, total = 0; printf("%-7s %-15s\n","Apt No", "No of people"); for (index = 0; index < 5; index++) { printf("%4d %10d\n",index, apartment[index]); } return 0; } prepared by NI, edited by MAF

Example 2 output Apt NoNo of people prepared by NI, edited by MAF

Relationship with pointers  The name of an array is actually a pointer to the first element in the array.  Therefore, if we have: int test[3] = {9, 10, 11}; printf(“%d”, *test); The output would be: 9  There are a few ways to traverse an array: prepared by NI, edited by MAF int test[3] = {9, 10, 11}, k; for (k = 0; k < 3; k++) printf(“%d\n”, test[k]); Using index int test[3] = {9, 10, 11}, k; int *ptr = test; for (k = 0; k < 3; k++, ptr++) printf(“%d\n”, *ptr); Using pointers

Passing Array to a Function  When we pass an array to a function, we are actually passing the pointer to the first element in the array to the function. Therefore, any changes to the array inside the function will also change the actual array inside the calling function.  When we want to pass an array to a function, we need to know these 3 things.  How to write the function prototype?  How to do function call?  How does the function header would look like? prepared by NI, edited by MAF

Passing Array to a Function  Assume that we have the following array declaration. flaot marks[10] = {0.0};  Say for example we want to write a function, called get_marks, which will read marks from the user and store the marks inside the array. prepared by NI, edited by MAF

Passing Array to a Function  Function prototype: /* data type with square bracket */ void get_marks(float [ ]); void get_marks(float *); /*treating array as pointer */  Function call: get_marks(marks); /* just pass the array name */  Function header: void get_marks(float marks[ ]) void get_marks(float *marks) /*treating array as pointers */ prepared by NI, edited by MAF

Example 1: parameter received as an array #include #define size 10 void get_marks(float [ ]); float calc_average(float [ ]); int main(void) { float marks[size] = {0.0}; /*initializing the array get_marks(marks); /* function call */ printf(“Average for marks given is %f”, calc_average(marks)); return 0; } prepared by NI, edited by MAF

Example 1: parameter received as an array void get_marks(float marks[ ]) { int i; for (i = 0; i < size; i++) { printf("Marks student %d:",i + 1); scanf("%f",&marks[i]); } prepared by NI, edited by MAF float calc_average(float marks[ ]) { float total = 0.0; int i; for (i = 0; i < size; i++) { total = total + marks[i]; } return (total / size); }

Example 2: parameter received as pointers  A function could also receive/treat array parameter as pointer. #include #define size 10 void get_marks(float *); float calc_average(float *); void main(void) { float marks[size] = {0.0}; get_marks(marks); printf("Average for marks given is %f\n", calc_average(marks)); } prepared by NI, edited by MAF Observe the function prototypes

Example 2: parameter received as pointers void get_marks(float *marks) { int i; for (i = 0; i < size; i++, marks++) { printf("Marks student %d: ", i + 1); scanf("%f", marks); } prepared by NI, edited by MAF float calculate_average(float *marks) { float total = 0.0; int i; for (i = 0; i < size; i++, marks++) { total = total + *marks; } return (total / size); } Manipulating the memory address Pointer variable

2-Dimensional Array  It is possible to create an array which has more than one dimension.  For example:  2D array: int array[4][2];  3D array: int array[4][2][10];  Graphical representation of a 2D array: prepared by NI, edited by MAF int myarray[4][2] = {1, 2, 3, 4, 5, 6, 7, 8}; This array has 4 rows and 2 columns. Four rows Col 1 Col2

2-Dimensional Array cont…  Variable initialization can also be done this way: int myarray[4][2] = {{1, 2}, {3, 4}, {5, 6}, {7, 8}};  This method is less confusing since we can see the rows and columns division more clearly.  To initialize a 2D array during execution, we need to use a nested for loop: for (row = 0; row < 4; row++) { for (column = 0; column < 2; column++) myarray[row][column] = 0; }  Although it is possible to create a multi-dimensional array, arrays above 2-dimensions are rarely used. prepared by NI, edited by MAF

Passing a 2D array to a function  When a 2D (or higher dimensional) array is passed to a function, the size of the second (or subsequent) subscript needs to be specified.  For example, if we have: int twoD[4][5];  Then the function header which would take twoD as an argument should be declared like this: void Process2D(int twoD[ ][5])  An array is stored consecutively in memory regardless of the number of dimensions. Therefore, specifying the subscripts in the function parameter will help the compiler to know the boundary of the different dimensions. prepared by NI, edited by MAF

Simple Searching  Searching is the process of determining whether an array contains a value that matches a certain key value/search key.  The process of finding a particular element of an array is called searching.  Same as in sort, there are more than one algorithms that can be used to do a search.  The most commonly used searching techniques are linear search and binary search.  Here, we will discuss to do searching by using linear search on an array. prepared by NI, edited by MAF

Simple Searching cont…  Search key is a data element of the same type as the list elements.  If search key = list element value, the search is said to be successful  Otherwise, it is unsuccessful.  Linear search is a simple searching algorithm where:  data are stored in an array  a search key is compared with each elements in the array starting from the first element prepared by NI, edited by MAF

Example void main(void) { int list[ ] = {34, 53, 21, 23, 4}; int i, search_key, found = 0; printf(“Enter the number that you want to find: ”); scanf(“%d”, &search_key); for (i = 0; i < 5; i++) { if (list[i] = = search_key) { found = 1; printf(“The number %d is found at index %d\n”, search_key, i); } if (found = = 0) printf(“The number %d cannot be found in the list\n”,search_key); } prepared by NI, edited by MAF Sample Output: Enter the number that you want to find: 53 The number 53 is found at index 1 Press any key to continue

Sorting  Sorting is the process of placing data into a particular order such as ascending or descending.  The following example shows the C code for sorting unsorted list to a list sorted in ascending order.  Explanation for the working program and the concept behind it will be done during lecture hour… (so please attend the class!!!!). prepared by NI, edited by MAF

Example using Simple Sort #include #define size 10 void sort(int [ ]); void main(void) { int index, list[size] = {0}; for (index = 0; index < size; index++) /*array initialisation by user */ { printf("list[%d]:",index); scanf("%d",&list[index]); } sort(list); /* calling function to sort the array printf("\nList sorted in ascending order:\n\n"); for (index = 0; index < size; index++) { printf("%d\t",list[index]); /* printing the array element */ } prepared by NI, edited by MAF

Sorting example cont… void sort(int list[ ]) { int pivot, checker, temp; for (pivot = 0; pivot < (size - 1); pivot++) { for (checker = (pivot + 1); checker < size; checker++) { if (list[checker] < list[pivot]) { /* swap the elements */ temp = list[pivot] ; list[pivot] = list[checker]; list[checker] = temp; } prepared by NI, edited by MAF

Summary  In this chapter, we have looked at:  Array declaration and initialization  Reading and writing from/to array elements  Passing array to function  2 dimensional array  Simple search  Array sorting prepared by NI, edited by MAF