introduction to c programming lecture 6. functions – call by value – call by reference arrays...

37
ntroduction to C Programmin Lecture 6

Upload: roger-black

Post on 17-Jan-2016

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

Introduction to C Programming

Lecture 6

Page 2: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

• Functions– Call by value– Call by reference

• Arrays

Today's Lecture Includes

Page 3: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

• A function in which original value of the variable is changed

• To call by reference we cannot pass value, we have to pass memory address of variable

• “&” is used to take the address of a variable

Call by Reference

Page 4: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

main ( ) {

double x = 123.456 ;square ( x ) ;

}

Example: Call by Reference

square ( doublesquare ( double&& y ) y )

{{

y = y * y ;y = y * y ;

}}

Passing arguments by using pointers

Page 5: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

There are two issues inside a computer

• Memory overhead• Stack overhead

Management Issues of Computer

Page 6: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

• Elegant codewhere price is not too high

• Efficient codewhere price is too high

Programming Options

Page 7: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

ARRAYSStudent’s age program

Page 8: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

• They are special kind of data type• They are like data structures in which identical data types are stored• In C each array has

– name– data type – size

• They occupy continuous area of memory

Arrays

Page 9: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

Storage of an array in memory

C[0]

C[1]

C[2]

C[3]

C[4]

C[5]

C[6]

C[7]

C[8]

C[9]

Name

...

35

59

24

...

...

...

...

...

...

memory

Index

Page 10: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

arrayType arrayName[numberOfElements ];

For example , int age [ 10 ] ;

• More than one array can be declared on a line int age [10] , height [10] , names [20] ;

• Mix declaration of variables with declaration of arraysint i , j , age [10] ;

Declaration of Arrays

Page 11: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

Array name e.g. ageindex number

age [ 4 ]

Referring to Array Elements

Page 12: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

for ( i = 0 ; i < 10 ; i ++ ){

cin >> age [ i ] ;}

Example1: Using Arrays

Page 13: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

totalAge = 0 ;for ( i = 0 ; i < 10 ; i ++ ){

totalAge + = age [ i ] ;}

Example 2

Page 14: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

int age [ 10 ] ;

for ( i = 0 ; i < 10 ; i ++ ){

age [ i ] = 0 ;}

Initializing an Array

Page 15: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

Initializing an Array

int age [ 10 ] = { 0,0,0,0,0,0,0,0,0,0 } ;

int age[ 10 ] = { 0 } ;Test it: Should it work ?

Page 16: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

int age [ ] = { 1,2,3,4,5,6,7,8,9,10 } ;

for ( i = 0 ; i < 10 ; i ++ )

Initializing an Array

‘ i ‘ will have value from 0 to 9

Page 17: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

#include < iostream.h >main ( ){

int c [ 100 ] ;}

Example: 3

Page 18: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

do{

int z , i = 0 ;cin >> z ;if ( z != -1 )

c[ i ] = z ;

Example: 3

assignment statement

Page 19: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

i ++ ;} while ( z != -1 && i < 100 ) ;cout << “ The total number of positive integers entered by user is “ << i -1;

Example 3

Page 20: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

– Data types should be identical

– Size should be same int a [ 10 ] ;int b [ 10 ] ;

Copying Arrays

Page 21: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

To copy from array “ a ” to array “ b ” :

b [ 0 ] = a [ 0 ] ; b [ 1 ] = a [ 1 ] ; b [ 2 ] = a [ 2 ] ; b [ 3 ] = a [ 3 ] ;… … …… … … b [ 10 ] = a [ 10 ] ;

Copying Arrays

Page 22: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

for ( i =0 ; i < 10 ; i ++ )b [ i ] = a [ i ] ;

Copying Arrays

Page 23: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

Take the sum of squares of 10 different numbers which are stored in an array

int a [ 10 ] ;int arraySize =10 ;int sumOfSquares = 0 ;for ( i = 0 ; i < arraySize ; i ++ ){

sumOfSquares = sumOfSquares + a [ i ] * a [ i ] ;}

Example: 4

Page 24: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

int z ;int a [ 100 ] ;for ( i = 0 ; i < 100 ; i ++ ){

a [ i ] = i ;}cout << “ Please enter a positive integer “ ;cin >> z ;int found = 0 ;

Example 5

Page 25: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

for ( i =0 ; i < 100 ; i ++ ){

if ( z == a [ i ] ){

found = 1 ;break ;

}}

Example 5

Page 26: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

if ( found == 1 )cout << “ We found the integer at position ” << i ;

else cout << “ The number was not found” ;

Example 5

Page 27: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

# include < stdlib.h >

0 - 32767

rand ( )

Page 28: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

x = rand ( ) ;

A call goes to ” rand ( ) “ , it generates a number and returns to x

Calling rand ( )

Page 29: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

It returns the remainder

rand ( ) % 6 = ?Result has to be between 0 and 5 inclusive

1 + rand ( ) % 6

It will randomly generate number between 1 and 6

Modulus “ % ”

Page 30: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

If a die is rolled 10/100 million of time , then on average equal number of 1’s ,equal number of 2’s , equal number of 3’s etc. will be generated

Fair Die

Page 31: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

It has only two possibilities 0 / 1

rand ( ) % 2 ;

Example: Tossing a Coin

Page 32: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

• It is shipped in every standard library with compiler

• Most major programming languages give some kind of random number generator as a function as part of library

• Writing a random number generator is itself a field

Importance of rand ( )

Page 33: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

data typenamesize

Array Declaration

Page 34: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

const

Page 35: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

const int arraySize = 100 ;

• It creates an identifier “ arraySize ” and assigns a value 100. This is called integer

constant . It is not a variable• Its value cannot be changed

const

Page 36: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

Today we studied• Functions• Arrays

Page 37: Introduction to C Programming Lecture 6. Functions – Call by value – Call by reference Arrays Today's Lecture Includes

For Next Time• Passing structures and arrays to functions

• Default arguments and inline functions• Returning structure variables, passing

structures by reference, overloaded functions

• Arrays in depth, and Intro to Strings