Vistas de página en total

domingo, 27 de octubre de 2013

Programación Android con CCTools y C - pc13_Calc5

Calculadora de operaciones aritméticas
con datos decimales introducidos por
teclado de pantalla son validados
y las operaciones se realizan con
la instrucción switch, las operaciones
aritméticas se realizan en main
sin llamar funciones.



















/*pc13-Calculadora de operaciones aritméticas
con datos decimales introducidos por
teclado de pantalla son validados
y las operaciones se realizan con
la instrucción switch, las operaciones
aritméticas se realizan en main
sin llamar funciones:
sumar +
restar -
multiplicar *
dividir /
resto %
raíz cuadrada sqrt
*/

/*Ver pc02 y seguir los procedimientos
de introducir el programa con el editor de
CCTools, guardalo con save como pc13.c,
compilar con run, si hay errores corregirlos
en el editor, hasta que se ejecute bien y se
obtengan los resultados deseados*/
/*Con la operación Raíz cuadrada
debe incluirse la librería math.h y
compilarse con build y aparece un
ventana de compile source file
en arguments poner -lm y activar
build ejecutable y run, aparece
otra ventana de ejecute file y pide
line arguments que no se ponen nada
y se continua la ejecución*/
/*Un programa en C primero debe
incluir librerías que usara el
programa*/
#include<stdio.h>
#include<math.h>
/*En C se puede crear nombres
constantes con define que son
sustituidos por su valor en el
programa*/
#define DOSMILLONES 2000000.00
#define MENOSDOSMILLONES -2000000.00
/*Un programa en C esta constituido
por funciones que son llamadas por
la función main o principal*/
/*Un programa en C esta constituido
por funciones, una debe ser main y sera
el punto de entrada al ejecutarse el programa*/
int main(){
/*Una función como main es una secuencia de
instrucciones que realiza operaciones
con datos. Primero debe definirse los datos asignando
una variable con un nombre y un valor inicial de 0, como
dato1, dato2 y su tipo de datos decimales float*/
float dato1=0,dato2=0;
int operacion=0;
/*Asignamos un min. y max a los decimales
permitidos*/
float imin = MENOSDOSMILLONES;
float imax = DOSMILLONES;

/*Desplegamos el decimal float máximo y minimo
permitido*/
printf("Decimal Max Permitido: %.2f \n",imax);
printf("Decimal Min Permitido: %.2f \n",imin);
/*Desplegamos que se introduzcan
los datos por la pantalla*/
printf("Introduce primer dato decimal: ");
scanf("%f",&dato1);

/*Utilizamos la instrucción de decisión y
repetición while para probar dos condiciones de los
valores del dato introducido si son
permitidos, si alguna o las dos se cumplen,
se despliega fuera de rango, se
repite pedir e introducir de nuevo el dato*/
while((dato1>=imax) || (dato1<=imin)){
  printf("Dato fuera de rango permitido \n");
  printf("Introduce dato decimal: ");
  scanf("%f",&dato1);
}
printf("Dato inicial= %.2f \n",dato1);
 
do{
printf("\nCalculadora Decimal \n");
printf("Operaciones \n");
printf("0-FIN \n");
printf("1-Suma \n");
printf("2-Resta \n");
printf("3-Multiplica \n");
printf("4-Divide \n");
printf("5-Raíz cuadrada \n\n");
printf("Selecciona Operación: ");
scanf("%d",&operacion);
if(operacion==0){
printf("Fin de Calcular: \n");
break;
}
if((operacion<0) || (operacion>5)){
printf("Operación Inválida \n");
continue;
}
printf("Introduce dato2 decimal: ");
scanf("%f",&dato2);
while((dato2>=imax) || (dato2<=imin)){
  printf("Dato fuera de rango permitido \n");
  printf("Introduce dato decimal: ");
  scanf("%f",&dato2);
}
/*El if anidado se sustituye por
la instrucción de switch, las
operaciones aritméticas se
realizan localmente sin llamar
las funciones*/
switch(operacion){
  case(1):
  /*Operación suma*/
  dato1=(dato1+dato2);
  break;
  case(2):
  /*Operación resta*/
  dato1=(dato1-dato2);
  break;
  case(3):
  /*Operación multiplica*/
  dato1=(dato1*dato2);
  break;
  case(4):
  /*Operación divide*/
  dato1=(dato1/dato2);
  break;
  case(5):
  /*Operación raíz cuadrada*/
  dato1=sqrt(dato2+dato1);
  break;
}//switch

/*Subtotal de cada operación*/
printf("Subtotal= %.2f \n",dato1); 
}while((operacion>=0)||(operacion<=4));
/*Total de todas las operaciones*/
printf("Total= %.2f",dato1);
/*La función main debe tener un retorno
de 0 errores al sistema operativo*/
return 0;
}

No hay comentarios: