Vistas de página en total

domingo, 27 de octubre de 2013

Programación Android con CCTools y C - pc11_Calc3

Calculadora de operaciones
aritméticas con datos decimales
introducidos por teclado de pantalla son validados
y llama las funciones aritméticas
y retornar un valor a la función
principal main.


 
















/*pc11-Calculadora de operaciones
aritméticascon datos decimales
introducidos por teclado de pantalla son validados
y llama las funciones aritméticas
y retornar un valor a la función
principal main:
sumar +
restar -
multiplicar *
dividir /
resto %
*/

/*Ver pc02 y seguir los procedimientos
de introducir el programa con el editor de
CCTools, guardalo con save como pc11.c,
compilar con run, si hay errores corregirlos
en el editor, hasta que se ejecute bien y se
obtengan los resultados deseados*/
/*La operación raíz cuadrada
debe incluir 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
/*Función de suma fsuma recibe de
main los decimaled float v1, v2 y
realiza la operación aritmética de
suma, y retorna un resultado
decimal int r1 a la función main*/
float fsuma(float v1, float v2){
float r1;
r1=v1+v2;
return r1;
}
/*Función de resta fresta recibe de
main los decimales float v1, v2 y
realiza la operación aritmética de
resta y retorna un resultado
decimal float r1 a la función main*/
float fresta(float v1, float v2){
float r1;
r1=v1-v2;
return r1;
}
/*Función de multiplica fmultiplica recibe de
main los decimales float v1, v2 y
realiza la operación aritmética de
multiplica y retorna un resultado
decimal float r1 a la función main*/
float fmultiplica(float v1, float v2){
float r1;
r1=v1*v2;
return r1;
}

/*Función de divide fdivide recibe de
main los decimales float v1, v2 y
realiza la operación aritmética de
divide y retorna un resultado
decimal float r1 a la función main*/
float fdivide(float v1, float v2){
float r1;
r1=v1/v2;
return r1;
}
/*Función de resto fresto recibe de
main los enteros int v1, v2 y
realiza la operación aritmética de
resto y retorna un resultado
entero int r1 a la función main*/
int fresto(int v1, int v2){
int r1;
r1=v1%v2;
return r1;
}
/*Un programa en C esta constituido
por funciones, una debe ser main y
llamara a las funciones anteriores 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 dato inicial 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);
/*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((dato2>=imax) || (dato2<=imin)){
  printf("dato2 fuera de rango permitido \n");
  printf("Introduce dato2 decimal: ");
  scanf("%f",&dato2);
}
/*Operación suma*/
if(operacion==1){
dato1=fsuma(dato1,dato2);
}

/*Operación resta*/
if(operacion==2){
dato1=fresta(dato1,dato2);
}
/*Operación multiplica*/
if(operacion==3){
dato1=fmultiplica(dato1,dato2);
}
/*Operación divide*/
if(operacion==4){
dato1=fdivide(dato1,dato2)+fresto(dato1,dato2);
}
/*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*/
if(operacion==5){
dato1=sqrt(dato2+dato1);
}
/*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: