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

Калькулятор: основные арифметические операции

10.12.2010, 19:03. Показов 3918. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте)
я пишу калькулятор . но мне нужно сделать не 3 текст поля(для 1го операнда , для 2го и для ответа)
а 1
тоесть как в электроннном.
когда вводишь 1 операнд после нажатия операции должно это же поле очиститься и как -то первый операнд запомнится.. для дальнейшей с ним рботы и надо ввести 2 операнд. и после нажатия равно появится в этом же поле результат.


ввод цифр я так записала
Visual Basic
1
2
3
Private Sub Command9_Click()
Text1.Text = Text1.Text + "9"
End Sub
аналогично для других
я сделала операции корень, возв в квадрат, 1/х..
вот например
Visual Basic
1
2
3
Private Sub Command17_Click()
Text1.Text = Sqr(Text1.Text)
End Sub
тоесть при повторном нажатии должно опять брать корень
если ввести 16 сначало будет 4 потом 2 и тд (если жать на sqr)


вот меня интересует именно как реализовать * + -/
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.12.2010, 19:03
Ответы с готовыми решениями:

Арифметические операции с обыкновенными дробами
Нужно делать арифметические операции с обыкновенными дробами. Может кто знает какие-то библиотеки, классы или что нибудь связано с этим....

Арифметические операции, Алгоритм перевода
1) Арифметические операции, деление с плавающей точкой и целочисленное деление, вычисление остатка, конкатенация строк.Порядок выполнения...

Арифметические операции, выбранные из списка
разработать форму, в которой при нажатии кнопки (объект CommandButton) выполняется выбранное действие из списка. Список (объект ListBox)...

8
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
11.12.2010, 02:10
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
Option Explicit
Dim X1, X2
Dim ДЕЙСТВИЕ
Dim Результат
 
Private Sub Равно_Click()
Select Case ДЕЙСТВИЕ
 
Case "Деление"
 
Case "Умножение"
X2 = CDbl(Текст1.Text)
Результат = X1 * X2
End Select
 
Текст1.Text = Результат
End Sub
 
Private Sub Умножить_Click()
ДЕЙСТВИЕ = "Умножение"
X1 = CDbl(Текст1.Text)
Текст1.Text = ""
End Sub
1
3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 108
12.12.2010, 22:37  [ТС]
у меня на + и * всё делает как нужно- при повторном нажатии на = выполняет опятьтуже операцию с результатом прошлого действия.
а - и /
только 1 ыйраз считает
0
3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 108
16.12.2010, 01:58  [ТС]
народ, ну подскажите!
у всех в группе такая проблема, именно + и * считает, а / и - нет.
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
16.12.2010, 08:48
Код покажи
0
3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 108
19.12.2010, 16:41  [ТС]
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
Option Explicit
Dim X1, X2
Dim ДЕЙСТВИЕ
Dim Результат
 
Private Sub Command1_Click()
Select Case ДЕЙСТВИЕ
Case "Сложение"
X2 = CDbl(Text1.Text)
Результат = X1 + X2
 
Case "Сложение"
X2 = CDbl(Text1.Text)
Результат = X1 + X2
 
Case "Деление"
X2 = CDbl(Text1.Text)
Результат = X1 / X2
 
Case "Умножение"
X2 = CDbl(Text1.Text)
Результат = X1 * X2
End Select
 
Text1.Text = Результат
End Sub
 
 
 
Private Sub Command12_Click()
ДЕЙСТВИЕ = "Сложение"
X1 = CDbl(Text1.Text)
Text1.Text = ""
 
End Sub
 
Private Sub Command13_Click()
ДЕЙСТВИЕ = "Разница"
X1 = CDbl(Text1.Text)
Text1.Text = ""
End Sub
 
Private Sub Command14_Click()
ДЕЙСТВИЕ = "Деление"
X1 = CDbl(Text1.Text)
Text1.Text = ""
End Sub
 
Private Sub Command15_Click()
ДЕЙСТВИЕ = "Умножение"
X1 = CDbl(Text1.Text)
Text1.Text = ""
 
End Sub
 
Private Sub Command2_Click()
Text1.Text = Text1.Text + "1"
End Sub
 
Private Sub Command3_Click()
Text1.Text = Text1.Text + "2"
End Sub
 
Private Sub Command4_Click()
Text1.Text = Text1.Text + "3"
End Sub
 
Private Sub Command5_Click()
Text1.Text = Text1.Text + "4"
End Sub
 
Private Sub Command6_Click()
Text1.Text = Text1.Text + "5"
End Sub
 
Private Sub Command7_Click()
Text1.Text = Text1.Text + "6"
End Sub
 
Private Sub Command8_Click()
Text1.Text = Text1.Text + "7"
End Sub
 
Private Sub Command9_Click()
Text1.Text = Text1.Text + "8"
End Sub
 
Private Sub Command10_Click()
Text1.Text = Text1.Text + "9"
End Sub
 
Private Sub Command11_Click()
Text1.Text = Text1.Text + "0"
End Sub
End Sub
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
19.12.2010, 17:30
Во первых у тебя два сложения и ни одного вычитания
Во вторых надо сначала определиться что долно происходить при повторном нажатии "="
Если ты хочешь результат разделить на то же число, то это надо обработать.
У тебя по коду первое число Х1 - делимое. Принажатии ты считываешь делитель.
То есть приповторном нажатии твой код будет делить первое введенное число на результат от первого деления.Потому для обеспечения работы повторного нажатия "=" можно:
1. Создать глобальный флаг нажатия "="
2. При нажатии "=" установить
2. Вывести результат
3. При повторном нажатии проверить флаг.
4. Если установлен - считать результат в первую переменную.
При нажатии кнопки сброс или какой-то цифры - сбрасывать флаг


Не и ещё: Зачем 10 цифровых кнопок. и 10 процедур.
Соэдай 1 кнопку. поставь индекс = 0. скопипасть 9 раз А код будет 1 на все кнопки:
Visual Basic
1
2
3
Private Sub Комманда1_Click(Index As Integer)
Text1.Text = Text1.Text & Index
End Sub
0
3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 108
19.12.2010, 17:38  [ТС]
насчёт того, что два раза сумма, - я уже исправила.
насчёт 10ти кнопок- ну так же тоже можно, просто больше занимает места... ..
а вот насчёт флага.. это мне надо сделать..
подскажите как?
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
19.12.2010, 19:08
Можно примерно так:
сорани с расширением .frm и запусти
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
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
211
212
213
214
215
216
217
218
VERSION 5.00
Begin VB.Form Форма1 
   Caption         =   "Форма1"
   ClientHeight    =   7545
   ClientLeft      =   60
   ClientTop       =   450
   ClientWidth     =   8310
   LinkTopic       =   "Форма1"
   ScaleHeight     =   7545
   ScaleWidth      =   8310
   StartUpPosition =   3  'Окна По Умолчанию
   Begin VB.TextBox Text1 
      Height          =   375
      Left            =   3360
      TabIndex        =   16
      Top             =   240
      Width           =   2775
   End
   Begin VB.CommandButton Комманда2 
      Caption         =   "Комманда2"
      Height          =   495
      Left            =   240
      TabIndex        =   15
      Top             =   2400
      Width           =   615
   End
   Begin VB.CommandButton Комманда1 
      Caption         =   "9"
      Height          =   615
      Index           =   9
      Left            =   1800
      TabIndex        =   14
      Top             =   1320
      Width           =   615
   End
   Begin VB.CommandButton Комманда1 
      Caption         =   "8"
      Height          =   615
      Index           =   8
      Left            =   1200
      TabIndex        =   13
      Top             =   1320
      Width           =   615
   End
   Begin VB.CommandButton Комманда1 
      Caption         =   "7"
      Height          =   615
      Index           =   7
      Left            =   600
      TabIndex        =   12
      Top             =   1320
      Width           =   615
   End
   Begin VB.CommandButton Комманда1 
      Caption         =   "6"
      Height          =   615
      Index           =   6
      Left            =   1800
      TabIndex        =   11
      Top             =   720
      Width           =   615
   End
   Begin VB.CommandButton Комманда1 
      Caption         =   "5"
      Height          =   615
      Index           =   5
      Left            =   1200
      TabIndex        =   10
      Top             =   720
      Width           =   615
   End
   Begin VB.CommandButton Комманда1 
      Caption         =   "4"
      Height          =   615
      Index           =   4
      Left            =   600
      TabIndex        =   9
      Top             =   720
      Width           =   615
   End
   Begin VB.CommandButton Комманда1 
      Caption         =   "3"
      Height          =   615
      Index           =   3
      Left            =   1800
      TabIndex        =   8
      Top             =   120
      Width           =   615
   End
   Begin VB.CommandButton Комманда1 
      Caption         =   "2"
      Height          =   615
      Index           =   2
      Left            =   1200
      TabIndex        =   7
      Top             =   120
      Width           =   615
   End
   Begin VB.CommandButton Комманда1 
      Caption         =   "1"
      Height          =   615
      Index           =   1
      Left            =   600
      TabIndex        =   6
      Top             =   120
      Width           =   615
   End
   Begin VB.CommandButton Комманда1 
      Caption         =   "0"
      Height          =   615
      Index           =   0
      Left            =   1200
      TabIndex        =   5
      Top             =   1920
      Width           =   615
   End
   Begin VB.CommandButton Command12 
      Caption         =   "*"
      Height          =   495
      Index           =   3
      Left            =   2640
      TabIndex        =   4
      Top             =   1920
      Width           =   495
   End
   Begin VB.CommandButton Command12 
      Caption         =   "/"
      Height          =   495
      Index           =   2
      Left            =   2640
      TabIndex        =   3
      Top             =   1320
      Width           =   495
   End
   Begin VB.CommandButton Command12 
      Caption         =   "-"
      Height          =   495
      Index           =   1
      Left            =   2640
      TabIndex        =   2
      Top             =   720
      Width           =   495
   End
   Begin VB.CommandButton Command12 
      Caption         =   "+"
      Height          =   495
      Index           =   0
      Left            =   2640
      TabIndex        =   1
      Top             =   120
      Width           =   495
   End
   Begin VB.CommandButton Command1 
      Caption         =   "="
      Height          =   375
      Left            =   2640
      TabIndex        =   0
      Top             =   2520
      Width           =   495
   End
End
Attribute VB_Name = "Форма1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
 
Option Explicit
Dim X1, X2
Dim ДЕЙСТВИЕ
Dim Результат
 Dim ФЛАГ  As Boolean
 
Private Sub Command1_Click()
Select Case ФЛАГ
Case False
X2 = CDbl(Text1.Text)
Case True
X1 = CDbl(Text1.Text)
End Select
Select Case ДЕЙСТВИЕ
Case "Сложение"
Результат = X1 + X2
Case "Разница"
Результат = X1 - X2
 Case "Деление"
Результат = X1 / X2
Case "Умножение"
Результат = X1 * X2
End Select
ФЛАГ = True
 Text1.Text = Результат
End Sub
 
Private Sub Command12_Click(Index As Integer)
ФЛАГ = False
X1 = CDbl(Text1.Text)
Text1.Text = ""
Select Case Index
  Case 0
 ДЕЙСТВИЕ = "Сложение"
 Case 1
 ДЕЙСТВИЕ = "Разница"
  Case 2
 ДЕЙСТВИЕ = "Деление"
Case 3
 ДЕЙСТВИЕ = "Умножение"
End Select
End Sub
 
Private Sub Комманда1_Click(Index As Integer)
If ФЛАГ = True Then Text1.Text = "": ФЛАГ = False
Text1.Text = Text1.Text & Index
End Sub
 
Private Sub Комманда2_Click()
Text1.Text = ""
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.12.2010, 19:08
Помогаю со студенческими работами здесь

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

Создать проект «Мультисистемный калькулятор», который позволяет выполнять арифметические действия
Создать проект «Мультисистемный калькулятор», который позволяет выполнять арифметические действия, вычисление функций sin, cos, замены...

Представление целых и вещественных чисел. Основные арифметические и логические операции.
Часть 1. Вычислить площадь эллипса, если известны длины его полуосей. Какие флаги во флаговом регистре изменились при выполнении...

Реализовать калькулятор, выполняющий все арифметические действия и вычисляющий основные элементарные функции
Задание: Сделать Калькулятор, выполняющий все арифметические действия и вычисляющий основные элементарные функции.

Класс "Длинных чисел", основные арифметические операции (найти причины и способы устранения ошибки)
Всем привет:) помогите пожалуйста решить проблему: делаю класс длинных чисел, обязательно нужно использовать конструкторы(по умолчанию, с...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
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