Skip to content

Instantly share code, notes, and snippets.

@h3ct0rjs
Created November 23, 2015 02:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save h3ct0rjs/47eede305b22588d6e2b to your computer and use it in GitHub Desktop.
Save h3ct0rjs/47eede305b22588d6e2b to your computer and use it in GitHub Desktop.
Trabajo Final de Programacion.
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <ctype.h>
//Una funcion por cada programa, no se necesita argumentos.
void salario();
void calculoareas();
void Operaciones();
void promsuma();
void sumapareseimpares();
void mediana();
#define MENSAJE printf("\n\n<<<<PRESIONE UNA TECLA PARA VOLVER A MENU");getch();
#define SI printf("\n\n<<<<SI...ENTONCES PULSA [S]");
#define NO printf("\n\n<<<<NO...ENTONCES PULSA UNA TECLA PARA VOLVER AL MENU");
/*
20) Encontrar la media de n números positivos leídos por teclado, la media se expresa como:
*/
/*FUNCION MENU: MUESTRA UN MENU EN PANTALLA*/
char menu()
{ //4,5,9,10,11,20
printf("\t:::::Johny Flor Camacho:::::\n");
printf("\tTrabajo Final de Programacion");
printf("\n********************************************");
printf("\n\t\tMENU DE OPCIONES");
printf("\n********************************************");
printf("\n\t1-Salario Neto de un Empleado");
printf("\n\t2-Operaciones, Mayor, Menor, Promedio");
printf("\n\t3-Calculo de Areas");
printf("\n\t4-Suma y Promedio, Repetitivas");
printf("\n\t5-Suma de Pares e Impares");
printf("\n\t6-Media");
printf("\n\t7-SALIR");
printf("\n********************************************\n");
printf("\nINGRESE UNA OPCION: ");
}
main()
{
system("COLOR 0e"); /*system pertenece a la libreria stdlib*/
float a,b; /*declaracion de variables globales*/
int n;
char c,resp;
do
{ /*primer ciclo do while para salir o continuar*/
do
{ /*segundo ciclo do while para el switch*/
system("CLS()"); /*limpia pantalla*/
menu();
c=getche();
getch();
switch(c)
{
case '1':system("CLS"); /*limpia pantalla*/
salario(); //Llamado de Funcion
MENSAJE;
break;
case '2':system("CLS"); /*limpia pantalla*/
Operaciones();
MENSAJE;
break;
case '3':system("CLS"); /*limpia pantalla*/
calculoareas(); //Llamado de Funcion de Areas
MENSAJE;
break;
case '4':system("CLS"); /*limpia pantalla*/
promsuma();
MENSAJE;
break;
case '5':system("CLS"); /*limpia pantalla*/
sumapareseimpares();
MENSAJE;
break;
case '6':system("CLS"); /*limpia pantalla*/
mediana();
MENSAJE;
break;
case '7':system("CLS"); /*limpia pantalla*/
default:printf("\n\n\n\n\tERROR<<<<<DEBES ELEGIR UNA OPCION VALIDA");
break;
}
} while(c!='7'); /*fin del segundo ciclo do while para el switch*/
printf("\n\nQUIERES SALIR DEL PROGRAMA?");
SI;
NO;
resp=toupper(getch()); /*INSTRUCCION QUE CONVIERTE A
MAYUSCULA [s->S]*/
/*toupper pertenece a la libreria ctype*/
} while(resp!='S'); /*fin del primer ciclo do while para salir o
continuar*/
return 0;
} /*FIN DEL PROGRAMA PRINCIPAL*/
/*SUBPROGRAMAS DEL PROGRAMA PRINCIPAL*/
void Operaciones(){
int num,n1,n2,n3;
int parc=0,imparc=0; //Contadores para cantidad de impares y pares
printf("\n\t\tOperacion de Tres Numeros\n\n");
printf("\n[!!]Ingrese Tres Numeros n1,n2,n3 Enteros:\t"); //Se debe especificar que los numoers son enteros.
scanf("%d%d%d",&n1,&n2,&n3); //Leemos los tres numeros enteros
system("cls");
printf("\n**Menu de Opciones**\n");
printf("\n[1]Calcular el promedio");
printf("\n[2]Hallar el mayor");
printf("\n[3]Hallar el menor");
printf("\n[4]cuantos pares e impares hay");
printf("**INGRESE OPCION**");
scanf("%d",&num); //Leemos la opcion elegida por el usuario.
if (num==1){ //Si la eleccion del usuario es ejecutar el programa 1,
printf("\n[1]Calculo del promedio");
printf("\nSu Promedio es %d",((n1+n2+n3)/3));
}
else if (num==2){
printf("\n[2]Hallando el mayor de tres");
if((n1>n2) &&(n1>n3))
printf("\nEl mayor es %d",n1);
else if((n2>n1) &&(n2>n3))
printf("\nEl mayor es %d",n2);
else if((n3>n1) &&(n3>n2))
printf("\nEl mayor es %d",n3);
}
else if (num==3){
printf("\n[3]Hallar el menor de tres");
if((n1<n2) &&(n1<n3))
printf("\nEl menor es %d",n1);
else if((n2<n1) &&(n2<n3))
printf("\nEl menor es %d",n2);
else if((n3<n1) &&(n3<n2))
printf("\nEl menor es %d",n3);
}
else if (num==4){
printf("\n[4]Cantidad de PARES E IMPARES\n");
if((n1%2)==0){parc=parc+1;}
else{imparc=imparc+1;}
if((n2%2)==0){parc=parc+1;}
else{imparc=imparc+1;}
if((n3%2)==0){parc=parc+1;}
else{imparc=imparc+1;}
printf("La cantidad de Pares es: %d \n Impares son :%d",parc,imparc);
parc=0; imparc=0; //Limpia Contadores, solo para que en caso de que se vuelva a correr
}
else{
printf("Error Opcion Invalida");
}
}
void salario(){ //Ejercicio 4, Calculo del salario basado en
/*
4) Determinar el salario neto de un empleado de una compañía con base en el salario básico, bonificación, descuento y categoría.
Considere la siguiente tabla:
categoría bonificación descuento
1 15% 4%
2 13% 3%
3 12% 2%
4 9.5% 0%
Utilizando la estructura if-then-else
*/
int categoria;
float salario,salarioganado,salarioneto,descuento;
printf("\n\t1-:::::Salario Neto de un Empleado:::::\n");
printf("Ingrese el Salario Ganado :\t");
scanf("%f",&salario);
printf("\nIngrese Categoria :\t");
scanf("%d",&categoria);
if (categoria == 1){
salarioganado=(salario*0.15)+salario;
descuento=salario*0.04;
salarioneto=salarioganado-descuento;
printf("Detalles de Salario:\n");
printf("Su bonificacion de mes fue de:$%.0f",salario*0.15);
printf("\nSu descuento fue de :$%.0f",descuento);
printf("\nSu salario neto es:$%.0f",salarioneto);
}
else if(categoria == 2){
salarioganado=(salario*0.13)+salario;
descuento=salario*0.03;
salarioneto=salarioganado-descuento;
printf("Detalles de Salario:\n");
printf("Su bonificacion de mes fue de:$%.0f",salario*0.13);
printf("\nSu descuento fue de :$%.0f",descuento);
printf("\nSu salario neto es:$%.0f",salarioneto);
}
else if(categoria == 3){
salarioganado=(salario*0.12)+salario;
descuento=salario*0.02;
salarioneto=salarioganado-descuento;
printf("Detalles de Salario:\n");
printf("Su bonificacion de mes fue de:$%.0f",salario*0.12);
printf("\nSu descuento fue de :$%.0f",descuento);
printf("\nSu salario neto es:$%.0f",salarioneto);
}
else if(categoria == 4){
salarioganado=(salario*0.095)+salario;
descuento=salario;
salarioneto=salarioganado-descuento;
printf("Detalles de Salario:\n");
printf("Su bonificacion de mes fue de:$%.0f",salario*0.095);
printf("\nSu descuento fue de :$%.0f",descuento);
printf("\nSu salario neto es:$%.0f",salarioneto);
}
else {
printf("Categoria Invalida, Adios");
}
}
void calculoareas(){
int a,b,h,B; //Variables para almacenar datos.lados, Altura, Base mayor, Base menor
char opcion;
printf("\n::::Calculo de Areas::::");
printf("\na.el Area de un rectangulo");
printf("\nb.Area de un triangulo rectangulo");
printf("\nc.Area de un trapecio");
printf("\nINGRESE OPCION [a,b,c] : ");
opcion=getch();
switch(opcion) {
case 'a':
printf("\n\n------------------------------------");
printf("\nCalculo de Area Retangulo");
printf("\n------------------------------------");
printf("\nIngrese lado a:\t");
scanf("%d",&a);
printf("\nIngrese lado b:\t");
scanf("%d",&b);
printf("\nEl area total es:%d m^2\n",a*b);
//axb
break;
case 'b':
printf("\n\n------------------------------------");
printf("\nCalculo de Area Triangulo Retangulo");
printf("\n------------------------------------");
printf("\nIngrese base:\t");
scanf("%d",&b);
printf("\nIngrese altura:\t");
scanf("%d",&h);
printf("\nEl area total es:%d m^2",(h*b/2));
break;
case 'c':
printf("\n\n------------------------------------");
printf("\nCalculo de Area Trapecio");
printf("\n------------------------------------");
printf("\nIngrese base Mayor:\t");
scanf("%d",&B);
printf("\nIngrese base Menor:\t");
scanf("%d",&b);
printf("\nIngrese Altura:\t");
scanf("%d",&h);
printf("\nEl area total es:%d m^2",(B+b/2)*h);
break;
default:
printf("Opcion Invalida, Retornando");
break;
}//Fin Switch
} //Fin Main
void promsuma(){
//10) Hallar la suma y el promedio de los 20 primeros números enteros mayores que cero, utilizando la sentencia while
float n=0,sumtotal=0,pro;
while (n<=20){
sumtotal=sumtotal+n;
n++;
}
pro=sumtotal/20;
printf("\n La suma de los primeros 20 numeros enteros es %.2f",sumtotal);
printf("\n el promedio de primeros 20 numeros enteros es %.2f",pro);
getch();
}
void sumapareseimpares(){
//Hallar la suma total, suma de pares e impares entre 1 y n, donde n entra por teclado, utilizando la sentencia for
int n;
int pares=0, impares=0;
printf("\n\n---------------------------------------------");
printf("\n suma total, De Pares e Impares entre 1 y n ");
printf("\n-----------------------------------------------");
printf("\nIngrese el limite n:\t");
scanf("%d",&n);
for(int i=0;i<=n;i++){
if((i%2)==0)
pares=pares+i;
else if((i%2)==1)
impares=impares+i;
}
printf("La Suma Total de Pares es:%d\n",pares);
printf("La Suma Total de Pares es:%d",impares);
}
void mediana(){
//20) Encontrar la media de n números positivos leídos por teclado, la media se expresa como:
int lim;
int suma=0;
printf("\n\n---------------------------------------------");
printf("\n Media entre 1 y n ");
printf("\n-----------------------------------------------");
printf("\nIngrese el limite n:\t");
scanf("%d",&lim);
for(int i=0;i<=lim;i++){
suma=suma+i;
}
printf("La media hallada es %d\n",(suma/lim));
}
/*
Problemas Resueltos Parcial.
4) Determinar el salario neto de un empleado de una compañía con base en el salario básico, bonificación, descuento y categoría. Considere la siguiente tabla:
categoría bonificación descuento
1 15% 4%
2 13% 3%
3 12% 2%
4 9.5% 0%
Utilizando la estructura if-then-else
5) Realizar un programa con el cual se puedan hacer las siguientes operaciones con 3 números. Utilizando la estructura if-then-else
" Calcular el promedio
" Hallar el mayor
" Hallar el menor
" Identificar cuántos pares e impares hay
9) Diseñar un programa que calcule:
" el área de un rectángulo
" área de un triángulo rectángulo
" área de un trapecio
10) Hallar la suma y el promedio de los 20 primeros números enteros mayores que cero, utilizando la sentencia while
11) Hallar la suma total, suma de pares e impares entre 1 y n, donde n entra por teclado, utilizando la sentencia for
20) Encontrar la media de n números positivos leídos por teclado, la media se expresa como:
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment