SlideServe
Menu
Préférences
© SlideServe · v2026

21 – User Defined Functions

halia avatar
24 diapositives · 445 Views · Aug 14, 2014

21 – User Defined Functions. Session Aims & Objectives. Aims To introduce user defined functions Objectives, by end of this week’s sessions, you should be able to: Create your own function definitions Call these functions. Meet George. Common Boa Constrictor boa constrictor imperator

21 – User Defined Functions - slide 1
01 / 2421 – User Defined Functions
1 / 17

Télécharger la présentation

21 – User Defined Functions
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. 21 – User Defined Functions

  2. Session Aims & Objectives • Aims • To introduce user defined functions • Objectives,by end of this week’s sessions, you should be able to: • Create your own function definitions • Call these functions

  3. Meet George • Common Boa Constrictor • boa constrictor imperator • Native to Central & South America • No venom (no poison)

  4. Meet George (cont.)

  5. George (cont.) • Problem: • Difficult to keep • Require temperature and humidity controlled environment • Much of the literature is from the US • Temperature in Fahrenheit • Solution • Need a program to convert from Celsius to Fahrenheit

  6. George (cont.) • To convert from Fahrenheit to Celsius: e.g. 50 Fahrenheit is: c= 10

  7. Example: Temp v1 Calculationrepeated Temp v1 Option Explicit Private Sub Form_Load() lblResult.Caption = ((txtFah.Text - 32) * 5) / 9 End Sub Private Sub txtFah_Change() lblResult.Caption = ((txtFah.Text - 32) * 5) / 9 End Sub

  8. Procedures and Functions • Both Procedures and Functions • Group of statements • Identified by uniquename • mirror real life activities • Procedures – just do something • Functions – return a value • used to perform calculations

  9. Built in Functions: Sqr X: Double Sqr Double • Sqr – gives square root of a number: • Examples Sqr(4) returns 16 Sqr(3) returns 9 Sqr(2) returns 4 Option Explicit Private Sub txtNum_Change() Dim tmpNum As Double tmpNum = Val(Me.txtNum.Text) Me.lblResult.Caption = Sqr(tmpNum) End Sub SquareRoot

  10. Built in Functions: Rnd Random Single • Rnd() function • generates pseudo-random numbers • >= 0 and <1 • Randomize – initialises random number generator RandomNumbers Option Explicit Private Sub Form_Load() Randomize End Sub Private Sub btnRandom_Click() Me.lblNum.Caption = Rnd() End Sub

  11. User Defined Functions (how) • Syntax very similar to procedure definition: Function<name>(<parameters>) As <type> [<Statement-Block>] <name> = <value> End Function • Where • <name> represents function’s name you choose • <parameters> represent information needed • <type> represents the return type • <value> represent the return value

  12. Function Implementation: Code • Function Header – gives: • name (e.g. Double), • parameter names and types (e.g. num: integer), and • return type (e.g. integer) • Function Body – gives code: Function Double(num As integer) As integer Double = num * 2 End Function num: integer Double integer

  13. FtoC Animation

  14. FtoC Function • The declaration: Function FtoC(F As double) As double FtoC = ((f-32) * 5) / 9 End Function • The call: lblResult.Caption = FtoC(50)

  15. Example: Temp v2 Temp v2 Option Explicit Function FtoC(F As Double) As Double FtoC = ((F - 32) * 5) / 9 End Function Private Sub Form_Load() lblResult.Caption = FtoC(txtFah.Text) End Sub Private Sub txtFah_Change() lblResult.Caption = FtoC(txtFah.Text) End Sub

  16. Question: Function Diagrams Thing double km: double Miles double num: long Twice long • Draw function diagram for the following code: Function Thing() As Double Function Miles(km As Double) As Double Function Twice(num As Long) As Long

  17. Question: Function Headers Mins: integer Minutes integer Hours: integer Pounds: integer Euros integer • Generate the code for the following diagrams: Function Euros(Pounds As Integer) As Integer Function Minutes(Mins As Integer, _ Hours As Integer) As Integer

  18. Function Animation: Total

  19. Example: SnakeTemp v1 Option Explicit Sub Draw() Dim t As Long picTemp.Cls picTemp.Line (200, 1 * 200)-(200, 16 * 200) For t = 80 To 95 Step 1 picTemp.Line (200, (t - 79) * 200)-(300, (t - 79) * 200) Next For t = 80 To 95 Step 5 picTemp.Line (300, (t - 79) * 200)-(500, (t - 79) * 200) picTemp.Print t & "F = " & (((t - 32) * 5) / 9) & "C" Next picTemp.Line (200, (txtCur.Text - 79) * 200)-(600, (txtCur.Text - 79) * 200), vbRed picTemp.Print txtCur.Text & "F = " & (((txtCur.Text - 32) * 5) / 9) & "C" End Sub Private Sub Form_Load() Me.Show Draw End Sub Private Sub txtCur_Change() Draw End Sub SnakeTemp v1

  20. Example: SnakeTemp v2 Option Explicit Const st = 80 Const en = 95 Const x1 = 200 Const x2 = 300 Const x3 = 500 Const x4 = 600 Const yS = 200 ' Vertical scaling factor. Const yO = st - 1 ' Vertical offset (gap at top). Sub Draw() Dim t As Long picTemp.Cls picTemp.Line (x1, (st - yO) * yS)-(x1, (en - yO) * yS) For t = st To en Step 1 picTemp.Line (x1, (t - yO) * yS)-(x2, (t - yO) * yS) Next For t = st To en Step 5 picTemp.Line (x2, (t - yO) * yS)-(x3, (t - yO) * yS) picTemp.Print t & "F = " & (((t - 32) * 5) / 9) & "C" Next picTemp.Line (x1, (txtCur.Text - yO) * yS)-(x4, (txtCur.Text - yO) * yS), vbRed picTemp.Print txtCur.Text & "F = " & (((txtCur.Text - 32) * 5) / 9) & "C" End Sub Private Sub Form_Load() Me.Show Draw End Sub Private Sub txtCur_Change() Draw End Sub SnakeTemp v2

  21. Example: SnakeTemp v3 Option Explicit Const st = 80 Const en = 95 Const x1 = 200 Const x2 = 300 Const x3 = 500 Const x4 = 600 Const yS = 200 ' Vertical scaling factor. Const yO = st - 1 ' Vertical offset (gap at top). Function FtoC(F As Double) As Double FtoC = ((F - 32) * 5) / 9 End Function Sub Draw() Dim t As Long picTemp.Cls picTemp.Line (x1, (st - yO) * yS)-(x1, (en - yO) * yS) For t = st To en Step 1 picTemp.Line (x1, (t - yO) * yS)-(x2, (t - yO) * yS) Next For t = st To en Step 5 picTemp.Line (x2, (t - yO) * yS)-(x3, (t - yO) * yS) picTemp.Print t & "F = " & FtoC(t) & "C" Next picTemp.Line (x1, (txtCur.Text - yO) * yS)-(x4, (txtCur.Text - yO) * yS), vbRed picTemp.Print txtCur.Text & "F = " & FtoC(txtCur.Text) & "C" End Sub Private Sub Form_Load() Me.Show Draw End Sub Private Sub txtCur_Change() Draw End Sub SnakeTemp v3

  22. Tutorial Exercises: Temp • Task 1: Get the temperature examples v1 and v2 (from the lecture) working

  23. Tutorial Exercises: Snake Temp • Task 1: Get the snake temperature examples from the lecture working. • Task 2: There is another place that a function can be used to simplify the code. Hint: it’s to do with calculating the vertical plotting position

  24. Tutorial Exercises: Snake Length • Task 1: Create a program that stores the following length (inch) data in an array, and plots a graph of it (using line method): Date Years Inches Tuesday 25 June 2002 6 70.5   5½   Monday 25 June 2001 5 70.0   4½   Sunday 25 June 2000 4 68.0 Saturday 25 December 1999 3½ 66.0 Friday 25 June 1999 3 61.0 Friday 25 December 1998 2½ 57.5 Thursday 25 June 1998 2 48.5 Thursday 25 December 1997 1½ 43.0 Wednesday 25 June 1997 1 37.5 • Task 2: Modify your code – add code that calculates an average length and plots it on the graph (use a function to calculate the total). • Task 3: Modify your code – to convert all values to cm (1 inch = 2.54 cm).