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

Построить таблицу значений. Не работает с шагом в виде десятичной дроби

29.01.2012, 01:53. Показов 2427. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
надо построить таблицу значений. не работает с шагом в виде десятичной дроби. подскажите плз почему.
где ошибка?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub задача1()
    Dim x0 As Integer, xn As Integer
    Dim dx As Single, x As Single, y As Single
    x0 = InputBox("ââåäèòå õ íà÷àëüíîå", "ââîä ïàðàìåòðîâ")
    xn = InputBox("ââåäèòå õ êîíå÷íîå", "ââîä ïàðàìåòðîâ")
    dx = InputBox("ââåäèòå øàã", "ââîä ïàðàìåòðîâ")
  For x = x0 To xn Step dx
    If x <= 0 Then
    y = Cos(x)
    Else: y = Exp(x) / Sqr(x)
    End If
    Debug.Print y
    Next x
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.01.2012, 01:53
Ответы с готовыми решениями:

Построить таблицу значений функции с шагом
Построить таблицу значений функции y=f(x) для x принадлежит с шагом h.

Построить таблицу значений функции с шагом
Всем здравее. поможете с задачей? Методы. Постройте таблицу значений функции y=f(x) для хepsilon...

Построить таблицу значений функции “y” на отрезке [a;b] с шагом h
Построить таблицу значений функции “y” на отрезке с шагом h с приостановкой выдачи результатов...

Построить таблицу значений функции y = f (x) для x∈[a, b] с шагом h
1. Помогите пожалуйста :cry: Построить таблицу значений функции y = f (x) для x∈ с шагом h. Если...

10
761 / 268 / 57
Регистрация: 13.12.2009
Сообщений: 1,101
29.01.2012, 19:22 2
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub CommandButton1_Click()
 Dim x0 As Integer, xn As Integer
    Dim dx As Integer, x As Integer, y As Double
    x0 = InputBox("введите х начальное", "ввод параметров", -90)
    xn = InputBox("введите х конечное", "ввод параметров", 360)
    dx = InputBox("введите шаг", "ввод параметров", 10)
  For x = x0 To xn Step dx
  i = i + 1
    If x <= 0 Then
    y = Cos(x * 3.1415926 / 180)
    Else
    t = Sqr(x)
    g = Exp(x)
    y = g / t
    End If
     Cells(i, 1) = x
    Cells(i, 2) = y
    Next x
 
End Sub
так не подойдет
1
15146 / 6419 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
29.01.2012, 19:38 3
Цитата Сообщение от vdoteimp Посмотреть сообщение
не работает с шагом в виде десятичной дроби
Ввел -1, 2, 0,1 - все посчиталось. В чем проблема?
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
29.01.2012, 19:51 4
Цитата Сообщение от Казанский Посмотреть сообщение
0,1 -
видимо в зпт(т)
0
0 / 0 / 0
Регистрация: 28.01.2012
Сообщений: 13
29.01.2012, 19:55  [ТС] 5
у меня почемуто выдаёт ошибку : run-time 13 Typy mismatch. (только когда шаг - десятичная дробь)
не знаю как у тебя пошло, но всё равно спс за внимание

Добавлено через 2 минуты
Цитата Сообщение от all_angarsk Посмотреть сообщение
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub CommandButton1_Click()
 Dim x0 As Integer, xn As Integer
    Dim dx As Integer, x As Integer, y As Double
    x0 = InputBox("введите х начальное", "ввод параметров", -90)
    xn = InputBox("введите х конечное", "ввод параметров", 360)
    dx = InputBox("введите шаг", "ввод параметров", 10)
  For x = x0 To xn Step dx
  i = i + 1
    If x <= 0 Then
    y = Cos(x * 3.1415926 / 180)
    Else
    t = Sqr(x)
    g = Exp(x)
    y = g / t
    End If
     Cells(i, 1) = x
    Cells(i, 2) = y
    Next x
 
End Sub
так не подойдет
dx integer не пойдёт
с целыми и моя работает
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
29.01.2012, 19:58 6
для попробовать
Visual Basic
1
dx = Replace(InputBox("введите шаг", "ввод параметров", 10), ",", ".")
0
0 / 0 / 0
Регистрация: 28.01.2012
Сообщений: 13
29.01.2012, 20:08  [ТС] 7
нет не пошло(((
спс за внимание
попробую так сдать мб прокатит
0
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
29.01.2012, 20:13 8
Возможно, имеет место неправильно установленый разделитель дробной части.
Проверьте (для Win7): ПУСК --> Панель управления --> Часы, Язык, регион --> Язык и региональные стандарты --> Форматы --> Дополнительные параметры --> Настройка формата --> Числа --> Разделитель целой и дробной части --> должна быть запятая , (или нажмите "Сбросить").

Смените тип на Double, попробуйте выполнить этот предустановленный код (ввод в инпут.бокс дробных производится через запятую, а в коде - через точку):
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub aa()
Dim x0 As Integer, xn As Integer
Dim dx As Double, x As Double, y As Double
    x0 = InputBox("введите х начальное", "ввод параметров", -90)
    xn = InputBox("введите х конечное", "ввод параметров", 360)
    dx = InputBox("введите шаг", "ввод параметров", 0.1)
  For x = x0 To xn Step dx
  i = i + 1
    If x <= 0 Then
    y = Cos(x * 3.1415926 / 180)
    Else
    t = Sqr(x)
    g = Exp(x)
    y = g / t
    End If
     Cells(i, 1) = x
    Cells(i, 2) = y
    Next x
End Sub
Для меня все работает.
1
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
29.01.2012, 20:13 9
Цитата Сообщение от vdoteimp Посмотреть сообщение
только когда шаг - десятичная дробь
например
0
0 / 0 / 0
Регистрация: 28.01.2012
Сообщений: 13
29.01.2012, 20:28  [ТС] 10
0,1 0,2 ....... и тд

Добавлено через 8 минут
Цитата Сообщение от Diskretor Посмотреть сообщение
Возможно, имеет место неправильно установленый разделитель дробной части.
Проверьте (для Win7): ПУСК --> Панель управления --> Часы, Язык, регион --> Язык и региональные стандарты --> Форматы --> Дополнительные параметры --> Настройка формата --> Числа --> Разделитель целой и дробной части --> должна быть запятая , (или нажмите "Сбросить").

Смените тип на Double, попробуйте выполнить этот предустановленный код (ввод в инпут.бокс дробных производится через запятую, а в коде - через точку):
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub aa()
Dim x0 As Integer, xn As Integer
Dim dx As Double, x As Double, y As Double
    x0 = InputBox("введите х начальное", "ввод параметров", -90)
    xn = InputBox("введите х конечное", "ввод параметров", 360)
    dx = InputBox("введите шаг", "ввод параметров", 0.1)
  For x = x0 To xn Step dx
  i = i + 1
    If x <= 0 Then
    y = Cos(x * 3.1415926 / 180)
    Else
    t = Sqr(x)
    g = Exp(x)
    y = g / t
    End If
     Cells(i, 1) = x
    Cells(i, 2) = y
    Next x
End Sub
Для меня все работает.
спс, всё понятно. с вашим 0.1 работает,а если я ввожу тоже самое, то нет.
0
15146 / 6419 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
29.01.2012, 22:02 11
Так должно работать и с запятой, и с точкой:
Visual Basic
1
dx = val(Replace(InputBox("введите шаг", "ввод параметров", 10), ",", "."))
0
29.01.2012, 22:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2012, 22:02
Помогаю со студенческими работами здесь

Построить таблицу значений функции y=ln(x-1) для X c шагом h
Таблица значений функции 5 Постройте таблицу значений функции y=ln(x-1) для X c шагом h . Если...

Построить таблицу значений функции на интервале с шагом
Постройте таблицу значений функции y=f(x) для x∈ с шагом h. Если в некоторой точке x функция не...

Построить таблицу значений функции y=f(x) для [a, b] с шагом h
Помогите понять где тут ошибка. Построить таблицу значений функции y=f(x) для хϵ с шагом h....

Построить таблицу значений функции с заданным шагом
Доброго времени суток, уважаемые Форумчане! Вынуждена просить Вашей помощи в решении нескольких...


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

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