subprogram in pascal

13
1 SUBPROGRAM IN PASCAL PROCEDURE Lecture 5 CS1023

Upload: neka

Post on 05-Jan-2016

32 views

Category:

Documents


1 download

DESCRIPTION

SUBPROGRAM IN PASCAL. PROCEDURE Lecture 5 CS1023. Example of Procedure using pass-by-value. program doubleTrouble; procedure double (num : integer); begin num := num * 2; writeln('The double is ', num); end; var number : integer; begin number := 3; double(number); - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: SUBPROGRAM IN PASCAL

1

SUBPROGRAM IN PASCAL

PROCEDURE

Lecture 5

CS1023

Page 2: SUBPROGRAM IN PASCAL

2

Example of Procedureusing pass-by-value

program doubleTrouble;procedure double (num : integer);begin

num := num * 2;writeln('The double is ', num);

end;var

number : integer;begin

number := 3;double(number);writeln('The number is ', number);

end.{What is the output? }

Page 3: SUBPROGRAM IN PASCAL

3

Pass by reference

The default for procedure parameters is pass by value.

Sometimes, we want the procedure to modify the actual parameter.

We use pass by reference to pass the memory location of the actual parameter to the procedure.

Use the key word, var, in the formal parameter to indicate that the parameter is pass-by-reference.

Page 4: SUBPROGRAM IN PASCAL

4

Exampleprogram doubleTrouble;procedure double2(var num : integer);begin

num := num * 2;writeln('The double is ', num);

end;var

number : integer;begin

number := 3;double2(number);writeln('The number is now ', number);

end.

Page 5: SUBPROGRAM IN PASCAL

5

Execution of doubleTrouble

When double2( ) is called, the address of number is passed to the parameter, num.

num and number label the same location in memory.

When the value of num changes, the value of number also changes (because they label the same memory location).

What is the output?

numbernum

4000

Page 6: SUBPROGRAM IN PASCAL

6

More than one parameterprogram CalcCube;procedure Cube( n : integer; var result :

integer);begin

result := n * n * n;end;var

number : integer;answer : integer;

beginwriteln('Enter a number: ');readln(number);Cube(number, answer);writeln('The cube of ', number, ' is ', answer);

end.

Page 7: SUBPROGRAM IN PASCAL

7

Matching up parameters

Actual parameters are matched up in order with the formal parameters.

In the previous example, the value of number is passed to n (pass-by-value).

The address of answer is passed to result (pass-by-reference).

number nanswer

result

6000

Page 8: SUBPROGRAM IN PASCAL

8

Local Variables for Procedures

Procedures can have variables in addition to parameters.

A variable declared within a procedure definition is local to that procedure.

A local variable is invisible to other procedures and the main program.

Page 9: SUBPROGRAM IN PASCAL

9

Example: Volume of a Cylinderprogram volumeFinder;procedure WriteCylinderVolume( r, h : real);var

volume : real; {local variable for WriteCylinderVolume}

beginvolume := 3.14159 * r * r * h;writeln( 'The volume is ', volume);

end;var

radius, height : real; {variables for main program}

beginwriteln('Enter the radius and the height: ');readln(radius);readln(height);WriteCylinderVolume(radius, height);

end.

Page 10: SUBPROGRAM IN PASCAL

10

Example: Swap two variables

Procedure swap(var x : integer, var y: integer)

Vartemp: integer;

Begintemp:= x;x:= y;y:= temp;

Page 11: SUBPROGRAM IN PASCAL

11

Exercises• Tuliskan prosedur PUTAR3BIL untuk memutar tiga buah

bilangan integer dengan menggunakan prosedur swap. Contoh:– Jika a berisi 1, b berisi 2, dan c berisi 3, maka hasilnya:

a berisi 3, b berisi 1, dan c berisi 2.• Tuliskan prosedur untuk menyederhanakan bilangan

rasional atau pecahan berbentuk a/b dimana a dan b adalah bilangan bulat dan a<b. contoh: jika diberikan pecahan 5/10 ½.

• Tuliskan algoritma untuk menjumlahkan dua buah matriks. Ukuran matriks MxN diberikan oleh pengguna. Algoritma tersebut dibangun dari tiga prosedur, yaitu prosedur masukan dua buah matriks, prosedur menjumlahkan kedua matriks tersebut, dan prosedur menampilkan hasil penjumlahannya.

Page 12: SUBPROGRAM IN PASCAL

12

Exercises

• Tuliskan prosedur untuk menyederhanakan pecahan x/y menjadi bentuk a b/c dimana x dan y adalah bilangan bulat dan x > y. Contoh: 14/5 24/5

Page 13: SUBPROGRAM IN PASCAL

13

Referensi

• Liem Inggriani, Diktat kuliah IF223 Algoritma dan Pemrograman, Jurusan Teknik Informatika ITB, 1999

• DT/266/1, Programming Language, Departement of Computer Science.

• Data structure, CSCI 262, Lecture 2 Classes and Abstract Data Types