Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/55: Рейтинг темы: голосов - 55, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 24.12.2014
Сообщений: 15
1

Ошибка "Type-declaration character does not match declared data type"

28.12.2014, 17:44. Показов 11391. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Снова я.
Запускаю программу, а у меня выскакивает "Type-declaration character does not match declared data type" ошибка, выделяя x^(2).
Пожалуйста, объясните, в чем дело.
Visual Basic
1
2
3
Function f(ByVal x As Double) As Double
f = x^(2) * Log(x) * Exp(x)
End Function
Миниатюры
Ошибка "Type-declaration character does not match declared data type"  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.12.2014, 17:44
Ответы с готовыми решениями:

Ошибка type declaration character does not match declared data
Sub zad5() Dim S, C, N As Double N = 0 Do N = N + 1 C = N^(2) / 5 S = S + C Loop While C <...

Выводит ошибку type-declaration character does not match declared data type
Не могу понять где ошибка в программе, помогите исправить, очень нужна ваша помощь.. Sub lab4()...

Ошибка "Type-declaration character does not match declared data type"
Запускаю программу, а у меня выскакивает "Type-declaration character does not match declared data...

Ошибка при компиляции 'Type-declaration character does not match declared data type.'
Не могу понять почему на строке sInfo = Left$(sInfo, iPos - 1) при попытке компиляции выдается...

Выводит ошибку type-declaration character does not match declared data type
Не могу понять где ошибка в программе, помогите исправить, очень нужна ваша помощь..Ошибку...

12
Модератор
Эксперт MS Access
11960 / 4828 / 779
Регистрация: 07.08.2010
Сообщений: 14,138
Записей в блоге: 4
28.12.2014, 18:23 2
не годится
Visual Basic
1
dim x,y,z,a,b as double
надо объявить
Visual Basic
1
2
3
4
5
dim x as double
dim y as double
dim z as double
dim a as double
dim b as double
это не дельфи, а vba
0
0 / 0 / 0
Регистрация: 24.12.2014
Сообщений: 15
28.12.2014, 18:43  [ТС] 3
сделала, как Вы сказали, ошибка все равно вылетает :/

Добавлено через 52 секунды
да и ошибка не в sub, а в function появляется
0
Модератор
Эксперт MS Access
11960 / 4828 / 779
Регистрация: 07.08.2010
Сообщений: 14,138
Записей в блоге: 4
28.12.2014, 20:31 4
параметр в функции (ByVal x As Double)
значит и в sub должно быть (Double)

(х) не может быть нулем или очень большим

======выложите и процедуру и функцию
с рисунка мне неудобно перебивать

=====
и какие значения вы набираете при вызове процедуры
0
0 / 0 / 0
Регистрация: 24.12.2014
Сообщений: 15
28.12.2014, 20:37  [ТС] 5
я переписала программу вообще, убрала функцию. но он продолжает бузить. может, я неправильно саму формулу составила?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Sub integral()
 
Worksheets("Лист5").Activate
Cells.Clear
ActiveSheet.ChartObjects.Delete
 
    Do
      prom = InputBox("Введите начальную границу интеграла a = ")
        If Not IsNumeric(prom) Then MsgBox ("Некорретные данные! Пожалуйста, повторите ввод!")
    Loop Until IsNumeric(prom)
    a = prom
    Dim t As Double
    t = a
    
    Do
        prom = InputBox("Введите конечную границу интеграла b = ")
        If Not IsNumeric(prom) Then MsgBox ("Некорретные данные! Пожалуйста, повторите ввод!")
    Loop Until IsNumeric(prom)
    b = prom
    Dim k As Double
    k = b
    
    Do
        prom = InputBox("Введите погрешность вычисления e = ")
        If Not IsNumeric(prom) Then MsgBox ("Некорретные данные! Пожалуйста, повторите ввод!")
    Loop Until IsNumeric(prom)
    e = prom
    Dim l As Double
    l = e
    
    Range("d1") = "Лабораторная №9"
    Range("c2") = "Вычисление определенного интеграла y = x^(2) * Log(x) * Exp(x)"
    Range("e3") = "Исходные данные"
    Range("d4") = "Нижний предел интегрирования а = " & CSng(a)
    Range("d5") = "Верхний предел интегрирования b" & CSng(b)
    Range("d6") = "Погрешность вычисления е = " & CSng(e)
 
n = 8
s = 0
 
 
    Do
        s0 = s
        h = (k - t) / n
        s = 0
        x = t + h / 2
            
            Do
            s = s + (x^2 * Log(x) * Exp(x)) * h
            x = x + h
            Loop Until x >= k
            
        n = n * 2
    Loop Until Abs(s - s0) < e
    
    Cells(8, 4).Value = "Значение интеграла S = " & CSng(s)
    
    
End Sub
Миниатюры
Ошибка "Type-declaration character does not match declared data type"  
0
0 / 0 / 0
Регистрация: 24.12.2014
Сообщений: 15
28.12.2014, 20:43  [ТС] 6
значения следующие:
a = 0,5
b = 1,5
e = 0,01
0
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
28.12.2014, 20:46 7
Visual Basic
1
(x^2)*log(x)*exp(1)^x
0
Модератор
Эксперт MS Access
11960 / 4828 / 779
Регистрация: 07.08.2010
Сообщений: 14,138
Записей в блоге: 4
28.12.2014, 20:51 8
подправила процедуру

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Sub integral()
''объявила переменные
 Dim prom, a, b, e, n, s, s0, h, x
Worksheets("Лист5").Activate
Cells.Clear
''заблокировала удаление несуществующего объекта
''ActiveSheet.ChartObjects.Delete
 
    Do
''жестко присвоила значение
      'prom = InputBox("Введите начальную границу интеграла a = ")
      prom = 2
        If Not IsNumeric(prom) Then MsgBox ("Некорретные данные! Пожалуйста, повторите ввод!")
    Loop Until IsNumeric(prom)
    a = prom
    Dim t As Double
    t = a
    
    Do
        'prom = InputBox("Введите конечную границу интеграла b = ")
        prom = 3
        If Not IsNumeric(prom) Then MsgBox ("Некорретные данные! Пожалуйста, повторите ввод!")
    Loop Until IsNumeric(prom)
    b = prom
    Dim k As Double
    k = b
    
    Do
        'prom = InputBox("Введите погрешность вычисления e = ")
        prom = 0.001
        If Not IsNumeric(prom) Then MsgBox ("Некорретные данные! Пожалуйста, повторите ввод!")
    Loop Until IsNumeric(prom)
    e = prom
    Dim l As Double
    l = e
    
    Range("d1") = "Лабораторная №9"
    Range("c2") = "Вычисление определенного интеграла y = x^(2) * Log(x) * Exp(x)"
    Range("e3") = "Исходные данные"
    Range("d4") = "Нижний предел интегрирования а = " & CSng(a)
    Range("d5") = "Верхний предел интегрирования b" & CSng(b)
    Range("d6") = "Погрешность вычисления е = " & CSng(e)
 
n = 8
s = 0
 
 
    Do
        s0 = s
        h = (k - t) / n
        s = 0
        x = t + h / 2
            
            Do
            s = s + (x ^ 2 * Log(x) * Exp(x)) * h
            x = x + h
            Loop Until x >= k
            
        n = n * 2
    Loop Until Abs(s - s0) < e
    
    Cells(8, 4).Value = "Значение интеграла S = " & CSng(s)
    
    
End Sub
1
0 / 0 / 0
Регистрация: 24.12.2014
Сообщений: 15
28.12.2014, 20:57  [ТС] 9
Цитата Сообщение от SoftIce Посмотреть сообщение
(x^2)*log(x)*exp(1)^x
когда я пыталась x возводить в степень, не беря в скобку 2, он требовал доставить скобочки
0
Модератор
Эксперт MS Access
11960 / 4828 / 779
Регистрация: 07.08.2010
Сообщений: 14,138
Записей в блоге: 4
28.12.2014, 20:59 10
Лучший ответ Сообщение было отмечено crococos как решение

Решение

в ваших значениях
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Sub integral()
''объявила переменные
 Dim prom, a, b, e, n, s, s0, h, x
Worksheets("Лист5").Activate
Cells.Clear
''жестко присвоила значение
 
a = 0.5
b = 1.5
e = 0.01
''заблокировала удаление несуществующего объекта
''ActiveSheet.ChartObjects.Delete
 
    Do
prom = a
      prom = InputBox("Введите начальную границу интеграла a = ", , prom)
      
        If Not IsNumeric(prom) Then MsgBox ("Некорретные данные! Пожалуйста, повторите ввод!")
    Loop Until IsNumeric(prom)
    a = prom
    Dim t As Double
    t = a
    
    Do
     prom = b
        prom = InputBox("Введите конечную границу интеграла b = ", , prom)
       
        If Not IsNumeric(prom) Then MsgBox ("Некорретные данные! Пожалуйста, повторите ввод!")
    Loop Until IsNumeric(prom)
    b = prom
    Dim k As Double
    k = b
    
    Do
     prom = e
        prom = InputBox("Введите погрешность вычисления e = ", , prom)
       
        If Not IsNumeric(prom) Then MsgBox ("Некорретные данные! Пожалуйста, повторите ввод!")
    Loop Until IsNumeric(prom)
    e = prom
    Dim l As Double
    l = e
    
    Range("d1") = "Лабораторная №9"
    Range("c2") = "Вычисление определенного интеграла y = x^(2) * Log(x) * Exp(x)"
    Range("e3") = "Исходные данные"
    Range("d4") = "Нижний предел интегрирования а = " & CSng(a)
    Range("d5") = "Верхний предел интегрирования b=" & CSng(b)
    Range("d6") = "Погрешность вычисления е = " & CSng(e)
 
n = 8
s = 0
 
 
    Do
        s0 = s
        h = (k - t) / n
        s = 0
        x = t + h / 2
            
            Do
            s = s + (x ^ 2 * Log(x) * Exp(x)) * h
            x = x + h
            Loop Until x >= k
            
        n = n * 2
    Loop Until Abs(s - s0) < e
    
    Cells(8, 4).Value = "Значение интеграла S = " & CSng(s)
    
    
End Sub
1
0 / 0 / 0
Регистрация: 24.12.2014
Сообщений: 15
28.12.2014, 20:59  [ТС] 11
Цитата Сообщение от shanemac51 Посмотреть сообщение
''жестко присвоила значение
мне по заданию нужно обязательно осуществлять ввод с клавиатуры этих значений. нельзя так?
0
Модератор
Эксперт MS Access
11960 / 4828 / 779
Регистрация: 07.08.2010
Сообщений: 14,138
Записей в блоге: 4
28.12.2014, 21:15 12
вводите, какие хотите значения
жесткие -- служат как шаблон
0
0 / 0 / 0
Регистрация: 22.11.2016
Сообщений: 2
14.10.2018, 17:45 13
Просто знак возведения в степень используется в vba еще и в других смыслах, поэтому при возведении в степень может потребоваться отделить его от буквы пробелом
0
14.10.2018, 17:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.10.2018, 17:45
Помогаю со студенческими работами здесь

Ошибка Conversion failed when converting character string to smalldatetime data type
Всем привет, подскажите кто может с ошибкой, которая возникла у меня про отправки запроса через...

Ошибка: The conversion of a varchar data type to a datetime data type resulted in an out-of-range value
Помогите решить ошибку Если в календаре выбираю дату больше 13 выдаёт ошибку The conversion of a...

The conversion of a varchar data type to a datetime data type resulted in an out-of-range value
Пытаюсь заполнить таблицу базы данных: USE CommercialNetworkSkript GO INSERT INTO Товар...

The conversion of a nvarchar data type to a datetime data type resulted in an out-of-range value
На моем компе программа работает, а на сервере получаю ошибкуThe conversion of a nvarchar data...

Исправить функцию (couldn't match expected type with actual type)
Помогите пож-та исправить функии: getFigure x y s = let vl :: -&gt; ; vl = filter...

Couldn't match expected type [t0] with actual type 'IO String'
inputPoints :: Integer -&gt; inputPoints n | n &lt;= 0 = | otherwise = do ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru