CS201-12 - Introduction to Programming Lecture 12 Today’s...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Introduction to Programming Lecture 12 Today’s Lecture Includes Strings ( character arrays ) Algorithms using arrays Multi­dimensional arrays char name [ 100 ] ; \0 In C we have Used \n \t \0 New Line Tab Character Null Character All C strings are terminated by Null character Character Array in Memory char name [ 100 ] ; cout << “ Please enter your name ” ; cin >> name ; Initializing an 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“ ; Character Arrays To read name from keyboard and display it on screen char name [ 100 ] ; cout << “ Please enter you name” ; cin >> name ; cout << name ; Character Arrays Displaying name on screen using loop for ( i = 0 ; i < 100 ; i ++ ) { cout << name [ i ] ; } Condition : Comparing Two arrays Array size should be equal int equal = 0 ; int num1 [ 100 ] , num2 [ 100 ] ; for ( i = 0 ; i < 100 ; i ++ ) { if ( num1 [ i ] != num2 [ i ] ) { equal = 1 ; break ; } } if ( equal ==1 ) cout << “ The arrays are not equal” ; else cout << “ The arrays are equal” ; Comparing Two Arrays AZMAT HAMEED Azmat Hameed Exercise Input your name and display it in reverse order Determine the length of character array Sorting Bubble Sort Quick Sort Brute­Force Technique [0] [1] [2] 4 23 9 [16] 1 67 [99] Swapping [0] [1] [2] 66 44 33 Memory Location 66 [16] 3 100 [99] Swapping Two Numbers int num [ ] ; int x ; x = num [ 0 ] ; num [ 0 ] = num [ 15 ] ; num [ 15 ] = x ; Binary Search Algorithms Divide and Conquer rule 1 1 1 2 2 2 3 3 3 4 4 4 5 6 5 7 6 8 7 8 Binary Search Algorithm If we think about it , it is logn log2 Total array size will be 2n and number can be found in n times If 1000 numbers then 10 tries are max 210 = 1024 Is divide and conquer the fastest way, all the time, of searching for a number in a list ? 1 2 3 Linear Search ? Binary Search ? Suppose they are Random 100 Suppose they are Ordered Suppose they are mixed-up Functions and Arrays Sending Arrays into Another Functions Name of the array Size of the array Example 1 Declaration char name [ 100 ] ; reverse ( name , 100 ) ; Function Call Example 1 Prototype void reverse ( char [ ] , int ) ; Definition void reverse ( char characters [ ] , int arraySize) { } reverse the character string; Example 1 main ( ) { cin >> name [ ] ; reverse ( character [ ] , arraySize ) ; cout << name [ ] ; What will it Show ? } Call by Reference & Address Operator * Pointer Operator In case of arrays , call by reference is default X is a variable which is a location in the memory Name [ ] is an array Starting address ­ ­ ­ ­ ­ ­ ­ ­ Memory name Array called Name Example 2 void f ( int [ ] , int ) ; main ( ) { int numbers [ 100 ] ; f ( numbers , 100) ; for ( int i = 0 ; i < 100 ; i ++) cout << numbers [ i ] ; } Example 2 void f ( int x [ ] , int arraySize ) { int i ; for ( i = 0 ; i < arraySize ; i ++) x [ i ] = i ; } f ( x [ 3 ] ) ; Executed with call by value, not by reference Whenever a variable is passed , it is passed by value Whenever you pass an array to function, it is called by reference Vector 2 Dimensional 3 Dimensional Dot Product Vector Product Matrix Rows Columns Two Dimensional Array int x [ 2 ] [ 3 ] ; 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 ] ; } } After first outer loop [0] Input 5 2 9 After second outer loop [0] Input 5 7 2 0 9 4 [1] Three Dimensional Arrays int x [ ] [ ] [ ] ; ...
View Full Document

This note was uploaded on 01/12/2010 for the course CS CS 201 taught by Professor Dr.naveedmalik during the Spring '09 term at Virtual University of Pakistan.

Ask a homework question - tutors are online