/
Introduction to Programming Introduction to Programming

Introduction to Programming - PowerPoint Presentation

karlyn-bohler
karlyn-bohler . @karlyn-bohler
Follow
411 views
Uploaded On 2016-07-22

Introduction to Programming - PPT Presentation

in C Subprograms procedures and functions Jordi Cortadella Ricard Gavaldà Fernando Orejas Dept of Computer Science UPC Subprograms Programming languages in particular C not only provide a set of basic operations and statements but also a means to define ID: 414635

programming int introduction subprograms int programming subprograms introduction dept upc parameter passing amp call void times code subprogram reference prime argument double

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Introduction to Programming" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Introduction to Programming(in C++)Subprograms:procedures and functions

Jordi

Cortadella

,

Ricard

Gavaldà

, Fernando

Orejas

Dept. of Computer Science, UPCSlide2

SubprogramsProgramming languages, in particular C++, not only provide a set of basic operations and statements, but also a means to define our own operations and statements.

We call the operations and statements that we define

functions

and procedures, respectively.Procedures and functions (subprograms) may have parameters. These represent the objects from our program that are used in the subprogram.

Introduction to Programming

© Dept. CS, UPC

2Slide3

SubprogramsFunctions are defined as follows:Introduction to Programming

© Dept. CS, UPC

3

int times(int x, int y) { // Code}

P

arameters

T

ype of

result

N

ame

of the function

I

t

must include a

return statementSlide4

Subprogramsint times(int x, int y) {

int

p = 0; while (y > 0) { if (y%2 == 0) { y = y/2; x = x2; } else { p = p + x; y = y – 1; } }

return p;}

Introduction to Programming

© Dept. CS, UPC

4Slide5

SubprogramsProcedures are defined similarly, but without delivering any result:Introduction to Programming© Dept. CS, UPC

5

void

factors(int x) { // Code}

N

o resultSlide6

Subprogramsvoid factors(int x) { int

f = 2;

while (x != 1) { if (x%f == 0) { cout << f << endl; x = x/f; } else f = f + 1; }

}

Introduction to Programming

© Dept. CS, UPC

6Slide7

SubprogramsSubprogram definitions may appear before or after the main program.Introduction to Programming

© Dept. CS, UPC

7

#include <iostream>using namespace std;int f() { // Code for f

}int main() {

// Code for the main program}

void

p(

int

a) {

// Code for p

}Slide8

SubprogramsA function can only be used if previously declared. A function can be declared and used before its code is defined.Introduction to Programming

© Dept. CS, UPC

8

double volume_sphere(double radius);void some_geometry() { ...

double V = volume_sphere

(1.0); ...}

double

volume_sphere

(

double

radius) {

return 4

Piradiusradiusradius/3;}Slide9

SubprogramsOnce a subprogram has been declared, it can be used.Functions are used as operations within expressions.Procedures are used as statements.Introduction to Programming

© Dept. CS, UPC

9

i = times(3, i + 2) + 1; // function...factors(i); // procedure

...Slide10

SubprogramsAppropriate use of subprograms:Increases readability: programs are better structured and easier to understand.E

nables the use of

abstraction

in the program design.Facilitates code reuse.Introduction to Programming© Dept. CS, UPC10Slide11

SubprogramsEvaluating the expression times(3, i

+ 2) + 1

means executing the code of

times over the arguments 3 and i+2 and then adding 1 to the result returned by the function.

Introduction to Programming

© Dept. CS, UPC

11Slide12

SubprogramsEvaluating the statement factors(i

);

means executing the code of

factors over the argument i.Introduction to Programming© Dept. CS, UPC

12Slide13

Subprograms: parameter passingWhen a subprogram is called, the arguments are passed to the subprogram, so that its code can be executed:

times(3,

i

+ 2) + ... int times(

int

x,

int

y) { … }

Each argument must have the

same type

as its corresponding parameter.

Introduction to Programming

© Dept. CS, UPC

13Slide14

Subprograms: parameter passingIn general, any expression can be the argument of a subprogram:Introduction to Programming

© Dept. CS, UPC

14

double maximum(double a, double b);...z = maximum(x, y);...r = maximum(3, gcd(s - 4,

i) + alpha);...m = maximum(x, maximum(y + 3, 2

Piradius));Slide15

Subprograms: parameter passingAn object (a variable) is associated with a value and a memory location. In C++, there are two methods for parameter passing:

Passing the value (

call-by-value

). This is denoted by just declaring the type and the name of the parameter.Passing the memory location (call-by-reference). This is denoted by adding the symbol & next to the parameter type.void p(

int x,

int

&

y) { ... }

Introduction to Programming

© Dept. CS, UPC

15

C

all-by-value

C

all-by-referenceSlide16

Subprograms: parameter passingCall-by-value makes a copy of the argument at the beginning of the subprogram. It is equivalent to having, a statement that assigns the value of each argument to the corresponding parameter:

Introduction to Programming

© Dept. CS, UPC

16times(3, i + 2)is equivalent to:int times(int

x, int y) {

x = 3; y = i

+ 2;

int

p = 0;

...

}Slide17

Subprograms: parameter passingThe effect of call-by-reference is that the parameter becomes the same object (variable) as the argument, i.e., the parameter becomes an alias of the argument.

Example: procedure to swap the value of two variables

Introduction to Programming

© Dept. CS, UPC17

void

exchange(

int

& x,

int

& y) {

int

z = x;

x = y;

y = z;

}Slide18

Subprograms: parameter passingIntroduction to Programming© Dept. CS, UPC

18

exchange(a, b)

Is equivalent to having:void exchange(int& x, int& y) { int z = a; a = b; b = z;

} Slide19

Subprograms: parameter passingint x, divisor;bool p;

...

c

in >> x;p = is_prime(x + 3, divisor);... Introduction to Programming© Dept. CS, UPC

19

bool

is_prime

(

int

n,

int

& d) {

d = 2;

bool

prime = (n != 1);

while

(prime

and

d < n) {

if

(

n%d

=

= 0) prime =

false

;

else

d = d + 1;

}

return

prime;

}

n

:

d:

prime:

x:

divisor:

p

:

6

9

2

true

3

false

false

// Pre: n >= 1

// Post: returns whether n is prime.

// If it is not prime, d is a divisor.

copy

reference

Warning: we do not recommend the use of non-void

functions

with reference parameters in this course.

falseSlide20

Subprograms: parameter passingUse call-by-value to pass parameters that must not be modified by the subprogram.Use call-by-reference when the changes made by the subprogram must affect the variable to which the parameter is bound.

In some cases, call-by-reference is used to avoid copies of large objects, even though the parameter is not modified.

Introduction to Programming

© Dept. CS, UPC20Slide21

Subprograms: parameter passingTo define a subprogram that, given two integers x and y, returns their quotient and remainder, we can write:Introduction to Programming

© Dept. CS, UPC

21

void div(int x, int y, int& q, int

& r) { q = x/y; r = x%y

;}Slide22

Subprograms: parameter passingFor instance, if the parameters would be passed by reference in the function times, after the execution of the statements:

int

a = 4; int b = 2;

int c = times(a, b);

the value of

a

would be

0

and the value of

b

would be

8

(and the value of c would be 8).Introduction to Programming

© Dept. CS, UPC22Slide23

Subprograms: parameter passingFor instance, after the definition:

void

exchange(int x, int y) { int

z = x;

x = y;

y = z;

}

the statement

exchange(

a,b

)

would not have any effect on

a

and b.

Introduction to Programming© Dept. CS, UPC23Slide24

Subprograms: parameter passingA call-by-value parameter can receive any expression as an argument.A call-by-reference parameter can only be bound to variables.

Introduction to Programming

© Dept. CS, UPC

24 void exchange (int& a, int& b); ... exchange(a, b + 4);

Incorrect parameter passing.Slide25

The Least Common Multiple (LCM)Design a function that calculates the LCM of two numbers. Assume that we can use a function gcd(

a,b

)

that calculates the greatest common divisor.Introduction to Programming© Dept. CS, UPC25

// Pre: a>0

, b>0// R

eturns

the LCM of a and b

int

lcm(

int

a,

int

b) {

return (a/gcd(a,b))b;}