Как создать простой калькулятор в Visual Basic 6.0
wikiHow работает по принципу вики, а это значит, что многие наши статьи написаны несколькими авторами. При создании этой статьи над ее редактированием и улучшением работали, в том числе анонимно, 12 человек(а).
Количество просмотров этой статьи: 75 378.
В этой статье:
Visual Basic 6.0 является языком программирования, разработанный Microsoft, который может легко изучить и использовать новичок, а также опытные программисты. Хотя он больше не поддерживается корпорацией Microsoft, тысячи приложений еще работают на нем и многое другое программное обеспечение все еще разрабатывается. Это руководство покажет вам, как создать простой калькулятор в Visual Basic 6.0.
- Вы также можете выбрать проект VB Enterprise Edition Project, который даст вам намного больше инструментов для работы. Для начинающего программиста предлагается использовать Standard EXE Project.
![]()
- Слева от окна находится панель инструментов. Панель инструментов содержит различные определенные заранее элементы любой программы. Вы можете перетащить эти элементы на форму.
- В нижней правой части окна находится макет формы. Это определяет, где ваша программа будет отображаться на экране после того, как проект будет завершен и выполнен.
- Посередине правее находится окно свойств, которые определяют свойство любого элемента, выбранного в форме. Вы можете изменять различные свойства, используя его. Если не выбран ни один элемент, оно отображает свойства формы.
- В правом верхнем углу находится Project Explorer. Оно показывает различные конструкции, формы, которые включены в проект.
- Если любой из этих полей отсутствует, вы можете добавить их, нажав на кнопку «View» на панели меню Menu.
![]()
- Надпись на метке можно изменить с помощью окна свойств.
![]()
Создайте текстовое поле справа от первой метки. Удалите текст, который появляется внутри текстового поля, изменив пустующее поле «Text» в окне свойств.
![]()
Создайте еще одну метку и измените заголовок на «Enter second number», и создайте еще одно текстовое поле для нее справа.
![]()
Перетащите и создайте четыре командные кнопки ниже этих двух меток. Измените заголовок этих командных кнопок на «Add», «Subtract», «Multiply», «Divide» соответственно.
![]()
Создайте еще одну метку с надписью «Result» и текстовое поле справа от нее под кнопками четырех команд. Это текстовое поле будет использоваться для отображения результата. При этом ваш проект будет завершен.
![]()
- Нажмите на список в верхнем левом углу окна кодирования. Один за другим нажимайте на все команды (Command1, Command2, и т.д.), таким образом план кодирования из них будет виден вам в вашем окне кодирования.
![]()
- Dim a, b, r as Integer
- a является величиной, введенной в первом текстовом поле, b является величиной , введенной во втором текстовом поле и r является результатом. Вы можете использовать любые другие переменные тоже.
![]()
- Private Sub Command1_Click()
a = Val(Text1.Text)
b = Val(Text2.Text)
r = a + b
Text3.Text = r
End Sub
![]()
- Private Sub Command2_Click()
a = Val(Text1.Text)
b = Val(Text2.Text)
r = a — b
Text3.Text = r
End Sub
![]()
- Private Sub Command3_Click()
a = Val(Text1.Text)
b = Val(Text2.Text)
r = a * b
Text3.Text = r
End Sub
![]()
- Private Sub Command4_Click()
a = Val(Text1.Text)
b = Val(Text2.Text)
r = a / b
Text3.Text = r
End Sub
![]()
- Протестируйте все команды и посмотрите, работает ли ваша программа.
![]()
Сохраните проект и свою форму. Создайте свой проект и сохраните его в виде .exe файла на своем компьютере; запустите его, когда вы хотите!
Простой консольный калькулятор
Имеется код калькулятора, который должен складывать/отнимать/умножать/делить два числа.
Module Module1 Sub Main() Console.WriteLine("Enter the first digit. ") Dim x As Integer = Console.ReadLine() Console.WriteLine("Enter the second digit. ") Dim y As Integer = Console.ReadLine() Console.WriteLine("Choose operation(+, -, /, *)") If Console.ReadLine() = "*" Then Console.WriteLine(x * y) Console.ReadLine() ElseIf Console.ReadLine() = "/" Then Console.WriteLine(x / y) Console.ReadLine() ElseIf Console.ReadLine() = "+" Then Console.WriteLine(x + y) Console.ReadLine() ElseIf Console.ReadLine() = "-" Then Console.WriteLine(x - y) Console.ReadLine() End If End Sub End Module

Но происходит: После ввода знака операции с числами и трёх нажатий Enter командная строка пропадает. Возможно, я не правильно присваивал значения переменным или не так вывел результат.
Отслеживать
задан 8 окт 2018 в 3:58
81 1 1 серебряный знак 10 10 бронзовых знаков
Ну а что Вы хотели? Сами написали такой код ¯\_(ツ)_/¯. Чтобы все работало, * надо ввести 1 раз; / — 2 раза, + — 3 раза, — — 4 раза
8 окт 2018 в 4:24
@Kir_Antipov, и правда, так работает. Не подскажите как ограничится одни символом?
8 окт 2018 в 4:53
товарищ, ну разве Вы не понимаете, что в Вашей цепочке if-else в каждом условии Вы инициируете новый ввод со стороны пользователя. Один раз считайте строку, засунув значение в переменную, а дальше проверяйте значение переменной)
8 окт 2018 в 4:55
И вот ассоциация по поводу калькуляторов — я недавно отвечал
Математические функции (Visual Basic)
Методы System.Math класса предоставляют тригонометрические, логарифмические и другие общие математические функции.
Комментарии
В следующей таблице перечислены методы System.Math класса . Их можно использовать в программе Visual Basic:
| Метод .NET | Описание |
|---|---|
| Abs | Возвращает абсолютное значение числа. |
| Acos | Возвращает угол, косинус которого равен указанному числу. |
| Asin | Возвращает угол, синус которого равен указанному числу. |
| Atan | Возвращает угол, тангенс которого равен указанному числу. |
| Atan2 | Возвращает угол, тангенс которого равен отношению двух указанных чисел. |
| BigMul | Возвращает полное произведение двух 32-разрядных чисел. |
| Ceiling | Возвращает наименьшее целочисленное значение, которое больше или равно заданному Decimal значению или Double . |
| Cos | Возвращает косинус указанного угла. |
| Cosh | Возвращает гиперболический косинус указанного угла. |
| DivRem | Возвращает частное из двух 32-разрядных или 64-разрядных целых чисел со знаком, а также остаток в выходном параметре. |
| Exp | Возвращает e (основание натуральных логарифмов), возведенное в указанную степень. |
| Floor | Возвращает наибольшее целое число, которое меньше указанного числа или Double равно ей Decimal . |
| IEEERemainder | Возвращает остаток, полученный в результате деления указанного числа на другое указанное число. |
| Log | Возвращает натуральный (базовый e) логарифм указанного числа или логарифм указанного числа в указанном основании. |
| Log10 | Возвращает логарифм с основанием 10 указанного числа. |
| Max | Возвращает большее из двух чисел. |
| Min | Возвращает меньшее из двух чисел. |
| Pow | Возвращает указанное число, возведенное в указанную степень. |
| Round | Decimal Возвращает значение или Double , округленное до ближайшего целочисленного значения или до указанного числа дробных цифр. |
| Sign | Возвращает значение, Integer указывающее знак числа. |
| Sin | Возвращает синус указанного угла. |
| Sinh | Возвращает гиперболический синус указанного угла. |
| Sqrt | Возвращает квадратный корень из указанного числа. |
| Tan | Возвращает тангенс указанного угла. |
| Tanh | Возвращает гиперболический тангенс указанного угла. |
| Truncate | Вычисляет неотъемлемую часть заданного Decimal числа или Double числа. |
В следующей таблице перечислены методы System.Math класса , которые не существуют в платформа .NET Framework, но добавляются в .NET Standard или .NET Core:
| Метод .NET | Описание | Доступно в |
|---|---|---|
| Acosh | Возвращает угол, гиперболический косинус которого равен указанному числу. | Начиная с .NET Core 2.1 и .NET Standard 2.1 |
| Asinh | Возвращает угол, гиперболический синус которого равен указанному числу. | Начиная с .NET Core 2.1 и .NET Standard 2.1 |
| Atanh | Возвращает угол, гиперболический тангенс которого равен указанному числу. | Начиная с .NET Core 2.1 и .NET Standard 2.1 |
| BitDecrement | Возвращает ближайшее самое маленькое значение, которое меньше, чем x . | Начиная с .NET Core 3.0 |
| BitIncrement | Возвращает ближайшее самое большое значение, превышающее x . | Начиная с .NET Core 3.0 |
| Cbrt | Возвращает кубический корень из указанного числа. | Начиная с .NET Core 2.1 и .NET Standard 2.1 |
| Clamp | Возвращает value , ограниченное диапазоном от min до max включительно. | Начиная с .NET Core 2.0 и .NET Standard 2.1 |
| CopySign | Возвращает значение с величиной x и знаком y . | Начиная с .NET Core 3.0 |
| FusedMultiplyAdd | Возвращает значение (x * y) + z, округленное в рамках одной тернарной операции. | Начиная с .NET Core 3.0 |
| ILogB | Возвращает целочисленный логарифм с основанием 2 указанного числа. | Начиная с .NET Core 3.0 |
| Log2 | Возвращает логарифм с основанием 2 указанного числа. | Начиная с .NET Core 3.0 |
| MaxMagnitude | Возвращает большую величину из двух чисел двойной точности с плавающей запятой. | Начиная с .NET Core 3.0 |
| MinMagnitude | Возвращает меньшую величину из двух чисел двойной точности с плавающей запятой. | Начиная с .NET Core 3.0 |
| ScaleB | Возвращает значение x * 2^n, вычисленное эффективно. | Начиная с .NET Core 3.0 |
Чтобы использовать эти функции без квалификации, импортируйте System.Math пространство имен в проект, добавив следующий код в начало исходного файла:
Imports System.Math
Пример: Abs
В этом примере метод класса используется AbsMath для вычисления абсолютного значения числа.
Dim x As Double = Math.Abs(50.3) Dim y As Double = Math.Abs(-50.3) Console.WriteLine(x) Console.WriteLine(y) ' This example produces the following output: ' 50.3 ' 50.3
Пример: Atan
В этом примере метод класса используется AtanMath для вычисления значения числа пи.
Public Function GetPi() As Double ' Calculate the value of pi. Return 4.0 * Math.Atan(1.0) End Function
Класс System.Math содержит поле константы Math.PI . Вы можете использовать его, а не вычислять.
Пример. Cos
В этом примере метод класса используется CosMath для возврата косиуса угла.
Public Function Sec(angle As Double) As Double ' Calculate the secant of angle, in radians. Return 1.0 / Math.Cos(angle) End Function
Пример— Exp
В этом примере метод класса используется Exp для Math возврата e, возведенного в степень.
Public Function Sinh(angle As Double) As Double ' Calculate hyperbolic sine of an angle, in radians. Return (Math.Exp(angle) - Math.Exp(-angle)) / 2.0 End Function
Пример. Журнал
В этом примере метод класса используется Log для Math возврата естественного логарифма числа.
Public Function Asinh(value As Double) As Double ' Calculate inverse hyperbolic sine, in radians. Return Math.Log(value + Math.Sqrt(value * value + 1.0)) End Function
Пример— Round
В этом примере метод класса используется Round для Math округления числа до ближайшего целого числа.
Dim myVar2 As Double = Math.Round(2.8) Console.WriteLine(myVar2) ' The code produces the following output: ' 3
Пример. Sign
В этом примере метод класса используется SignMath для определения знака числа.
Dim mySign1 As Integer = Math.Sign(12) Dim mySign2 As Integer = Math.Sign(-2.4) Dim mySign3 As Integer = Math.Sign(0) Console.WriteLine(mySign1) Console.WriteLine(mySign2) Console.WriteLine(mySign3) ' The code produces the following output: ' 1 ' -1 ' 0
Пример. Sin
В этом примере метод класса используется SinMath для возврата синуса угла.
Public Function Csc(angle As Double) As Double ' Calculate cosecant of an angle, in radians. Return 1.0 / Math.Sin(angle) End Function
Пример: Sqrt
В этом примере метод класса используется SqrtMath для вычисления квадратного корня числа.
Dim mySqrt1 As Double = Math.Sqrt(4) Dim mySqrt2 As Double = Math.Sqrt(23) Dim mySqrt3 As Double = Math.Sqrt(0) Dim mySqrt4 As Double = Math.Sqrt(-4) Console.WriteLine(mySqrt1) Console.WriteLine(mySqrt2) Console.WriteLine(mySqrt3) Console.WriteLine(mySqrt4) ' The code produces the following output: ' 2 ' 4.79583152331272 ' 0 ' NaN
Пример. Tan
В этом примере метод класса используется TanMath для возврата тангенсов угла.
Public Function Ctan(angle As Double) As Double ' Calculate cotangent of an angle, in radians. Return 1.0 / Math.Tan(angle) End Function
См. также раздел
- Rnd
- Randomize
- NaN
- Производные математические функции
- Арифметические операторы
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
The .NET documentation is open source. Provide feedback here.
Обратная связь
Отправить и просмотреть отзыв по
Арифметические операторы в Visual Basic
Арифметические операторы используются для выполнения многих знакомых арифметических операций, которые включают вычисление числовых значений, представленных литералами, переменными, другими выражениями, вызовами функций и свойств, а также константами. С арифметическими операторами также классифицируются операторы битового сдвига, которые действуют на уровне отдельных битов операндов и сдвигают их битовые шаблоны влево или вправо.
Арифметические операции
Вы можете сложить два значения в выражении вместе с оператором + или вычесть одно из другого с помощью оператора — (Visual Basic), как показано в следующем примере.
Dim x As Integer x = 67 + 34 x = 32 - 12
Отрицание также использует оператор — (Visual Basic), но только с одним операндом, как показано в следующем примере.
Dim x As Integer = 65 Dim y As Integer y = -x
Умножение и деление используют операторы * и / (Visual Basic) соответственно, как показано в следующем примере.
Dim y As Double y = 45 * 55.23 y = 32 / 23
В экспоненциации используется оператор ^, как показано в следующем примере.
Dim z As Double z = 23 ^ 3 ' The preceding statement sets z to 12167 (the cube of 23).
Целочисленное деление выполняется с помощью оператора \ (Visual Basic). Целочисленное деление возвращает коэффициент, т. е. целое число, представляющее количество делений, которые делитель может разделить на дивиденд без учета остатка. И делитель, и дивиденд должны быть целочисленными типами ( SByte , Byte , Short , UShort , Integer UInteger , Long , и ULong ) для этого оператора. Все остальные типы сначала должны быть преобразованы в целочисленный тип. В следующем примере показано целочисленное деление.
Dim k As Integer k = 23 \ 5 ' The preceding statement sets k to 4.
Арифметика модуля выполняется с помощью оператора Mod. Этот оператор возвращает остаток после деления делителя на дивиденд целое число раз. Если и делитель, и дивиденд являются целочисленными типами, возвращаемое значение является целочисленным. Если делитель и дивиденд являются типами с плавающей запятой, возвращаемое значение также является плавающей запятой. Следующий пример демонстрирует эту ситуацию.
Dim x As Integer = 100 Dim y As Integer = 6 Dim z As Integer z = x Mod y ' The preceding statement sets z to 4.
Dim a As Double = 100.3 Dim b As Double = 4.13 Dim c As Double c = a Mod b ' The preceding statement sets c to 1.18.
Попытка деления на ноль
Деление на ноль имеет разные результаты в зависимости от используемых типов данных. В целочисленных подразделениях ( SByte , Byte , Short , UShort , Integer UInteger , Long , , ) ULong платформа .NET Framework вызывает DivideByZeroException исключение. В операциях деления с типом Decimal данных или Single платформа .NET Framework также вызывает DivideByZeroException исключение.
В делениях с плавающей запятой, связанных с типом Double данных, исключение не возникает, и результатом является член класса, представляющий NaN, PositiveInfinityили NegativeInfinity, в зависимости от дивиденда. В следующей таблице перечислены различные результаты попытки разделить Double значение на ноль.
| Тип данных дивидендов | Тип данных делителя | Дивидендная стоимость | Результат |
|---|---|---|---|
| Double | Double | 0 | NaN (не математически определенное число) |
| Double | Double | > 0 | PositiveInfinity |
| Double | Double | < 0 | NegativeInfinity |
При перехвате DivideByZeroException исключения можно использовать его члены для его обработки. Например, Message свойство содержит текст сообщения для исключения. Дополнительные сведения см. в разделе Оператор Try. Catch. Finally.
Операции Bit-Shift
Операция битового сдвига выполняет арифметическое смещение по битовой схеме. Шаблон содержится в операнде слева, а операнд справа указывает количество позиций для сдвига шаблона. Шаблон можно сместить вправо с >> помощью оператора или влево с
Тип данных операнда шаблона должен быть , , , , , , UInteger , Long , или ULong . Integer UShort Short Byte SByte Тип данных операнда суммы сдвига должен быть Integer или должен быть расширен до Integer .
Арифметические сдвиги не являются циклическими, что означает, что биты, сдвинутые с одного конца результата, не повторно вводятся на другом конце. Битовые позиции, освобожденные при смещении, задаются следующим образом:
- 0 для арифметического сдвига влево
- 0 для арифметического сдвига вправо положительного числа
- 0 для арифметического сдвига вправо типа данных без знака ( Byte , , UShort UInteger , ULong )
- 1 для арифметического сдвига вправо отрицательного числа ( SByte , , Short Integer или Long )
В следующем примере значение смещается как влево, Integer так и вправо.
Dim lResult, rResult As Integer Dim pattern As Integer = 12 ' The low-order bits of pattern are 0000 1100. lResult = pattern > 2 ' A right shift of 2 bits produces value of 3.
Арифметические сдвиги никогда не создают исключения переполнения.
Битовые операции
Помимо логических операторов, Not , Or , And и Xor также выполняют побитовую арифметику при использовании с числовыми значениями. Дополнительные сведения см. в разделе «Побитовые операции» статьи Логические и побитовые операторы в Visual Basic.
Безопасность типов
Операнды обычно должны иметь один и тот же тип. Например, если выполняется сложение с переменной Integer , ее следует добавить в другую Integer переменную, а результат также следует назначить переменной типа Integer .
Одним из способов обеспечения правильного типобезопасного кодирования является использование оператора Option Strict. Если задано Option Strict On значение , Visual Basic автоматически выполняет типобезопасные преобразования. Например, при попытке добавить переменную Integer в переменную Double и присвоить ей Double значение, операция будет выполняться нормально, так как Integer значение можно преобразовать Double в без потери данных. С другой стороны, небезопасные преобразования типа вызывают ошибку компилятора с Option Strict On . Например, при попытке добавить переменную в переменную Double и присвоить Integer ей значение, возникает ошибка компилятора, так как переменная Double не может быть неявно преобразована в тип Integer . Integer
Однако если задать Option Strict Off , Visual Basic позволяет выполнять неявные сужающие преобразования, хотя они могут привести к неожиданной потере данных или точности. По этой причине рекомендуется использовать Option Strict On при написании рабочего кода. Для получения дополнительной информации см. Widening and Narrowing Conversions.
См. также раздел
- Арифметические операторы
- Операторы сдвига битов
- Comparison Operators in Visual Basic
- Операторы объединения в Visual Basic
- Логические и побитовые операторы в Visual Basic
- Эффективное сочетание операторов
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
The .NET documentation is open source. Provide feedback here.
Обратная связь
Отправить и просмотреть отзыв по
