Red de conocimiento informático - Conocimiento informático - Buscando los principios de las cuatro operaciones aritméticas mixtas de Pascal

Buscando los principios de las cuatro operaciones aritméticas mixtas de Pascal

En el principio de compilación, se dice que se utiliza la pila.

Permítanme explicarlo brevemente.

Hay dos pilas en el programa, una para. almacenar valores y uno para almacenar valores Coloque el operador

A Después de que se inicia el programa, el primer operador y el valor se insertan primero en la pila

B Obtenga el siguiente operador NextOP.

C Coloque NextOP y compare las prioridades de los operadores en la parte superior de la pila

Caso 1. Si la prioridad de NextOP es mayor que la del operador en la parte superior de la pila, empuje NextOP en la pila del operador. Continúe con el paso B.

Caso 2 Si la prioridad de NextOP es menor que la del operador en la parte superior de la pila, use el operador en la parte superior de la pila. La pila numérica utiliza los dos valores superiores para realizar operaciones y los resultados de la operación se insertan en la pila numérica. Repita el paso C. Si la pila del operador está vacía, la operación finaliza. El resultado de la operación D está en la pila numérica

Respuesta: cpplyy - Qianzong Nivel 4 10-8 09:12

1. Método de búsqueda divide y vencerás Cada vez que encuentres el símbolo del última operación, busque profundamente los lados izquierdo y derecho hasta obtener el resultado

2. Método de procesamiento de la pila La pila de fracciones y la pila de símbolos primero definen matrices constantes (operación de juicio\push\error), y luego De izquierda a derecha, los operandos se insertan en la pila de números, los símbolos y las operaciones de comparación en la pila de símbolos\insertar en la pila\operaciones de operación de error Obtenga el número de la pila de números y realice cálculos posteriores, luego coloque el resultado en la pila. pila de números, y finalmente el resultado está en la pila de números

Respuesta: LXYXYNT - Juren Nivel 4 10-8 12:50

La pila servirá

Respuesta : sd542927172 - Mago en prácticas Nivel 2 10-9 20:09

Pila

El cálculo de expresiones se usa ampliamente, como el cálculo de telemetría en sistemas de despacho de energía, fórmulas de cálculo de tipos de tarifas en sistemas de venta de billetes de estación, etc.

Este artículo describe el algoritmo de evaluación para convertir expresiones intermedias en post-expresiones y post-expresiones, y proporciona el código fuente C para la implementación, así como una clase de plantilla C de pila bastante concisa.

Conversión de expresión infija a expresión postfija

Para convertir una expresión de la forma de expresión infija a una expresión equivalente expresada en notación postfija, debes comprender las operaciones de prioridad de caracteres y asociatividad. . La prioridad, o fuerza de un operador, determina el orden de evaluación. Los operadores con mayor precedencia se evalúan antes que los operadores con menor precedencia. Si todos los operadores tienen la misma precedencia, entonces el orden de evaluación depende de su asociatividad. La asociatividad de operadores define el orden (de derecha a izquierda o de izquierda a derecha) en el que se combinan los operadores de la misma precedencia.

El proceso de conversión incluye la lectura de los operandos, operadores y paréntesis de la expresión infija utilizando el siguiente algoritmo:

1. Inicialice una pila vacía y establezca la variable de cadena de resultado en vacía.

2. Lea la expresión infija de izquierda a derecha, un carácter a la vez.

3. Si el carácter es un operando, agréguelo a la cadena de resultado.

4. Si el carácter es un operador, extraiga el operador hasta que encuentre un paréntesis de apertura, un operador con una prioridad más baja o un símbolo asociativo derecho con la misma prioridad. Empuje este operador hacia la pila.

5. Si el carácter es un corchete abierto, empújelo hacia la pila.

6. Si el carácter es un paréntesis de cierre, extraiga todos los operadores antes de encontrar un paréntesis de apertura y agréguelos a la cadena de resultado.

7. Si se llega al final de la cadena de entrada, extraiga todos los operadores y agréguelos a la cadena de resultado.

Evaluar expresiones postfijas

Evaluar expresiones postfijas es más sencillo que evaluar directamente expresiones infijas. En las expresiones postfix, los paréntesis no son necesarios y la precedencia de los operadores ya no influye.

Puede evaluar expresiones postfix utilizando el siguiente algoritmo:

1. Inicializar una pila vacía

2. Leer expresiones postfix de izquierda a derecha

3. Si El carácter es un operando, empújelo a la pila.

4. Si el carácter es un operador, extraiga los dos operandos, realice la operación adecuada y coloque el resultado en la pila. Si no puede extraer ambos operandos, la sintaxis de la expresión postfija es incorrecta.

5. Vaya al final de la expresión postfix y extraiga el resultado de la pila. Si la expresión postfix está bien formada, la pila debe estar vacía.

Es inconveniente escribir aquí Si quieres explicarlo, Q244957727

Dame puntos~

Respuesta: wind_teller - Mago Nivel 4 10-10. 21 : 57

El cálculo de expresiones se usa ampliamente, como el cálculo de telemetría en sistemas de despacho de energía, fórmulas de cálculo de tipos de tarifas en sistemas de emisión de boletos de estaciones, etc.

Este artículo describe el algoritmo de evaluación para convertir expresiones intermedias en post-expresiones y post-expresiones, y proporciona el código fuente C para la implementación, así como una clase de plantilla C de pila bastante concisa.

Conversión de expresión infija a expresión postfija

Para convertir una expresión de la forma de expresión infija a una expresión equivalente expresada en notación postfija, debes comprender las operaciones de prioridad de caracteres y asociatividad. . La prioridad, o fuerza de un operador, determina el orden de evaluación. Los operadores con mayor precedencia se evalúan antes que los operadores con menor precedencia. Si todos los operadores tienen la misma precedencia, entonces el orden de evaluación depende de su asociatividad. La asociatividad de operadores define el orden (de derecha a izquierda o de izquierda a derecha) en el que se combinan los operadores de la misma precedencia.

El proceso de conversión incluye la lectura de los operandos, operadores y paréntesis de la expresión infija utilizando el siguiente algoritmo:

1. Inicialice una pila vacía y establezca la variable de cadena de resultado en vacía.

2. Lea la expresión infija de izquierda a derecha, un carácter a la vez.

3. Si el carácter es un operando, agréguelo a la cadena de resultado.

4. Si el carácter es un operador, extraiga el operador hasta que encuentre un paréntesis de apertura, un operador con una prioridad más baja o un símbolo asociativo derecho con la misma prioridad. Empuje este operador hacia la pila.

5. Si el carácter es un corchete abierto, empújelo hacia la pila.

6. Si el carácter es un paréntesis de cierre, extraiga todos los operadores antes de encontrar un paréntesis de apertura y agréguelos a la cadena de resultado.

7. Si se llega al final de la cadena de entrada, extraiga todos los operadores y agréguelos a la cadena de resultado.

Evaluar expresiones postfijas

Evaluar expresiones postfijas es más sencillo que evaluar directamente expresiones infijas. En las expresiones postfix, los paréntesis no son necesarios y la precedencia de los operadores ya no influye. Puede evaluar expresiones postfix utilizando el siguiente algoritmo:

1. Inicializar una pila vacía

2. Leer expresiones postfix de izquierda a derecha

3. Si El carácter es un operando, empújelo a la pila.

4. Si el carácter es un operador, extraiga los dos operandos, realice la operación adecuada y coloque el resultado en la pila. Si no puede extraer ambos operandos, la sintaxis de la expresión postfija es incorrecta.

5. Vaya al final de la expresión postfix y extraiga el resultado de la pila.

Si el formato de la expresión del sufijo es correcto, entonces la pila debe estar vacía

Se menciona en los principios de compilación, usando la pila

Déjame explicarte brevemente

Hay dos pilas en el programa, una para valores y otra para operadores

A Después de que se inicia el programa, el primer operador y el primer valor se insertan primero en la pila

B Obtener el siguiente operador NextOP

C Comparar las prioridades de NextOP y el operador en la parte superior de la pila

Caso 1. Si la prioridad de NextOP es mayor que la del operador en la parte superior de la pila, empuje NextOP hacia la pila del operador. Continúe con el paso B

Caso 2. Si la prioridad de NextOP es menor que la del operador en la parte superior de la pila, use el operador en la parte superior de la pila. parte superior de la pila. La pila numérica realiza operaciones en los 2 valores superiores y los resultados de la operación se insertan en la pila numérica. Repita el paso C. Si la pila del operador está vacía, la operación finaliza. El resultado de la operación D está en la pila numérica

. El método de búsqueda divide y vencerás encuentra el último símbolo de la operación cada vez y busca profundamente hasta obtener los resultados

2. Método de procesamiento de pila La pila de fracciones y la pila de símbolos primero definen matrices constantes (operación de juicio \ pila \ error) y luego insertan los operandos en los símbolos de la pila de izquierda a derecha Operación de comparación en la pila de símbolos AND \ Empujar a la pila \ Operación de operación de error toma el número de la pila de números y realiza cálculos posteriores y luego coloca el resultado en la pila de números. El resultado final está en la pila de números.