Bienvenido

Bienvenido
Disfruta el contenido

sábado, 7 de marzo de 2015

Edificios padres Un poco de inspiracion


Algo un poco fuera de lo normal

Hola les dejo estas imagenes de edificios locos que me encontre por ahi. Ahi algunas de Gaudi tambien. Muchas veces pienso que pensando de forma no convencional algo increible podria surgir en medio de todo. Realmente la inspiración puede venir de cualquier lado

Disfruten!!












Bocetos 1


Dibujo de bocetos


Hola el dia de hoy les comparto unos bocetos de dibujos que hice algun tiempo  para que vean que no todo es trabajo espero les guste. Esto lo tenia en otro lado pero creo que lo voy a pasar por aqui de ahora en adelante.

Para todos los que les lata probar el dibujo se los recomiendo mucho ya que es una actividad de paciencia y soltura.

Los siguientes dibujos los hice con lapices de dibujo  4H 6H para el primer boceto de las proporciones en sus figuras geometricas basicas .2H 2B para el trazo y un 4B para las sombras






Este lo hice con puntillismo es uno de mis favoritos con pluma de gel en una cartulina negra 


Algo medio surrealista







Cada cuando debemos renovar nuestro equipo


¿En que momento debemos actualizar o incluso adquirir un nuevo equipo?

Algo que todos nos hemos preguntado en alguna ocasion sobre nuestros equipos sobre todo estando todo el tiempo viendonos alrededor de un mundo tan cambiante y dinamico como el de ahora. Imagina si salen actualizaciones no solon de software sino de hardware mas de una vez al año como decidirnos sobre como actualizar nuestros equipos y que hacer con aquellos que ya han pasado mucho tiempo. 





Para usuarios especializados es posible que sea necesario realizar esto constantemente en caso de tener software especializado que deba cumplir exigentes requisitos en video, memoria disponible y capacidad de procesamiento. Un equipo en realidad tarda tiempo en quedar obsoleto si buscamos darle una utilidad practica, quiza ya no nos sea util para nuestro trabajo de primera mano pero si puede sernos util en otro tipo de tareas tales como redactar documentos o navegar por Internet.





Deacuerdo a la ley propuesta por Gordon Moore, cofundador de Intel las capacidades computacionales se iban a duplicar cada 18 meses agregando cada vez mas componentes en un area del mismo o menor tamaño. Hace unos años incluso las capacidades de construccion de CI fueron rebasadas obligando a los diseñadores de procesadores a migrar a arquitecturas paralelas tal y como los procesadores actuales.





Si tu usas una computadora PC una de las limitantes que decidira hasta donde es posible expandir y actualizar tu equipo es la tarjeta madre ya que este componente ofrece la comunicacion y el soporte para los demas dispositivos que conforman la computadora

Otra limitante para la actualizacion es la arquitectura. Actualmente las arquitecturas mas usadas son de 32 y 64 bits. Viendo esto debemos tomar en cuenta que las aplicaciones para un sistema de arquitectura de 32 bits no puede migrar a uno de 64.


Actualización de hardware


Actualizar el hardware es una tarea que requiere siempre un costo economico el cual debemos evaluar si incluso puede llegar a ser necesario adquirir un equipo nuevo.

Aunque se ha tratado de que software sea cada vez mas independiente del hardware para su implementacion y desarrollo siempre existira una relacion estrecha entre ambos. En decadas pasadas el software existente llego muchas veces a rebasar las capacidades que podia ofrecer el hardware y otras en las que hubo un software que podia aprovechar las amplias capacidades ofrrecidas y aun tener capacidad para poder realizar mas tareas.


Una actualizacion muy comun es agregar mas memoria RAM. Una mayor cantidad de memoria RAM mejora de manera general el rendimiento del equipo. Algo que si es importante checar al cambiar la RAM entre otras cosas es el tipo de memoria si esta es DIM o DDR dependiendo de cual soporte la tarjeta madre.

En caso de manejar graficos requeriras una tarjeta de video deacuerdo a las especificaciones de tu programa. Les dejo este link de NVIDIA.




Actualización de software



Cada año salen nuevas versiones de muchos tipos de software existentes e incluso varias veces en el transcurso del año surgen parches de actualizacion o correccion de errores que en ocasiones es necesario instalarse para que la aplicacion funcione correctamente


Si requieres software especializado te recomiendo que siempre cheques los requisitos minimos y recomendados del software para ver si este es soportado por tu equipo.




No siempre es necesario tener las versiones mas nuevas de un software. En el caso de AutoCAD un programa de dibujo por computadora existen dos versiones en el mercado inclusive una de 2D y otra para dibujo en 3D. Si no requieres hacer dibujos tridimensionales con la necesidad de una tarjeta grafica porque gastar de mas. 

Sobre el mantenimiento

Las computadoras como cualquier otro equipo sufren desgaste y cada cierto tiempo requieren un cierto mantenimiento. Existen dos tipos de mantenimiento siendo estos mantenimiento correctivo y mantenimiento preventivo.

Uso de nuevas tecnologías para mejorar tu trabajo


Cada año nuevas propuestas llegan a nosotros, algunas de ellas tienen antecedentes en otras ideas ya existentes o son el resultado de una evolucion natural o desarrollo continuo que tiene un trabajo de muchos años y ha llegado a un momento de maduracion en el cual esta listo para salir a los usuarios.

El uso de Internet para producir contenido colaborativo abre la posibilidad de agilizar nuestro trabajo mucho mas y estar comunicados con nuestros compañeros de trabajo 

Espero que te haya agradado este POST breve pero util y mucha suerte Nos vemos



Programacion en C Interes Compuesto y anualidades


Desarrollo de un programa básico de finanzas



Quick Note

Hello, if you visit us from another country for non spanish speakers press the language button to read this post in the language of your preference. To see the program code go back and press the spanish option again because the translator scrambles it.

Enjoy... 


Hola a todos en esta entrada les muestro este programa que hice sobre algunas formulas financieras básicas que incluyen las siguientes opciones
  • Interés compuesto
  • Anualidades 
  • Imposiciones
Este programa fue escrito con propositos academicos, no como aplicacion comercial o de calculo. Requiere cambios sobre todo en los tipos de datos y mas pruebas para eso pero considero que se pueden aprender muchas cosas utiles sobre programacion estructurada y manejo de errores en calculos por medio de este programa.


Aqui les muestro unas definiciones de cada una de las opciones que hace el calculo del programa

Interes Compuesto
El interes es compuesto cuando los intereses que gana el capital representado se capitalizan
periodicamente, es decir se suman al capital prestado a intervalos iguales de tiempo constituyendo
un nuevo capital al final de cada unidad de tiempo.

A continuacion les muestro una imagen de la formula de interes compuesto



Esta formula funciona por medio de una repeticion controlada por contador a traves de un ciclo for

Anualidad
Se define la anualidad como la cantidad fija que hay que pagar al final de
cada año para amortizar un capital prestado y sus intereses compuestos en cierto numero
de años



Donde:

P= valor presente
A = Anualidad  (cuota del crédito o ingreso mensual)
i= Tasa de interés periódica
n= Número de periodos

Esta formula debe checar sus datos de interes y amortizacion para evitar una division entre cero. El programa en este caso le pedira que verifique sus datos para intentar el ingreso de datos nuevamente.


Imposiciones
Se trata de construir un capital c en cierto numero de años imponiendo al principio de cada año
una cantidad fija a interes compuesto

Para consultar mas sobre las formulas usadas por este programa, al igual que ejercicios lo pueden consultar en el libro de Baldor de Algebra en el ultimo capitulo sobre Interes compuesto y anualidades


Sobre el funcionamiento del programa

El programa por medio de un menu despliega 3 opciones de calculo y una opcion de salida por medio de un switch.

Si tienes dudas acerca del desarrollo del menu te recomiendo que visites mi POST sobre menus en este mismo blog donde encontraras el analisis del programa al igualque una plantilla para el desarrollo de proyectos.

Verificacion de datos
El ingreso de datos se verifica que cumpla cada dato ingresado con las condiciones de la formula por medio de un ciclo do while para dar la oportunidad de ingresar los datos una vez y posteriormente verificar permitiendo que el programa adquiera una mayor robustez.

Aqui les muestro la aplicacion de un ciclo do while para verificar el monto minimo que permite los calculos de interes compuesto en este programa.  El condicional if permite en caso de no validarse la condicion avisarle al usuario para ingresar los datos nuevamente.

Tanto if como do while tienen la misma condicion para poder verificar el dato

 do{
           //lectura de dato
            printf("Ingrese el monto a depositar: $ ");
            scanf("%f", &principal);
         
            copia_1 = principal;
         
            if(principal < 1000.0)
              printf("\nEl monto minimo para depositar una cuenta son $1000.0, ingrese otra cantidad\n\n");
     
        }while(principal < 1000.0);

Si quisieramos que cumplier con un rango de valores podemos usar una condicion compuesta con la ayuda de los operadores logicos de C

Aqui les muestro las tablas de verdad de los operadores AND y OR donde A, B y P, Q son los operandos de la expresion.


TABLA DE VERDAD DE OR

TABLA DE VERDAD DE AND


Un ejemplo si quisieramos que la variable principal estuviera en el rango de $1000 a $50000 podemos verificarlo por medio de esta condicion.

if(principal >= 1000 && principal <= 5000)
       printf("Tu valor esta en el rango de $1000 a $5000");

Otra utilidad para esto esta en evaluar caracteres sin importar que sean mayuscula o minuscula mientras sea el tipo de caracter solicitado.

if(caracter == 'm' || caracter  == 'M')
   printf("Seleccionaste la letra m");

Precedencia de operadores

Cuando escriban en sus programas expresiones de este tipo se deben tomar en cuenta la precedencia de los operadores para evitar errores logicos dificiles de detectar por el compilador. Para evitar esto recomiendo encerrar los operandos a evaluar con (  )  ya que los parentesis tienen la precedencia mas alta.

Les dejo esta tabla de consulta que es muy util .



Manejo de division entre cero

La formulas de anualidad e imposiciones requieren divisiones por lo que se maneja un if else para manejar la posibilidad de producir una division entre cero que haria que el programa colapsara o crasheara como luego tambien le dicen. Si esto sucede el programas saltara la opcion de calculo y te pedira que verifiques tu datos.

Aqui les muestro la parte del codigo que hace esta opcion. Esta es una alternativa practica y facil de implementar para mejorar la robustez de sus programas y evitar el colapso por el error de division entre cero.


denominador_a = pow(1+ r, t) - 1;

if(denominador_a != 0)  //evitar division entre cero
{
a = ( (c*r) * pow(1+ r, t) ) / denominador_a;

//fase de impresion de resultados
printf("\n\nReporte de resultados.");
printf("\nLa anualidad a pagar despues de amoritizarla %f años
                                             al %f de interes es: ", t, r);

printf("\nCantidad a pagar $: %4.2f \n", a);


}
else
 printf("DIVISION ENTRE CERO: CHEQUE SUS DATOS DE INTERES Y AMORTIZACION");

Mientras el programa sepa mejor manejar eventualidades de tipos de datos erroneos o invalidos tendremos un software mucho mas confiable y de mayor calidad para los usuarios Bueno para eso estamos jajaja.

Tip de edición de programa
Escribir el programa en el editor de texto requiere muchos caracteres especiales, por lo que les recomiendo para todos los que tienen código ASCII en su equipo aprenderse alguno de los caracteres que se utilizan con frecuencia


Para usar la tabla solo aprieta ALT + NumeroTabla

Notas antes de usarse

Este programa aun considero que faltan pruebas para poder usarse, por lo que solo lo recomiendo como una forma de verificar resultados y uso academico. El programa esta declarado con tipos de datos tipo float, por lo que se necesita cambiar a otro tipo de dato de mayor precision para poder ser usado como herramienta de calculo.


Este programa fue escrito y probado en el compilador Dev C++




Capturas de pantalla del programa funcionando










/*Calculo de Interes Compuesto    VERSION DE PRUEBA    2015 
---------------------------------------------------------
Blog de Rincon Informatico     Mexico 2015   
Autor: Juan Lopez
---------------------------------------------------------

DESCRIPCION DEL PROGRAMA 
El siguiente programa realiza calculos financieros basicos para la resolucion de problemas
basicos de finanzas. 

NOTAS TECNICAS
El programa funciona con datos tipo float, por lo que para una aplicacion comercial se requiere
su codificacion a un lenguaje especializado o bien que soporte tipos de datos con la precision requerida 

Los do/while funcionan para verificar los datos que sean validos para las formulas pero es posible 
que el programa requiera mas depuracion.
----------------------------------------------------------
Consulta Teorica tomada del libro de Algebra de Baldor
.---------------------------------------------------------
Interes Compuesto
El interes es compuesto cuando los intereses que gana el capital representado se capitalizan 
periodicamente, es decir se suman al capital prestado a intervalos iguales de tiempo constituyendo
un nuevo capital al final de cada unidad de tiempo.

Anualidad
Se define la anualidad como la cantidad fija que hay que pagar al final de 
cada año para amortizar un capital prestado y sus intereses compuestos en cierto numero
de años

Imposiciones 
Se trata de construir un capital c en cierto numero de años imponiendo al principio de cada año 
una cantidad fija a interes compuesto

-------------------------------------------------------------

*/

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <ctype.h>

//calculos financieros basicos
void Interes(void);
void Anualidad(void );
void Imposicion(void );

//control de programa
void menu(void);
void SalirDelProg(void );

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

  
  //valores para distribucion binomial
    
  menu();  //menu de opciones
  
  
    
  system("cls");  
  
  printf("Calculos financieros basicos >!ºº!<\n");
  printf("\nCreditos.\nhecho por Juan Carlos Lopez\nVuelve pronto");
    
  getch();
  //system("PAUSE");
  return 0;
}  //fin de main

//menu de opciones
void menu()
{
char salida, opcion;
do{         
      
  
   system("cls");
        
printf("\a************************************************\n");
        printf("*       +      +         +      +    +           *\n");
        printf("*    <Calculos financieros basicos 1.0>   !ºº!<  *\n");
        printf("*     +     +               +   +                *\n");
        printf("*   +  +  +   +               +                  *\n"); 
   printf("**************************************************\n\n\n");
 
//seleccion de        
         printf("[1]-Interes Compuesto.\n");
         printf("[2]-Anualidades.\n");
         printf("[3]-Imposiciones.\n");
         printf("[4]-Salir.\n");
         
         printf("\n\n*Selecciona la funcion que desee calcular: ");
         scanf("%d", &opcion);
                 
        switch(opcion)
        {
        case 1:
        Interes();
        break;
       
        case 2:
        Anualidad();
   break;
case 3:
Imposicion();
  break;
case 4:
SalirDelProg();
break;
  
default:
printf("Opcion incorrecta; selecciona de nuevo una opcion");
 break;  
}//fin de seleccion
 printf("\n\n¿Desea un nuevo calculo (S/N)?: ");
        
        salida = getch();
        salida = tolower(salida);
        
  }while(salida == 's' ); 
}//fin del menu de opciones

//salir del programa
void SalirDelProg(void)
{
char salida;
printf("\n\n¿Desea un nuevo calculo (S/N)?: ");
salida = getch();
if(salida == 's')   //salir del programa
salida = tolower(salida);
else  //regresar al menu de opciones
 menu();
 
}

//calculo de funciones matematicas
void Interes()
{
system("cls");  
    float year, principal, rate, numero, counter, amount;
    float copia_1, copia_n;
    printf("Calculo de interes Compuesto\n");  //adaotado del ejemplo de Como Programar en C Deitel
printf("-Ingreso de datos.-\n");
        
        do{
            printf("Ingrese el monto a depositar: $ ");
            scanf("%f", &principal);
            
            copia_1 = principal;
            
            if(principal < 1000.0)
              printf("\nEl monto minimo para depositar una cuenta son $1000.0, ingrese otra cantidad\n\n");
        
        }while(principal < 1000.0);
        
        do{
            printf("*Ingrese los años que desee hacer su inversion: ");
            scanf("%f", &year);
            
            if(year < 1.0)
              printf("ERROR 234: se necesita al menos un año de deposito para generar intereses.\n");
            
        }while(year < 1.0);
        
        printf("*Ingrese la tasa de interes anual %: ");
        scanf("%f", &numero);
        
        printf("\n");
        rate = numero * 0.01;
        
        printf("%4s%21s\n", "año", "monto de deposito");
        for(counter = 1.0; counter <= year; counter++)
        {
            amount = principal * pow(1.0 + rate, counter);
            printf("%4.0f%14.2f\n", counter, amount);
            
            if(year == counter)
              copia_n = amount;
            
        }
        
        printf("\n\nReporte de resultados.-");     
           printf("\n*Monto inicial: %8.2f\n*Monto final: %10.2f\n*Ganancia de la inversion de %2.0f año(s) %8.2f\n", copia_1, copia_n,
           counter, copia_n-copia_1);
        
}  //fin de la funcion para distribucion binomial

void Anualidad()
{
float a, c, r, t, r_a;
/*Variables para la formula de anualidad
donde 
*/
float denominador_a;
system("cls");
    printf("Calculo de Anualidades\n");
printf("-Ingreso de datos.-\n");
//fase de captura de datos
printf("Ingresa la cantidad a pagar: ");
scanf("%f", &c);
do  //uso de do/while para verificar que los datos sean validos. La estructura permite el ingreso de datos al menos una vez y verificarlos en caso de ser validos salir de la estructura y continuar 
{
printf("Ingresa el porcentaje de Interes a pagar: ");
          scanf("%f", &r_a);
if(r_a < 0)
 printf("ERROR: Un interes < 0 por ciento no es valido.");
 
 
}while(r_a < 0);

do{
printf("Ingresa los años de amortizacion:  ");
   scanf("%f", &t);
if(t <= 1)
 printf("ERROR: Se necesita al menos un año de amortizacion para el calculo.");
}while(t <= 1);
 
//fase de procesamiento de datos
    r = r_a / 100; //sacar el interes en porcentaje para 
denominador_a = pow(1+ r, t) - 1;
if(denominador_a != 0)  //evitar division entre cero
{
a = ( (c*r) * pow(1+ r, t) ) / denominador_a;
//fase de impresion de resultados
printf("\n\nReporte de resultados.");
printf("\nLa anualidad a pagar despues de amoritizarla %f años al %f de interes es: ", t, r);
printf("\nCantidad a pagar $: %4.2f \n", a);
}
else
 printf("DIVISION ENTRE CERO: CHEQUE SUS DATOS DE INTERES Y AMORTIZACION");


}//fin de la funcion de Anualidad

void Imposicion()
{
system("cls");
printf("Calculo de Imposiciones ");
float imp, capital, r_imp, t_anyos;
float denom_b;
//captura y verificacion de datos
do{
   printf("Ingresa los años en los que se pretende construir el capital: ");
      scanf("%f", &t_anyos);
if(t_anyos <= 1)
 printf("ERROR: Se necesita al menos un año para el calculo.");
}while(t_anyos <= 1);
do{
  printf("Ingresa la imposicion anual: ");
      scanf("%f", &r_imp);
if(r_imp < 0)
 printf("ERROR: Un interes < 0% no es valido.");
}while(r_imp < 0);
do{
     printf("Ingresa el capital a construir: ");
   scanf("%f", &capital);
if(capital < 0)
 printf("ERROR: El capital ingresado debe ser mayor a cero.");
}while(capital < 0);
    //procesamiento de datos
denom_b = pow(1+ r_imp,t_anyos+ 1) -  (1 + r_imp);
if(denom_b != 0)  //checar que no se produzca division entre cero
{
imp = (capital * r_imp) / denom_b;
printf("Reporte de resultados");
      printf("La imposicion para construir el capital desado es: %4.2f", imp);
}else
 printf("ERROR 235: DIVISION ENTRE CERO VERIFICA TUS DATOS");
//impresion de resultados
}//fin de la funcion de Imposicion


//FIN DE PROGRAMA



















Desarrollo de menus


Desarrolla menús interactivos para tus proyectos de Programación


Antes de empezar les agradezco a todos sus visitas para este joven pero entusiasta blog(apenas dos meses y medio jaja) y espero que sigamos mucho tiempo mas por aca.

Quick Note

Hello, if you visit us from another country press the language button to read this post in the language of your preference. To see the program code go back and press the spanish option again because the translator scrambles it.
 Enjoy... 


Hola que tal el dia de hoy les comparto este código acerca del desarrollo de menús en lenguaje C. Este programa les puede servir para sus proyectos de programación asi como ordenar entre múltiples opciones para que el usuario pueda elegir a su gusto.

El uso de plantillas promueve la reutilizacion de software al mismo tiempo que hace mas rapido el desarrollo de programas.

El programa se compone de 3 partes 
  • Desarrollo de menú
  • Esta es la primera parte del programa en la cual se despliegan las opciones disponibles y se selecciona entre los diversos casos de las opciones que se tienen para el usuario
  • Selección de opciones
  • Le permite al programa elegir entre las opciones que tiene en base a la entrada del usuario. Esta opción se logra por medio de un switch
  • Funciones por opción
  • Divide cada opcion en una función con su tarea especifica. Esta primera función que manda a llamar main su tarea puede dividirse a su vez en otras funciones siguiendo el esquema de diseño modular. 

EJEMPLO DE UNA FUNCION DIVIDIDA POR MEDIO DE DISEÑO MODULAR


Funcionamiento del menu

Al comienzo del programa podemos ver dos variables importantes: opción y salida. La variable opción de tipo int se usa por el switch para la selección de opciones.



Cada opción se encuentra numerada con una enumeracion. La enumeración esta inicializada en uno y a partir de ahi lleva su conteo por cada OPCION_N declarada. 


enum {OPCION_1 = 1, OPCION_2, OPCION_3, OPCION_4 };

La variable salida de tipo char se usa para confirmar la salida del menu por medio de la letra s ya sea mayuscula o minuscula Una operacion tipo OR nos permite validar la opcion sin importar el tipo de letra.

El programa tiene una serie de comentarios sobre sugerencias de donde colocar nuevas partes de codigo incluyendo nuevas definiciones de funciones o declaración de estructuras y enumeraciones para el programa. Las funciones de cada opcion se encuentran sin regresar tipos de datos y son fácilmente modificables de acuerdo a tus necesidades.


Esta plantilla tiene 4 opciones pero puede extenderse a la cantidad de opciones que requiera tu programa facilmente agregando nuevos casos al switch usado para seleccionar las opciones





A continuacion les muestro el codigo tipo plantilla para el desarrollo de menus.

/*Plantilla de menu dinamico  Febrero-2015

Autor: Juan Lopez    

  DESCRIPCION
  Este menu ofrece una platilla basica de menu para poder utilizarse en todo tipo de proyectos que requieran multiples opciones
  
*/

#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#include<conio.h>

#define MAX 100
#define CADENA 30

/* Definicion de estructuras y enumeraciones */
enum {OPCION_1 = 1, OPCION_2, OPCION_3, OPCION_4 };

/* Definicion de funciones*/
void menu_1(void);
void menu_2(void);
void menu_3(void);
void menu_sal(void);

int main() 
{
int opcion;  //avriables de control de menu
char salida;
system("cls");
system("color F9");
char nombreMenu[CADENA], c;  //agregar un nombre al menu
int i = 0;
printf(" Ingresa el nombre de tu programa: ");  
while( ( c= getchar() ) != '\n')
 nombreMenu[i++] = c;
 
nombreMenu[i] = '\0';   //insertar NULL al final de la cadena 
do{//comienzo de la ejecucion del programa
   system("cls");
         printf("\t--Plantilla de menus basica 1.0--\n\n");
         
printf("Nombre: ");
puts(nombreMenu);
                  
         printf("\n\n[ 1 ]- Opcion 1.\n");
         printf("[ 2 ]- Opcion 2.\n");
         printf("[ 3 ]- Opcion 3.\n");
         printf("[ 4 ]- Opcion 4 SALIDA.\n\n");
         
         printf("*Selecciona la opcion que quieres accesar: ");
         scanf("%d", &opcion);
         
         switch(opcion){
          case OPCION_1:
          menu_1();
         
          break;
         
case OPCION_2:
menu_2();
  break;
  
case OPCION_3:
menu_3();
  break;
  
case OPCION_4:
menu_sal();
  break;  
         
}//fin de switch
 
//reinicilializacion de variables tipo contador
 
printf("\n\n¿Desea una nueva opcion(S/N)?: ");
         
         salida = getch();
         salida = tolower(salida);
}while(salida == 's'  || salida == 'S');
system("cls");
    printf("\t--Plantilla de menus basica 1.0--\n\n");
printf("\n\nFin de la ejecucion.");
return 0;
} //fin de main

/*OPCIONES DE MENU ESTAS OPCIONES PUEDEN LLEGAR A LLAMAR A OTRAS FUNCIONES PARA REALIZAR SUS TAREAS 

*/
void menu_1(void)
{
printf("\n\n\t\aOPCION 1 SELECCIONADA: Ingresa Enter para continuar");
getchar();
}//fin de menu_1

void menu_2(void)
{
printf("\n\n\t\aOPCION 2 SELECCIONADA: Ingresa Enter para continuar");
getchar();
}

void menu_3(void)
{
printf("\n\n\t\aOPCION 3 SELECCIONADA: Ingresa Enter para continuar");
getchar();
}

//funcion de salida del menu
void menu_sal(void)
{
char salir;
printf("\n\n\t\aOPCION 4 SELECCIONADA: ");
printf("\n\nConfirmar para salir(S/N): ");      
    salir = getch();
    salir = tolower(salir);
    
    if(salir == 's' ||  salir == 'S')
 exit(EXIT_SUCCESS);  //esta funcion obliga a que se termine el programa Al ser llamado exit mediante EXIT_SUCCESS el valor definido de la puesta en marcha para una terminacion exitosa se regresa al entorno llamador 
    else{//regresar al menu
    printf("\n*.-Ingresa Enter para regresar al programa.");
    getchar();
}      
      

}//FIN DE PROGRAMA


Conclusiones

Espero les sea de utilidad este código para sus proyectos de programación tipo consola. Este código puede migrarse fácilmente al lenguaje de su preferencia ya sea Java o C++ cambiando las funciones ofrecidas por la biblioteca estandar de entrada y salida de C por sus equivalentes de otros lenguajes. Cualquier cosa dejenme un comentario abajo y suerte con sus proyectos.