Mostrando entradas con la etiqueta Máximo Común Divisor. Mostrar todas las entradas
Mostrando entradas con la etiqueta Máximo Común Divisor. Mostrar todas las entradas

domingo, 11 de marzo de 2012

Ejercicios MCD y MCM

EJERCICIO 1 - Máximo Común Divisor
Realizar una aplicación que calcule el máximo común divisor de dos números introducidos por teclado.

Module Module1

    Sub Main()
        Dim numero1, numero2, a As Integer
        Dim n1, n2 As Integer

        Console.Write("Número 1: ")
        numero1 = Console.ReadLine
        Console.Write("Número 2: ")
        numero2 = Console.ReadLine

        n1 = numero1
        n2 = numero2

        If (numero1 < numero2) Then
            a = numero2
            numero2 = numero1
            numero1 = a
        End If

        ' Algoritmo de Euclides
        While (numero1 Mod numero2 <> 0)
            a = numero1
            numero1 = numero2
            numero2 = a Mod numero2
        End While

        Console.WriteLine("El MCD de " & n1 & " y " & n2 & " es: " & numero2)

        Console.ReadKey()

    End Sub

End Module

EJERCICIO 2 - Mínimo Común Múltiplo
Realizar una aplicación que calcule el mínimo común múltiplo de dos números introducidos por teclado.

Module Module1

    Sub Main()
        Dim numero1, numero2, mcm As Integer

        Console.Write("Número 1: ")
        numero1 = Console.ReadLine
        Console.Write("Número 2: ")
        numero2 = Console.ReadLine

        mcm = (numero1 / MCD(numero1, numero2)) * numero2

        Console.WriteLine("El mcm de " & numero1 & " y " & numero2 & " es: " & mcm)

        Console.ReadKey()

    End Sub

    Function MCD(ByVal num1 As Integer, ByVal num2 As Integer) As Integer
        Dim a As Integer
        If (num1 < num2) Then
            a = num2
            num2 = num1
            num1 = a
        End If

        ' Algoritmo de Euclides
        While (num1 Mod num2 <> 0)
            a = num1
            num1 = num2
            num2 = a Mod num2
        End While

        Return num2
    End Function

End Module

jueves, 24 de marzo de 2011

Varios ejercicios

Busca el algoritmo de Euclides (implementado de manera iterativa) y exprésalo en forma de diagrama de nassi-shneiderman.

Después implementa una aplicación Java que lea de teclado dos números enteros positivos y que muestre su máximo común divisor.

NOTA: el algoritmo de Euclides calcula el Máximo Común Divisor de dos números enteros.

DIAGRAMA DE NASSI-SHNEIDERMAN


EJERCICIO EN JAVA

public class Euclides {
    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in);
        int num1, num2, aux;
        System.out.println("Escriba dos números enteros y este programa le mostrará el MCD.");
        System.out.println("Número 1:");
        num1 = entrada.nextInt();
        System.out.println("Número 2:");
        num2 = entrada.nextInt();
        while (num2 != 0){
            aux = num1;
            num1 = num2;
            num2 = aux % num2;
        }
        System.out.println("El MCD de los números introducidos es: " + num1);
    }	
}

Implementa un programa Java que lea de la entrada estándar una frase y la analice para informarnos de:
  • número de caracteres que tiene.
  • número de caracteres alfabéticos que tiene.
public class Caracteres {
    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in);
        String frase;
        int pos=0, caracteres, caracteresAlfa=0;
        System.out.println("Introduzca una frase:");
        frase = entrada.nextLine();
        caracteres = frase.length();
        while (pos < frase.length()){
            if (Character.isLetter(frase.charAt(pos)))
                caracteresAlfa++;
            pos++;
        }
        System.out.println("El número de caracteres es: "+ caracteres);
        System.out.println("El número de caracteres  alfabéticos es: "+ caracteresAlfa);
    }	
}

Implemente un programa que calcule los divisores de un número entero previamente leído de la entrada estándar.

public class Divisores {
    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in);
        int n, i;
        System.out.println("Introduzca un número entero. Este programa le mostrará sus divisores.");
        n = entrada.nextInt();
        System.out.println("Los divisores de "+ n +" son:");
        for (i=1; i<=n; i++)
            if ((n%i) == 0)
                System.out.println(i);
    }
}

Implemente un programa que lea de la entrada estándar una serie de 5 nombres y calcule la longitud media de los nombre introducidos.

public class LongMedia1 {
    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in);
        String nombre;
        int i, longitud=0;
        double longMedia;
        System.out.println("Introduzca 5 nombres:");
        for (i=1; i<=5; i++){
            nombre = entrada.nextLine();
            longitud = longitud + nombre.length();
        }
        longMedia = (double)longitud/5;
        System.out.println("La longitud media de los nombres introducidos es de: "+ longMedia + " caracteres.");
    }
}

Repite el anterior ejercicio, pero leyendo nombres hasta que se introduzca el 'nombre' FIN.

public class LongMedia2 {
    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in);
        int i, longitud=0, veces=0;
        double longitudMedia;
        String nombre="";
        System.out.println("Escriba los nombre que desee. Cuando haya finalizado escriba 'fin'.");
        while (!nombre.equals("fin")){
            nombre = entrada.nextLine();
            longitud = longitud + nombre.length();
            nombre = nombre.toLowerCase();
            veces++;
        }
        longitudMedia = (double)(longitud-3)/(veces-1); //sin tener en cuenta los caracteres de 'fin'
        System.out.println("La longitud media de los nombres introducidos es de: "+ longitudMedia + " caracteres.");
    }
}