Download presentation
Presentation is loading. Please wait.
1
Programming Fundamental
Instructor Name: Muhammad Safyan Lecture-17
2
Lecture outline Character Arrays Passing Array to Function
Constant Arrays as Formal Parameters
3
Initializing Character Array
Initializing array of integers int c [ 10 ] = { 1,2,3,4,5,6,7,8,9,10 } ; int c [ ] = { 1,2,3,4,5,6,7,8,9,10 } ; For character arrays char name [ 100 ] = { ‘a’,b’,’c’,’0’,’1’ } ; char name [ 100 ] = “abc01“ ; char name [ ] = “Hello World“ ;
4
Character Arrays Displaying name on screen using loop
for ( i = 0 ; i < 100 ; i ++ ) { cout << name [ i ] ; }
5
Comparing Two Arrays AZMAT HAMEED Azmat Hameed
6
Comparing Two arrays Array size should be equal
char a[5]={'a','b',' ', 'c','d'}; char b[5]={'A','B',' ', 'C','D'}; int equal=-1; for (int i=0; i<5; i++) if(a[i]!=b[i]) { equal=1; break; } if (equal==1) cout<<"Two array are not equal"; else cout<<"Array are equal";
7
Handling space in array of chracters
char name[50]; cin.getline(name,50);
8
Exercise Input your name and display it in reverse order
9
Functions and Arrays
10
Sending Arrays into Another Functions
Name of the array Size of the array
11
Whenever a variable is passed , it is passed by value
Whenever you pass an array to function, it is called by reference
12
In case of arrays , call by reference is default
& Address Operator In case of arrays , call by reference is default
13
Example 1 char name [ 100 ] ; reverse ( name , 100 ) ; Declaration
Function Call
14
Example 1 void reverse ( char [ ] , int ) ; {
void reverse ( char characters [ ] , int arraySize) { reverse the character string; } Prototype Definition
15
Example 1 main ( ) { cin >> name [ ] ;
reverse ( character [ ] , arraySize ) ; cout << name [ ] ; } What will it Show ?
16
X is a variable which is a location in the memory Name [ ] is an array
Starting address - Array called Name Memory name
17
Example 2 void f ( int [ ] , int ) ; main ( ) { int numbers [ 100 ] ;
f ( numbers , 100) ; for ( int i = 0 ; i < 100 ; i ++) cout << numbers [ i ] ; }
18
Example 2 void f ( int x [ ] , int arraySize ) { int i ;
for ( i = 0 ; i < arraySize ; i ++) x [ i ] = i ; }
19
Executed with call by value, not by reference
f ( x [ 3 ] ) ; Executed with call by value, not by reference
20
Void f(int [], int); main() { const int n=10; int nm[n]; for (int i=0; i<n; i++) cin>>nm[i]; f(nm,n); cout<<nm[i]<<endl; getch(); } Void f( int b[], int n1) for (int i=n1; i>=0; i--) b[i]=b[i]*2;;
21
Multidimensional Arrays
22
Matrix Rows Columns
23
Two Dimensional Array int x [ 2 ] [ 3 ] ;
24
Example 3 int maxRows = 2; int maxCols = 3 ; int matrix [ 2] [ 3 ];
int row , col ; for ( row = 0 ; row < maxRows ; row ++ ) { for ( col = 0 ; col < maxCols ; col ++ ) cout << “Please enter value of ”<< row << “ “ << col; cin >> matrix [ row ] [ col ] ; }
25
After second outer loop
After first outer loop Input [0] 5 2 9 After second outer loop Input [0] 5 2 9 7 4 [1]
26
Three Dimensional Arrays
int x [ ] [ ] [ ] ;
27
Array Manipulation
28
Example 1 Input 9 8 7 6 5 4 3 2 1 Row 1 Row 2 Row 3 9 8 7 6 5 4 3 2 1 Row 1 Row 2 Row 3 Memory 3 2 1 6 5 4 9 8 7 Row 1 Row 2 Row 3 Output
29
Addressing Array Elements
a [rowIndex ] [ columnIndex ]
30
Example 1 int row ; int col ; const maxRows = 3 ; const maxCols = 3 ;
int a [ maxRows ] [ maxCols ] ;
31
Example 1 { for ( col = 0 ; col < maxCols ; col ++ )
for ( row = 0 ; row < maxRows ; row ++ ) { for ( col = 0 ; col < maxCols ; col ++ ) cout << “Please enter value of element number ”<<row<< “,” << col ; cin >> a [ row ] [ col ] ; }
32
Example 2 maxRows = 3 ; maxCols = 3 ; 3 2 1 [0] [1] [2] Index of Start
Index of Last Row = maxRows - 1
33
Example 2 for ( row = maxRows - 1 ; row >= 0 ; row -- ) {
for ( col = 0 ; col < maxCols ; col ++ ) … } Decrement Operator 9 8 7 6 5 4 3 2 1 Row 1 Row 2 Row 3 3 2 1 6 5 4 9 8 7 Row 1 Row 2 Row 3
34
Example 2: Formatted Output
cout << “The original matrix is” ; for ( row = 0 ; row < maxRows ; row ++ ) { for ( col = 0 ; col < maxCols ; col ++ ) cout << a [ row ] [ col ] ; } << ‘\t‘ ; 15 42
35
Example 2: Formatted Output
for ( row = 0 ; row < maxRows ; row ++ ) { for ( col = 0 ; col < maxCols ; col ++ ) cout << a [ row ] [ col ] << ‘\t’ ; } cout << ‘ \n ’ ;
36
Enter the values in a matrix and print it in reverse Column order
Exercise Enter the values in a matrix and print it in reverse Column order 9 8 7 6 5 4 3 2 1 [0] [1] [2] 7 8 9 4 5 6 1 2 3 [2] [1] [0]
37
Transpose of a Matrix 1 2 3 4 5 6 7 8 9
38
Square Matrix arraySize = rows cols
Number of rows are equal to number of columns arraySize = rows cols
39
Square Matrix a ij = a ji i = rows j = columns
40
Square Matrix int a [ row ] [ col ] ; int arraySize ;
for ( row = 0 ; row < arraySize ; row ++ ) { for ( col = 0 ; col < arraySize ; col ++ ) //Swap values }
41
Swap Mechanisms temp = a [ row ] [ col ] ;
a [ row ] [ col ] = a [ col ] [ row ] ; a [ col ] [ row ] = temp ;
42
Practical Problem Problem statement
Given tax brackets and given employee gross salaries , determine those employees who actually get less take home salary than others with lower initial income
43
Rule for tax deduction 0 –> 5,000 No tax
– >10,000 5% Income Tax 10,001 – >20, % Income Tax 20,001 and more 15% Income tax
44
Example Net salary = Rs 10,001 Net salary = Rs 10,000 Tax = 5%
Amount Deducted = 5% of 10,000 = 500 Net amount after deduction = 10, = 9,500 Net salary = Rs 10,001 Tax = 10% Amount Deducted = 10% of 10,001 = 1,000.1 Net amount after deduction = 10, ,000.1 = 9,000.9
45
One- dim arrays of integer
Storage Requirement One- dim arrays of integer lucky = 0 lucky = 1
46
Storage of salary 1 5,000 2 10,000 9,500 3 4 5 6 7 8 9 10 No of Emp.
Grow Salary Net Salary After Deduction 1 5,000 2 10,000 9,500 3 4 5 6 7 8 9 10
47
Interface Requirements
48
Distribution of the Program
Input Salary calculation Identification of the unlucky individuals Output
49
Detail Design Functions in the program getInput calculateSalary
locateUnluckyIndividual displayOutput
50
Code #include<iostream.h>
void getinput ( int [ ] [ 2 ] , int ) ; main ( ) { const int arraySize = 100 ; int sal [ arraySize ] [ 2 ] ; int lucky [ arraySize ] = { 0 } ; int numEmps ; cout << “Enter the number of employess “ ; cin >> numEmps ; getInput ( sal , numEmps ) ; }
51
Code getInput ( int sal [ ] [2] , int numEmps ) {
for ( i = 0 ; i < numEmps ; i ++ ) cin >> sal [ i ] [ 0 ] ; }
52
Code { for ( i = 0 ; i < numEmps ; i ++ )
calculateSalary ( int sal [ ] [ 2 ] , int lucky [ ] , int numEmps ) { for ( i = 0 ; i < numEmps ; i ++ ) // netSalary = grossSalary – tax if ( sal [ i ] [ 0 ] <= 5000 ) sal [ i ] [ 1 ] = sal [ i ] [ 0 ] ; }
53
Code { if ( sal [ i ] [ 0 ] <= 10000 )
else { if ( sal [ i ] [ 0 ] <= ) sal [ i ] [ 1 ] = sal [ i ] [ 0 ] *sal [ i ] [ 0 ] ; }
54
Code else { if ( sal [ i ] [ 0 ] <= 20000 )
sal [ I ] [ 1 ] = sal [ I ] [ 0 ] * sal [ I ] [ 0 ] ; }
55
Code else { sal [ i ] [ 1 ] = sal [ i ] [ 0 ] * sal [ i ] [ 0 ] ; }
56
if ( sal [ i ] [ 0 ] >= 0 && sal [ i ] [ 0 ] <= 5000 )
{ sal [ i ] [ 1 ] = sal [ i ] [ 0 ] ; } if ( sal [ i ] [ 0 ] > 5000 && sal [ i ] [ 0 ] < ) sal [ i ] [ 1 ] = sal [ i ] [ 0 ] * sal [ i ] [ 0 ] ; ... … …
57
if ( grossSalary > sal [ i ] [ 0 ] && netSalary < sal [ i ] [ 1 ] )
This logic will fail
58
Code void locateUnluckyIndividual ( int sal [ ] [ 2 ] , int lucky [ ] , int numEmps ) { int i , j ; int grossSalary , netSalary ; for ( i = 0 ; i < numEmp ; i ++ ) grossSalary = sal [ i ] [ 0 ] ; netSalary = sal [ i ] [ 1 ] ; for ( j = 0 ; j < numEmp ; j ++ ) if ( grossSalary > sal [ j ] [ 0 ] && netSalary < sal [ j ] [ 1 ] ) lucky [ i ] = 1 ; }
59
Code { for ( i = 0 ; i < numEmp ; i ++ ) if ( lucky [ i ] == 1 )
void displayOutput ( int sal [ ] [ 2 ] , int lucky [ ] , int numEmps ) { for ( i = 0 ; i < numEmp ; i ++ ) if ( lucky [ i ] == 1 ) cout<< “Employee No.” << i+1 << “ is unlucky, Gross Salary = ” << sal [ i ] [ 0 ] << “ Net Salary = ” << sal [ i ] [ 1 ] << “\n” ; }
60
Exercise Suppose you are given a square matrix of size n x n , write a program to determine its multiplication.
61
Exercise Suppose you are given a square matrix of size n x n , write a program to determine if this is an identity matrix
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.