Logo Studenta

Practica 6 Prog Av

¡Estudia con miles de materiales!

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

Continuar navegando