Numeros narcisistas en Visual Basic 6.0

Un número narcisista es aquel que es igual a la suma de cada uno de sus dígitos elevados a la "n" potencia (donde "n" es el número de cifras del número).

Ejemplo 153 es un numero narcisista porque 
13 + 53 + 33 = 1 + 125 + 27 = 153

En el programa escribiras un numero entero cualquiera y el te dira si es narcisista o no. Para este programa sera necesario crear un formulario con un textbox llamado txtvalor y un command button llamado cmdcalcular. Escribir el siguiente codigo.


Dim entrada, salida, i, n As Integer

Option Explicit

Private Sub cmdcalcular_Click()
salida = 0
entrada = txtvalor.Text
n = Len(entrada)

For i = 1 To n
salida = salida + Val(Mid(entrada, i, 1) ^ n)

Next

If txtvalor = salida Then

MsgBox "Es un numeros narcisista"

Else

MsgBox "No es un numeros narcisista"

End If

txtvalor.SetFocus
End Sub



Foto marine - 3 by matmoon


Ejercicios resueltos VB 6.0: Precio por llanta


Escriba un programa para calcular el total que una persona debe pagar en una llantera, si el precio de cada llanta es de $70 si se compran menos de 5 llantas y de $60 si se compran 5 o mas.

Para este programa crear 2 textboxes con los nombres txtCantidad y txtPrecio y 1 boton con el nombre cmdCalcular y copiar y pegar el codigo de abajo.





Dim precio As Integer
Private Sub cmdCalcular_Click()

If txtCantidad = "" Or txtPrecio = "" Then
MsgBox "Por favor escriba una cantidad", vbExclamation, "Error"
Else


If txtCantidad < 5 Then

precio = 70

txtPrecio = precio * txtCantidad

ElseIf txtCantidad >= 5 Then

precio = 60

txtPrecio = precio * txtCantidad

End If

End If

End Sub






Photo: new york city by under-milkwood


Ejercicios resueltos en C# : Control de alcoholemia


La Dirección General de Tráfico necesita un programa que, dado el tipo de vehículo que conduce un conductor, su índice de alcohol y si ha sido medido en sangre o en aire, determine si da positivo en el control de alcoholemia o no. La tasa máxima de alcohol tanto en sangre como en aire según el tipo de vehículo se resume en la siguiente tabla:

Vehiculo Indicador Tasa maxima en sangre Tasa maxima en aire
Camión C 0.3 0.15
Autobús A 0.3 0.15
Turismo T 0.5 0.25
Motocicleta M 0.3 0.15


Como realizar este ejercicio en C#?


1ro. Crear un formulario con dos textboxes, el que contendra el Tipo de vehiculo se llamara txttipovehiculo y que contendra el indice de alcohol txtindicealcohol asi como dos radio buttons llamados rbtsangrerbtaire.

2do. El botón "Determinar" hará el trabajo, por lo que este es el codigo que hará que el mismo funcione:


try
            {
                double indecealcohol;
                indecealcohol = Convert.ToDouble(txtindicealcohol.Text);

                if (txttipovehiculo.Text != "C" && txttipovehiculo.Text != "A" && txttipovehiculo.Text != "T" && txttipovehiculo.Text != "M")
                {

                    MessageBox.Show("Indicador no válido!");

                    txttipovehiculo.SelectionStart = 0; //Sombrear el texto
                    txttipovehiculo.SelectionLength = txttipovehiculo.Text.Length; //Sombrear el texto
                    txttipovehiculo.Focus(); 

                } 
                else
                {

                    if (txttipovehiculo.Text == "C")
                    {

                        if (rbtsangre.Checked)
                        {
                            if (indecealcohol >= 0.3)
                            {
                                lblresultado.Text = "Positivo".ToString();
                            }
                            else
                            {
                                lblresultado.Text = "Negativo".ToString();
                            }
                        }
                        else
                        {

                            if (rbtaire.Checked == true)
                            {
                                if (indecealcohol >= 0.15)
                                {
                                    lblresultado.Text = "Positivo".ToString();
                                }
                                else
                                {
                                    lblresultado.Text = "Negativo".ToString();
                                }

                            }
                        }
                    }
                    else
                    {

                        if (txttipovehiculo.Text == "A")
                        {

                            if (rbtsangre.Checked)
                            {
                                if (indecealcohol >= 0.3)
                                {
                                    lblresultado.Text = "Positivo".ToString();
                                }
                                else
                                {
                                    lblresultado.Text = "Negativo".ToString();
                                }
                            }
                            else
                            {
                                if (rbtaire.Checked)
                                {
                                    if (indecealcohol >= 0.15)
                                    {
                                        lblresultado.Text = "Positivo".ToString();
                                    }
                                    else
                                    {
                                        lblresultado.Text = "Negativo".ToString();
                                    }

                                }
                            }

                        }
                        else
                        {
                            if (txttipovehiculo.Text == "T")
                            {

                                if (rbtsangre.Checked)
                                {
                                    if (indecealcohol >= 0.5)
                                    {
                                        lblresultado.Text = "Positivo".ToString();
                                    }
                                    else
                                    {
                                        lblresultado.Text = "Negativo".ToString();
                                    }
                                }
                                else
                                {
                                    if (rbtaire.Checked)
                                    {
                                        if (indecealcohol >= 0.25)
                                        {
                                            lblresultado.Text = "Positivo".ToString();
                                        }
                                        else
                                        {
                                            lblresultado.Text = "Negativo".ToString();
                                        }

                                    }
                                }

                            }
                            else
                            {
                                if (txttipovehiculo.Text == "M")
                                {

                                    if (rbtsangre.Checked)
                                    {
                                        if (indecealcohol >= 0.3)
                                        {
                                            lblresultado.Text = "Positivo".ToString();
                                        }
                                        else
                                        {
                                            lblresultado.Text = "Negativo".ToString();
                                        }
                                    }
                                    else
                                    {
                                        if (rbtaire.Checked)
                                        {
                                            if (indecealcohol >= 0.15)
                                            {
                                                lblresultado.Text = "Positivo".ToString();
                                            }
                                            else
                                            {
                                                lblresultado.Text = "Negativo".ToString();
                                            }

                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                

            }
            catch (Exception msg)
            {

                MessageBox.Show(msg.Message);
            }


3ro. Adicionalmente el botón "Limpiar":

            txtindicealcohol.Clear();
            txttipovehiculo.Clear();
            lblresultado.Text = "";
            txttipovehiculo.Focus();


y el botón "Salir":

Close();

Ejercicios resueltos en C#: Precio de pasaje de ferrocarril

"Determinar el precio de un pasaje de ida y vuelta en ferrocarril, conociendo la distancia a recorrer y el número de días de estancia en el destino. Si este es mayor que 7 y la distancia superior a 800km, el pasaje tiene una reducción del 30%. El precio por km es $0.80."

Como realizar este ejercicio en C#?

1ro. Crear un formulario con tres textboxes, el que contendra La distancia recorrer se llamara txtdistancia, el de los dias de estancia txtdiasestancia y el que contendra lel precio del pasaje txtprecio_pasaje.

2do. El botón "Calcular" hará el trabajo, por lo que este es el codigo que hará que el mismo funcione:

    try
            {
                double distancia, dias_estancia, precioxkm, precio_pasaje;

                distancia = Convert.ToInt16(txtdistancia.Text);
                dias_estancia = Convert.ToInt16(txtdiasestancia.Text);
                precioxkm = 0.80;
                if (dias_estancia > 7 && distancia > 800)
                {
                    precio_pasaje = precioxkm * distancia - (precioxkm * distancia * 0.30);
                    txtprecio_pasaje.Text = "$" + precio_pasaje.ToString();
                }
                else
                {
                    precio_pasaje = precioxkm * distancia;
                    txtprecio_pasaje.Text = "$" + precio_pasaje.ToString();
                }

            }
            catch (Exception msg)
            {

                MessageBox.Show(msg.Message);
            }


          

3ro. Adicionalmente el botón "Limpiar":


            txtdiasestancia.Clear();
            txtdistancia.Clear();
            txtprecio_pasaje.Clear();

          

Ejercicios resueltos en C# : Categoría de un empleado

1. En una empresa cada empleado debe teclear un código identificador de 3 cifras en la entrada. Escribir un algoritmo que muestre por pantalla la categoría del empleado teniendo en cuenta que:
• Si el código es divisible por 2, por 3 y por 5, la categoría del empleado es “Director general”.
• Si el código es divisible por 3 y por 5 pero no por 2, la categoría del empleado es “Directivo”.
• Si el código es divisible por 2, pero no por 3 ni por 5, la categoría del empleado es “Staff”.
• Si el código no es divisible por 2, ni por 3 ni por 5, la categoría del empleado es “Seguridad”.


Como realizar este ejercicio en C#?


1ro. Crear un formulario con dos textboxes, el que contendra el Codigo identificador se llamara txtcodide y que contendra la categoria del empleado txtcatemp.

2do. El botón "Generar" hará el trabajo, por lo que este es el codigo que hará que el mismo funcione:


  if (txtcodide.TextLength < 3)
                {
                    MessageBox.Show("El codigo no debe contener menos de 3 caracteres");
                    txtcodide.Clear();
                    txtcodide.Focus();
                }
                else
                {

                    int ci;

                    ci = Convert.ToInt16(txtcodide.Text);

                    if (ci % 2 == 0 && ci % 3 == 0 && ci % 5 == 0)
                    {

                        txtcatemp.Text = "Director General";

                    }
                    else
                    {

                        if (ci % 3 == 0 && ci % 5 == 0 && ci % 2 != 0)
                        {

                            txtcatemp.Text = "Directivo";

                        }
                        else
                        {

                            if (ci % 2 == 0 && ci % 3 != 0 && ci % 5 != 0)
                            {

                                txtcatemp.Text = "Staff";

                            }
                            else
                            {

                                if (ci % 2 != 0 && ci % 3 != 0 && ci % 5 != 0)
                                {

                                    txtcatemp.Text = "Seguridad";

                                }
                             }
                        }
                   }
             }




3ro. Adicionalmente el botón "Limpiar":

txtcodide.Clear();
txtcatemp.Clear();
txtcodide.Focus();




y el botón "Salir":

Close();


Explicación del código


if (txtcodide.TextLength < 3): Pregunta si la longitud del texto del codigo identificador es menor que 3.


MessageBox.Show("El codigo no debe contener menos de 3 caracteres"): Muestra un mensaje en la pantalla.

txtcodide.Clear(): Limpia el contenido del referido textbox.

txtcodide.Focus(): Lleva el cursor al textbox referido.



int ci: Declara una variable tipo entero.

ci = Convert.ToInt16(txtcodide.Text): la variable que declaramos tomara el valor de el txtcodide, al mismo tiempo que se convierte ese textbox en tipo entero.


if (ci % 2 == 0 && ci % 3 == 0 && ci % 5 == 0) { txtcatemp.Text = "Director General"; }: Pregunta que si la variable ci al dividirla entre 2 es igual a 0 y si la variable ci dividida entre 3 es igual a cero y el mismo proceso entre 5 es igual a 0 entonces el textbox que mostrara la categoria del empleado sera igual a Director General en este caso. Asi consecutivamente el mismo proceso para saber las demas categorias.


Nota: El caracter "%" representa el mod en C Sharp. El mod devuelve el residuo de una division.