Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
INSTITUTO TECNOLÓGICO DE LA LAGUNA Práctica 6 PROGRAMACIÓN AVANZADA Ingeniería Mecatrónica Semestre 8 Alumno(s): Christian Enrique González Robles No. Control: 19131206 2 INSTITUTO TECNOLÓGICO DE LA LAGUNA Programa 1 Diseñe un Formulario que contenga un textBox, en donde el usuario introduzca un número decimal (double) y tres botones, la caratula del primer botón dirá binario, y al dar con clic en dicho botón, debajo de él, una etiqueta mostrará la conversión del número decimal en binario, lo mismo ocurrirá con otros dos botones los cuales tendrán en su carátula octal y hexadecimal respectivamente. Diseño de la GUI Script Este programa se volvió un tanto más complejo respecto a anteriores programas, debido a cómo debía funcionar. En un principio, para las 3 conversiones, todas funcionan de la misma manera, se toma como double la entrada en el textbox1. Y por medio de un truncamiento se separa la parte entera. Luego, se saca una diferencia entre el valor truncado y el valor original para obtener el valor puramente decimal. Y haciendo uso de uno de los recursos del propio visual estudio, se reduce el trabajo de la conversión, debido a que, si se convierte de double a entero, la parte entera ya separada, con un arreglo tipo string, se puede mandar a imprimir el número en la base de nuestra elección, en este caso las bases fueron 2 (binario), 8 (octal) y 16 (hexadecimal). Posteriormente en los arreglos tipo string llamados binario, octal y decima, se guardan los valores que provienen de la conversión del número decimal y por medio de la constante precisión, se carga un número 8 que indica el valor de cuántos números se calculan después del punto. Hasta aquí, todas las conversiones funcionan exactamente igual. En el caso del decimal binario por medio de un ciclo while se establece que mientras el valor de precisión no sea 0, se ejecutará un if, el cual indica que pDecimal se duplica cada vez, y si este resultado es mayor a 1, en binario se registra un número 1 y en pDecimal se resta un 1. Pero en caso contrario a la condición del if, en binario se manda a guardar un 0, y justo antes de salir del while, se resta 1 a precisión, y así hasta que el valor de precisión sea 0, 3 INSTITUTO TECNOLÓGICO DE LA LAGUNA y se manda a imprimir el valor del entero convertido, el punto decimal, y la cadena string de binario para dar el resultado completo. En el caso del decimal en hexadecimal por medio de un ciclo while se establece que mientras el valor de precisión no sea 0, se ejecutará un if, el cual indica que pDecimal se multiplica por 16 cada vez, y si este resultado es menor a 10, en decima se registra el número resultante. Pero en caso contrario a la condición del if, en decima se manda a guardar un carácter de una letra alusiva al número resultante, y justo antes de salir del while, se resta 1 a precisión, y así hasta que el valor de precisión sea 0, y se manda a imprimir el valor del entero convertido, el punto decimal, y la cadena string de decima para dar el resultado completo. En el caso del decimal en octal por medio de un ciclo while se establece que mientras el valor de precisión no sea 0, se ejecutará un if, el cual indica que pDecimal se multiplica por 8 cada vez, se convierte pDecimal a entero para poder manejarlo, y convierte este valor en string para mandar a guardarlo a la cadena de caracteres, posteriormente este valor se le resta a pDecimal para tener el nuevo número con el cual trabaja y a precisión se ke resta un número para continuar con el ciclo y se manda a imprimir el valor del entero convertido, el punto decimal, y la cadena string de octal para dar el resultado completo. GUI funcional 4 INSTITUTO TECNOLÓGICO DE LA LAGUNA Programa 2 Repita el ejercicio anterior usando ahora una lista desplegable en donde el usuario seleccione a que base quiere convertir el número decimal introducido en el textBox. Diseño de la GUI Script Este programa es básicamente una copia del anterior, con la diferencia de utilizar un comboBox. El comboBox se maneja por medio de switch, en el cual, el número del case es igual al del evento que muestra dicha lista. Por lo tanto, al solo tener 3 opciones para utilizar, los case del comboBox se mantienen en 0, 1 y 2 para llamar a las conversiones a binario, octal y hexadecimal respectivamente. Para las 3 conversiones, todas funcionan de la misma manera, se toma como double la entrada en el textbox1. Y por medio de un truncamiento se separa la parte entera. Luego, se saca una diferencia entre el valor truncado y el valor original para obtener el valor puramente decimal. Y haciendo uso de uno de los recursos del propio visual estudio, se reduce el trabajo de la conversión, debido a que, si se convierte de double a entero, la parte entera ya separada, con un arreglo tipo string, se puede mandar a imprimir el número en la base de nuestra elección, en este caso las bases fueron 2 (binario), 8 (octal) y 16 (hexadecimal). Posteriormente en los arreglos tipo string llamados binario, octal y decima, se guardan los valores que provienen de la conversión del número decimal y por medio de la constante precisión, se carga un número 8 que indica el valor de cuántos números se calculan después del punto. Hasta aquí, todas las conversiones funcionan exactamente igual. En el caso del decimal binario por medio de un ciclo while se establece que mientras el valor de precisión no sea 0, se ejecutará un if, el cual indica que pDecimal se duplica cada vez, y si este resultado es mayor a 1, en binario se registra un 5 INSTITUTO TECNOLÓGICO DE LA LAGUNA número 1 y en pDecimal se resta un 1. Pero en caso contrario a la condición del if, en binario se manda a guardar un 0, y justo antes de salir del while, se resta 1 a precisión, y así hasta que el valor de precisión sea 0, y se manda a imprimir el valor del entero convertido, el punto decimal, y la cadena string de binario para dar el resultado completo. En el caso del decimal en hexadecimal por medio de un ciclo while se establece que mientras el valor de precisión no sea 0, se ejecutará un if, el cual indica que pDecimal se multiplica por 16 cada vez, y si este resultado es menor a 10, en decima se registra el número resultante. Pero en caso contrario a la condición del if, en decima se manda a guardar un carácter de una letra alusiva al número resultante, y justo antes de salir del while, se resta 1 a precisión, y así hasta que el valor de precisión sea 0, y se manda a imprimir el valor del entero convertido, el punto decimal, y la cadena string de decima para dar el resultado completo. En el caso del decimal en octal por medio de un ciclo while se establece que mientras el valor de precisión no sea 0, se ejecutará un if, el cual indica que pDecimal se multiplica por 8 cada vez, se convierte pDecimal a entero para poder manejarlo, y convierte este valor en string para mandar a guardarlo a la cadena de caracteres, posteriormente este valor se le resta a pDecimal para tener el nuevo número con el cual trabaja y a precisión se ke resta un número para continuar con el ciclo y se manda a imprimir el valor del entero convertido, el punto decimal, y la cadena string de octal para dar el resultado completo. GUI funcional 6 INSTITUTO TECNOLÓGICO DE LA LAGUNA Programa 3 Suponga que se quiere instalar cierto software en una máquina europea dispensadora de bebidas. He aquí los detalles: se agregará una etiqueta y un textBox donde el usuario insertará cual bebida quiere, la máquina despacha 4 tipos de bebida (A,B,C y D) todas ellas cuestan menos de un euro (100 centavos de euro). A = 30 centavos, B = 40 centavos C =45 centavo y D = 65 centavos. Luego se agregará un NumericUpDown donde podrá elegir de 1 a 5 bebidas a comprar. Se agregará un botón para calcular, el cual mediante una etiqueta mostrará cuantos euros deberá ingresar para pagar el total y a través de una serie de cuadros de mensaje (uno para cada moneda) deberá indicar el cambio que entregará. Por ejemplo imagine que quiere una bebida tipo C y paga con 1 euro (100 centavos de euro) Diseño de la GUI Script En este caso particular, para este programa el código es exactamente el mismo para todos los eventos de los botones. Lo único que cambia es el valor de la bebida que se escoge, pero el principio es el mismo. Primero se obtiene del numericUpDown el valor de cuantas bebidas se van a comprar, y el valor de las bebidas se obtiene multiplicando el valor obtenido previamente por el valor de las bebidas. Por medio de un redondeo hacia arriba, se asigna una cantidad sugerida de pago en euros enteros usando como referencia el valor de las bebidas. Luego a esto, el cambio se obtiene de la diferencia del valor de las bebidas con el del valor de pago sugerido. Para obtener la cantidad de monedas de distintos valores para el cambio, se generan una serie de sucesiones de cálculos, dónde se redondea hacia abajo el resultado del cambio entre el valor de la moneda, por ejemplo la de 50 centavos, con ello es posible obtener la cantidad de dichas monedas, así como el residuo de esta operación, y para las monedas siguientes se utiliza exactamente el 7 INSTITUTO TECNOLÓGICO DE LA LAGUNA mismo método, con la diferencia de que para esto, se obtiene la cantidad de cambio restante en base a cuantas monedas del valor superior ya han sido asignadas, para poder así calcular el resto de cambio sucesivamente. Finalmente se manda a imprimir la cantidad total de cambio calculado para dicha transacción. GUI funcional
Compartir