1 Модульне програмування 1. Функції 2. Процедури 3. Передача аргументів.

Презентация:



Advertisements
Похожие презентации
Оператори. Введення і виведення даних. Оператор присвоювання Оператори це команди програми. Оператор присвоювання є основним оператором мови програмування.
Advertisements

Курс за вибором Основи візуального програмування.
Основи алгоритмізації та програмування Підпрограми.
Одновимірні масиви 11 клас (продовження). Задача 4. У даному масиві з десяти дійсних чисел визначити найбільше значення. Спочатку вважатимемо, що значення.
Типи даних мови Visual Basic та їх опис. Опис величин Величина - це об'єкт, який має стале або змінне значення. Основні характеристики величин: ім'я,
Вказівники Вказівник (або покажчик) – особливий тип даних, значенням якого є адреса певного байта оперативної памяті. Значення покажчика - це беззнакове.
Основи алгоритмізації та програмування Надання значень величинам. Вказівки присвоєння та введення.
Основи алгоритмізації та програмування Програми з розгалуженнями.
Підпрограми (процедури і функції). Підпрограмою – називається найменована логічно закінчена група вказівок, яку можна викликати для виконання довільну.
Основи алгоритмізації та програмування Вказівка повторення. Цикли.
Програми з розгалуженнями.Команда IF Підготувала Крилік Анастасія 7-Д.
Класи пам'яті даних. Клас пам'яті, час існування та видимість об'єкта Кожен обєкт програми (змінна, функція,...) має свій тип і клас памяті. Тип визначає.
Текстові файли Приклади використання. Текстові файли призначені для зберігання символів Для опису текстової файлової змінної використовується тип Text.
Ізяславський НВК 2, Гульчак інна Василівна Оператор. Виведення даних. Змінна. Типи даних. Оператор надання значень. Константи. Введення даних.
Ковальчук О.М КОМАНДИ РОЗГАЛУЖЕННЯ (Turbo Pascal 7.0) КОМАНДИ РОЗГАЛУЖЕННЯ (Turbo Pascal 7.0) Інформатика-11 Тема-4 Ковальчук О.М., 2007.
Ізяславський НВК 2, Гульчак інна Василівна Події та обробники подій Оператор. Виведення даних. Змінна. Типи даних. Оператор надання значень. Введення даних.
Запити в Access Запити в базі даних Запити використовуються для перегляду, зміни й аналізу даних різними способами. Основні операції з використанням.
Основи алгоритмізації та програмування Опрацювання табличних величин: знаходження мінімального або максимального значення серед елементів масиву, кількості.
Тема уроку. Практична робота Складання програм з розгалуженням М ета уроку: формувати вміння працювати в середовищі програмування ; створювати проект.
Одновимірні масиви 11 клас. Впорядкований набір змінних одного типу називається масивом. Кожна змінна, що входить до масиву, називається елементом масиву.
Транксрипт:

1 Модульне програмування 1. Функції 2. Процедури 3. Передача аргументів

2 Функції і процедури - характеристика Функції й процедури в VB.NET (як і в багатьох інших мовах програмування) можна розглядати як фрагменти коду з деяким ім'ям. По цьому імені ці фрагменти коду можна викликати скільки завгодно раз. Різниця між ними така - функція повертає деяке значення, процедура ж ніякого значення після себе не залишає – тільки цим вони і відрізняються. Вибір між процедурою (Sub) і функцією (Function) може визначатися простим критерієм: якщо ви збираєтесь використати значення, що повертається - використовуйте функцію, а якщо ні - процедуру.

3 Синтаксис функції [{Public | Protected | Friend | Protected Friend | Private}] Function імяфункції[(arglist)] [ As type ] [ оператори ] [ Exit Function ] [оператори ] End Function Тут представлено не повний синтаксис функції – повний у файлі Function_Statement.doc, який взято із Help MSDN.

4 Приклад створення функції Створити функцію визначення максимального із двох цілих чисел. З використанням оператора Return ми повертаємо значення. Операторів Return може бути декілька. Можна замість Return у тілі функції виконати привласнення значення: If nA > nB Then Max = nA Else Max = nB End If End Function 'Кінець функції Function Max(ByVal nA As Integer, ByVal nB As Integer) As Integer Dim nResult As Integer If nA > nB Then nResult = nA Else nResult = nB End If Return nResult End Function 'Кінець функції Sub main() Dim w, r, q As Integer w = 12 : r = -25 q = Max(w, r) Console.WriteLine(q) End Sub

5 Приклад із Help (розділ - Function) Public Function CalcSum(ByVal ParamArray Args() As Double) As Double Dim I As Integer CalcSum = 0 If Args.Length <= 0 Then Exit Function ' No arguments passed. For I = 0 To UBound(Args, 1) CalcSum += Args(I) Next I End Function ' Returns latest value of CalcSum. Викликати функцію можемо так: Dim ReturnedValue As Double ReturnedValue = CalcSum(4, 3, 2, 1) Умова задачі : функція CalcSum повертає суму аргументів. !! Аргументи функції у прикладі зада- ються з використанням ParamArray – масиву параметрів – тобто кількість їх може бути довільна!! (на слідуючому слайді текст про ParamArray)

6 Пояснення щодо ParamArray The ParamArray keyword indicates that a procedure argument is an optional array of elements of the specified type. ParamArray can be used only on the last argument of an argument list. It allows you to pass an arbitrary number of arguments to the procedure. A ParamArray argument is always passed using ByVal. ParamArray ключове слово яке показує, що параметр процедури - динамічний масив елементів визначеного типу. ParamArray може використовуватись тільки як останній параметр списку параметрів. Це надає можливість Вам передавати довільну кількість параметрів у процедуру. Параметр ParamArray завжди передають з використанням ByVal.

7 Передача даних за значенням і по посиланню Параметри у функції й процедури можна передавати за значенням і по посиланню. Коли ми передаємо параметри за значенням ByVal, то ми фактично передаємо копію змінної, якщо ж ми передаємо параметр по посиланню ByRef, то ми передаємо оригінал змінної. У першому випадку - при передачі параметра за значенням, якщо ми змінюємо параметр усередині функції, то оригінал змінної не міняється. У другому ж випадку - при передачі по посиланню, зміна параметра у функції спричиняє зміну і його оригіналу. За замовчуванням в VB.NET параметри передаються за значенням (а в VB6 - по посиланню).

8 Приклад на використання ByVal та ByRef Imports System Module Module1 Function fp1(ByVal a As Integer, ByRef b As Integer) As Integer a = a + 1 b = b + 1 Return 0 End Function Sub main() Dim n, m As Integer n = 4 m = 4 fp1(n, m) Console.WriteLine("{0}, {1}", n, m) End Sub End Module Результатом виконання цієї програми буде 4 і 5. Тому що перший параметр функції оголошений з модифікатором ByVal, то у функцію передається тільки його копія, другий же параметр передається з модифікатором ByRef, тобто передається його оригінал. У такий спосіб функція fр1 збільшує на 1 тільки змінну m.

9 Sub - процедура Sub name [ (Of typeparamlist) ] [ (parameterlist) ] [ Implements implementslist | Handles eventlist ] [ statements ] [ Exit Sub ] [ statements ] End Sub

10 Приклад на використання ByRef Imports System Module Test Sub Swap(ByRef a As Integer, ByRef b As Integer) Dim t As Integer Оголошуємо змінну t для обміну t = a a = b b = t End Sub Sub main() Dim n, m As Integer n = 4 m = 14 Console.WriteLine("{0}, {1}", n, m) 'Надрукується 4 і 14 Swap(n, m) Console.WriteLine("{0}, {1}", n, m) 'Надрукується 14 і 4 End Sub End Module Процедура Swap міняє значення своїх параметрів. Обидва параметри (a і b) передаються в процедуру із ключовим словом ByRef, так що процедура міняє місцями значення саме цих переданих змінних, а не їхніх копій.

11 Приклад процедури із Help Sub SubComputeArea(ByVal Length As Double, ByVal Width As Double) Dim Area As Double If Length = 0 Or Width = 0 Then ' If either argument = 0. Exit Sub ' Exit Sub immediately. End If Area = Length * Width ' Calculate area of rectangle. Console.WriteLine(Area) ' Print Area to Immediate window. End Sub

12 Передача масивів функціям і процедурам В VB.NET існують зручні засоби для роботи з одновимірними й багатовимірними масивами в процедурах і функціях. Перебір вмісту масиву здійснюється конструкцією For Each або (більш розповсюджений варіант) стандартним циклом For з обчисленням верхньої границі за допомогою функції UBound (). Узагальнена форма виклику UBound(ім'я_масиву, J) повертає верхню границю по J-му вимірі масиву. Для одномірних масивів (списків) параметр J є необов'язковим. На слідуючому слайді наведений приклад класичної функції пошуку максимального елемента в масиві.

13 Пошук максимального елемента в масиві Function FindMax(ByVal a() As Integer)аргумент а() - масив Dim finish As Integer = UBound(a)кількість елементів Dim max As Integer = a(0) припустили, що max це a(0) Dim i As Integer For i = 0 To finish If a(i) > max Then max = a(i) шукаємо у циклі max елемент Next i Return max повертаємо знайдений max елемент End Function

14 Функції перетворення типів Перетворення типів в VB.NET може відбуватися двома способами. Перший спосіб - це неявне перетворення. Просто привласнюємо змінній одного типу змінну або значення іншого типу. Наприклад: Dim p As Single = Dim v As Integer v = p Console.WriteLine(v = {0}", v) Зазначений фрагмент виведе на екран число 16. Тобто у цьому випадку відбувається заокруглення. При неявному перетворенні ми, як правило, втрачаємо точність.

15 Функції перетворення типів ФункціяТип, що повертає CDblDouble CSngSingle CIntInteger CLngLong CByteByte CShortShort CDecDecimal CCharChar CBoolBoolean CStrString Другий спосіб перетворення типів використовує спеціальні функції. Всі ці функції починаються на букву C. Dim w As Single = Dim k As Integer Dim b As Boolean k = CInt(w) 'k = 16. b = CBool(0) 'b = False. b = CBool(2) 'b = True. CDateDate CObjObject CTypeбудь-який тип

16 Функції перетворення типів Усі функції перетворення типів мають один параметр – змінна яку потрібно перетворити. Функція CType – має два параметра. Перший параметр - змінна, яку слід перетворити. Другий параметр - це тип, до якого перетворюємо. Приклад використання цієї функції: Dim m As Single = Dim s As String 'Перетворюємо число 5.67 у рядок. s = CType(m, String) Console.WriteLine(s)

17 Перетворення типів через клас Convert В VB.NET є спеціальний клас Convert для конвертування різних типів друг у друга. У цього класу є кілька статичних методів. Назва їх усіх починається на To. Деякі з них: ToBoolean, ToByte, ToChar, ToDouble, ToSingle, ToInt16, ToInt32, ToInt64, ToString. Приклад застосування цього класу: Dim p As Double = -5.6 Dim z As Int32 z = Convert.ToInt32(p) Console.WriteLine(z) Буде виведено -6. Dim s1, s2 As String s1 = "17" s2 = 25" z = Convert.ToInt32(s1) + Convert.ToInt32(s2) Console.WriteLine(z) Буде виведено 42.