Использование одной и той же строки в разных функциях

Я работаю над тем, как преобразовать инфикс в постфиксное выражение и затем вычислить это преобразованное постфиксное выражение. У меня есть следующий процесс мысли о том, как это сделать.

  1. Получать инфиксное выражение (через основной файл)

  2. Создайте переменные в этом выражении через функцию InstantiateVariable (char, int)

    + (2 + 2)

    где а = 2;
    THUS значения должны быть добавлены соответственно, прежде чем он может быть проанализирован и преобразован в постфикс

  3. После получения инфиксного выражения и создания переменных, я хочу «преобразовать» этот инфикс в постфиксное выражение в моем shuntingYard функция. Что мне удалось сделать, и это работает.

  4. Наконец, я хочу вычислить / оценить это постфиксное выражение, которое было создано в моей функции shuntingYard.

В общем, я хочу использовать ту же строку после ее изменения. Таким образом, возникает вопрос: как мне «захватить» или просто использовать строку постфикса, которую я создал в моей функции shuntingYard, чтобы я мог вычислить / оценить эту конкретную строку.

Что-то вроде этого:

void instantiateVariable(char, int)
{
//receive the string through the main.cpp in the expression constructor
//assign the values to the variables;
a * (2 + 2); //set a = 3
//Update, if you may, the "new" infix string
}

string shuntingYard(string)
{
//Receiving this updated infix string
//Convert it
return the postfix string; //The converted string
}

int evaluate(string)
{
//calculate the postfix string in the above shuntingYard function
returns the postfix string's value;
}

Вот мой класс, который я использую:

class Expression
{
private:
//string expression;
public:
/*The constructor receives a string
expression in infix notation*/
Expression(string);

/*The destructor*/
~Expression();

/*Sets a value for a variable in the expression.  The
name of the variable (first parameter) and its value
(second parameter) are passed to this function*/

/*Apply values to the variables in the expression*/
void instantiateVariable(char, int);

/*Evaluates and returns the answer to the expression*/
int evaluate(string);

// Function to convert Infix expression to postfix
string shuntingYard(string);

/*Function to verify whether an operator has higher precedence over other*/
int higherPrecedence(char, char);

/*Function to verify whether a character is operator symbol or not*/
bool IsOperator(char);

/*Function to verify whether a character is alphanumeric character (letter or numeric digit) or not*/
bool IsOperand(char);
};

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]