Информатика / VBA. Контрольный тест 5_1-5_3
Только сегодня: скидка до 20% в подарок на первый заказ.
Какую работу нужно написать?
Другую работу
Помощник Анна
Задание | Решение |
Определить значения следующего арифметического выражения на VBA: 26 \ 4 * 2 + 19 mod 3 | Ответ: 14 |
Дана последовательность операторов VBA: x = 12 mod 5 If x = 0 Then x = 2 ^ x — 1 If x > 1 Then y = x ^ 2 If x > 2 Then y = x + 2 / x – 1 | Ответ: 4 |
Если значение переменной а равно 6, то какое значение получит переменная b при выполнении оператора: Select Case a Case 5 b = 1 Case 3 to 15 b = 2 Case Is > 5 b = 3 Case 2, 4, 6, 8, 10 b = 4 End Select | Ответ:2 |
В книге Excel «Данные к тесту VBA» из вспогательного материала к тесту, составьте функцию VBA в модуле 1 с именем fun1 (вставьте нужные операторы в заголовки уже созданной функции), которая вычисляет выражение по формуле: 1-x^2 fun1 = ——— 2 — 3x На листе 1 книги выполните функцию и полученное в ячейке B4 значение введите в ответ теста. Дробная часть числа от целой отделяется запятой. | Решение: Public Function fun1(x As Double) As Double fun1 = (1 — x ^ 2) / (2 — 3 * x) End Function Ответ: -1 |
В книге Excel «Данные к тесту VBA» из учебных материалов к модулю, составьте функцию в модуле 1 с именем fun2 на VBA (вставьте нужные операторы в загововки уже созданной функции), которая вычисляет выражение по формуле: если x больше 0, то fun2=(1-2x)/(2+x), иначе fun2=Sin(3x)-1 На листе 1 книги выполните функцию и полученное в ячейке B5 значение, округленное до сотых, введите в ответ теста. Дробная часть числа от целой отделяется запятой. | Решение: Public Function fun2(x As Double) As Double If x > 0 Then fun2 = (1 — 2 * x) / (2 + x) Else fun2 = Sin(x) * 3 — 1 End If End Function Ответ: -1,69 |
В книге Excel «Данные к тесту VBA» из учебных материалов к модулю, составьте функцию VBA с именем fun3 для нахождения минимального произведения двух чисел из трех произвольных чисел A, B, C. Заголовок функции, который должен иметь вид: Function fun3(a,b,c), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B6 значение введите в ответ теста. | Решение: Public Function fun3(a As Double, b As Double, c As Double) As Double If a < c And b < c Then fun3 = a * b Else If b < a And c < a Then fun3 = b * c Else fun3 = a * c End If End If End Function Ответ: 26 |
В книге Excel «Данные к тесту VBA» из учебных материалов к модулю, составьте функцию VBA с именем fun3 для нахождения из трех произвольных чисел A, B, C, задающих длины сторон треугольника, площади треугольника, если треугольник существует, в противном случае функция должна возвратить значение -1. Заголовок функции, который должен иметь вид: Function fun3(a,b,c), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B6 значение введите в ответ теста. | Решение: Public Function fun3(a As Double, b As Double, c As Double) As Double Dim p As Double p = (a + b + c) / 2 If b + c > a And c + a > b And a + b > c Then fun3 = (p * (p — a) * (p — b) * (p — c)) ^ 0.5 Else fun3 = -1 End If End Function Ответ:11 |
В книге Excel «Данные к тесту VBA» из учебных материалов к модулю, составьте функцию VBA с именем fun3 для нахождения из трех произвольных чисел A, B, C, задающих длины сторон треугольника, самую длинную сторону, если треугольник существует, в противном случае функция должна возвратить значение -3. Заголовок функции, который должен иметь вид: Function fun3(a,b,c), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B6 значение введите в ответ теста. | Решение: Public Function fun3(a As Double, b As Double, c As Double) As Double Dim m As Double If b + c > a And c + a > b And a + b > c Then If a > b Then m = a Else m = b End If If c > m Then fun3 = c Else fun3 = m End If Else fun3 = -3 End If End Function Ответ: 7 |
Определить значения следующего арифметического выражения на VBA: 2 \ 4 * 2 + 15 mod 3 | Ответ: 0 |
В книге Excel «Данные к тесту VBA» из учебных материалов к модулю, составьте функцию VBA с именем fun3 для нахождения из трех произвольных чисел A, B, C минимального значения. Заголовок функции, который должен иметь вид: Function fun3(a,b,c), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B6 значение введите в ответ теста. | Решение: Public Function fun3(a As Double, b As Double, c As Double) Dim m As Double If a < b Then m = a Else: m = b End If If c < m Then fun3 = c Else: fun3 = m End If End Function |
Если значение переменной а равно 20, то какое значение получит переменная b при выполнении оператора: Select Case a Case 5 b = 1 Case 3 to 15 b = 2 Case Is > 5 b = 3 Case 2, 4, 6, 8, 10, 20 b = 4 End Select | Ответ: 3 |
В книге Excel «Данные к тесту VBA» из учебных материалов к модулю, составьте функцию в модуле 1 с именем fun1 на VBA (вставьте нужные операторы в заголовки уже созданной функции), которая вычисляет выражение по формуле: (1-x)^2 fun1 = ———- + (x-2)^3 2 + 3x На листе 1 книги выполните функцию и полученное в ячейке B4 значение введите в ответ теста. Дробная часть числа от целой отделяется запятой. | |
В книге Excel «Данные к тесту VBA» из вспомогательного материала к тесту, составьте функцию в модуле 1 с именем fun2 на VBA (вставьте нужные операторы в загововки функции созданной функции), которая вычисляет выражение по формуле: если x > 2, то fun2=(1-2x)/(2-x), иначе fun2=cos(x)+1. На листе 1 книги выполните функцию и полученное в ячейке B5 значение, округленное до сотых, введите в ответ теста. Дробная часть числа от целой отделяется запятой. | |
В книге Excel «Данные к тесту VBA» из учебных материалов к модулю, составьте функцию VBA с именем fun3 для нахождения минимального произведения двух чисел из трех произвольных чисел A, B, C. Заголовок функции, который должен иметь вид: Function fun3(a,b,c), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B6 значение введите в ответ теста. | |
В книге Excel «Данные к тесту VBA» из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun1 (вставьте нужные операторы в заголовки уже созданной функции), которая вычисляет выражение по формуле: (1-x)^2 fun1 = ———- 2 + 3x | Ответ: -4,75 |
Какое значение получит переменная S после выполнения группы операторов VBA: S = 1 For i = 2 To 5 Step -2 S = S — i Next i | Ответ: 1 |
Какое значение получит переменная S после выполнения группы операторов VBA: S = 1 For i = 5 To 2 Step 2 S = S + i Next i | Ответ: 1 |
Дана последовательность операторов VBA: x = 2 While x > 4 x = x + 1 Wend Определить значение переменной x после их выполнения | Ответ: 2 |
Дана последовательность операторов VBA: x = 2 While x < 4 x = x + 1 Wend Определить значение переменной x после их выполнения | Ответ: 4 |
В книге Excel «Данные к тесту VBA» из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun4, которая вычисляет сумму S=2^2-4^2+6^2-. +30^2. Заголовок функции, который должен иметь вид: Function fun4(), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B7 значение введите в ответ теста. | Решение: Public Function fun4() Dim s1 As Double, i1 As Integer, s2 As Double, i2 As Integer s1 = 0 i1 = 2 While i1 Ответ: 672 |
В книге Excel «Данные к тесту VBA» из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun4, которая вычисляет сумму S=2^2-3^2+4^2-. +20^2. Заголовок функции, который должен иметь вид: Function fun4(), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B7 значение введите в ответ теста. | Решение: Public Function fun4() Dim s1 As Double, i1 As Integer, s2 As Double, i2 As Integer s1 = 0 i1 = 2 While i1 Ответ: 295,4 |
В книге Excel «Данные к тесту VBA» из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun4, которая вычисляет сумму S=1-2^3+3^3-. -20^3. Заголовок функции, который должен иметь вид: Function fun4(), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B7 значение введите в ответ теста. | Решение: Public Function fun4() Dim s1 As Double, i1 As Integer, s2 As Double, i2 As Integer s1 = 0 i1 = 1 While i1 Ответ: -6020 |
В книге Excel «Данные к тесту VBA» из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun4, которая вычисляет сумму S=2^2-3^2+4^2-. +30^2. Заголовок функции, который должен иметь вид: Function fun4(), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B7 значение введите в ответ теста. | Решение: Public Function fun4() Dim s1 As Double, i1 As Integer, s2 As Double, i2 As Integer s1 = 0 i1 = 2 While i1 Ответ: 652,4 |
В книге Excel «Данные к тесту VBA» из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun4, которая вычисляет сумму S=1+2^2+3^2-. +25^2. Заголовок функции, который должен иметь вид: Function fun4(), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B7 значение введите в ответ теста. | Решение: Public Function fun4() Dim s As Double, i As Integer s = 0 i = 1 While i Ответ: 7735 |
В книге Excel «Данные к тесту VBA» из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun5, которая вычисляет сумму S=1-2^3+3^3-. -n^3. Заголовок функции, который должен иметь вид: Function fun5(n), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B8 значение введите в ответ теста. | Решение: Public Function fun5(n As Integer) As Integer Dim s1 As Double, i1 As Integer, s2 As Double, i2 As Integer s1 = 0 i1 = 1 While i1 Ответ: -23 |
В книге Excel «Данные к тесту VBA» из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun5, которая вычисляет сумму S=1-2^2+3^2-. -n^2. Заголовок функции, который должен иметь вид: Function fun5(n), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B8 значение введите в ответ теста. | Решение: Public Function fun5(n As Integer) As Integer Dim s1 As Double, i1 As Integer, s2 As Double, i2 As Integer s1 = 0 i1 = 1 While i1 Ответ: -8 |
В книге Excel «Данные к тесту VBA» из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun6, которая вычисляет сумму n первых натуральных чисел Фибоначчи. Заголовок функции, который должен иметь вид: Function fun6(n), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B9 значение введите в ответ теста. | Решение: Public Function fun6(n As Double) As Double Dim s As Double, p As Integer, i As Integer, k As Integer s = 0 p = 1 i = 1 For k = 1 To n s = p + i p = i i = s Next k fun6 = s — 1 End Function Ответ:381 |
В книге Excel «Данные к тесту VBA» из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun7, которая вычисляет сумму квадратов цифр заданного числа n. Заголовок функции, который должен иметь вид: Function fun7(n), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B10 значение введите в ответ теста. | Решение: Public Function fun7(ByVal n As Long) As Double n = Abs(n) Dim p p = 0 While n <> 0 p = p + (n Mod 10) ^ 2 n = n \ 10 Wend fun7 = p End Function Ответ: 4 |
В книге Excel «Данные к тесту VBA» из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun7, которая вычисляет произведение цифр заданного числа n. Заголовок функции, который должен иметь вид: Function fun7(n), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B10 значение введите в ответ теста. | Решение: Public Function fun7(ByVal n As Long) As Double n = Abs(n) Dim p p = 0 While n <> 0 p = p *n Mod 10 n = n \ 10 Wend fun7 = p End Function Ответ: 2 |
01.03.2016 29.23 Кб 143 Access.Всё вместе.docx
01.03.2016 194.05 Кб 533 Excel.Ответы.doc
Оператор Dim (Visual Basic)
Объявляет и выделяет дисковое пространство для одной или нескольких переменных.
Синтаксис
[ ] [ accessmodifier ] [[ Shared ] [ Shadows ] | [ Static ]] [ ReadOnly ] Dim [ WithEvents ] variablelist
Компоненты
- attributelist Необязательный элемент. См. раздел Список атрибутов.
- accessmodifier Необязательный элемент. Может применяться один из перечисленных ниже типов.
- Public
- Защищены
- Друг
- Частная
- Protected Friend
- Частная защищенная
Комментарии
Компилятор Visual Basic использует Dim оператор для определения типа данных переменной и других сведений, например, о том, какой код может получить доступ к переменной. В следующем примере объявляется переменная для хранения Integer значения.
Dim numberOfStudents As Integer
Можно указать любой тип данных или имя перечисления, структуры, класса или интерфейса.
Dim finished As Boolean Dim monitorBox As System.Windows.Forms.Form
Для ссылочного типа используется New ключевое слово для создания нового экземпляра класса или структуры, указанного типом данных. Если используется New , выражение инициализатора не используется. Вместо этого вы предоставляете аргументы, если они необходимы, конструктору класса, из которого создается переменная.
Dim bottomLabel As New System.Windows.Forms.Label
Переменную можно объявить в процедуре, блоке, классе, структуре или модуле. Нельзя объявить переменную в исходном файле, пространстве имен или интерфейсе. Дополнительные сведения см. в разделе Контексты объявления и уровни доступа по умолчанию.
Переменная, объявленная на уровне модуля вне любой процедуры, является переменной-членом или полем. Переменные-члены находятся в область по всему классу, структуре или модулю. Переменная, объявленная на уровне процедуры, является локальной переменной. Локальные переменные находятся в область только в рамках процедуры или блока.
Для объявления переменных вне процедуры используются следующие модификаторы доступа: Public , Protected , Friend , Protected Friend и Private . Дополнительные сведения см. в разделе Уровни доступа в Visual Basic.
Ключевое слово Dim является необязательным и обычно опущен, если указан какой-либо из следующих модификаторов: Public , Protected , Friend , Protected Friend , Private Static ReadOnly Shared Shadows или . WithEvents
Public maximumAllowed As Double Protected Friend currentUserName As String Private salary As Decimal Static runningTotal As Integer
Если Option Explicit параметр включен (по умолчанию), компилятору требуется объявление для каждой используемой переменной. Дополнительные сведения см. в разделе Оператор Option Explicit.
Указание начального значения
Вы можете присвоить значение переменной при ее создании. Для типа значения инициализатор используется для предоставления выражения, присваиваемого переменной. Выражение должно вычисляться до константы, которую можно вычислить во время компиляции.
Dim quantity As Integer = 10 Dim message As String = "Just started"
Если указан инициализатор, а тип данных не указан в As предложении , для вывода типа данных из инициализатора используется вывод типа. В следующем примере и num1 строго num2 типизированы как целые числа. Во втором объявлении вывод типа выводит тип из значения 3.
' Use explicit typing. Dim num1 As Integer = 3 ' Use local type inference. Dim num2 = 3
Вывод типа применяется на уровне процедуры. Он не применяется за пределами процедуры в классе, структуре, модуле или интерфейсе. Дополнительные сведения о выводе типа см. в разделах Оператор вывода вариантов и Вывод локального типа.
Сведения о том, что происходит, когда тип данных или инициализатор не указан, см. в разделе Типы данных и значения по умолчанию далее в этом разделе.
Инициализатор объектов можно использовать для объявления экземпляров именованных и анонимных типов. Следующий код создает экземпляр класса и использует инициализатор объектов для инициализации Student свойств.
Dim student1 As New Student With
Объявление нескольких переменных
Можно объявить несколько переменных в одном операторе объявления, указав имя переменной для каждой из них и следуя за каждым именем массива с круглыми скобками. Переменные разделяются запятыми.
Dim lastTime, nextTime, allTimes() As Date
При объявлении нескольких переменных с одним As предложением невозможно предоставить инициализатор для этой группы переменных.
Вы можете указать разные типы данных для разных переменных, используя отдельное As предложение для каждой объявленной переменной. Каждая переменная принимает тип данных, указанный в первом As предложении, обнаруженном после его variablename части.
Dim a, b, c As Single, x, y As Double, i As Integer ' a, b, and c are all Single; x and y are both Double
Массивы
Можно объявить переменную для хранения массива, который может содержать несколько значений. Чтобы указать, что переменная содержит массив, следуйте сразу за ним variablename с круглыми скобками. Дополнительные сведения см. в руководстве по работе с массивами.
Можно указать нижнюю и верхнюю границы каждого измерения массива. Для этого включите boundslist внутри круглых скобок. Для каждого измерения boundslist задает верхнюю и при необходимости нижнюю границу. Нижняя граница всегда равна нулю независимо от того, указываете ли вы ее или нет. Каждый индекс может отличаться от нуля до его верхнего граничного значения.
Следующие два оператора эквивалентны. Каждый оператор объявляет массив из 21 Integer элемента. При доступе к массиву индекс может варьироваться от 0 до 20.
Dim totals(20) As Integer Dim totals(0 To 20) As Integer
Следующая инструкция объявляет двумерный массив типа Double . Массив содержит 4 строки (3 + 1) из 6 столбцов (5 + 1) каждый. Обратите внимание, что верхняя граница представляет максимально возможное значение индекса, а не длину измерения. Длина измерения равна верхней границе плюс единица.
Dim matrix2(3, 5) As Double
Массив может иметь от 1 до 32 измерений.
Вы можете оставить все границы пустыми в объявлении массива. В этом случае массив имеет указанное количество измерений, но он не инициализируется. Он имеет значение , пока вы не инициализируете Nothing по крайней мере некоторые из его элементов. Оператор Dim должен указывать границы для всех измерений или без измерений.
' Declare an array with blank array bounds. Dim messages() As String ' Initialize the array. ReDim messages(4)
Если массив содержит несколько измерений, необходимо включить запятые между круглыми скобками, чтобы указать количество измерений.
Dim oneDimension(), twoDimensions(,), threeDimensions(,,) As Byte
Можно объявить массив нулевой длины , объявив одно из измерений массива равным -1. Переменная, содержащая массив нулевой длины, не имеет значения Nothing . Массивы нулевой длины требуются определенными функциями среды CLR. При попытке получить доступ к такому массиву возникает исключение среды выполнения. Дополнительные сведения см. в статье Arrays (C++/CLI and C++/CX) (Массивы (C++/CLI и C++/CX)).
Значения массива можно инициализировать с помощью литерала массива. Для этого заключите значения инициализации в фигурные скобки ( <> ).
Dim longArray() As Long =
Для многомерных массивов инициализация для каждого отдельного измерения заключена в фигурные скобки во внешнем измерении. Элементы указываются в порядке основной строки.
Dim twoDimensions(,) As Integer = , >
Дополнительные сведения о литералах массива см. в разделе Массивы.
Типы данных и значения по умолчанию
В следующей таблице перечислены результаты различных сочетаний заданных типов данных и инициализаторов в операторе Dim .
Если параметры Option Infer и Option Strict отключены, переменная получает тип данных Object .
Если указать тип данных, но не указать инициализатор, Visual Basic инициализирует переменную значением по умолчанию для ее типа данных. В следующей таблице показаны значения инициализации по умолчанию.
Тип данных Значение по умолчанию Все числовые типы (включая Byte и SByte ) 0 Char Двоичное значение 0 Все ссылочные типы (включая Object , String и все массивы) Nothing Boolean False Date 12:00 1 января года 1 (01.01.0001 00:00) Каждый элемент структуры инициализируется как отдельная переменная. Если объявить длину массива, но не инициализировать его элементы, каждый элемент инициализируется так, как если бы он был отдельной переменной.
Статическое время существования локальной переменной
Время Static существования локальной переменной превышает время существования процедуры, в которой она объявлена. Границы времени существования переменной зависят от того, где объявлена процедура и является Shared ли она .
Объявление процедуры Инициализированная переменная Переменная останавливает существующую В модуле При первом вызове процедуры При остановке выполнения программы В классе или структуре процедура имеет значение . Shared При первом вызове процедуры для определенного экземпляра либо для самого класса или структуры При остановке выполнения программы В классе или структуре процедура не является Shared При первом вызове процедуры для определенного экземпляра При освобождении экземпляра для сборки мусора (сборка мусора) Атрибуты и модификаторы
Атрибуты можно применять только к переменным-членам, но не к локальным переменным. Атрибут вносит сведения в метаданные сборки, которые не имеют значения для временного хранилища, например локальных переменных.
На уровне модуля нельзя использовать модификатор Static для объявления переменных-членов. На уровне процедуры нельзя использовать Shared модификаторы доступа , Shadows , ReadOnly , WithEvents или любые модификаторы доступа для объявления локальных переменных.
Вы можете указать, какой код может получить доступ к переменной, указав accessmodifier . Переменные-члены класса и модуля (за пределами любой процедуры) по умолчанию — закрытый доступ, а переменные-члены структуры — общедоступный доступ. Уровни доступа можно настроить с помощью модификаторов доступа. Модификаторы доступа нельзя использовать для локальных переменных (внутри процедуры).
Можно указать WithEvents только переменные-члены, а не локальные переменные внутри процедуры. При указании WithEvents типа данных переменной должен быть определенный тип класса, а не Object . Нельзя объявить массив с WithEvents помощью . Дополнительные сведения о событиях см. в разделе События.
Код за пределами класса, структуры или модуля должен квалифицировать имя переменной-члена именем этого класса, структуры или модуля. Код за пределами процедуры или блока не может ссылаться ни на какие локальные переменные в этой процедуре или блоке.
Освобождение управляемых ресурсов
Сборщик мусора платформа .NET Framework удаляет управляемые ресурсы без дополнительного написания кода с вашей стороны. Однако можно принудительно удалить управляемый ресурс, а не ждать сборщика мусора.
Если класс удерживает особенно ценный и ограниченный ресурс (например, подключение к базе данных или дескриптор файла), возможно, не потребуется ждать следующей сборки мусора, чтобы очистить экземпляр класса, который больше не используется. Класс может реализовать IDisposable интерфейс для предоставления способа освобождения ресурсов перед сборкой мусора. Класс, реализующий этот интерфейс, предоставляет Dispose метод, который можно вызвать для немедленного принудительного освобождения ценных ресурсов.
Оператор Using автоматизирует процесс получения ресурса, выполнения набора инструкций и последующего удаления ресурса. Однако ресурс должен реализовывать IDisposable интерфейс . Дополнительные сведения см. в разделе Оператор using.
Пример 1
В следующем примере переменные объявляются с помощью оператора с различными Dim параметрами.
' Declare and initialize a Long variable. Dim startingAmount As Long = 500 ' Declare a local variable that always retains its value, ' even after its procedure returns to the calling code. Static totalSales As Double ' Declare a variable that refers to an array. Dim highTemperature(31) As Integer ' Declare and initialize an array variable that ' holds four Boolean check values. Dim checkValues() As Boolean =
Пример 2
В следующем примере перечислены простое число от 1 до 30. Область локальных переменных описаны в комментариях к коду.
Public Sub ListPrimes() ' The sb variable can be accessed only ' within the ListPrimes procedure. Dim sb As New System.Text.StringBuilder() ' The number variable can be accessed only ' within the For. Next block. A different ' variable with the same name could be declared ' outside of the For. Next block. For number As Integer = 1 To 30 If CheckIfPrime(number) = True Then sb.Append(number.ToString & " ") End If Next Debug.WriteLine(sb.ToString) ' Output: 2 3 5 7 11 13 17 19 23 29 End Sub Private Function CheckIfPrime(ByVal number As Integer) As Boolean If number < 2 Then Return False Else ' The root and highCheck variables can be accessed ' only within the Else block. Different variables ' with the same names could be declared outside of ' the Else block. Dim root As Double = Math.Sqrt(number) Dim highCheck As Integer = Convert.ToInt32(Math.Truncate(root)) ' The div variable can be accessed only within ' the For. Next block. For div As Integer = 2 To highCheck If number Mod div = 0 Then Return False End If Next Return True End If End Function
Пример 3
В следующем примере speedValue переменная объявляется на уровне класса . Для Private объявления переменной используется ключевое слово. Доступ к переменной можно получить с помощью любой Car процедуры в классе .
' Create a new instance of a Car. Dim theCar As New Car() theCar.Accelerate(30) theCar.Accelerate(20) theCar.Accelerate(-5) Debug.WriteLine(theCar.Speed.ToString) ' Output: 45
Public Class Car ' The speedValue variable can be accessed by ' any procedure in the Car class. Private speedValue As Integer = 0 Public ReadOnly Property Speed() As Integer Get Return speedValue End Get End Property Public Sub Accelerate(ByVal speedIncrease As Integer) speedValue += speedIncrease End Sub End Class
См. также раздел
- Оператор Const
- Оператор reDim
- Оператор Option Explicit
- Оператор Option Infer
- Оператор Option Strict
- Страница "Компиляция" в конструкторе проектов (Visual Basic)
- Объявление переменной
- Массивы
- Инициализаторы объектов: именованные и анонимные типы
- Анонимные типы
- Инициализаторы объектов: именованные и анонимные типы
- Практическое руководство. Объявление объекта с помощью инициализатора объектов
- Вывод локального типа
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
The .NET documentation is open source. Provide feedback here.
Обратная связь
Отправить и просмотреть отзыв по
Какое значение получит переменная s после выполнения группы операторов vba
Извините, запрашиваемая Вами страница не найдена. Проверьте адрес веб-страницы
420043, г. Казань, ул.Зеленая, 1
+7 (843) 510-46-01
info@kgasu.ru
Приемная комиссия:
+7 (843) 510-46-50- 420043, г. Казань, ул.Зеленая, 1
- +7 (843) 510-46-01
- info@kgasu.ru
- Приемная комиссия:
+7 (843) 510-46-50
- Поступающему
- Студенту
- Сотруднику
- Выпускнику
- Заказчику
- Институты
- Институт Строительства
- Институт Архитектуры и Дизайна
- Институт Строительных Технологий и Инженерно-Экологических Систем
- Институт Транспортных Сооружений
- Институт Экономики и Управления в Строительстве
- Институт Дополнительного профессионального образования
- Научно-образовательные центры КГАСУ
- Институт Строительства
- Институт Архитектуры и Дизайна
- Институт Строительных Технологий и Инженерно-Экологических Систем
- Институт Транспортных Сооружений
- Институт Экономики и Управления в Строительстве
- Институт Дополнительного профессионального образования
- Научно-образовательные центры
- Сведения об образовательной организации
- Политика в отношении обработки персональных данных
- Минобрнауки РФ
- Рособрнадзор
- Минпросвещения России
Вопрос 23
В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun1 (вставьте нужные операторы в заголовки уже созданной функции), которая вычисляет выражение по формуле: (1-x)^2 fun1 = ---------- 2 + 3x Ответ: - 4,75
Тест 5.2-5.3
1) Какое значение получит переменная S после выполнения группы операторов VBA: S = 1 For i = 2 To 5 Step -2 S = S - i Next i Ответ: 1 Какое значение получит переменная S после выполнения группы операторов VBA: S = 1 For i = 5 To 2 Step 2 S = S + i Next i Ответ: 1 2) Дана последовательность операторов VBA: x = 2 While x > 4 x = x + 1 Wend Определить значение переменной x после их выполнения Ответ: 2 3) Дана последовательность операторов VBA: x = 2 While x < 4 x = x + 1 Wend Определить значение переменной x после их выполнения Ответ: 4 6) В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun4, которая вычисляет сумму S=2^2-4^2+6^2-. +30^2. Заголовок функции, который должен иметь вид: Function fun4(), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B7 значение введите в ответ теста. Решение: Public Function fun4() Dim s1 As Double, i1 As Integer, s2 As Double, i2 As Integer s1 = 0 i1 = 2 While i1 <= 30 s1 = s1 + i1 ^ 2 i1 = i1 + 4 Wend s2 = 0 i2 = 4 While i2 <= 28 s2 = s2 + i2 ^ 2 i2 = i2 + 4 Wend fun4 = s1 - s2 End Function Ответ: 672 7) В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun4, которая вычисляет сумму S=2^2-3^2+4^2-. +20^2. Заголовок функции, который должен иметь вид: Function fun4(), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B7 значение введите в ответ теста. Решение: Public Function fun4() Dim s1 As Double, i1 As Integer, s2 As Double, i2 As Integer s1 = 0 i1 = 2 While i1 <= 20 s1 = s1 + i1 ^ 2 i1 = i1 + 2 Wend s2 = 0 i2 = 3 While i2 <= 19 s2 = s2 + i2 ^ 2 i2 = i2 + 2 Wend fun4 = s1 - s2 End Function Ответ: 295,4 8) В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun4, которая вычисляет сумму S=1-2^3+3^3-. -20^3. Заголовок функции, который должен иметь вид: Function fun4(), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B7 значение введите в ответ теста. Решение: Public Function fun4() Dim s1 As Double, i1 As Integer, s2 As Double, i2 As Integer s1 = 0 i1 = 1 While i1 <= 19 s1 = s1 + i1 ^ 3 i1 = i1 + 2 Wend s2 = 0 i2 = 2 While i2 <= 20 s2 = s2 + i2 ^ 3 i2 = i2 + 2 Wend fun4 = s1 - s2 End Function Ответ: -6020 9) В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun4, которая вычисляет сумму S=2^2-3^2+4^2-. +30^2. Заголовок функции, который должен иметь вид: Function fun4(), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B7 значение введите в ответ теста. Решение: Public Function fun4() Dim s1 As Double, i1 As Integer, s2 As Double, i2 As Integer s1 = 0 i1 = 2 While i1 <= 30 s1 = s1 + i1 ^ 2 i1 = i1 + 2 Wend s2 = 0 i2 = 3 While i2 <= 29 s2 = s2 + i2 ^ 2 i2 = i2 + 2 Wend fun4 = s1 - s2 End Function Ответ: 652,4 10) В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun4, которая вычисляет сумму S=1+2^2+3^2-. +25^2. Заголовок функции, который должен иметь вид: Function fun4(), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B7 значение введите в ответ теста. Решение: Public Function fun4() Dim s As Double, i As Integer s = 0 i = 1 While i <= 25 s = s + i ^ 2 i = i + 2 Wend fun4 = s End Function Ответ: 7735 11) В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun5, которая вычисляет сумму S=1-2^3+3^3-. -n^3. Заголовок функции, который должен иметь вид: Function fun5(n), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B8 значение введите в ответ теста. Решение: Public Function fun5(n As Integer) As Integer Dim s1 As Double, i1 As Integer, s2 As Double, i2 As Integer s1 = 0 i1 = 1 While i1 <= n s1 = s1 + i1 ^ 3 i1 = i1 + 2 Wend s2 = 0 i2 = 2 While i2 <= n s2 = s2 + i2 ^ 3 i2 = i2 + 2 Wend fun5 = s1 - s2 End Function Ответ: -23 12) В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun5, которая вычисляет сумму S=1-2^2+3^2-. -n^2. Заголовок функции, который должен иметь вид: Function fun5(n), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B8 значение введите в ответ теста. Решение: Public Function fun5(n As Integer) As Integer Dim s1 As Double, i1 As Integer, s2 As Double, i2 As Integer s1 = 0 i1 = 1 While i1 <= n s1 = s1 + i1 ^ 2 i1 = i1 + 2 Wend s2 = 0 i2 = 2 While i2 <= n s2 = s2 + i2 ^ 2 i2 = i2 + 2 Wend fun5 = s1 - s2 End Function Ответ: -8 13) В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun6, которая вычисляет сумму n первых натуральных чисел Фибоначчи. Заголовок функции, который должен иметь вид: Function fun6(n), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B9 значение введите в ответ теста. Решение: Public Function fun6(n As Double) As Double Dim s As Double, p As Integer, i As Integer, k As Integer s = 0 p = 1 i = 1 For k = 1 To n s = p + i p = i i = s Next k fun6 = s - 1 End Function Ответ:381 14) В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun7, которая вычисляет сумму квадратов цифр заданного числа n. Заголовок функции, который должен иметь вид: Function fun7(n), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B10 значение введите в ответ теста. Решение: Public Function fun7(ByVal n As Long) As Double n = Abs(n) Dim p p = 0 While n <>0 p = p + (n Mod 10) ^ 2 n = n \ 10 Wend fun7 = p End Function Ответ: 4 15) В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun7, которая вычисляет произведение цифр заданного числа n. Заголовок функции, который должен иметь вид: Function fun7(n), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B10 значение введите в ответ теста. Решение: Public Function fun7(ByVal n As Long) As Double n = Abs(n) Dim p p = 0 While n <> 0 p = p *n Mod 10 n = n \ 10 Wend fun7 = p End Function Ответ: 2 Задание 1 В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте функцию VBA с именем Fun9, которая в заданном диапазоне Листа Excel вычисляет количество четных чисел диапазона. Заголовок функции, который должен иметь вид: Function fun9(A As Variant), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B12 значение введите в ответ теста. Решение: Public Function fun9(a As Variant) As Double Dim s As Double, i As Variant s = 0 For Each i In a If i Mod 2 = 0 Then s = s + 1 Next i fun9 = s End Function Ответ: 7 Задание 2 В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте подпрограмму VBA с именем Proc1, которая в диапазоне K1:L4 активного Листа Excel находит наименьшее число. Результат процедура должна вернуть в ячейку B14. Заголовок процедуры, который должен иметь вид: Procedure Proc1(), уже создан в модуле 2, необходимо только записать тело процедуры. На листе 1 книги выполните подрограмму и полученное в ячейке B14 значение введите в ответ теста. Решение: Public Sub Proc1() Dim a As Range, i As Variant, s As Double Set a = Range("K1:L4") Min = a(1, 1) For Each i In a If i < Min Then Min = i Next i Cells(14, 2).Value = Min End Sub Ответ: -2 Задание 3 В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте подпрограмму VBA с именем Proc2, которая в выделенном диапазоне активного Листа Excel вычисляет количество четных положительных чисел. Результат процедура должна вернуть в ячейку B15. Заголовок процедуры, который должен иметь вид: Procedure Proc2(), уже создан в модуле 2, необходимо только записать тело процедуры. На листе 1 книги выполните подрограмму и полученное в ячейке B15 значение введите в ответ теста. Решение: Public Sub Proc2() Dim a As Range, i As Variant, s As Double Set a = Selection s = 0 For Each i In a If i Mod 2 = 0 And i >0 Then s = s + 1 Next i Cells(15, 2).Value = s End Sub Ответ: 7 Задание 4 В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте функцию VBA с именем Fun10, которая в заданном диапазоне активного Листа Excel вычисляет сумму чисел, кратных заданному числу К. Заголовок функции, который должен иметь вид: Function fun10(A As Variant, K), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B13 значение введите в ответ теста. Решение: Public Function fun10(a As Variant, k As Double) Dim s As Double, i As Variant c = 0 For Each i In a If i Mod k = 0 Then s = s + i Next i fun10 = s End Function Ответ: 5 Задание 5 В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте функцию VBA с именем Fun9, которая в заданном диапазоне Листа Excel вычисляет сумму положительных чисел диапазона. Заголовок функции, который должен иметь вид: Function fun9(A As Variant), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B12 значение введите в ответ теста. Решение: Public Function fun9(a As Variant) As Double Dim s As Double, i As Variant s = 0 For Each i In a If i > 0 Then s = s + i Next i fun9 = s End Function Ответ:25 Задание 7 В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте подпрограмму VBA с именем Proc2, которая в выделенном диапазоне активного Листа Excel вычисляет сумму четных отрицательных чисел. Результат процедура должна вернуть в ячейку B15. Заголовок процедуры, который должен иметь вид: Procedure Proc2(), уже создан в модуле 2, необходимо только записать тело процедуры. На листе 1 книги выполните подрограмму и полученное в ячейке B15 значение введите в ответ теста. Решение: Public Sub Proc2() Dim a As Range, i As Variant, s As Double Set a = Selection s = 0 For Each i In a If i Mod 2 = 0 And i < 0 Then s = s + i Next i Cells(15, 2).Value = s End Sub Ответ: -6 Задание 8: В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте функцию VBA с именем Fun9, которая в заданном диапазоне Листа Excel вычисляет количество положительных чисел диапазона. Заголовок функции, который должен иметь вид: Function fun9(A As Variant), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B12 значение введите в ответ теста. Решение: Public Function fun9(a As Variant) As Double Dim s As Double, i As Variant s = 0 For Each i In a If i >0 Then s = s + 1 Next i fun9 = s End Function Ответ: 8 Задание 9: В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте подпрограмму VBA с именем Proc1, которая в диапазоне K1:N4 активного Листа Excel вычисляет сумму отрицательных чисел. Результат процедура должна вернуть в ячейку B14. Заголовок процедуры, который должен иметь вид: Procedure Proc1(), уже создан в модуле 2, необходимо только записать тело процедуры. На листе 1 книги выполните подрограмму и полученное в ячейке B14 значение введите в ответ теста. Решение: Public Sub Proc1() Dim a As Range, i As Variant, s As Double Set a = Range("K1:N4") s = 0 For Each i In a If i < 0 Then s = s + i Next i Cells(14, 2).Value = s End Sub Ответ: -6 Задание 10: В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте подпрограмму VBA с именем Proc2, которая в выделенном диапазоне активного Листа Excel находит наибольшее число. Результат процедура должна вернуть в ячейку B15. Заголовок процедуры, который должен иметь вид: Procedure Proc2(), уже создан в модуле 2, необходимо только записать тело процедуры. На листе 1 книги выполните подрограмму и полученное в ячейке B15 значение введите в ответ теста. Решение: Public Sub Proc2() Dim a As Range, i As Variant, s As Double Set a = Selection Max = a(1, 1) For Each i In a If i >Max Then Max = i Next i Cells(15, 2).Value = Max End Sub Ответ: 140 Задание 1,2 В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, доработайте пользовательскую форму VBA с именем UserForm2 (уже создана), которая на интервале от M до N находит сумму простых чисел. Результат должен быть получен в текстовом поле TextBox3 (Результат). Имена полей, форм и кнопок изменять не надо. Требуется только написать операторы в тело процедуры кнопки Выполнить, уже созданой в форме UserForm2. На листе 1 книги выполните форму UserForm2 и полученное в ячейке B19 значение введите в ответ теста. Решение: Открываем Userform2, 2 раза щёлкаем по кнопке Выполнить Сначала пишем прогу для простых чисел Public Function prostoe(ByVal n As Long) As Boolean Dim i As Long prostoe = True If n > 1 Then For i = 2 To Sqr(n) If n Mod i = 0 Then prostoe = False Exit For End If Next i Else prostoe = False End If End Function Потом пишем форму Private Sub CommandButton1_Click() m = Val(TextBox1.Text) n = Val(TextBox2.Text) Dim i As Long, s As Double s = 0 For i = m To n If prostoe(i) = True Then s = s + i Next i TextBox3.Text = Format(s) End Sub Нажимаем выполнить UserForm2 и, в появившемся окне, нажимаем на выполнить Ответ: Сумма простых : 72 Если нужно найти количество , то вместо этого If prostoe(i) = True Then s = s + i, пишем If prostoe(i) = True Then s = s + 1 Ответ: Количество : 6 Задание 3,4. В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, доработайте пользовательскую форму VBA с именем UserForm1 (уже создана), которая среди трех заданых в форме чисел A, B, C , задающих коэффициенты квадратного уравнения, находит сумму корней уравнения. Если корней не существует, возвращает сово "нет". Результат должен быть получен в текстовом поле TextBox4 (Результат). Имена полей, форм и кнопок изменять не надо. Требуется только написать операторы в тело процедуры кнопки Выполнить, уже созданой в форме UserForm1. На листе 1 книги выполните форму UserForm1 и полученное в ячейке B18 значение введите в ответ теста. Решение: Private Sub CommandButton1_Click() a = Val(TextBox1.Text) b = Val(TextBox2.Text) c = Val(TextBox3.Text) Dim d As Double, x1 As Double, x2 As Double, s As Double d = b ^ 2 - 4 * a * c If d >= 0 Then x1 = (-b + Sqr(d)) / (2 * a) x2 = (-b - Sqr(d)) / (2 * a) s = x1 + x2 TextBox4.Text = Format(s) Else TextBox4.Text = "Нет" End If End Sub Ответ: 8 Если произведение корней, то вместо этого s = x1 + x2, пишем s = x1 * x2 Ответ: 15 Задание 1 В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun1_1 (вставьте нужные операторы в загововки уже созданной функции), которая вычисляет выражение по формуле: 1-x^2 fun1_1 = ---------- 2 - 3x На листе 1 книги выполните функцию и полученное в ячейке B4 значение введите в ответ теста. Дробная часть числа от целой отделяется запятой. Правильно 1 / 1 Решение: Public Function fun1_1(x) fun1_1 = (1 - x ^ 2) / (2 - 3 * x) End Function Задание 2 В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun5_1, которая вычисляет сумму S=1-2^3+3^3-. -n^3. Заголовок функции, который должен иметь вид: Function fun5_1(n), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B8 значение введите в ответ теста. Правильно 1 / 1 Решение: Public Function fun5_1(N As Integer) Dim s As Double Dim i As Integer Dim z As Integer s = 0 z = 1 For i = 1 To N s = s + z * (i ^ 3) z = -z Next i fun5_1 = s End Function Задание: В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun8_1, которая подсчитывает количество русских букв "а" и "е" в заданом тексте S. Заголовок функции, который должен иметь вид: Function fun8_1(S As String), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B11 значение введите в ответ теста. Правильно 1 / 1 Решение: Public Function fun8_1(s As String) Dim i As Integer Dim p As Integer p = 0 For i = 1 To Len(s) If Mid(s, i, 1) = "a" Then p = p + 1 ElseIf Mid(s, i, 1) = "e" Then p = p + 1 End If Next i fun8_1 = p End Function Задание: В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA с именем fun3_1 для нахождения из трех произвольных чисел A, B, C суммы двух найбольших чисел. Заголовок функции, который должен иметь вид: Function fun3_1(a,b,c), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B6 значение введите в ответ теста. Решение: Public Function fun3_1(a, b, c) If a < b Then fun3_1 = c + b Else If b < c Then fun3_1 = c + a Else fun3_1 = b + a End If End If End Function Задание: В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте подпрограмму VBA с именем Proc1, которая в диапазоне L1:R4 активного Листа Excel находит наибольшее число. Результат процедура должна вернуть в ячейку B14. Заголовок процедуры, который должен иметь вид: Procedure Proc1(), уже создан в модуле 2, необходимо только записать тело процедуры. На листе 1 книги выполните подрограмму и полученное в ячейке B14 значение введите в ответ теста. Решение: Public Sub Proc1() Dim a As Range, i As Variant, s As Double Set a = Range("L1:R4") Max = a(1, 1) For Each i In a If i >Max Then Max = i Next i Cells(14, 2).Value = Max End Sub Задание: В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, доработайте пользовательскую форму VBA с именем UserForm2 (уже создана), которая на отрезке [m+20;n] находит сумму простых чисел. Результат должен быть получен в текстовом поле TextBox3 (Результат). Имена полей, форм и кнопок изменять не надо. Требуется только написать операторы в тело процедуры кнопки Выполнить, уже созданой в форме UserForm2. На листе 1 книги выполните форму UserForm2 и полученное в ячейке B19 значение введите в ответ теста. Решение: Private Sub CommandButton1_Click() M = Val(TextBox1.Text) + 20 N = Val(TextBox2.Text) Dim i As Long, s As Double s = 0 For i = M To N If prostoe(i) = True Then s = s + i Next i TextBox3.Text = Format(s) End Sub Private Sub CommandButton2_Click() UserForm2.Hide End Sub Public Function prostoe(ByVal N As Long) As Boolean Dim i As Long prostoe = True If N > 1 Then For i = 2 To Sqr(N) If N Mod i = 0 Then prostoe = False Exit For End If Next i Else prostoe = False End If End Function Задание: В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun7_1, которая вычисляет количество простых чисел на отрезке [10..N]. Заголовок функции, который должен иметь вид: Function fun7_1(n), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B10 значение введите в ответ теста. Решение: Public Function fun7_1(n As Long) Dim s As Long Dim i As Long Dim str As String s = 0 str = 0 For i = 10 To n For j = 1 To i If i Mod j = 0 Then s = s + 1 End If Next j If s = 2 Then str = str + 1 s = 0 Next i fun7_1 = str End Function Задание: В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию в модуле 1 с именем fun1_1 на VBA (вставьте нужные операторы в загововки уже созданной функции), которая вычисляет выражение по формуле: (2x+1)^2 fun1_1 = ------------ - (x+2)^3 x+1 На листе 1 книги выполните функцию и полученное в ячейке B4 значение введите в ответ теста. Решение: Public Function fun1_1(x As Double) As Double fun1_1 = (((2 * x + 1) ^ 2) / (x + 1)) - ((x + 2) ^ 3) End Function=>