CALCULADORA DE CONSOLA, AULA DE INFORMATICA CON PUNTEROS

 

 

Calculadora de consola, utilizando ANSI C, SI utilizamos punteros que apuntan a unas variables reales: “float

 

Se crea una aplicación de consola (Consola Application) Simple,  y se añade el siguiente código

 

 

// calculadoradeconsola.cpp : Defines the entry point for the console application.

//

 

// PROGRAMA CALCULADORA DE CONSOLA EN C ESTÁNDAR CON PUNTEROS

 

//ENCABEZAMIENTOS

#include "stdafx.h"

#include <stdio.h>

 

//DECLARACIÓN DE VARIABLES float: para números reales y entera para la operación

float numero1;

float numero2;

float resultado;

//DECLARACIÓN DE PUNTEROS A LAS VARIABLES

float *puntero_numero1;

float *puntero_numero2;

float *puntero_resultado;

int operacion;

 

//DECLARACIÓN DE FUNCIONES

void introducir_datos();

void calcular();

 

 

//IMPLEMENTACIÓN DE LA FUNCIÓN PRINCIPAL

 

int main(int argc, char* argv[])

{

                //DECLARACIÓN Y INICIALIZACIÓN DE LA VARIABLE SALIR Y RESPUESTA PARA LA RESPUESTA

                bool salir=false;

                char respuesta;

                //INICIALIZACIÓN DE LAS VARIABLES

                numero1=0;

                numero2=0;

                resultado=0;

                //INICIALIZACIÓN DE LOS PUNTEROS A LA DIRECCIÓN DE LAS VARIABLES

                puntero_numero1=&numero1;

                puntero_numero2=&numero2;

                puntero_resultado=&resultado;

               

                operacion=0;

 

                //BUCLE CONTROLADO POR LA VARIABLE SALIR

                while(!salir)

                {

                                //LLAMADA A LA FUNCIÓN INTRODUCIR DATOS

                               introducir_datos();

                                //LLAMADA A LA FUNCIÓN CALCULAR

                               calcular();

                                //PREGUNTAR SI SALIR DE LA APLICACIÓN

                               printf("\n¿Quiere salir de la aplicacion? (s/n)");

                               //INTRODUCIMOS DOS SCANF PORQUE EL PRIMERO RECOJE EL INTRO DEL ÚLTIMO NÚMERO

                               //Y EL SEGUNDO LA RESPUESTA DEL USUARIO A LA PREGUNTA

                               scanf("%c",&respuesta);

                               scanf("%c",&respuesta);

                               if(respuesta == 's' || respuesta == 'S')salir=true;

 

                }

                return 0;

}

//IMPLEMENTACIÓN DE LA FUNCIÓN INTRODUCIR DATOS

void introducir_datos()

{

                //OPERAMOS CON LOS PUNTEROS, NO CON LAS VARIABLES

                printf("\n\nCALCULADORA DE CONSOLA: AULA DE INFORMATICA\n");

                printf("\nIntroduzca el primer numero ");

                scanf("%f",puntero_numero1);

                printf("\nIntroduzca el segundo numero ");

                scanf("%f",puntero_numero2);

                printf("Introduzca la operacion que quiere efectuar\n");

                printf("\n1 - Sumar");

                printf("\n2 - Restar");

                printf("\n3 - Multiplicar");

                printf("\n4 - Dividir\n");

                printf("\n Operacion ");scanf("%d",&operacion);

}

 

//IMPLEMENTACIÓN DE LA FUNCIÓN CALCULAR

void calcular()

{

                switch(operacion)

                {

                case 1:

                               *puntero_resultado = *puntero_numero1 + *puntero_numero2;

                               break;

                case 2:

                               *puntero_resultado = *puntero_numero1 - *puntero_numero2;

                               break;

                case 3:

                               *puntero_resultado = *puntero_numero1 * *puntero_numero2;

                               break;

                case 4:

                               if(*puntero_numero2 != 0) *puntero_resultado = *puntero_numero1 / *puntero_numero2;

                               break;

                }

                //IMPRIMIMOS EL RESULTADO CON TRES DECIMAL

                printf("\nEl resultado de la operacion es: %.3f\n",*puntero_resultado);

                //IMPRIMIMOS EL CONTENIDO DEL PUNTERO QUE EN REALIDAD MUESTRA LA

                //DIRECCIÓN DE LA VARIABLE A LA QUE APUNTA

                printf("\nEl resultado de la operacion es: %.d\n",puntero_resultado);

}