Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Помогите, очень очень нужна помощь. Добавлено: 10.02.10 14:13  

Автор вопроса:  Stravto
Дело в общем вот в чем, девушка, которая мне очень нравиться, учится в университете на гуманитарной специальности (заочное отделение) и у них на информатике решили, что они освоят работу с VBA в Excel 2003. Я сказал что возмусь помочь, но как оказалось не один из моих знакомых не взялся решить задачи, сам по специальности я историк. Я далеко не ламер в компьютерах, но самостоятельно понять многие моменты я не в могу. Прошу!!! Помгите пожалуйста с решением задач по VBA. Очень хочу выглядеть в хорошем свете, перед любимой.
Задание №1
a) В VBA создать пользовательскую функцию.
b) Произвести несколько расчетов функции при различных значениях аргумента.
c) На Листе1 оформить таблицу с исходными данными и результатами расчета.

Y=(1+X)/(1+корень квадратный из (2+X+X в квадрате)).

Задание №2
a) В VBA создать пользовательскую функцию y = f(a, b).
b) Вычисление y производить с использованием нескольких операторов и получением промежуточных значений (функцию разбить на логически самостоятельные части).
c) Значения а и b для тестирования подбирать таким образом, чтобы значение y легко проверялось.
d) Произвести несколько расчетов функции y: для значений а и b с легкой проверкой результата и варианта, приведенного в таблице.
e) На Листе1 оформить таблицу с исходными данными и результатами расчета.

Y= f(a,b) (0,75*e в степени (1-b) + 0,31*e в степени (1-a))/(0,731+sin в квадрате (b/a пи)) Где значение а=4 b = 3,141

Задание №3
a) В VBA создать пользовательскую функцию.
b) Произвести несколько расчетов функции при различных значениях аргумента.
c) На Листе1 оформить таблицу с исходными данными и результатами расчета.

F(t) = фигурная скобка (сверху (t-1) в степени 3/2 после нее a <, либо равно t > либо равно 10). (Снизу (t+1) в степени 3/2 после нее 10 пи t < либо равно b) где a=5 b=15.

Задание №4
В VBA создать макрос, выполняющий следующие операции:
Преобразовать одномерный числовой массив: от каждого элемента отнять среднее арифметическое всех элементов.

Задание №5
В VBA создать макрос, выполняющий следующие операции:
Во введенном тексте подсчитать количество буквенных символов и количество разделителей (. , ; : ").

Заранее огромнейшее спасибо, не дайте погибнуть.

Задания все есть в электронном виде, просто все формулы в картинках.

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #1
Добавлено: 10.02.10 22:56
Как романтично!

1. Сделал с обработкой ошибок на тот случай, если что-то недопустимое в параметре введут
  1. Option Explicit
  2.  
  3. Public Function СУПЕРФУНКЦИЯ(x As Variant) As Variant
  4.     If IsNumeric(x) Then
  5.         If 2 + x + x ^ 2 >= 0 Then
  6.             СУПЕРФУНКЦИЯ = (1 + x) / (1 + (2 + x + x ^ 2) ^ 0.5)
  7.         Else
  8.             СУПЕРФУНКЦИЯ = "Ошибочка вышла..."
  9.         End If
  10.     Else
  11.         СУПЕРФУНКЦИЯ = "Ошибочка вышла..."
  12.     End If
  13. End Function

Ответить

Номер ответа: 2
Автор ответа:
 Stravto



Вопросов: 1
Ответов: 1
 Профиль | | #2 Добавлено: 11.02.10 05:09
Спасибо огромное! За ответ!

Ответить

Номер ответа: 3
Автор ответа:
 Fatty



Вопросов: 0
Ответов: 55
 Профиль | | #3 Добавлено: 11.02.10 14:31
#4, #5

''(задание №4)
Public Function ChangeArray(source As Variant) As Variant
    Dim count As Integer
    count = UBound(source) + 1
    Dim aver As Double
    aver = Summing(source) / count
    Dim i As Integer
    For i = LBound(source) To UBound(source)
        source(i) = source(i) - aver
    Next
    ChangeArray = source
End Function


Public Function Summing(source As Variant) As Double
    Summing = 0#
    Dim i As Integer
    For i = LBound(source) To UBound(source)
        Summing = Summing + CDbl(source(i))
    Next
End Function

''(Задание №5)
Public Function CountChars(s As String) As Variant
    Dim letters As Integer
    Dim dots As Integer
    Dim commas As Integer
    Dim colons As Integer
    Dim semicolons As Integer
    Dim subs As String
    Dim i As Integer

    For i = 1 To Len(s)
        subs = Mid(s, i, 1)
        Select Case subs
        Case Is = "."
            dots = dots + 1
        Case Is = ","
            commas = commas + 1
        Case Is = ":"
            colons = colons + 1
        Case Is = ";"
            semicolons = semicolons + 1
        Case Else
            letters = letters + 1
        End Select
    Next
    Dim result(0 To 5) As Integer
    result(0) = letters
    result(1) = dots
    result(2) = commas
    result(3) = colons
    result(4) = semicolons

    CountChars = result

End Function

''(Тест)
Public Sub test()
    Dim arr As Variant
    Dim i As Integer
    ''(Тест задания №4)
    arr = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
    
    Dim res As Variant
    res = ChangeArray(arr)
    For i = LBound(res) To UBound(res)
        Debug.Print (res(i))
    Next
    ''(Тест задания №5)
    Dim s As String
    
    s = ".,,,;make:;,.love:.::;;;not,,,...;;war;;"
    
    Dim sarr As Variant
    sarr = CountChars(s)
    MsgBox "String Length :        " & vbTab & Len(s) & vbCr & _
           "Number of letters : " & vbTab & sarr(0) & vbCr & _
           "Number of dots :     " & vbTab & sarr(1) & vbCr & _
           "Number of commas : " & vbTab & sarr(2) & vbCr & _
           "Number of double colons : " & vbTab & sarr(3) & vbCr & _
           "Number of semicolons : " & vbTab & sarr(4)

End Sub


~'J'~

Ответить

Номер ответа: 4
Автор ответа:
 Fatty



Вопросов: 0
Ответов: 55
 Профиль | | #4 Добавлено: 11.02.10 15:27
№2

Option Explicit

Sub test2()

Dim a As Double
Dim b As Double
Dim y As Double
Dim i As Integer

a = 4
b = 3.141
y = UserFunction(a, b)
MsgBox Round(y, 12)
Dim rng As Range
Set rng = Sheets(1).Cells(1, 1)
rng.Cells(1, 1) = "a"
rng.Cells(1, 2) = "b"
rng.Cells(1, 3) = "Y"
For i = 2 To 10
rng.Cells(i, 1) = a
rng.Cells(i, 2) = b
rng.Cells(i, 3) = UserFunction(a, b)
a = a + 1
b = b + 0.1
Next

End Sub

Public Function Pow(num As Double, expt As Double) As Double
    Pow = num ^ expt
End Function

Public Function UserFunction(a As Double, b As Double)
Dim e As Double
e = 2.718282
UserFunction = 0.75 * Pow(e, 1 - b) + (0.31 * Pow(e, 1 - a)) / (0.731 + Pow(Sin(b / (a * Math.Atn(1#))), 2))
End Function


~'J'~

Ответить

Номер ответа: 5
Автор ответа:
 Nace



ICQ: 552796038 

Вопросов: 0
Ответов: 5
 Web-сайт: нет
 Профиль | | #5
Добавлено: 17.02.10 20:39
Народ нужна помощь с 5 задачками можете помочь

1.Даны три числа A,B,C. Вывести на эран среднее арифметическое для чётных чисел. Если чётных чисел нет, то вывести на экран сообщение (Нет чётных чисел).
2.Даны натуральные числа х и N(x>N).Если х равно одному из чисел N!/1, N!/2, N!/3,.....N!/N, то вывести на экран сообщение (Да), иначе - сообщение (Нет)
3.Вывести на экран все натуральные числа A,B,C, удовлетворяющее уравнению A^2+B^2=C^2, условию А<B и меньше 20.
4.Рассмотрим область |х|+|у|<1 и прямую Ax+By=1. Даны числа A и B.Если область и прямаюя имеют общую точку, то вывести на экран сообщение (Да),иначе - сообщение (Нет).
5. Даны шесть действительных чисел a,b,c,d,e,f, которые являются координатами R(a,b),S(c,d),T(e,f)трёх точек R,S и T на плоскости.Если точка T лежит выше прямой, проходящей через две другие точки, то вывести на экран сообщение (Да), иначе - сообщение (Нет)

Вот такие задачи нужна помощь, надо в VBa написать а у меня не получается. Кто может помочь написать код и объяснить

Ответить

Номер ответа: 6
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #6
Добавлено: 18.02.10 01:03
Nace,
1. Создавайте собственную тему для своих вопросов, так как по отношению к авторам других тем так поступать неправильно.
2. Неясно, о каком VB идет речь: VB6, VBA, VBScript, VB.NET (какой версии).
3. Непонятен Ваш уровень, так как вы не показали, что можете и что именно у вас не получается.
4. Хотите ускорить - дайте какую-то мотивацию ребятам. Лично я предпочитаю материальную ))

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам