Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tarea 1
Tarea 1
Tarea 1
Hay notas con asteriscos rojos, por favor leerlas.
1. Dado un número natural, encontrar su raíz cuadrada entera, la cual se define como el
mayor número natural que es menor que la raíz cuadrada real del número.
Precondición: {Q: a ∈ ℕ}
Postcondición: {R: (b ∈ ℕ) ∧ (b ≤ a1/2)}
Precondición: {Q: a ∈ ℕ}
Postcondición: {R: b = (a > 1 ∧ (∀c: nat | 2 ≤ c < a : a mod c > 0))}
*Como el enunciado no habla de fecha de nacimiento, sino de cumpleaños, asumo que solo importa el
día y mes. También pregunté en el Padlet pero no me respondieron, por eso procedo a interpretar el
enunciado así.
6. Dado un conjunto de n cadenas, encontrar la cadena más corta tal que cada una de
las cadenas de entrada sea una subcadena de la cadena de salida.
*Por si esSubcadena (sub,cadena) es confuso: para saber si sub es una subcadena de cadena, lo que hago
es recorrer la cadena cadena desde la posición 0 hasta la posición que es la resta de la longitud de cadena
menos la de sub. Luego miro si existe al menos una cadena que vaya desde la posición i hasta la longitud
de sub que sea igual a sub. Ejemplo: tengo la cadena Laura y la subcadena ura. La resta de sus longitudes
es 2, o sea, i tomaría los valores 0, 1 y 2. Luego, el primer recorrido nos daría cadena[0:0+length(sub)] =
cadena[0:3] = Lau, lo que no equivale a sub. Luego, el segundo recorrido sería cadena[1:1+length(sub)] =
Laura María Restrepo Palomino - 202013289
cadena[1:4] = aur, lo que tampoco equivale a sub. Por último, el tercer recorrido sería
cadena[2:2+length(sub)] = cadena[2:5] = ura, lo que es equivalente a sub, lo que prueba que existe al
menos una i que ubique a la cadena sub como subcadena de cadena. Este programa en Python verifica
que es correcto: