Bienvenidos a un nuevo curso. Ahora estoy en el ciclo de grado superior: Desarrollo de aplicaciones multiplataforma. Y voy a ser parte del experimento de la formación dual. Estaré haciendo practicas durante un año, y a la vez finalizando la formación.

Deseadme suerte.

Mostrando entradas con la etiqueta RECURSIVIDAD. Mostrar todas las entradas
Mostrando entradas con la etiqueta RECURSIVIDAD. Mostrar todas las entradas

sábado, 4 de junio de 2016

Repaso 1 Evaluación (II)

0

Realiza una función que calcule si un número es palíndromo. 

Mi método:

using System;

namespace ConsoleApplication3
{
    class Program
    {
        //Esta funcion te dice si un numero es palindromo o no.
        //Un numero es palindromo si es igual leido de izd a drcha, que de drcha a izd.
        static String EsPalindromo(string num)
        {
            //en esta varuables guardaremos que pares son iguales
            int contador = 0;
            // en esta variable guardaremos el valor original
            string aux = num;
            // haz mientras el tamaño del num sea mayor a uno
            while (num.Length > 1)
            {
                // si el primer num es igual al ultimo
                if (num[0]== num[num.Length-1])
                {
                    //sumamos uno al contador
                    contador++;
                }
                //borramos el ultimo numero primero, para no afectar al tamaño
                num = num.Remove(num.Length-1, 1);
                // borramos el primer numero
                num = num.Remove(0, 1);
            }
            // si el contador es igual al tamaño original divido para dos es palindromo
            if (contador == aux.Length / 2)
            {
                return "si";
            }
            else
            {
                return "no";
            }
        }
        static void Main(string[] args)
        {
            //recogemos un num introducido por el usuario en teclado
            string num;
            Console.WriteLine("Introduzca un número:");
            num = Console.ReadLine();
            //devolvemos el resultado de la funcion
            Console.WriteLine("Este número {0} es palindromo", EsPalindromo(num));
            Console.ReadKey();
        }
    }
}

Método del profesor:

using System;

namespace Examen02
{
    class MainClass
    {
        //Esta funcion te dice si un numero es palindromo o no.
        //Un numero es palindromo si es igual leido de izd a drcha, que de drcha a izd.
        static bool Palindroma(string c)
        {
            // si el tamaño es menos de 2 devuelve que es palindromo
            if (c.Length < 2)
                return true;
            // si el tamaño es mayor de 2 haz 
            else
            //si el primer numero es igual al ultimo
             if (c[0] == c[c.Length - 1])
            {
                //primero borra por el final para no afectar al tamaño
                c = c.Remove(c.Length - 1, 1);
                //Despues borra el ultimo numero
                c = c.Remove(0, 1);
                //devuelve la llamada a la funcion
                return Palindroma(c);

            }
            //en caso contrario devuelve falso
            else return false;

        }

        public static void Main(string[] args)
        {
            // recogemos por pantalla el num introducido por el usuario a traves del teclado
            Console.Write("Introduce un valor para ver si es palíndromo: ");
            string c = Console.ReadLine();
            // devuelve el resultado de la funcion
            Console.Write("¿es palíndroma?: {0}", Palindroma(c));
            Console.ReadKey();
        }
    }
}

Comprobaciones realizadas 
25=no
1111=si
11511=no

viernes, 3 de junio de 2016

Repaso 1 Evaluación (I)

0

Pasa de binario a decimal con una función recursiva.

Mi método:

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            //Este es el numero binario que se recoge por pantalla
            int numbinario;
            //Esta es la variable donde se guarda el resultado
            int numdecimal=0;
            //Esta variabe nps marcara la posicion
            int contador = 0;
            //recogemos la variable por pantalla
            Console.WriteLine("Escriba un numero binario");
            numbinario = int.Parse(Console.ReadLine());
            //llamamos a la funcion que convierte de binario a decimal
            ConvertirDecimal(numbinario, ref contador, ref numdecimal);
            //mostramos por pantalla
            Console.WriteLine(numdecimal);
            Console.ReadKey();
        }
        //Esta funcion convierte de binario a decimal
        public static void ConvertirDecimal(int numbinario, ref int  contador, ref int numdecimal)
        {
            //Esta variable se utiliza para distinguir entre 1 y 0
            int primer= numbinario;
            //Si el resto de devidir el nubinario para 10 es 1 se realiza la accion.
            primer %= 10;
            if (primer == 1)
            {
                //Para pasar a decimal la base a de ser dos
                int exponente = 2;
                //El resultado de 2 exponente a 0 es 1
                if (contador == 0)
                {
                    exponente = 1;
                }
                //El resultado de 2 exponente a 1 es 2
                else if (contador == 1)
                {
                    exponente = 2;
                }
                else
                {
                    //100 es 4. Con contador =  3, si no restara el programa me diria que 100 es 16
                    int aux = contador - 2;
                    while (aux >= 0)
                    {
                        exponente = exponente * 2;
                        aux--;
                    }
                }
                //101=4+0+1
                numdecimal = numdecimal + exponente;
            }
            //sumamos una posicion
            contador++;
            //mientras numbinario sea mayor de 0, se repetira la funcion
            if (numbinario > 0)
            {
                ConvertirDecimal(numbinario / 10, ref contador, ref numdecimal);
            }
        }
    }

}

Método del profesor:

namespace ConsoleApplication2
{
    class Program
    {
        static double Adecimal(string n)
        {
            //.Length te dice el tamaño de la variable. El tamaño de 10100 = 5
            //n[0] devuelve el ultimo numero. n[0] de 10100 es 0.
            //Si tamaño es mayor que 0 y el ultimo numero es 1 realiza la accion
            if ((n.Length > 0) && ((n[0]) == '1'))
                //Math.Pow realiza una potencia 
                // calcula la potencia de 2 elevado al tamaño -1. 
                //y suma el resultado de la repeticion de la funcion.
                //n.Remove(0,1) borra empezando por el primer lugar, 1 posicion
                return Math.Pow(2, n.Length - 1) + Adecimal(n.Remove(0, 1));
            //Si el tamaño es distinto de 0, vueleve a llamar a la funcion 
            // recuerda que n.Remove(0,1) borra empezando por el ultimo lugar, 1 posicion
            else if (n.Length != 0)
                return Adecimal(n.Remove(0, 1));
            // si no se cumple ninguna condicion devuelve 0.
            else
                return 0;
        }

        public static void Main(string[] args)
        {
            Console.Write("Introduce un valor en binario: ");
            // recoge por pantalla el numero binario en forma de texto.
            string n = Console.ReadLine();
            //devuelve por pantalla el resultado de la funcion Adecimal
            Console.Write("El valor de {0} en decimal es: {1}", n, Adecimal(n));
            Console.ReadKey();
        }
    }
}

Comprobaciones realizadas 
10100=20
1000=8
101=5
100=4

Etiquetas actuales

BD (67) DEF (64) PROG (64) SQL (44) Java (29) PRACTICAS (20) php (18) DI (16) PRESTASHOP (16) PROGRAMACIÓN WEB (16) HTML (13) SGE (12) ERP (9) CONSULTAS (8) css (8) Linux (5) XML (5) Android (4) PDM (4) C (3) NetBeans (3) PSP (3) SMARTY (3) comandos (3) HOOK (2) POST (2) XSD (2) cURL (2) JS (1) MEDIA-QUERYS (1) PDO (1) RESPONSIVE (1) TPL (1) TRADUCCIÓN (1) app_inventor (1)

Todas las etiquetas

EJER (78) BD (67) DEF (64) PROG (64) SQL (44) c# (40) Programación (39) Ficheros (36) Java (29) bases de datos (21) PRACTICAS (20) lenguajes de marcas (19) AD (18) Entorno de desarrollo (18) php (18) PROCEDIMIENTOS (17) DI (16) FORM (16) PRESTASHOP (16) PROGRAMACIÓN WEB (16) lenguaje C (16) E/R (14) HTML (13) SGE (12) Sistemas informáticos (10) ERP (9) CONSULTAS (8) TRANSACCIONES (8) TRIGGER (8) VISUAL BASIC (8) css (8) FUNCIONES (7) html5 (6) Ada (5) EXAMEN (5) Linux (5) XML (5) estructuras (5) Android (4) DISEÑO (4) INTERFAZ (4) LOG (4) OpenBravo (4) PDM (4) ACTUALIZAR (3) C (3) DIAGRAMA (3) Directorios (3) NEW (3) NOR (3) NetBeans (3) OLD (3) PSP (3) SMARTY (3) comandos (3) css3 (3) AISLAMIENTOS (2) C++ (2) CONTROLERRORES (2) ELIMINAR (2) HOOK (2) INSERTAR (2) INST (2) MULTITABLA (2) POST (2) RECURSIVIDAD (2) SUBCONSULTAS (2) VISTAS (2) XSD (2) cURL (2) punteros (2) AJENA (1) BLOQUEOS (1) Byte (1) CREACION (1) CRM (1) Configuración (1) Controles (1) Datos (1) GOTFOCUS (1) IMAGENES (1) INDICES (1) JS (1) Lenght (1) MEDIA-QUERYS (1) Mingw (1) MonoDeveloped (1) OPTIMISTA (1) PDO (1) PESIMISTA (1) RESPONSIVE (1) SPEAK (1) Scanner (1) Serializacion (1) Streams (1) System (1) TPL (1) TRADUCCIÓN (1) USUARIOS (1) UseSystemPasswordChar (1) app_inventor (1) char (1) examenes (1) libreoffice (1) make (1) redes (1)