Está en la página 1de 3

Laura María Restrepo Palomino - 202013289

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.

E/S Nombre Tipo Descripción


E a ℕ (nat) Número natural al que se le calculará la raíz cuadrada entera.
S b ℕ (nat) Número natural el cual es la raíz cuadrada entera de a.

Precondición: {Q: a ∈ ℕ}
Postcondición: {R: (b ∈ ℕ) ∧ (b ≤ a1/2)}

2. Dado un número natural, determinar si es un número primo.

E/S Nombre Tipo Descripción


E a ℕ (nat) Número natural el cual se determinará si es primo.
S b bool Booleano que indica si a es primo.

Precondición: {Q: a ∈ ℕ}
Postcondición: {R: b = (a > 1 ∧ (∀c: nat | 2 ≤ c < a : a mod c > 0))}

3. Dado un número primo, encontrar el siguiente número primo.

E/S Nombre Tipo Descripción


E a ℕ (nat) Número natural al que se le encontrará el siguiente primo.
S b ℕ (nat) Número natural el cual es el siguiente número primo después de a.

Precondición: {Q: a ∈ ℕ ∧ primo(a) = true}


Postcondición: {R: b ∈ ℕ ∧ b > a ∧ primo(b) = true ∧ (∀c: nat | a < c < b : primo(c) = false)}

*Cuando escribo primo() hago referencia al ejercicio anterior.

4. Dado un arreglo de números naturales, encontrar la posición en la que se encuentra


el número más grande del arreglo que sea un cuadrado de algún número natural. Si el
arreglo no tiene números que sean cuadrados de algún número natural, la respuesta
debe ser -1.

E/S Nombre Tipo Descripción


Arreglo de tamaño N compuesto por números naturales al cual se le
array of
E a[0, N) encontrará el número más grande que sea un cuadrado de algún
ℕ (nat)
número natural.
Número natural que representa la posición dentro del arreglo a[0, N)
del número más grande que sea un cuadrado de algún número
S b ℕ (nat)
natural. Es -1 si dentro del arreglo no hay número que sean cuadrados
de algún número natural.

Precondición: {Q: ∀i: nat | 0 ≤ i < N : a[i] ∈ ℕ}


Postcondición: {R: (a[b] ∈ ℕ ∧ a[b]1/2 ∈ ℕ ∧ (∀i: nat | 0 ≤ i < N ∧ a[i]1/2 ∈ ℕ : a[i] ≤ a[b])) ∨ ((∀i:nat | 0 ≤ i <
N : a[i]1/2 ∉ ℕ) ∧ b = -1)}
Laura María Restrepo Palomino - 202013289

5. Dado un conjunto de estudiantes ordenados por código y un rango de fechas,


encontrar los estudiantes que cumplen años en el rango de fechas dado.

*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í.

E/S Nombre Tipo Descripción


Arreglo de tamaño N compuesto por objetos de tipo
Estudiantes array of
E Estudiante, donde cada uno tiene un código y una fecha de
[0, N) Estudiante
nacimiento en el formato “DD-MM-AAAA”.
Cadena con el formato “DD-MM” que indica la fecha inicial
E fi str
del rango a consultar.
Cadena con el formato “DD-MM” que indica la fecha inicial
E ff str
del rango a consultar.
Conjunto compuesto por objetos de tipo Estudiante, donde
set of
S EstudiantesC cado uno donde cado uno cumple años en el rango de fechas
Estudiante
dado. La C en el nombre es por cumpleaños.

Precondición: {Q: (∀i: nat | 0 ≤ i < N-1 : Estudiantes[i].getCodigo() < Estudiantes[i+1].getCodigo())}


Postcondición: {R: EstudiantesC = (∀i: nat |0 ≤ i < N ∧ ((fi[3:5] < Estudiantes[i].getNacimiento()[3:5] <
ff[3:5]) ∨ (fi[3:5] = Estudiantes[i].getNacimiento()[3:5] ∧ fi[0:2] ≤ Estudiantes[i].getNacimiento()[0:2]) ∨
(ff[3:5] = Estudiantes[i].getNacimiento()[3:5] ∧ Estudiantes[i].getNacimiento()[3:5] ≤ ff[0:2])) :
Estudiantes[i])}

*[0:2] representa el día, [3:5] representa el mes. Prueba:

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.

E/S Nombre Tipo Descripción


array of
E a[0, N) Arreglo de tamaño N compuesto por cadenas.
str
Cadena más corta compuesta por subcadenas que son cadenas del
S b str
arreglo a.

Precondición: {Q: true}


Postcondición: {R: todasSubcadena(b,a[0,N)) = true ∧ (∀cadenaTotal: str | todasSubcadena(cadenaTotal,a[0,N)) =
true : length(b) ≤ length(cadenaTotal))

esSubcadena(sub,cadena) ≡ (∃i | 0 ≤ i ≤ length(cadena)-length(sub) : cadena[i:i+length(sub)] = sub)

todasSubcadena(cadenaTotal,arreglo[0,N)) ≡ (∀i: nat | 0 ≤ i < N : esSubcadena (arreglo[i], cadenaTotal))

*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:

También podría gustarte

  • Entrega 2 - Papel de La Religión
    Entrega 2 - Papel de La Religión
    Documento1 página
    Entrega 2 - Papel de La Religión
    Laura Restrepo
    Aún no hay calificaciones
  • Entrega 1 - Ceremonias
    Entrega 1 - Ceremonias
    Documento1 página
    Entrega 1 - Ceremonias
    Laura Restrepo
    Aún no hay calificaciones
  • Adán y Eva (Después)
    Adán y Eva (Después)
    Documento1 página
    Adán y Eva (Después)
    Laura Restrepo
    Aún no hay calificaciones
  • Adán y Eva (Antes)
    Adán y Eva (Antes)
    Documento1 página
    Adán y Eva (Antes)
    Laura Restrepo
    Aún no hay calificaciones
  • Ensayo Módulo Economía
    Ensayo Módulo Economía
    Documento3 páginas
    Ensayo Módulo Economía
    Laura Restrepo
    Aún no hay calificaciones
  • Texto Reflexivo
    Texto Reflexivo
    Documento2 páginas
    Texto Reflexivo
    Laura Restrepo
    Aún no hay calificaciones
  • Tarea 2
    Tarea 2
    Documento6 páginas
    Tarea 2
    Laura Restrepo
    Aún no hay calificaciones
  • Texto Argumentativo
    Texto Argumentativo
    Documento4 páginas
    Texto Argumentativo
    Laura Restrepo
    Aún no hay calificaciones
  • Texto Reflexivo
    Texto Reflexivo
    Documento2 páginas
    Texto Reflexivo
    Laura Restrepo
    Aún no hay calificaciones
  • Entrega 2
    Entrega 2
    Documento2 páginas
    Entrega 2
    Laura Restrepo
    Aún no hay calificaciones
  • Entrega 3
    Entrega 3
    Documento2 páginas
    Entrega 3
    Laura Restrepo
    Aún no hay calificaciones
  • Pénsum PDF
    Pénsum PDF
    Documento11 páginas
    Pénsum PDF
    Laura Restrepo
    Aún no hay calificaciones
  • Entrega 4
    Entrega 4
    Documento2 páginas
    Entrega 4
    Laura Restrepo
    Aún no hay calificaciones
  • Entrega 1
    Entrega 1
    Documento2 páginas
    Entrega 1
    Laura Restrepo
    Aún no hay calificaciones
  • Parcial 2
    Parcial 2
    Documento7 páginas
    Parcial 2
    Laura Restrepo
    Aún no hay calificaciones