Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа_3_1_Лс_27_11_2011.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
4.63 Mб
Скачать

InputВох("Задайте любой вопрос", "????")

Print Ответ(v)

End Function

В данном примере возврашаемое значение — строка символов один из вариантов ответа на вопрос, который задан в событийной процедуре сmdВопрос_ Click()

Передача apryментов по ссылке и значению. Для передачи аргументов по значению, так же как и в процедурах, используется ключевое слово ByVal. Вернемся к примеру, рассмотренному выше. Добавим в функцию строку Мb=200

Пример

Private Function MbBit(Мb As Integer) As Long

Const k As Long = 8388608 '(8 * 1024 * 1024)

MbBit = Мb * k

Мb=200

End Function

Результат при вводе в диалоговом окне того же числа 100 будет иным (рис. 13.17). Для исправления данной ошибки следует изменить заголовок функции следующим образом:

Private Function MbBit(ByVal Мb As Integer) As Long

Рис. 13.17

Возможные ошибки при определении значений аргументов:

  • количество передаваемых значений не соответствует количеству объявленных аргументов;

  • попытки передать значения не тех типов данных, которые были объявлены для аргументов.

ЗАВДАННЯ 13.4. Постановка задачи: ОПРЕДЕЛИТЬ МАКСИМАЛЬНОЕ ЧИСЛО ИЗ ТРЕХ ЧИСЕЛ, ИСПОЛЬЗУЯ ФУНКЦИЮ ОПРЕДЕЛЕНИЯ МАКСИМАЛЬНОГО ЧИСЛА ИЗ ДВУХ ЧИСЕЛ. ФУНКЦИЮ ПОМЕСТИТЬ В ПРОГРАММНОМ МОДУЛЕ ФОРМЫ.

Порядок действий

  1. Откройте проект ЛР13_ Зад2.

  2. Измените программный код. Создайте функцию определения максимального числа из двух чисел. Для размещения ее в программном модуле формы используйте один из способов, описанных выше.

Function max2(a As Single, b As Single)

If a > b Then max2 = a Else max2 = b

End Function

где max2 — имя функции, а и b — аргументы.

3. Измените процедуру, которая будет выполняться при щелчке по кнопке <Мах>:

Private Sub cmdM_Click()

Dim x As Single, y As Single, z As Single, Max As Single

x = Val(TxtX.Text)

y = Val(TxtY.Text)

z = Val(TxtZ.Text)

Max = max2(x, y) 'Переменной mах присваиваеmся значение функции mах2,

вычисленное при аргументах х и у

Max = max2(Max, z) 'Переменной mах присваиваеmся значение функции mах2,

вычисленное при аргументах mах и z

txtMAX.Text = Str(Max)

End Sub

4. Пpoвepьтe правильность работы проекта. Сохраните изменения в проекте под именем ЛР13_Зад4

ЗАВДАННЯ 13.5. Постановка задачи: ПОCЧИТАТЬ КОЛИЧЕСТВО СОЧЕТАНИЙ ИЗ N ЭЛЕМЕНТОВ ПО М. ВИД ПРИЛОЖЕНИЯ МОЖЕТ ИМЕТЬ ВИД, ПРЕДСТАВЛЕННЫЙ НА РИС. 13.18.

Математическая модель. Если из N различных элементов составлять группы по М элементво в каждой, не обращая внимания на порядок элементов в группе, то получающиеся при этом комбинации называются сочетаниями из N элементов по М.

Рис. 13.18

Для подсчета количества сочетаний используется следующая формула:

Порядок действий

1. Расположите на экранной форме объекты в соответствии рис. 13.18.

2. Установите значения свойства Name для текстовых полей txtn, txtm и txtc.

3.Установите значения свойства Name для кнопки — cmdSohet

4. Установите значения свойства Caption для формы, кнопки меток в соответствии с рис. 13.18.

5. Добавьте в проект универсальный модуль.

6. Установите значение свойства Name для модуля Факториал.

7. Создайте в модуле функцию для вычисления факториала числа:

Public Function fact(x As Integer) As Long

Dim p As Long

Dim i As Integer

p = 1

For i = 2 To x

p = p * i

Next i

fact = p

End Function

8. Напишите процедуру, которая будет выполняться при щелчке по кнопке <Вычислить>:

Private Sub CmdSochet_Click()

Dim n As Integer, m As Integer

Dim c As Integer

n = Val(TxtN.Text)

m = Val(TxtM.Text)

c = fact(n) / (fact(m) * fact(n - m))

TxtC = Str(c)

End Sub

9. Пpoвepьтe правильность работы проекта.

10. Сохраните проект под именем ЛР13_Зад5.