Нужно перевести логический калькулятор с Python на С++
нужна срочная помощь перевести код с Python в C++
Это калькулятор логических выражений,поддерживающий операции (скобок,и,или,отрицание,ввод переменных)
def ob():
global res
global lv
global j
if (lv[j]>='a' and lv[j]<='z'):
t = input(lv[j]+"=")
j += 1
return int(t)
elif (lv[j]=='0' or lv[j]=='1'):
t = int(lv[j])
j += 1
return t
elif (lv[j]=='('):
t = int(v())
j += 1
if (lv[j-1]!=')'):
print("Синтаксическая ошибка")
else:
return t
def mint():
global res
global lv
global j
t = ob()
while(j<len(lv)):
if (lv[j]=='&'):
j += 1
s = ob()
t=t*s
else:
break
return t
def v():
global lv
global res
global j
t = ob()
if lv[j]=='^':
otr = 1
j += 1
else:
otr = 0
j += 1
t = mint()
if otr ==1:
t=(t+1)%2
while(j<len(lv)):
if (lv[j]=='+'):
j+=1
if mint()==1:
t=1
else:
break
return t
j = 0
lv = input("Введите логическое выражение:")
res = v()
print(res)
Начал пробовать сам,но не знаю как сделать в соответсвии python и чтоб работало. вот что накидал:
#include <iostream>
#include<string>
using namespace std;
string lv;
int j = 0;
int res;
int ob()
{
t = ob();
if (lv[j] >= 'a' and lv[j] <= 'z')
{
cout << "=";
t = cin >> lv[j] ;
j += 1;
return int(t);
}
else if(lv[j] == '0' or lv[j] == '1')
{
t = int(lv[j]);
j += 1;
return t;
}
else if (lv[j] == '(')
{
t = int(v());
j += 1;
if (lv[j - 1] != ')')
{
cout << "Синтаксическая ошибка" << endl;
}
else
{
return t;
}
}
}
int mint()
{
t = ob();
while (j < lv.length())
{
if (lv[j] == '&')
{
j += 1;
s = ob();
t = t * s;
}
else
{
break;
}
return t;
}
}
int v()
{
t = ob();
int otr = -1;
if (lv[j] == '^')
{
otr = 1;
j += 1;
}
else
{
otr = 0;
j += 1;
t = mint();
}
if ( otr == 1)
{
t = (t + 1) % 2;
}
while (j < lv.length())
{
if (lv[j] == '+')
{
j += 1;
if (mint() == 1)
{
t = 1;
}
}
else
{
break;
}
return t;
}
}
int main()
{
cout << ("Введите логическое выражение:");
cin >> lv;
res = v();
cout << (res);
}