С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.52/27: Рейтинг темы: голосов - 27, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 04.02.2010
Сообщений: 53

Как написать калькулятор, вычисляющий выражение в TextBox

11.01.2012, 19:22. Показов 5622. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем!
хочу сделать типа такого калькулятора
http://mathserfer.com/math/task.php?tname=intgdef

но не могу сообразить как посчитать из текстового поля допустим 4+1
текстбокс все вводится с помощью кнопок
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.01.2012, 19:22
Ответы с готовыми решениями:

Консольный калькулятор, вычисляющий введенное выражение
нужно написать программу-калькулятор. алгоритм: код берёт строку, находит все скобки и считает с самой внутренней потом подсчитывает...

Написать программу с рекурсивной функцией вычисляющий выражение
Написать программу с рекурсивной функцией, вычисляющей: s=cos(1+sin(2+cos(3+sin(4+cos(5+…)…)), используется n вложений.

Написать код, вычисляющий выражение по заданной формуле (тригонометрические функции)
помогите пожалуйста написать формулу в с++ \frac{1}{4}\left

30
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
11.01.2012, 19:32
С интегралами не пробывал, но 4+1 - элементарно
https://www.cyberforum.ru/visu... 87259.html
И это далеко не единственная здесь тема по данному вопросу!
1
0 / 0 / 0
Регистрация: 04.02.2010
Сообщений: 53
12.01.2012, 13:58  [ТС]
оооо, спасибо большое, все оказалось проще чем я думала!!!!

Добавлено через 17 часов 49 минут
придеться вернуться к интегралам все-таки....
метод ньютона-котеса

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
Dim a, x, s, d, ee, g, i, r, h As Double
        Dim b As Integer
        Dim c As Integer
        Dim doub As Double
        Me.txtR.Text = doub
        b = txtA.Text
        c = txtB.Text
        h = txtH.Text
        r = (c - b) / h
        g = 0
        x = a
 
        If (c - b) >= h Then
            For i = 1 To r
 
                s = AxScriptControl1.Eval(txtR.Text)
 
                d = h
                ee = s * d
                g = g + ee
                x = x + h
            Next
            txtOtv.Text = CStr(g)
        Else
            txtOtv.Text = "ОШИБКА!!!"
            MessageBox.Show("Введите правильное значение", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If
при вводе соs(х^2) выдает 0, хотя если s = Math.Cos(Math.Pow(x, 2)), то показывает норм ответ
подскажите как правильно изменить?
0
Эксперт Hardware
 Аватар для Linoge
3205 / 1915 / 324
Регистрация: 25.10.2011
Сообщений: 5,564
12.01.2012, 14:13
Может это происходит потому что x в начальный момент не определен - нет переменной a.
А может потому, что ScriptControl не умеет сам подставлять переменные.
В исходном примере было
Visual Basic
1
Label3 = ScriptControl1.Eval(Replace(Text2.Text, "x", Text1.Text))
где как раз х заменлось числовым значением.

Наверно что-то типа такого, и с a разобраться.
Visual Basic
1
s = AxScriptControl1.Eval(Replace(txtR.Text,"x",x)
0
0 / 0 / 0
Регистрация: 04.02.2010
Сообщений: 53
19.01.2012, 20:11  [ТС]
все равно не получается........
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
20.01.2012, 19:21

Не по теме:

Цитата Сообщение от VIP_Persona Посмотреть сообщение
как правильно изменить
хороший вопрос



Добавлено через 3 минуты
Visual Basic
1
2
3
4
5
t=txtR.Text
        If (c - b) >= h Then
            For i = 1 To r
              t=txtR.Text
                s = AxScriptControl1.Eval(Replace(t,"x",x)
как то так
0
0 / 0 / 0
Регистрация: 04.02.2010
Сообщений: 53
21.01.2012, 14:54  [ТС]
все равно 0 выводит...
ошибка где то ввыводе ответа, потому что когда ставлю точку останова
в строке txtOtv.Text = CStr(g) он показывает пусто ("")

Добавлено через 1 минуту
а так все считает, правильно
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
21.01.2012, 15:48
в строке txtOtv.Text = CStr(g) он показывает пусто ("")
А что там в натуре? Похоже с типами данных проблема
0
0 / 0 / 0
Регистрация: 04.02.2010
Сообщений: 53
21.01.2012, 17:50  [ТС]
ну а как сделать то?

Добавлено через 48 минут
я чуток переделала код
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
 Dim a, x, s, d, ee, g, i, r, h, t As Double
        Dim b As Integer
        Dim c As Integer
        
        b = txtA.Text
        c = txtB.Text
        h = txtH.Text
        r = (c - b) / h
        g = 0
        x = a
 
        t = txtR.Text
        If (c - b) >= h Then
            For i = 1 To r
 
                If ComboBox1.Text = ComboBox1.Items.Item(0) Then
                    's = AxScriptControl1.Eval(Replace(txtR.Text, "x", x))
                    txtR.Text = t
                    s = Math.Cos(AxScriptControl1.Eval(Replace(t, "x", x)))
                End If
 
                d = h
                ee = s * d
                g = g + ee
                x = x + h
            Next
            'g = txtOtv.Text
            MsgBox(g)
        Else
            txtOtv.Text = "ОШИБКА!!!"
            MessageBox.Show("Введите правильное значение", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If
все хорошо, правильно считает)
но когда в txtR.Text вводим допустим х, то сразу ругается...
у кого какие мысли как меня спасти???
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
21.01.2012, 18:27
Первое, что бросатся в глаза: почему такое неуважение к переменным:
a, x, s, d, ee, g, i, r, h,
Чем они так не угодили?

Visual Basic
1
2
3
t As Double
Dim b As Integer
Dim c As Integer
Они буду Вариант по умолчанию.
В принципе это не фатальная ошибка - работать будет и так

Добавлено через 3 минуты
А потом: ты программишь В блокноте или в какой-то среде?
Visual Basic
1
   MessageBox.Show("Введите правильное значение", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error)
разве это у тебя не вызвало ошибку?


Добавлено через 10 секунд
На VB это звучит примерно так?
Visual Basic
1
MsgBox "Введите правильное значение", vbCritical, "Ошибка"
0
0 / 0 / 0
Регистрация: 04.02.2010
Сообщений: 53
21.01.2012, 18:34  [ТС]
не вызвало это ошибку
ошибку выдает что текстбокс типа доубл, а х-это строка...
в студии 2005 программирую
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
21.01.2012, 18:36
в студии 2005
Пора бы понять разницу между VB и NET!!
0
0 / 0 / 0
Регистрация: 04.02.2010
Сообщений: 53
21.01.2012, 18:45  [ТС]
я так то нигде не написала что пишу в нет или на вб.
я то различаю)
это вам пора бы знать что MessageBox пишется только нет))))))))
0
41 / 39 / 7
Регистрация: 16.01.2012
Сообщений: 163
21.01.2012, 18:48
А вот тут
Visual Basic
1
 b = txtA.Text
может нужно сделать
Visual Basic
1
b=val(txtA.Text)
0
0 / 0 / 0
Регистрация: 04.02.2010
Сообщений: 53
21.01.2012, 19:07  [ТС]
Цитата Сообщение от lazy g. Посмотреть сообщение
Visual Basic
1
b=val(txtA.Text)
это что значит? с этим вообще не работает....
0
41 / 39 / 7
Регистрация: 16.01.2012
Сообщений: 163
21.01.2012, 19:21
Цитата Сообщение от VIP_Persona Посмотреть сообщение
это что значит? с этим вообще не работает....
Перевод строки в число, но это на VB... Я чет сразу не разглядел, где и что не работает

Добавлено через 6 минут
Взглянул последний выложенный код, там x=a, а переменную а нигде не задаем и она равна чему?
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
21.01.2012, 19:24
Visual Basic
1
b=val(txtA.Text)
Это работает в разделе, где ты задала вопрос!!
Ты же прораммишь в NET!!
Это совершенно другой язык(синтаксис)
0
0 / 0 / 0
Регистрация: 04.02.2010
Сообщений: 53
21.01.2012, 19:25  [ТС]
я сделала только так
VB.NET
1
2
3
4
5
6
7
8
t = Val(txtR.Text)
        If (c - b) >= h Then
            For i = 1 To r
 
                If ComboBox1.Text = ComboBox1.Items.Item(0) Then
                    t = Val(txtR.Text)
                    s = Math.Cos(AxScriptControl1.Eval(Replace(t, "x", x)))
                End If
в txtR.Text хранится х и когда он доходит до первого t = Val(txtR.Text) он еще хранит х, а когда до 2 в иф которой, то t = 0
0
41 / 39 / 7
Регистрация: 16.01.2012
Сообщений: 163
21.01.2012, 19:33
Так получается TxtR и для формулы и для X используется?!
0
0 / 0 / 0
Регистрация: 04.02.2010
Сообщений: 53
21.01.2012, 19:48  [ТС]
Цитата Сообщение от Alex77755 Посмотреть сообщение
Visual Basic
1
b=val(txtA.Text)
Это работает в разделе, где ты задала вопрос!!
Ты же прораммишь в NET!!
Это совершенно другой язык(синтаксис)
мы конечно отвлекаемся от темы....
так вышло что тема находится в этом разделе)

если вам хочется доказать какой вы умный гений, отпишитесь в майкрософт там помогут

Добавлено через 6 минут
Цитата Сообщение от lazy g. Посмотреть сообщение
Так получается TxtR и для формулы и для X используется?!
да, изначально был дан интеграл cos(x^2), потом попросили сделать подобие http://mathserfer.com/math/task.php?tname=intgdef

для начала я стала пробовать простые варианты cos(3), но теперь не могу сделать с х,
в txtr должны считаться даже такие выражения х^2+х^4

Добавлено через 3 минуты
х=а это условие в методе ньютона
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.01.2012, 19:48
Помогаю со студенческими работами здесь

Мне нужно было написать модуль вычисляющий выражение. С используя этого модуля сделать уже программу
Есть одна проблема в коде, что делать? В ответе все время выдает 0.0. Посмотрите пожалуйста. Модуль: unit modul2; interface ...

Разобрать код, вычисляющий выражение
Никак не могу понять как вычисляется данное выражение, не могли бы вы его разобрать для того чтобы я мог вникнуть: var a,b:word; ...

Описать предикат, вычисляющий заданное выражение
Здравствуйте, опишите предикат y(N), выводящий на экран результат выражения для заданного N. N целое число. ...

Запрограммировать интерпретатор ВЫЧИСЛИ, вычисляющий выражение в инфиксной записи
помогите пожалуйста с 2 задачами) 1)Запрограммировать интерпретатор ВЫЧИСЛИ, который преобразует инфиксную запись операций (например, +,...

Как написать программный код, вычисляющий значение функции для заданного пользователем аргумента
Как написать программный код, вычисляющий значение функции для заданного пользователем аргумента. Пример на картинке. Работаю на Visual...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru