Vistas de página en total

sábado, 21 de diciembre de 2013

Programación android con CCTools y C - pc15_Calc7

Ver video:  pc15-Calc7

/*pc15-Calculadora de operaciones
matemáticas y trigonométricas
con datos decimales introducidos por
con teclado de pantalla son validados
y llama las funciones y retornar
un valor a la función principal main*/
























/*Ver pc02 y seguir los procedimientos
de introducir el programa con el editor de
CCTools, guardalo con save como pc15.c,
compilar con run, si hay errores corregirlos
en el editor, hasta que se ejecute bien y se
obtengan los resultados deseados*/
/*Operación con funciones matemáticas
como la Raíz cuadrada y trigonométricas,
ebe 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 pone 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*/
/*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,tot=0;
int dato3=0,operacion=0;
float adato4[100];
float dato5=0;
int i,j,k;
do{
printf("\nCalculadora Matemática \n");
printf("Selecciona Operación: \n");
printf("0-FIN \n");
printf("1-Aritmética \n");
printf("2-Trigonométrica \n\n");
printf("Introduce Operación: ");
scanf("%d",&operacion);
if(operacion==0){
printf("Fin de Calcular: \n");
break;
}
if((operacion<0) || (operacion>2)){
printf("Operación Inválida \n");
continue;
}
if(operacion==1){
//Indice j=0 de arreglo adato4
j=0;
//Limpiamos adato4
for(i=0; i<100; i++){
adato4[i] = '\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 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("Subtotal= %.2f \n",dato1);
do{
printf("\nCalculadora Decimal \n");
printf("Selecciona Operación: \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("Introduce 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 dato 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("Dato fuera de rango permitido \n");
  printf("Introduce dato decimal: ");
  scanf("%f",&dato2);
}

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
if(j<100){
  adato4[j] = dato1;
}else{
  printf("Arreglo de datos lleno...");
}
j++;
/*Subtotal de cada operación*/
printf("Subtotal= %.2f \n",dato1);
//Sumamos dato1 a dato3
tot = tot + dato1; 
}while((operacion>=0)||(operacion<=4));
k=0;
dato5=0;
printf("\nArreglo de datos\n");
for(i=0;i<100;i++){
  if(!adato4[i]) continue;
  k++;
  dato5 = dato5 + adato4[i];
printf("Dato: %.2f\n",adato4[i]);
}
/*Total de todas las operaciones*/
printf("Total= %.2f\n",tot);
tot = 0;
printf("Promedio: %.2f\n",dato5/k);

}//Fin op arit.
if(operacion==2){
do{
printf("\nCalculadora Trigonométrica \n");
printf("Selecciona Operación: \n");
printf("0-FIN \n");
printf("1-Coseno \n");
printf("2-Seno \n");
printf("3-Tangente \n\n");
printf("Introduce Operación: ");
scanf("%d",&operacion);
if(operacion==0){
printf("Fin de Calcular: \n");
break;
}
if((operacion<0) || (operacion>3)){
printf("Operación Inválida \n");
continue;
}
dato1=0;
printf("Introduce grados en decimal: ");
scanf("%f",&dato2);
/*Operación Coseno*/
if(operacion==1){
dato3=dato2;
//Convierte grados a radianes
dato2= dato2*(3.142/180.0);
printf("Cos(%d)Grados = %f \n",dato3,cos(dato2));
}
/*Operación Seno*/
if(operacion==2){
dato3=dato2;
//Convierte grados a radianes
dato2= dato2*(3.142/180.0);
printf("Sen(%d)Grados = %f \n",dato3,sin(dato2));
}
/*Operación Tangente*/
if(operacion==3){
dato3=dato2;
//Convierte grados a radianes
dato2= dato2*(3.142/180.0);
printf("Tan(%d)Grados = %f \n",dato3,tan(dato2));
}
}while((operacion>=0)||(operacion<=3));

}//Fin op. trigonométricas
}while((operacion>=0)||(operacion<=2));
//Fin de calculadora matemática
/*La función main debe tener un retorno
de 0 errores al sistema operativo*/
return 0;
}