0 / 0 / 0
Регистрация: 13.12.2016
Сообщений: 8
|
|
1 | |
MASM32 Примитивный калькулятор (два операнда и операции сложения, вычитания, умножения и деления)06.04.2018, 12:00. Показов 4719. Ответов 5
Здравствуйте.
Вот пытался написать примитивный калькулятор, которые будет +, -, * и / два значения, введенные пользователём, только есть одно условие, пользователь должен одним вводом ввести уравнение, например, 3 + 5 6 – 3 2 * 2 или 6 / 2 Мне нужно чтобы программа считывала какой знак был введен между цыфрами и на его основе производить вычесления. Была идея, чтобы сохранять введенную пользователем строку в одной переменной, например, userInput DW '3 + 5', а затем разбить данную строку на три значения, firstNumber DW '3', operator DW '+' и secondNumber DW '5'. При создании я не должен использовать библиотечные функции и код должен быть написан на Masm32. К сожалению, моих знаний и практики не достаточно чтобы выполнить подобную задачу. Буду благодарен за любой пример.
0
|
06.04.2018, 12:00 | |
Ответы с готовыми решениями:
5
Операции сложения, вычитания, умножения и деления интервалов Операции сложения, вычитания, умножения и деления в троичной СС Реализовать класс MyArray, который бы поддерживал индексные операции, операции сложения, вычитания, умножения, деления Реализовать калькулятор с функциями умножения, деления, сложения и вычитания |
0 / 0 / 0
Регистрация: 13.12.2016
Сообщений: 8
|
||||||
06.04.2018, 12:50 [ТС] | 3 | |||||
примерно вот так...
0
|
Модератор
|
|
06.04.2018, 13:03 | 4 |
Зачем делить? Обрабатывайте в потоке.
У вас 3 переменные: операнд1, операнд2, операция. При инициализации операнд1=0, операция=сложение (чтобы не повлиять). Начинаете обрабатывать строку посимвольно 1. if Buffer[esi]='0'...'9' then Op2:=Op2*10+(Buffer[esi]-'0'); к следующему символу строки 2.1. Если не цифра, то выполнить вычисление Op1:= Op1 (Operation) Op2; Op2:=0; 2.2. Уточнить операцию для следующего вычисления 2.2.1. if Buffer[esi]='+' then Operation:=сложение 2.2.2. if Buffer[esi]='-' then Operation:=вычитание ... 2.2.7. if Buffer[esi]=Enter then выйти 3. esi:=esi+1 4. перейти к п.1 5. вывод результата (Op1) Так я и делал в Написать программу, позволяющую выполнять арифметические действия над двоичными или шестнадцатеричными числами
0
|
Модератор
|
||||||
07.04.2018, 23:04 | 5 | |||||
0
|
Модератор
|
|||||||||||
07.01.2020, 10:51 | 6 | ||||||||||
Нужно изменить строки
0
|
07.01.2020, 10:51 | |