ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Algoritmo: Máximo común divisor.

rmugicaApuntes27 de Febrero de 2018

8.872 Palabras (36 Páginas)145 Visitas

Página 1 de 36

Algoritmo: Máximo común divisor.

Descripción: Este algoritmo determina el máximo común divisor entre dos números enteros. El algoritmo hace uso del procedimiento Intercambiar.

Precondiciones:

  • Ambos números son enteros no negativos.
  • Al menos uno de los números es distinto de cero.

Poscondiciones:

  • El máximo común divisor es un número entero mayor o igual que 0 y menor que el segundo de los números, o sea, el distinto de cero.

Entrada:

  • Los dos valores

Salida:

  • El máximo común divisor de los dos números enteros.

Seudo código:

[pic 1][pic 2]

Función MCD(m, n)

   Si m > n

      Intercambiar(m,n)

   Fin

   Mientras n  0

      R = resto de la división entera entre m y n

      m = n

      n = R

   Fin

   MCD = m

Fin

Algoritmo: Menor número primo mayor que un valor dado.

Descripción: Este algoritmo determina el menor número primo dentro de todos los números mayores que un valor dado.

Precondiciones:

  • El valor dado es un entero positivo.

Poscondiciones:

  • El número primo encontrado es mayor que el valor dado.

Entrada:

  • El valor dado.

Salida:

  • El mínimo primo mayor que el valor dado.

Seudo código:

[pic 3]

Función MenorPrimoMayorQue(Valor)

   Auxiliar = Valor

   Repetir

      Auxiliar = Auxiliar + 1

   hasta Auxiliar es primo

   MenorPrimoMayorQue = Auxiliar

Fin

Comprensión y análisis del problema

Se conoce una colección de valores numéricos. Se supone conocida la cantidad de elementos de dicha colección. Se desea calcular las raíces cuadradas de todos los elementos de la colección original y almacenar esos resultados en una nueva colección de valores numéricos.

Modelo matemático

La colección de valores se representará a través de una variable con subíndice. Cada subíndice de dicha variable se corresponde exactamente con un único valor de la colección. Suponga que la variable se denomina X. De esta forma, el elemento de la posición k de esa variable se denota por Xk.

En este caso se debe determinar la raíz cuadrada de los elementos de la colección, o sea, de la variable X, y almacenar estos valores en otra variable con subíndice de nombre, por ejemplo, Y. De este modo, se debe cumplir que:

               ___

     Yk = √ Xk    k / 1  k  n

En este caso la variable X es un parámetro de entrada al módulo que realizará esta operación. X es una variable con subíndice, por lo que se considera una colección de valores. Cada valor es accedido a través de su subíndice, pero cuando la variable con subíndice es un parámetro de entrada o salida a un módulo, no se transfieren los valores por separado, sino que se transfiere la colección completa, o sea, la variable con subíndice.

La variable Y será un parámetro de salida. Cada uno de sus elementos es la raíz cuadrada del elemento correspondiente de la variable X.

Algoritmo

Ante todo, discutiremos el tipo de módulo que se utilizará para desarrollar el algoritmo. Se puede pensar en un procedimiento, que recibe el parámetro X como valor de entrada y tiene otro parámetro Y que se de salida, en el que vamos a devolver las raíces cuadradas de los elementos de X. Sin embargo, se puede pensar también en una función que recibe sólo una colección de valores como entrada, X, y devuelve una colección de elementos, las raíces cuadradas de los elementos de X. Se debe pensar también en la necesidad de transferir la cantidad de elementos de la colección X, ya que el módulo necesita esta información para realizar su trabajo.

En este caso se desarrollará la variante de la función.

Algoritmo: Raíces cuadradas de los elementos de una colección numérica

Descripción: Este algoritmo determina y devuelve una colección de valores en la que cada elemento es la raíz cuadrada de los elementos de una colección numérica dada, de la que se conoce la cantidad de elementos.

Precondiciones:

  • La colección, en la variable Valores, tiene una cantidad dada de elementos, Cantidad.
  • Todos los elementos de la colección son no negativos.

Poscondiciones:

  • La salida es una colección de valores.
  • La salida tiene la misma cantidad de elementos que la colección Valores.
  • Cada elemento de la salida es la raíz cuadrada de su correspondiente elemento en la colección Valores.

Entrada:

  • La colección de valores: variable Valores.
  • La cantidad de elementos de la colección: variable Cantidad.

Salida:

  • La colección cuyos elementos son la raíz cuadrada de los correspondientes elementos de la colección Valores.

[pic 4][pic 5]

 Función RaicesDe(Valores, Cantidad)

   Para i = 1 hasta Cantidad

                             _______

      RaicesDei =  Valoresi

   Fin

Fin

La función RaicesDe recibe como parámetros de entrada a la colección Valores y la Cantidad. Para cada elemento de la colección se determina la raíz cuadrada y se almacena en la colección que se devuelve a través del nombre de la función. De ahí que el nombre de la función tenga subíndice.

Comprensión y análisis del problema

El problema consiste en determinar si un número entero dado es un número primo o no.

Modelo matemático

Un número entero positivo es primo si sólo es divisible por él mismo y por 1. De esta forma, se debe determinar si los números que le anteceden son divisibles por él. En caso de que alguno, distinto de 1, sea divisible por él, entonces el número en cuestión no es primo.

Algoritmo

Se debe desarrollar un módulo que determine si el número es primo o no. Para ello se debe discutir qué tipo de módulo es el más adecuado. En este caso, lo más adecuado es una función que devuelva verdadero o falso en dependencia de si el número es primo o no, respectivamente. Se debe sugerir un nombre adecuado para dicha función. Se propone se llame EsPrimo.

Se debe discutir, además, el tipo de estructura repetitiva más adecuada para el cálculo. En este caso, el ciclo por variable de control no es adecuado, ya que no se sabe cuántas veces se debe repetir la verificación de si el valor actual es divisor o no del número en cuestión. Luego, las variantes más posibles son los ciclos por condición y, de ellos, el mejor es el de poscondición. 

Algoritmo: Determinación de si un número es primo o no.

Descripción: Este algoritmo determina si un número entero positivo es primo o no. El algoritmo hace uso de la función Divisor, desarrollada en la clase práctica anterior.

Precondiciones:

  • El número en cuestión debe ser entero positivo.

Poscondiciones:

  • Se determina si el número es primo o no.

Entrada:

  • El número en cuestión.

Salida:

  • Verdadero o falso en dependencia de si es primo o no

[pic 6]

 Función EsPrimo(Valor)

   i = 1

   Repetir 

      i = i + 1

   hasta i = Valor ó Divisor(i, Valor)

   Si i = Valor

      EsPrimo = Verdadero

   si no

      EsPrimo = Falso

   Fin

Fin

Modificar el módulo MenorPrimoMayorQue de modo que haga uso del módulo desarrollado en el ejercicio anterior. 

...

Descargar como (para miembros actualizados) txt (50 Kb) pdf (285 Kb) docx (55 Kb)
Leer 35 páginas más »
Disponible sólo en Clubensayos.com