//Create a custom calculator program capable of reading the input stream of an expression
//and make basic computations to provide answer.
//Your program will ask the user to enter an expression in one single line
//Use an array to capture the input
//Choose how you want to word the request to the user (bound your request)
//Your calculator should be able to do the following operations individually or in combinaison:
//Multiplication
//Division
//Addition
//Substration
//maximum
//minimum
//square
//squareroot
//solve a system of equations with 2 variables (using 2 dimensional arrays) (max power is 1)
/*
Ax + By = C
Dx + Ey = F
*/
//solve a quadratic equation of the form Ax2 + Bx + C = 0
//Iplement each operation process in a separate function, and use pointers to access values used in computations
//Use the Shunting-yard_algorithm found at https://en.wikipedia.org/wiki/Shunting-yard_algorithm to obtain the
//output string that you would procees further to compute the answer
//Make use of Matrix for the last two operations and access elements using pointers
//Create your program so that the user may enter input indefinitely if needed
//Make use of the program skeleton provided below, debug and develop your code based on it.
//You can expand on it, but you must use all variables and structures defined
//At any time, ask the user he/she would like to continue
//(i.e. continue to prompt user whether to repeat exercise again)
//Print the result at each stage
//Variable declaration
const int SysEqMatrixSize = 3;
const int QuadEqArraySize = 3;
const int sizeOfInputString = 50;
const int sizeOfOutputString = 128;
//Function Declaration *********************
//Initialize the matrix provided with zeros
int myMatrixInit(int **myMatrix, int numRows, int numCols);
int processMyOutput(char *stringForProcess);
int main()
{
int myRow;
int myColumn;
char myInput[sizeOfInputString];
char myOutput[sizeOfOutputString];
int myInputLocation;
int mySysOfEqu2[SysEqMatrixSize][SysEqMatrixSize];
int QuadEqu1[QuadEqArraySize];
int repeat = 0;
int answer = 0;
//Tell the user about your program: What it does and what is expected of user
//Ask whether to proceed
//Proceed and continue processing as long as the user wants
while(repeat == 1)
{
myMatrixInit(mySysOfEqu2, SysEqMatrixSize, SysEqMatrixSize);
myMatrixInit(QuadEqu1, QuadEqArraySize, 0);
//Collect input from user: initialize input array (load all element with \0)
//Call input function: use scanf("%s", myInput);
//The 's' argument type after the percent character is for string input
//character string (not quoted); char * ; pointing to an array of characters
//large enough for the string and a terminating '\0' that will be added
//The name of the array is a pointer to the address of that array
//Check input: Design the format you want for your input and request it from user
// if the input violates your requirements, then print error and prompt user again
//Process execution: You must use the core code structure below
// You may rearange it elsewhere in a function
//***********
//If regular expression, then do this
//Use the Shunting-yard_algorithm found at https://en.wikipedia.org/wiki/Shunting-yard_algorithm to obtain the
//output string that you would procees further to compute the answer
if(shunting_yard(myInput, myOutput))
answer = processMyOutput(myOutput);
//Print the result at each stage
//Function Definitions ****************
//Passing by address
int myMatrixInit(int **myMatrix, int numRows, int numCols)
{
//Complete with code
}
int processMyOutput(char *stringForProcess){
//Complete with code
}
//*****************
//insert other function definition here