Presentation is loading. Please wait.

Presentation is loading. Please wait.

Programming Fundamental

Similar presentations


Presentation on theme: "Programming Fundamental"— Presentation transcript:

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


Download ppt "Programming Fundamental"

Similar presentations


Ads by Google