domingo, 6 de febrero de 2022

Ejercicios de programación

leeTecla *** Ejercicio de programación en C++

En este ejercicio se hace uso de la función getch() para leer las distintas teclas de un teclado cualquiera: español, portugués, inglés, etc. Cada vez que se presiona una tecla, muestra el programa el código de la tecla pulsada y el caracter correspondiente. Para terminar y salir se debe presionar la tecla F12.

El compilador que necesitas es Embarcadero C++ Builder/RAD Studio también puede ser cualquier otro que funcione en Windows 32/64 bits.

Este programa es para el modo consola de Windows, es decir va a usar una ventana de textos sencilla.
La misma puede ser abierta mediante el comando cmd.exe, powershell.exe o con cualquier otra aplicación tipo consola de textos.
La ayuda [enLínea] para las funciones de la consola de textos están en este enlace a Microsoft Docs.

Ver código fuente en el siguiente enlace: leetecla.cpp


jueves, 27 de enero de 2022

miércoles, 19 de enero de 2022

Ejercicios de programación

Temporada de conejo

Se dispone de una matriz de 10x10 casilleros y en alguno de ellos hay un conejo.
El conejo salta de casillero en casillero cada vez que visitas un casillero vacío.
El animalito se mueve aleatoriamente hacia otro casillero adyacente de su posición actual.
Tienes que atraparlo en su casillero correspondiente.
Hacer un programa de computadora en el lenguaje de programación de tu preferencia para
atrapar al conejo. Haz un análisis previo de este ejercicio para dar con la lógica más acertada.
Puedes desarrollarlo para que funcione ya sea en modo consola, en modo gráfico o en modo web.
Elije también el sistema operativo en el cual se va a ejecutar: Android, Linux, MS-DOS, Windows, etc.
Ver siguiente imágen:


Análisis del juego

El movimiento del conejo es hacia sus lados: izquierda, derecha, arriba y abajo. No está permitido los movimientos en diagonal.
Cada vez que el usuario mueve el cursor que marca el casillero visitado, el conejo se mueve a una posición adyacente aleatoriamente.
Tampoco le está permitido el movimiento en diagonal al usuario.
El juego termina cuando lo atrapas al conejo.
Para atraparlo al conejo tienes que estar encima de él y presionar la tecla Intro o Enter porque si no presionas dicha tecla a tiempo el conejo se escapa.


Octulio Biletán <> Enero de 2022


lunes, 27 de septiembre de 2021

CRS: Caja Registradora Straton

Presentación

CajaRegistradoraStraton es un proyecto que está aún en fase de desarrollo. Tenga presente que es un proyecto educativo dirigido a estudiantes y profesores en programación Java. Esta clase de aplicación puede ser considerado como "software para entrenamiento de cajeras/cajeros". A la fecha no está totalmente terminada la simulación de la caja registradora Straton. Es un proyecto abierto a los cambios a efectuarse en cualquier momento.

Licencia

Todo este proyecto, CajaRegistradoraStraton, se distribuye bajo los términos de GPL, la misma se encuentra redactada en el fichero LICENSE versión 3.
CajaRegistradoraStraton tiene copyright (C) 2021 por Eugenio Martínez.

El proyecto

Implementación de la caja registradora para un negocio de ventas de productos.
Primera versión: 28*07*2021. Para IDE Oracle JDeveloper 12c y para IDE Apache NetBeans 12.4, Windows y Linux. Se ha probado con Java JDK 16 y Java JDK 8.
El código fuente está disponible en GitHub: clic aquí y seleccionar fichero crStraton-09-2021.7z para su descarga. Este fichero corresponde a la edición Septiembre de 2021.

Punto de entrada: cajaregistradorastraton.CajaRegistradoraStraton/main() del programa CajaRegistradoraStraton.java
Los únicos usuarios autorizados son: administrador, supervisor y operador.

Ejemplo: Abrir una ventana consola en el S.O. y ejecutar la siguiente orden:
C:\base\Proyecto\JDeveloper\CajaRegistradoraStraton\Cliente>java -jar deploy\CajaRegistradoraStraton.jar 84163

Se acompaña un parámetro numérico que identifica al usuario autorizado, en este caso es el que corresponde a administrador.
En la clase CRSUsuarios, fichero CajaRegistradoraStraton.java, se encuentran los ids y los nombres de los usuarios autorizados.
En la clase ClaveAcceso, fichero ClaveAcceso.java, se encuentran los ids y las contraseñas de los usuarios autorizados.

Carga de datos

Los datos son cargados en un JTable que se llama tblPlanilla, la misma se encuentra en CajaPantalla.java. Dichos datos provienen de un fichero de textos llamado datos\planillaCaja.txt. De esta manera se está simulando la lectura del código de barra que identifica al producto a vender. Además se simula los accesos a una base de datos real que podría ser Bitnami WAPP Stack. Dos elementos faltantes y que son muy importantes en una situación real: el lector de código de barras y el sistema gestor de base de datos SQL. Otro elemento faltante e importante es el lector de tarjeta de crédito o posnet que también puede ser simulado mediante software. 

Su apariencia gráfica

Presenta el siguiente diseño en pantalla:


 

Se agregaron a la ventana de Caja los siguientes componentes gráficos:

  • Botón [<< Nueva >>]    Permite efectuar una nueva operación de facturación.
  • Botón [<< Emitir >>]    Permite emitir en papel la factura a través de una impresora (función no implementada).
  • Botón [<< Cobrar >>]    Permite cobrar al cliente, hace los cálculos necesarios para mostrar el importe total, importe a abonar y el importe del vuelto.
  • Botón [<< Gestión >>]   Permite agregar y retirar dinero efectivo en caja; mostrar el monto de dinero efectivo que tiene la caja. El único usuario autorizado para efectuar las operaciones anteriormente mencionadas es administrador.
  • Botón con lista desplegable de opciones de pago.
  • Botón con lista desplegable de opciones a emisión de factura.
  • Botón con lista desplegable de acciones: cambiar de usuario, cerrar sesión y reiniciar caja.
¿Qué faltaría por agregar a éste módulo?
  • Eliminar uno o más productos de la planilla de venta de productos porque el cliente desiste en comprarlo, antes de efectivizarse la venta.
  • Cobrar una parte del importe total en un medio de pago diferente al contado efectivo.
    Por ejemplo 50 % de contado y 50 % con tarjeta de crédito. Unico método de pago frente a un método de pago combinado.
  • Uso de las teclas programables F1~F12 para efectuar rutinas específicas, por ejemplo con F1 se solicitaría una ayuda en pantalla.
  • Registrar el movimiento de caja por operación de depósito/extracción efectuado por la persona responsable.

Las variables de entorno
 

Se necesita que esté definida para que funcione el módulo Caja la variable de entorno TEMP o TMP. Esta la debe definir el proceso padre por ejemplo el programa llamador.
En Linux, es aconsejable definir su contenido como:

TEMP=/tmp
Esto es para cualquier usuario en Linux.
Y en Windows, si el usuario es Administrador:
TEMP=C:\Users\ADMINI~1\AppData\Local\Temp
Puede ser con otro contenido para otro usuario, por ejemplo, el usuario cajero:
TEMP=C:\Users\Cajero\AppData\Local\Temp

El módulo Caja es una aplicación que debe ser ejecutada como única instancia en memoria RAM, es por este motivo que se crea un fichero de control llamado candado.lck en el directorio indicado por la variable TEMP. Esto es como medida de seguridad. Piense que hay valores en resguardo.


Referencias


¿Qué es un POS?
Software integrado para farmacias
uniCenta oPOS
JDeveloper IDE, guía del usuario

________[Octulio Biletán]________

viernes, 13 de agosto de 2021

Función sobre función en Java

Esto es un ejercicio de programación Java con métodos de tipo 'static'.
Dado el siguiente método main():
    public static void main(String[] args) {

        // Muestra en consola de textos el mensaje:
        // Tengo Fe, Esperanza, Caridad.
        Tengo(Fe(Esperanza(Caridad())));

        }

¿Qué debo hacer con los métodos Tengo(), Fe(), Esperanza() y Caridad() para que muestre en pantalla el siguiente mensaje?
    Tengo Fe, Esperanza, Caridad.

Puedes hacerlo en Oracle JDeveloper, mira la siguiente imágen:



jueves, 12 de agosto de 2021

AirTable: ¿qué es?

AirTable es una mezcla de base de datos con planilla de cálculos para la gestión de información.

Para dar los primeros pasos en AirTable te recomiendo que leas en el siguiente enlace: Intro. a AirTable
Si quieres saber un poco más, visita Wikipedia: AirTable.
Ver siguiente imágen.


sábado, 29 de mayo de 2021