Download presentation
Presentation is loading. Please wait.
Published byKellie McDaniel Modified over 8 years ago
1
KUKUM-06/07 EKT120: Computer Programming 1 Week 6 Arrays-Part 1
2
KUKUM-06/07 EKT120: Computer Programming 2 Introduction Arrays of Data Declaration of Array Array Initialization Operations on Array Multidimensional Arrays Index out of bound Introduction Arrays of Data Declaration of Array Array Initialization Operations on Array Multidimensional Arrays Index out of bound
3
KUKUM-06/07 EKT120: Computer Programming 3IntroductionIntroduction The variables that we have used so far have all common characteristics: Each variable could only store a single value at a time. Example: int count, length, baki; double average, jumlah; char selection; An array is a collection of a fixed number of components wherein all of the components are of the same type Variable declaration with various data types
4
KUKUM-06/07 EKT120: Computer Programming 4 IntroductionIntroduction Example: Let us work with a list of five integers: 5,10, 15, 20, and 25. Previous Method Array int num1, num2, num3, num4, num5; int num[5]; Data_type Array_name index
5
KUKUM-06/07 EKT120: Computer Programming 5IntroductionIntroduction5 10 15 20 25 num num[0] num[1] num[2] num[3] num[4] 5 components/elements in this array. Elements are referred to index. Element num[2] has index 2 and value 15. Example int num[5];
6
KUKUM-06/07 EKT120: Computer Programming 6 Arrays of Data Engineering applications usually involves large chunk of data (of common type) Arrays provide easier and more efficient concept for data storage / management Arrays are usually processed through loops (processing is very common) Arrays are accessed by indicating an address or index
7
KUKUM-06/07 EKT120: Computer Programming 7 Arrays in C Arrays can assume any type (including the primitive data types) int, char, string, double, float, etc. Like any other instances, arrays must be declared before use.
8
KUKUM-06/07 EKT120: Computer Programming 8 Declaration of Array Format: data_type array_name[int value]; Example: –int list[5]; –const int Max_List_Size = 10; int hours[Max_List_Size]; –const int SIZE = 100; double amount[SIZE]; –const int Max_List_Size = 6; char alphas[Max_List_Size]; –#define N 10 double b[N];
9
KUKUM-06/07 EKT120: Computer Programming 9 Multiple Instances vs. Array // multiple instance int value1, value2, value3; printf (“Enter first value: “); scanf (“%d”, &value1); printf(“Enter second value: “); scanf(“%d”, &value2); printf (“Enter third value: “); scanf(“%d”, &value3); // process or display // array int valueArray[3]; for (int count=0;count<3;count++) { printf (“Enter value #”); printf (“%d : ”, count+1); scanf (“%d”, &valueArray[count]); } // process or display
10
KUKUM-06/07 EKT120: Computer Programming 10 Arrays Arithmetic Operations on arrays are similar to that on basic variables. sum = num[0] + num[1] + num[2] + num[3]; kali = 3 * num[1]; baki= num[3] % 3; Jumlah= num[1] * num[2];
11
KUKUM-06/07 EKT120: Computer Programming 11 Arrays - Memory Allocation Arrays are allocated bulk memory Single reference used for multiple locations Items are accessed based on index (address) with reference to first item
12
KUKUM-06/07 EKT120: Computer Programming 12 Array Initialization Arrays can be initialized directly, but assignments are done using loops Like any other simple variable, arrays can also be initialized while they are being declared. double sales[5] = {12.25, 32.50, 16.90, 23, 45.68}; sales[0]=12.25, sales[1]= 32.50, sales[2]=16.90, sales[3]= 23.00, and sales[4]=45.68;
13
KUKUM-06/07 EKT120: Computer Programming 13 Array Initialization (cont…) Initializers int n[ 5 ] = { 1, 2, 3, 4, 5 }; –If not enough initializers, rightmost elements become 0 int n[ 5 ] = { 0 } All elements 0 –If too many a syntax error is produced syntax error –C arrays have no bounds checking If size omitted, initializers determine it int n[ ] = { 1, 2, 3, 4, 5 }; –5 initializers, therefore 5 element array
14
KUKUM-06/07 EKT120: Computer Programming 14 Sample Program #include #include int main() { int a[3] = {11,22}, b[ ] ={44, 55, 66},i; double x[2],y[10]; printf("a[0]=%2d, a[1]=%2d, a[2]=%2d \n" "b[0]=%2d, b[1]=%2d, b[2]=%2d \n\n", "b[0]=%2d, b[1]=%2d, b[2]=%2d \n\n",a[0],a[1],a[2],b[0],b[1],b[2]); printf("Please enter two real numbers\n"); scanf("%lf %lf",&x[0], &x[1]); printf("x[0] = %.1lf x[1] = %.1lf\n\n", x[0], x[1]); for (i=0;i<10;i++) { y[i] = i*100.0; printf("y[%1d]=%.2lf\n", i, y[i] ); } return 0; return 0;} Using a loop to fill all the elements of the y[] array. Initializes the first 2 elements of the a[]array. All the other elements are then automatically set to zero Because no array size is given (the brackets are empty) and three values are given in braces, the array is automatically declared to have a size of 3 with the value shown being the initial element values.
15
KUKUM-06/07 EKT120: Computer Programming 15 Sample Program (cont…) Output: a[0]=11, a[1]=22, a[2]= 0 b[0]=44, b[1]=55, b[2]=66 Please enter two real numbers 77.0 88.0 x[0] = 77.0 x[1] = 88.0 y[0]=0.00y[1]=100.00y[2]=200.00y[3]=300.00y[4]=400.00y[5]=500.00y[6]=600.00y[7]=700.00y[8]=800.00y[9]=900.00
16
KUKUM-06/07 EKT120: Computer Programming 16 Array Initialization During Declaration When initializing arrays while declaring them, it is not necessary to specify the size of the array. The size of the array is determined by the number of initial values in the braces. double sales[] = {12.25, 32.50, 16.90, 23, 45.68};
17
KUKUM-06/07 EKT120: Computer Programming 17 A simple example Write a program that:- Declares and initializes an array y. Uses a for loop with index i to access the successive elements of y. For each loop iteration, the value accessed id added to the variable total which is finally displayed. Note that the loop index i starts from 0 to 4 (not from 1 to 5). The array size n is declared in the define statement.
18
KUKUM-06/07 EKT120: Computer Programming 18 A simple example (cont..) #include<stdio.h> #define n 5//define number of n in the array void main() { int i, total = 0;//variable declaration int y[n]={9,6,20,5,12}; // array initialization for (i=0;i<n;i++)// for loop total = total + y[i]; printf ("\nTotal = %d\n“, total); }
19
KUKUM-06/07 EKT120: Computer Programming 19 Explanation The defined constants, #define is used to ease any future amendments of the codes, for instance, if the array is to be widen to an n of 10 instead of 5, it would be adequate by modifying the line: #define n 5 #define n 10 …………………with no need to make any other changes to the program, thus making the life of programmer easier…………………. The defined constants, #define is used to ease any future amendments of the codes, for instance, if the array is to be widen to an n of 10 instead of 5, it would be adequate by modifying the line: #define n 5 #define n 10 …………………with no need to make any other changes to the program, thus making the life of programmer easier………………….
20
KUKUM-06/07 EKT120: Computer Programming 20 Operations on Array Reading data in an array for (index = 0; index < 10; index++) scanf (“%d”, &sale[index]); Printing an array for (index = 0; index < 10; index++) printf (“%d ”, sale[index]);
21
KUKUM-06/07 EKT120: Computer Programming 21 Parallel Arrays Two (or more) Arrays are called parallel if their corresponding components hold related information. int studentId[50]; char courseGrade[50];
22
KUKUM-06/07 EKT120: Computer Programming 22 Multi-Dimensional Arrays Arrays can have multiple dimensions Most used is the 2-dimensional array (for matrix implementation) Actual implementation is a single array (segmented) Nested loop structure usually used to access items
23
KUKUM-06/07 EKT120: Computer Programming 23 2-Dimensional Array (Example)
24
KUKUM-06/07 EKT120: Computer Programming 24 Multi-Dimensional Arrays(cont..) A collection of the same type of data stored in contiguous and increasing memory locations. Declaration of multi-dimensional array: int b[2][3] = {51, 52, 53, 54, 55, 56}; int b[2][3] = {51, 52, 53, 54, 55, 56}; array_type array_nameArray dimension = 2 two rows three columnsfirst row initial values second row initial values
25
KUKUM-06/07 EKT120: Computer Programming 25 Multi-Dimensional Arrays(cont..) Multi-dimensional array can be initialized directly in the declaration statement. Example: int b[2][3] = {51, 52, 53, 54, 55, 56}; which initializes the elements to be b[0][0] = 51 b[0][1] = 52 b[0][2] = 53 b[1][0] = 54 b[1][1] = 55 b[1][2] = 56 Note that C begins its subscripts at 0. The rightmost subscript is incremented first.
26
KUKUM-06/07 EKT120: Computer Programming 26 Notes on Arrays Arrays enables better and easier data management system Closely related to loops Indexing is zero-based (0 to n-1 for an array with n locations) Multi-dimensional arrays requires nested loop structure (e.g. 2-dimensional array)
27
KUKUM-06/07 EKT120: Computer Programming 27 Multi-Dimensional Arrays(cont..) Also can use braces { } to separate row in 2-dimensional arrays. int c [4][3] = {{1, 2, 3}, {4, 5, 6}, {4, 5, 6}, {7, 8, 9}, {7, 8, 9}, {10,11,12}}; {10,11,12}}; Initializes c[0][2], c[2][1] and c[2][2] to be zero int c [4][3] = {{1, 2}, {4, 5, 6}, {4, 5, 6}, {7}, {7}, {10,11,12}}; {10,11,12}}; Implicitly declares the number of rows to be 4 int c [ ][3] = {{1, 2, 3}, {4, 5, 6}, {4, 5, 6}, {7, 8, 9}, {7, 8, 9}, {10,11,12}}; {10,11,12}}; 4 rows 3 columns rows columns
28
KUKUM-06/07 EKT120: Computer Programming 28 Multi-Dimensional Arrays(cont..) Initializes c[0][2], c[2][1] and c[2][2] to be zero int c [4][3] = {{1, 2, 0}, {4, 5, 6}, {4, 5, 6}, {7, 0, 0}, {7, 0, 0}, {10,11,12}}; {10,11,12}}; Implicitly declares the number of rows to be 4 int c [ ][3] = {{1, 2, 3}, {4, 5, 6}, {4, 5, 6}, {7, 8, 9}, {7, 8, 9}, {10,11,12}}; {10,11,12}}; rows columns c[2][1] c[2][2] Values initialized gives the number of rows
29
KUKUM-06/07 EKT120: Computer Programming 29 Index out of bound Out of bounds is when (index arraySize -1) double num [10] num [0], num [1],….., num [9] index Array size Array size - 1
30
KUKUM-06/07 EKT120: Computer Programming 30 Index out of bound In C, no guard against this problem –Does not check whether index value is within range or not –Can result in accessing data of wrong memory location
31
KUKUM-06/07 EKT120: Computer Programming 31 How to overcome? Use defined loops for (i = 0; i < 10; i ++) list [ i ] = 0;
32
KUKUM-06/07 EKT120: Computer Programming 32 TO BE CONTINUED……….Part 2
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.