• Nie Znaleziono Wyników

Kod Zadanie Podprogramy_02_Funkcje

N/A
N/A
Protected

Academic year: 2021

Share "Kod Zadanie Podprogramy_02_Funkcje"

Copied!
2
0
0

Pełen tekst

(1)

Podprogramy_02_Funkcje.doc

Copyright © 2007, Janusz Bonarowski 1

Podprogramy_02_Funkcje

Procedura Function, wykorzystanie własnej procedury, wywołanie funkcji, obsługa wyjątków.

Zadanie

Pewien etap rajdu samochodowego składa się z 3 odcinków specjalnych. Znana jest średnia prędkość i czas przejazdu na każdym odcinku. Napisać program obliczający długość każdego odcinka specjalnego i całkowitą długość etapu rajdu. Długość drogi pojedynczego odcinka obliczać własna procedurą typu Function.

Rys. 1. Postać formularza

Wartości właściwości etykiet lblS1, lblS2, lblS3

Nazwa właściwości

Wartość właściwości AutoSize False

BackColor Custom, biały Size, Height 20

Text skasować BorderStyle Fixed3D

Właściwość StartPosition formularza proszę ustawić na CenterScreen

Kod

Public Class Form1

Private Sub btnOblicz_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles btnOblicz.Click Dim S As Single

lblS1.Text = Droga(txtV1.Text, txtT1.Text) lblS2.Text = Droga(txtV2.Text, txtT2.Text) lblS3.Text = Droga(txtV3.Text, txtT3.Text)

If IsNumeric(lblS1.Text) = False Or _ IsNumeric(lblS2.Text) = False Or _ IsNumeric(lblS2.Text) = False Then lblS.Text = ""

Exit Sub Else

S = CSng(lblS1.Text) + CSng(lblS2.Text) + CSng(lblS3.Text) lblS.Text = S.ToString

End If End Sub

(2)

Podprogramy_02_Funkcje.doc

Copyright © 2007, Janusz Bonarowski 2

Private Function Droga(ByVal prędkość As String, ByVal czas As String) As String ' Deklaracja typu funkcji *********

Dim V, T, S As Single

Try

V = CSng(prędkość) T = CSng(czas)

If V < 0 Or T < 0 Then

MsgBox("Wartości muszą być WIĘKSZE OD 0") ' Wartość zwracana przez Funkcję

Return "Ujemne"

'==============

End If

If V = 0 Or T = 0 Then

MsgBox("Wartości muszą być WIĘKSZE OD 0") ' Wartość zwracana przez Funkcję

Return "Zero"

'==============

End If S = V * T

' Wartość zwracana przez Funkcję Return S.ToString

'================

Catch wyjątek As Exception

MsgBox(wyjątek.Message, MsgBoxStyle.Exclamation, "Błąd danych") ' Wartość zwracana przez Funkcję

Return "Błąd"

'============

End Try End Function

End Class

Z funkcji korzystamy poprzez jej wykonanie, co nazywamy wywołanie funkcji.

Funkcję wywołujemy pisząc jej nazwę z odpowiednimi argumentami oddzielonymi przecinkami i ujętymi w nawiasy. Nie używamy żadnych dodatkowych słów kluczowych.

Funkcja zwraca wartość umieszczoną po słowie Return i przerywa dalsze działanie przekazując sterowanie do procedury, do miejsc w którym została wywołana. Funkcja może posiadać więcej niż jedną instrukcję Return. Zwracanie wartości przez Funkcję można uzyskać nie tylko instrukcją ze słowem kluczowym Return, np.:

Return S.ToString

lub

Return "Błąd"

lecz także przez podstawienie zwracanej wartości pod nazwę funkcji bez słowa kluczowego Return (metoda stosowana w starszej wersji VB 6.0) np.

Droga = S.ToString Exit Function

lub

Droga = "Błąd"

Exit Function

Zaleca się jednak stosowanie tej linii kodu albo jako ostatnią instrukcję w treści funkcji (ponieważ taki sposób przekazania wartości nie przerywa działania funkcji i jeśli znajdują się dalej jakieś linie kodu to także zostaną wykonane) albo przerywać wykonania kodu funkcji poprzez instrukcję Exit Function.

Argumenty funkcji muszą być zgodne co do liczby i typu z argumentami wywołania funkcji.

Cytaty

Powiązane dokumenty

Znacznie szybciej można go wyznaczyć korzystając z algorytmu FFT (Fast

(Na końcu nie wychodzi symbol nieoznaczony [0/0], dlatego że licznik nie zmierza do zera tylko jest równy 0 dla każdego ∆x.). Pochodne istnieją w (0,0), ale by sprawdzić czy

Jeśli jego najkrótszy bok (będący naprzeciwko kąta 30 ◦ ) oznaczymy literą a, to jego pozostałe boki będą miały długości a √.. 3 (bok naprzeciwko kąta 60 ◦ ) oraz

Jeśli jego najkrótszy bok (będący naprzeciwko kąta 30 ◦ ) oznaczymy literą a, to jego pozostałe boki będą miały długości a √.. 3 (bok naprzeciwko kąta 60 ◦ ) oraz

Jeśli jego najkrótszy bok (będący naprzeciwko kąta 30 ◦ ) oznaczymy literą a, to jego pozostałe boki będą miały długości a √.. 3 (bok naprzeciwko kąta 60 ◦ ) oraz

Na jakiej wysokości należy zrobić dziurę, aby strumień wody tryskał jak najdalej?. Jak daleko tryska

Narysuj wykres trajektorii pocisku, znaleźć największą wysokość i odległość od miejsca wystrzału, jaką

Proszę zapoznać się z materiałem z poniższego linka i na podstawie zamieszczonych tam przykładów zróbcie zadania:. na podstawie przykładu 1 proszę zrobić zad 8.68/213