Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Visual Basic .NET Рандомное название файла https://www.cyberforum.ru/ vb-net/ thread1004895.html
После скачивания файл как я сделал имеет название download .Беда в том что если захотеть скачать ещё какой нибудь файл и не удалить тот который сидит в папке то .net выдаст ошибку что такой файл уже есть.Можно ли как нибудь сделать любое название скачанного файла чтобы не повторялось?
Visual Basic .NET Открыть папку в проводнике программно
Пишу программу которая скачивает по прямой ссылке файл.И хочу чтобы при нажатие на кнопки открывалась папка где лежать сохраненные файлы.Пусть папка будет c:\Papka Добавлено через 1 минуту А все не надо.Вспомнил :) Process.Start("c:\Papka") Вот вылаживаю в студию исходник что затевал.Строго не судите.Писал для интереса
Visual Basic .NET Как в цикле нарисовать новую линию между двумя объектами Имеется процедура выполняющая выставление кнопок в TabPage и все это в цикле. Dim Con As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & My.Application.Info.DirectoryPath & "\DB_RSMU.accdb") ' Переменная для подключения базы Dim SqlCom As OleDb.OleDbCommand ' Переменная для Sql запросов Dim DT As New Data.DataTable ' Таблица для хранения результатов... https://www.cyberforum.ru/ vb-net/ thread1004510.html Visual Basic .NET Как при клики мышкой по TabControl1 вывести координаты клика мышки https://www.cyberforum.ru/ vb-net/ thread1004199.html
Имеется процедура 'при нажатии на кнопку миши дает ее координаты Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown If Form5.Mous_activ = 1 Then Form5.Label9.Text = e.X Form5.Label10.Text = e.Y MsgBox(e.X & " X " & e.Y) Form5.Show() End If End...
Visual Basic .NET Клик по id на сайте через webbrowser при нажатии на кнопку
Как реализовать клик по ссылке, если известен ID этого span в котором находится текст? На форме есть кнопка и окно браузера, по нажатию на кнопку нужно чтобы в webbrowser тыкнулась ссылка с определенным id. <span class="test" id="test_id">Клик сюда</span>
Visual Basic .NET Рисование на форме графика https://www.cyberforum.ru/ vb-net/ thread1003887.html
Добрый вечер, форумчане:) Мне нужно "нарисовать" на форме (на PictureBox'е) график, не математический (x,y,z). Нарисовать сам график и кривую линию показывающую изменения я могу, я так думаю, а вот как мне вписать значения, в боковую и нижнюю грань графика, я не знаю. Лейблы использовать не вариант. Кто поможет?
Visual Basic .NET Когда используется byval и когда byref https://www.cyberforum.ru/ vb-net/ thread1003599.html
когда используется byval и когда byref
Visual Basic .NET Не скрывается главная форма
Привет ребят... У меня есть 2 формы Открываю 2 форму по нажатию кнопки на 1 1 должна скрыться (hide) Но она не скрывается Пробывал такие вещи: form1.hide() form1.close() form1.visible = false
Visual Basic .NET Нужен пример работы с базой данных MS Access https://www.cyberforum.ru/ vb-net/ thread1002903.html
Здравствуйте. Люди, дайте, пожалуйста, простой пример работы с базой данных Access через VB.Net. В датагрид надо вывести данные из запроса. Запрос на основе двух таблиц - одна главная, вторая просто справочная. Не дам ладу, как это сделать и как данные изменять и сохранять. ФАК по добавлению, редактированию, удалению данных читал. Очень прошу дать пример именно как проект+база. Литературы...
Visual Basic .NET Добавление события к программно созданному элементу управления Доброго времени суток. Обращаюсь на форум с таким вопросом: к примеру у меня есть код на программное добавление элемента управления на форму Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click box.BackColor = Color.Black box.Location = New System.Drawing.Point(0, 0) Me.Controls.Add(box) End Sub каким образом можно к... https://www.cyberforum.ru/ vb-net/ thread1002776.html
Сортировка списков в VB.Net Visual Basic .NET
Допустим, есть два листбокса: в первом — города, во втором — температуры в этих городах. Свойство Sorted обоих списков установлено в False. Теперь для списка городов я меняю это свойство на True, соответственно, города сортируются по алфавиту. Как сделать так, чтобы температуры, так сказать, следовали за городами? Иным словами, если до сортировки город, скажем, Москва был третьим в списке городов...
Visual Basic .NET При создании и открытии файла вылетает ошибка При создании и открытие файла вылетает ошибка, как сделать чтоб ее не было, возможно изменить тип файла?...помогите пожалуйста буду очень благодарен... https://www.cyberforum.ru/ vb-net/ thread1002484.html
8943 / 4855 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
12.11.2013, 23:51 0

из String в Double - Visual Basic .NET - Ответ 5327140

12.11.2013, 23:51. Показов 4172. Ответов 20
Метки (Все метки)

Ответ

Я всё-таки ещё раз прошу обратить внимание на уже готовый класс для вычисления выражений, записанных в виде строки. Приведу ещё раз класс:
Вычисление строковых выражений
VB.NET
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
Public Class ReversePolishNotation
#Region " Поля и свойства "
    'Операторы арифметических действий
    Private Const OPERATORS As String = "+-*/^"
    Private _expression As String
    ''' <summary>
    ''' Исходное выражение
    ''' </summary>
    Public Property Expression() As String
        Get
            Return _expression
        End Get
        Set(ByVal value As String)
            _expression = value
        End Set
    End Property
 
    Private _rpnexpression As String
    ''' <summary>
    ''' Выражение записанное в обратной польской нотации
    ''' </summary>
    Public Property RpnExpression() As String
        Get
            Return _rpnexpression
        End Get
        Set(ByVal value As String)
            _rpnexpression = value
        End Set
    End Property
 
    Private _result As Double
    ''' <summary>
    ''' Вычисленный результат
    ''' </summary>
    Public Property Result() As Double
        Get
            Return _result
        End Get
        Set(ByVal value As Double)
            _result = value
        End Set
    End Property
    'Стек для хранения выражения в ОПН
    Private _rpn As Stack
#End Region
 
    Public Sub New(expression As String)
        _expression = expression
        _rpn = New Stack()
        _rpnexpression = String.Empty
        ConvertToRPN()
        CalculRPN()
    End Sub
    ''' <summary>
    ''' Процедура преобразования в ОПН
    ''' </summary>
    Private Sub ConvertToRPN()
        Dim operand As New List(Of String) 'Список для операторов и операндов
        'Перенос из строки в список. Нужно, чтобы правильно распознать дробные числа
        For Each c As Char In _expression
            'Последнее значение списка
            If operand.Count = 0 Then
                If Not Char.IsDigit(c) And Not IsOperator(c) Then
                    operand.Add("0" & Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator)
                Else
                    operand.Add(c)
                End If
                Continue For
            End If
 
            Dim lastValue As String = operand.Item(operand.Count - 1)
            If IsOperator(c) Then
                operand.Add(c)
            Else
                If IsOperator(lastValue(lastValue.Length - 1)) Then
                    If Not Char.IsDigit(c) Then
                        operand.Add("0" & Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator)
                    Else
                        operand.Add(c)
                    End If
 
                Else
                    'Самое важное. Ради этого весь цикл и затеивался. Определяем введённый десятичный разделитель и,
                    'если он не соответствует системному, то вместо него записывается системный
                    If Not Char.IsDigit(c) And c <> Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator Then
                        operand.Item(operand.Count - 1) &= IIf(IsOperator(lastValue(lastValue.Length - 1)), "0", "") & Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator
                    Else
                        operand.Item(operand.Count - 1) &= IIf(IsOperator(lastValue(lastValue.Length - 1)), "0", "") & c.ToString()
                    End If
                End If
            End If
        Next
 
        Dim stack As New Stack() 'Вспомогательный стек
 
        'Само преобразование в ОПН
        For Each c As String In operand
            'Если символ является цифрой или открывающей скобкой, то просто помещаем его в основной стек
            If Char.IsDigit(c) Then
                _rpn.Push(c)
                Continue For
            ElseIf c = "(" Then
                stack.Push(c)
                Continue For
            End If
            'Если символ является арифметическим оператором
            If OPERATORS.Contains(c) Then
                'Проверка приоритетов
                If stack.Count > 0 AndAlso Priority(c) <= Priority(stack.Peek) Then
                    'Если стек не пустой и приоритет текущего оператора меньше или равен приоритету
                    'оператора в стеке, то оператор из временного стека помещаем в основной стек,
                    'а текущий оператор помещаем во вспомогательный стек
                    _rpn.Push(stack.Pop)
                    stack.Push(c)
                Else
                    'Иначе оператор просто помещается во вспомогательный стек
                    stack.Push(c)
                End If
                Continue For
            End If
            'Если символ является закрывающей скобкой
            If c = ")" Then
                'То перемещаем всё из вспомогательного стека в основной, пока не встретится открывающая скобка
                While stack.Peek <> "("
                    _rpn.Push(stack.Pop)
                End While
                'Удаляем открывающую скобку из вспомогательного стека
                stack.Pop()
            End If
        Next
        'Перенос всех операторов из вспомогательного стека в основной
        While (stack.Count <> 0)
            'Проверка, что во вспомогательном стеке остались только операторы. Иначе -  исключение
            If (OPERATORS.IndexOf(stack.Peek) = -1) Then
                Throw New Exception(String.Format("В выражении {0} не согласованы скобки.", _expression))
            End If
            _rpn.Push(stack.Pop)
        End While
        stack = _rpn.Clone
        'Переписываем стек в строку
        While (stack.Count <> 0) : _rpnexpression = stack.Pop.ToString() & " " & _rpnexpression.Trim() : End While
    End Sub
    ''' <summary>
    ''' Вычисление выражение в ОПН
    ''' </summary>
    Private Sub CalculRPN()
        'Клон основного стека. Если всё сделано правильно, то
        'после работы процедуры в нём будет храниться результат выражения
        Dim stack As Stack = _rpn.Clone
        Dim tempstack As Stack = New Stack 'Вспомогательный стек
        'Перегоняем из основного стека во вспомогательный в обратном порядке
        While (stack.Count > 0)
            tempstack.Push(stack.Pop)
        End While
        'Чтение вспомогательного стека. Т.е. ОПН читается слева-направо
        While (tempstack.Count > 0)
            'Цифру помещаем в основной стек
            If Char.IsDigit(tempstack.Peek) Then
                stack.Push(tempstack.Pop)
                Continue While
            End If
            'Если оператор, то выполняем соответствующее действие над последними двумя цифрами из основного стека
            If (OPERATORS.Contains(tempstack.Peek)) Then
                Dim temp As String
                temp = Calcul(Double.Parse(stack.Pop.ToString), Double.Parse(stack.Pop.ToString), tempstack.Pop.ToString)
                stack.Push(temp)
            End If
        End While
        If stack.Count = 1 Then
            _result = Double.Parse(stack.Pop)
        Else
            Throw New Exception("Несогласованное выражение")
        End If
    End Sub
 
    Private Function Calcul(b As Double, a As Double, action As String) As String
        Dim result As String = String.Empty
        Select Case action
            Case "+"
                result = (a + b).ToString()
            Case "-"
                result = (a - b).ToString()
            Case "*"
                result = (a * b).ToString()
            Case "/"
                If b = 0 Then Throw New ArgumentException("Деление на ноль")
                result = (a / b).ToString()
            Case "^"
                result = Math.Pow(a, b).ToString
        End Select
        Return result
    End Function
 
    Private Function Priority(c As String) As Integer
        Dim result As Integer = 0
        Select Case c.ToString
            Case "*", "/"
                result = 2
            Case "^"
                result = 3
            Case "+", "-"
                result = 1
        End Select
        Return result
    End Function
 
    Private Function IsOperator(c As Char) As Boolean
        Return "+-*/^()".Contains(c)
    End Function
End Class

Если ты хочешь посчитать своё выражение, то нужно записать:
VB.NET
1
2
3
Dim rpn As New ReversePolishNotation(твоя_строка_с_выражением)
'Показываем результат
MessageBox.Show(rpn.Result.ToString())
Всё. Код достаточно прокомментирован, чтобы при желании разобраться

Вернуться к обсуждению:
из String в Double Visual Basic .NET
1
Заказать работу у эксперта
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.11.2013, 23:51
Готовые ответы и решения:

Конвертирование числа double в hex string и обратно
Нашел отличный код ' This uses .NET converters to convert from double to hex string and back ...

Кортежи: Не удается неявно преобразовать тип "System.Tuple<double, double>" в "string"
Помогите.Как устранить ошибку? Ошибка CS0029 Не удается неявно преобразовать тип...

Ошибки error C2296: -: недопустимо, левый операнд имеет тип "double (__cdecl *)(double,double,double
Думаю из-за polp #include&lt;iostream&gt; #include&lt;cmath&gt; #include&lt;cstdlib&gt; using namespace std;...

String в double если string имеет значение "0.95+0.95*3-2"
Добрый день. Столкнулся с такой проблемой у меня есть textbox в которое вводят не число, а...

20
12.11.2013, 23:51
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.11.2013, 23:51
Помогаю со студенческими работами здесь

String в double если string имеет значение "0.95+0.95*3-2"
Добрый день. Столкнулся с такой проблемой у меня есть textbox в которое вводят не число, а...

Double/string
Здравствуйте! Есть десятичные координаты с точкой: 104.160009, хрянятся в string'овой переменной....

string в double
допустим, считываем строку: &quot;32,21&quot; как эту строку разделить на два числа, по запятой, и...

String в Double
Всем привет! Пишу программу на CLR и в виджете textbox у меня вводится математическое...

0
Новые блоги и статьи
Что такое хорошо и что такое плохо, вид сбоку. Индивид и общество - грань не нарушения.
Hrethgir 18.01.2025
В моей личной жизни и времени, я рассуждаю категорией "хуже-лучше", в том плане, когда меня спросили например - "а зачем ты делаешь свой процессор?", то я ответил - "чтобы сделать свою жизнь лучше". . .
Передача по ссылке или по значению в Java?
InfoMaster 18.01.2025
В мире программирования на Java одним из ключевых аспектов, требующих глубокого понимания, является механизм передачи параметров в методы. Этот фундаментальный концепт часто становится источником. . .
Тернарный условный оператор в Python
InfoMaster 18.01.2025
В мире программирования существует множество инструментов и конструкций, позволяющих создавать эффективный и лаконичный код. Одним из таких инструментов является тернарный условный оператор, который. . .
Как удалить неотслеживаемые файлы из рабочего дерева Git
InfoMaster 18.01.2025
В процессе разработки программного обеспечения с использованием системы контроля версий Git часто возникает необходимость в управлении неотслеживаемыми файлами. Неотслеживаемые файлы (untracked. . .
Что делает код if __name__ == "__main__": в Python
InfoMaster 18.01.2025
В мире программирования на Python существует множество важных концепций, и одной из наиболее интересных является конструкция if __name__ == "__main__". Эта специальная конструкция играет ключевую. . .
Как заставить Git забыть об отслеживаемом файле, добавленном в .gitignore
InfoMaster 18.01.2025
В мире разработки программного обеспечения система контроля версий Git стала неотъемлемой частью рабочего процесса, позволяя эффективно отслеживать изменения в коде и управлять ими. Однако. . .
Что означает use strict в JavaScript и для чего используется
InfoMaster 18.01.2025
В мире современной веб-разработки JavaScript играет ключевую роль как один из основных языков программирования. По мере его эволюции возникла необходимость в механизмах, которые помогли бы. . .
Как работать со скрытыми (hidden) элементами в jQuery
InfoMaster 18.01.2025
В современной веб-разработке управление видимостью элементов на странице является одним из ключевых аспектов создания интерактивных пользовательских интерфейсов. jQuery предоставляет мощный набор. . .
Как переключаться между ветками (Branch) с помощью checkout в Git
InfoMaster 18.01.2025
Ветки в Git являются одной из ключевых концепций для управления версионностью кода, позволяя разработчикам эффективно работать в команде и параллельно развивать программные проекты. Каждый новый. . .
Что такое стек и куча, чем они отличаются и где находятся
InfoMaster 18.01.2025
Понимание основных концепций памяти в программировании В мире современного программирования эффективное управление памятью играет ключевую роль в создании производительных и надежных приложений. . . .
Как использовать комментарии в JSON
InfoMaster 18.01.2025
JSON (JavaScript Object Notation) представляет собой легкий и широко используемый формат обмена данными, который стал стандартом де-факто для веб-приложений и программных интерфейсов. При работе с. . .
Как заставить git pull перезаписать локальные файлы в Git
InfoMaster 18.01.2025
Проблема перезаписи локальных файлов в Git При работе с системой контроля версий Git разработчики часто сталкиваются с ситуацией, когда необходимо синхронизировать локальный репозиторий с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru