Generation

generate functionSun, 14 May 2023

Este proyecto final consiste en desarrollar un interprete de comandos como una pequeña calculadora, como si fuera una maquina abstracta de pila, la misma que realizará las operaciones básicas: ➢ Suma ➢ Resta ➢ Multiplicación ➢ División Todas las operaciones serán realizadas sobre números reales. El proceso para para operar la calculadora la cual desarrollaran con los integrantes de su grupo deberá leer los comandos repetidamente y ejecutarlos en cada iteración como una maquina abstracta de pila hasta que el usuario ingrese el comando “END” Los siguientes comandos pueden funcionar como ejemplo para el programa que desarrollara. PUSH = coloca un valor numérico en la pila. NEG = cambia el signo al ultimo valor introducido en la pila, dejándolo en el mismo lugar. ADD = opera los dos últimos valores que se introducen a la pila, extrae y deja en su lugar el resultado de la suma de ambos, la pila habrá disminuido en un elemento. MUL = opera los dos ultimo valores que ingresan en la pila, extra y deja en su lugar el resultado del producto de ambos, la pila habrá disminuido en un elemento. DIV = opera los dos ultimo valores que ingresan en la pila, extra y deja en su lugar el resultado de la división entera de ambos y solo operara si el resultado de la división es entera, en caso contrario deberá desplegar error indicar que no pueda realizar con números reales, la pila habrá disminuido en un elemento. OUTPUT = toma el ultimo valor que se ha ingresado a la pila y lo lleva hacia el buffer de salida o sea a la pantalla. La pila no sufre cambios. END = comando el cual finaliza el proceso

#include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> #define MAX 1000 using namespace std; int main() { char buffer[MAX]; int tope = -1; int dato; bool termina = false; while (!termina) { cin.getline(buffer, MAX, '\n'); if (strcmp(buffer, "PUSH") == 0) { cin.getline(buffer, MAX, '\n'); dato = atoi(buffer); tope++; cout << "OK" << endl; } else if (strcmp(buffer, "NEG") == 0) { dato = dato * -1; cout << "OK" << endl; } else if (strcmp(buffer, "ADD") == 0) { cin.getline(buffer, MAX, '

Questions about programming?Chat with your personal AI assistant