Реферат: Калькулятор на VB - это легко
EndSub
Считать, считать и ещё раз считать!
Далее пользователь, скорее всего, захочет указать одно из арифметических действий: сложить, вычесть, умножить, разделить заданное число с каким-то другим. Предоставим ему такую возможность!
Здесь необходимо предусмотреть следующее: 1) пользователь может изменить выбранную операцию (не изменив до этого числа на табло), 2) если пользователь уже выбирал до этого какую-то операцию, не вычислял её значение с помощью клавиши равно или не задавал состояние первоначальной готовности, то вычисляется результат этой операции.
Легко понять, что эти особенности взаимосвязаны между собой: вторая возможна только тогда, кода пользователь не изменяет выбор операции.
Первая особенность выбора арифметического действия частично рассмотрена. Вспомним, что при указании пользователем операции программа запишет в переменную Ravno . Tag значение "второе". Таким образом, при вхождении в процедуру обработки события щелчка мыши по одной из кнопок Operacia условный оператор программного кода с помощью данной переменной проверит: "А не изменяет ли пользователь выбранную операцию?!". При отрицательном ответе с помощью переменной deystvie будет решать надо ли передавать управление процедуре вычисления значения резултата Rezultat () . В любых случаях, переменная deystvie примет значение соответствующее выбранному арифметическому действию. При этом уже знакомая нам переменная pervoe примет значение числа табло, а Ravno . Tag будет сообщать процедуре ввода числа, что вводится новое число и предоставлять возможность изменить операцию. Всё это находим в следующей процедуре:
Private Sub Operacia_Click(Index As Integer)
If Ravno.Tag = "" Then ' нет изменения выбора операции?
' если операция была задана - вычисляем её значение:
If deystvie <> "нет" Then vtoroe = Val(Tablo.Caption): rezultat
End If
Select Case Index ' запишемвыбранноедействие
Case 0
deystvie = "разделить"
Case 2
deystvie = "вычесть"
Case 4
deystvie = "сложить"
Case 5
deystvie = "умножить"
End Select
pervoe = Val(Tablo.Caption) ' первое число операции - то что на табло при выборе операции
Ravno.Tag = "второе" ' режим ввода второго числа
End Sub
Несложно догадаться, что процедура вычисления результата будет вызываться также из процедуры обработки нажатия кнопки "равно". И прежде чем рассматривать первую, напишем программный код для второй.
Сделаем так, что если: 1) второе число не введено и кнопка "равно" нажимается один раз, то значение не вычисляется, 2) если кнопка нажимается два раза подряд, то в качестве второго числа операции выбирается текущее число табло и результат вычисляется.
Во всех случаях нам будет способствовать переменная Ravno . Tag . Если она равна "второе", то это удовлетворяет первому условию. Однако чтобы реализовать второе назначим данной переменной пустой символ. И уже здесь вследствие условия положим значение переменной vtoroe число, "которое на табло" и запустим процедуру Rezultat () , затем зададим калькулятору подобие начального состояния (без отображения на табло нуля). Можно написать так:
Private Sub Ravno_Click()
If Ravno.Tag <> "второе" Then
vtoroe = Val(Tablo.Caption)