Red de conocimiento informático - Problemas con los teléfonos móviles - Informe del experimento de evaluación de expresiones "Diseño del curso de estructura de datos"

Informe del experimento de evaluación de expresiones "Diseño del curso de estructura de datos"

Demostración de evaluación de expresiones aritméticas

1. Descripción general

El diseño del curso de estructura de datos requiere que los estudiantes dominen las características lógicas y la representación física de las estructuras de datos, y la comprensión. de estructuras de datos, selección y aplicación, diseño e implementación de algoritmos, etc., para profundizar en la comprensión de los contenidos básicos de la asignatura. Al mismo tiempo, los estudiantes reciben una formación relativamente sistemática y rigurosa en habilidades básicas y estilos científicos, como métodos de programación y operaciones informáticas.

El tema que elegí en el diseño de este curso es Demostración de evaluación de expresiones aritméticas. La evaluación de expresiones es una de las cuestiones básicas en la implementación de lenguajes de programación y también es un ejemplo típico de aplicación de pila. Diseñe un programa que demuestre el proceso de evaluación de expresiones aritméticas utilizando la precedencia de operadores. Obtenga una comprensión profunda de las características de las pilas y colas para que pueda usarlas de manera flexible para resolver problemas prácticos mientras profundiza su comprensión y comprensión de esta estructura.

2.Análisis del sistema

1. Introduzca una expresión entera sintácticamente correcta y sin variables desde el terminal como una cadena de caracteres. Utilice las relaciones de precedencia conocidas de los operadores para evaluar las expresiones de las cuatro operaciones aritméticas mixtas e imite los ejemplos de los libros de texto en el proceso de cambio de la pila de operadores, la pila de operandos, los caracteres de entrada y las operaciones principales durante la evaluación.

2. En términos generales, cuando una computadora resuelve un problema específico, necesita pasar por varios pasos: primero, debe abstraer un modelo matemático apropiado del problema específico, luego diseñar un algoritmo para resolver el modelo matemático y, finalmente, programar, probar y depurar hasta obtener las respuestas que desea. Para el programa de expresión aritmética, la pila se utiliza principalmente para analizar los pasos sucesivos de la operación e implementar operaciones simples. Para implementar el algoritmo de precedencia de operadores, se pueden utilizar dos pilas, una para almacenar los operadores y la otra para almacenar los operandos y resultados.

3. El programa de demostración se ejecuta en forma de diálogo usuario-computadora, lo que requiere un módulo para completar la conversión entre el lenguaje del usuario y la computadora. 4. Comandos cuando se ejecuta el programa:

Para que su uso sea específico, este programa utiliza un enfoque basado en menús para completar la demostración del programa. Casi no es necesario ingresar ningún comando especial. para ingresar expresiones según las indicaciones. (Preste atención al formato de entrada, de lo contrario puede causar algunos errores) 5. Pruebe los datos.

2

Demostración de evaluación de expresiones aritméticas

1. Descripción general

El diseño del curso de estructura de datos requiere que los estudiantes dominen la lógica de las estructuras de datos. Características y representación física, selección y aplicación de estructuras de datos, diseño e implementación de algoritmos, etc., para profundizar en el contenido básico de la asignatura. Al mismo tiempo, los estudiantes reciben una formación relativamente sistemática y rigurosa en habilidades básicas y estilos científicos, como métodos de programación y operaciones informáticas.

El tema que elegí en el diseño de este curso es Demostración de evaluación de expresiones aritméticas. La evaluación de expresiones es una de las cuestiones básicas en la implementación de lenguajes de programación y también es un ejemplo típico de aplicación de pila. Diseñe un programa que demuestre el proceso de evaluación de expresiones aritméticas utilizando la precedencia de operadores. Obtenga una comprensión profunda de las características de las pilas y colas para que pueda usarlas de manera flexible para resolver problemas prácticos mientras profundiza su comprensión y comprensión de esta estructura.

2.Análisis del sistema

1. Introduzca una expresión entera sintácticamente correcta y sin variables desde el terminal como una cadena de caracteres. Utilice las relaciones de precedencia conocidas de los operadores para evaluar las expresiones de las cuatro operaciones aritméticas mixtas e imite los ejemplos de los libros de texto en el proceso de cambio de la pila de operadores, la pila de operandos, los caracteres de entrada y las operaciones principales durante la evaluación.

2. En términos generales, cuando una computadora resuelve un problema específico, necesita pasar por varios pasos: primero, debe abstraer un modelo matemático apropiado del problema específico, luego diseñar un algoritmo para resolver el modelo matemático y, finalmente, programar, probar y depurar hasta obtener las respuestas que desea. Para el programa de expresión aritmética, la pila se utiliza principalmente para analizar los pasos sucesivos de la operación e implementar operaciones simples. Para implementar el algoritmo de precedencia de operadores, se pueden utilizar dos pilas, una para almacenar los operadores y la otra para almacenar los operandos y resultados.

3. El programa de demostración se ejecuta en forma de diálogo usuario-computadora, lo que requiere un módulo para completar la conversión entre el lenguaje del usuario y la computadora. 4. Comandos cuando se ejecuta el programa:

Para que su uso sea específico, este programa utiliza un enfoque basado en menús para completar la demostración del programa. Casi no es necesario ingresar ningún comando especial. para ingresar expresiones según las indicaciones. (Preste atención al formato de entrada, de lo contrario puede causar algunos errores) 5. Pruebe los datos.

Conjunto de operaciones:

(1)void InitStack1(SqStack1 amp; S1); //Declaración de la función de creación de pila (2) void InitStack2(SqStack2 amp; S2); Declaración Función de creación de pila

(3) void evalua(SqStack1 amp; S1, SqStack2 amp; S2); // Determina cómo impulsar la función de pila (4) void Push1(SqStack1 amp; S1, char e ); //Declarar la función de inserción (5) void Push2 (SqStack2 amp; S2, float e); //Declarar la función de inserción (6) char GetTop1 (SqStack1 amp; S1); elemento de la pila (7) float GetTop2(SqStack2 amp; S2); //Declaración de la función para obtener el elemento superior de la pila (8) char Pop1(SqStack1 amp; S1); la pila (9) float Pop2(SqStack2 amp; S2); //Declaración de la función Pop (10) char Compare(char m, char n); //Declarar la función de comparación

(11) float Operate( float a, char rheta, float b); //Declarar la función de operación ( 12)void DispStack1(SqStack1 amp; S1); //Enviar cada elemento en secuencia desde la parte inferior de la pila hasta la parte superior de la pila (13) void); DispStack2(SqStack2 amp; S2); // Genera cada elemento en secuencia desde la parte inferior de la pila hasta la parte superior de la pila}ADT SqStack

Análisis estructural:

Los nodos de datos en la pila se almacenan en matrices. Debido a que las matrices en lenguaje C comienzan desde cero con subíndices, debemos prestar especial atención al llamar a sus datos. El valor de una variable de puntero es NULL y no apunta a ningún nodo o su valor no es nulo, es decir, su valor es la dirección de almacenamiento de un nodo. Tenga en cuenta que cuando P es un valor nulo, no apunta a ningún nodo. En este momento, no se puede acceder al nodo a través de P; de lo contrario, se producirá un error en el programa. Si el número ingresado no cumple con los requisitos de la pregunta, se generará un resultado incorrecto.

Análisis espacio-temporal del algoritmo:

Análisis del rendimiento temporal y espacial: En el tiempo, para una expresión que contiene n caracteres, ya sea para comprobar su validez o para introducirla. la pila se abre n veces, por lo que su complejidad temporal es O(n). En términos de espacio, las matrices se usan para almacenar expresiones de entrada y las pilas se usan para almacenar datos y operadores en operaciones. La esencia de la pila también usa matrices, y el tamaño de la matriz debe determinarse cuando se define. No es fácil determinar la longitud de una matriz sin conocer la longitud de la expresión. En este caso, es fácil desperdiciar espacio, por lo que el rendimiento del espacio no es muy bueno.