Está en la página 1de 12

CS1111 Programación I

Ejercicios: Str, funciones y listas


Pregrado
2021-2
Ciencia de la Computación
Laboratorio
1. Indice de Jaccard - str

El coeficiente de Jaccard es usado para medir el factor de similitud entre dos textos
en términos de la intersección y la unión de ambos textos. Se le pide elaborar un algo-
ritmo que reciba como datos de entrada dos textos A y B, y luego proceder a calcular
lo siguiente:
• |A ∩ B|: la cantidad de palabras coincidentes en ambos textos.
• |A ∪ B|: la cantidad de palabras en ambos textos (sin repeticiones).
• Finalmente, obtener el factor de similitud aplicando el coeficiente de Jaccard :
|A ∩ B|/|A ∪ B|

Nota: asumir que cada texto no contiene palabras repetidas.


Ejemplo:
Listing 1: Ejemplo 1
Texto 1: La ciencia de hoy es t e c n o l o g a del m a a n a
Texto 2: Ciencia y t e c n o l o g a no es lo mismo
Palabras en la i n t e r s e c c i n : 3
Palabras en la u n i n : 12
Factor de similitud : 0.25

2. Contraseña - str + funciones

Diseñe e implemente un algoritmo para validar una contraseña considerando las sigu-
ientes reglas:
• Debe tener al menos 5 caracteres
• Debe contener al menos un dı́gito.
• Debe contener al menos tres letras mayúsculas.
Si la clave ingresada cumple el formato debe mostrar el mensaje OK, caso contrario debe
mostrar ERROR.

Algunos ejemplos de diálogo de este programa serı́an:


Prog-I Ejercicios: Str, funciones y listas - Página 2 de 12 2021-2

Ingrese clave : UTEC1no


OK

Ingrese clave : MaKrE123


OK

Ingrese clave : UTECno


ERROR

Ingrese clave : MaKre123


ERROR

3. Jugando con cadenas = str

Diseñe e implemente un algoritmo que permita invertir el orden del string por pal-
abras. Adicionalmente, deberá intercalar las palabras en mayusculas y minusculas.
Considere que el resultado deberá ser almacenado en un nuevo string (no print).
Algunos ejemplos de diálogo de este programa serı́an:
Listing 2: Ejemplo 1
esta vez estudie sacare veinte
VEINTE sacare ESTUDIE vez ESTA

Listing 3: Ejemplo 2
Al que madruga Dios lo ayuda
AYUDA lo DIOS madruga QUE al

4. Contraseña - str

Strings. Se te ha pedido escribir un programa que mejore la calidad de contraseñas


de los usuarios de tu aplicación. El usuario escribirá una contraseña en forma de string
y el programa realiza unas validaciones y además cambia la contraseña original de la
siguiente manera:
• Se revisa la validez de la contraseña. En caso no sea válida, se le imprime al usuario
un mensaje con la razón y termina el programa. El orden de validación no importa.
La contraseña es inválida si ocurre alguno de los siguiente casos:
- La contraseña no contiene por lo menos dos digitos.
- La contraseña no contiene por los menos dos letras.
• Luego de validar la contraseña, el programa mejora la ingresada de la siguiente
manera:
- Vuelve mayúscula 1 letra aleatoria de la contraseña.
- Agrega dos carácteres aleatorios de entre !, #, $, %, @ en posiciones aleatorias.
Prog-I Ejercicios: Str, funciones y listas - Página 3 de 12 2021-2

Puedes usar la función randint(a, b) del módulo random, la cual genera un número aleato-
rio entre a y b incluidos. Para verificar si un caracter es un numero o letra puedes usar las
funciones str.isdigit() y str.isalpha(). Por ejemplo, ”2”.isDigit() = True y ”a”.isAlpha()
= True.
Algunos ejemplos de diálogo de este programa serı́an:
Listing 4: Ejemplo 1
Ingrese su contrasena : 12
La contrasena no es valida : Contrasena tiene menos de 2
letras .

Listing 5: Ejemplo 2
Ingrese su contrasena : aa
La contrasena no es valida : Contrasena tiene menos de 2
digitos .

Listing 6: Ejemplo 3
Ingrese su contrasena : hola123
Su contrasena es valida . Su contrasena mejorada es :
hoLa$123 #

Listing 7: Ejemplo 4
Ingrese su contrasena : hola123
Su contrasena es valida . Su contrasena mejorada es : h % oLa12
%3

Listing 8: Ejemplo 4
Ingrese su contrasena : hola123
Su contrasena es valida . Su contrasena mejorada es : Hola@1
%23

5. Números amigos - funciones

Desarrolle un programa, que permita leer dos números enteros positivos diferentes y
el programa indique si los números son números amigos.

Dos números enteros positivos son amigos: si la suma de los divisores propios
de uno es igual al otro número y visceversa. El 1 es considerado divisor propio,
pero el número mismo no lo es.

Por ejemplo:
Prog-I Ejercicios: Str, funciones y listas - Página 4 de 12 2021-2

Los divisores propios de 220 son 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 y 110, que suman
284
Los divisores propios de 284 son 1, 2, 4, 71 y 142, que suman 220.
Por tanto el 284 y el 220 son números amigos.
El programa:

• Debe verificar el ingreso de dos números enteros positivos diferentes.


• Codifique la función sonAmigos que reciba como datos los dos números y de-
vuelva una valor bool que indique True si los números son amigos o False si no lo
son.
• Para que se pueda asignar el puntaje a esta pregunta es absolutamente
necesario que se use la función sonAmigos. De lo contrario no se podrá
asignar el puntaje.

Algunos ejemplos de diálogo de este programa serı́an:


Listing 9: Ejemplo 1
Numero 1 : 220
Numero 2 : 284
220 y 284 son numeros amigos

Listing 10: Ejemplo 2


Numero 1 : 2324
Numero 2 : 4567
2324 y 4567 No , son numeros amigos

Listing 11: Ejemplo 3


Numero 1: 1184
Numero 2: 1184

Numero 1: 156
Numero 2: 156

Numero 1: 17296
Numero 2: 18416
17296 y 18416 son numeros amigos

Algunos ejemplos de diálogo de este programa serı́an:


Listing 12: Ejemplo 4
Numero 1 : 1184
Numero 2 : 1210
1184 y 1210 son numeros amigos
Prog-I Ejercicios: Str, funciones y listas - Página 5 de 12 2021-2

6. Deletreando números - funciones

Desarrolle un programa que permita leer como dato una cadena en donde se ha dele-
treado un número utilizando los nombres de cada uno de sus dı́gitos y el programa forme
e imprima el número correspondiente.
El programa:
• Lee como dato una cadena
• Forma un número entero y lo imprime.
• El programa deberá tener por lo menos una función llamada aNumero que:
recibe como parámetro la cadena y devuelve un número entero.
• De no escribir esta función, no se asignará el puntaje a esta pregunta.
Algunos ejemplos de diálogo de este programa serı́an:
Listing 13: Ejemplo 1
Cadena : dos tres seis siete nueve cero
El numero es : 236790

Listing 14: Ejemplo 2


Cadena : cuatro cero dos nueve
El numero es : 4029

Listing 15: Ejemplo 3


Cadena : tres ocho dos uno
El numero es : 3821

7. Separando listas - funciones

Implementar la función SplitList que reciba como parámetros una lista de datos y
un elemento separador. Dicho separador será utilizado para dividir la lista en sublistas.
# Funcion
def SplitList ( lista , sep ) :
result = [ ]
# implemente aqui
return result

Algunos ejemplos del programa principal:


# ## MAIN ###
lista = [5 ,2 ,0 ,1 ,3 ,6 ,0 ,4 ,6]
separador = 0
resultado = SplitList ( lista , separador )
print ( resultado ) # [[5 ,2] , [1 ,3 ,6] , [4 ,6]]
Prog-I Ejercicios: Str, funciones y listas - Página 6 de 12 2021-2

# ## MAIN ###
lista = [8 ,3 , -1 ,4 ,3 ,10]
separador = -1
resultado = Split ( lista , separador )
print ( resultado ) # [[8 ,3] , [4 ,3 ,10]]

# ## MAIN ###
lista = [8 ,3 ,4 ,3 ,10]
separador = -1
resultado = Split ( lista , separador )
print ( resultado ) # [8 ,3 ,4 ,3 ,10]

8. Saludos - funciones

Implemente la funcion emite saludo, de tal manera que las siguientes lı́neas de codigo
generen las salidas especificadas.
Listing 16: Ejemplo 1

print ( emite_saludo ( " Pedro " ) )


print ( emite_saludo ( " Juana " , " F " ) )
print ( emite_saludo ( " Ernesto " , " M " , " pm " ) )
print ( emite_saludo ( " Cristina " , hora = " am " , sexo = " F " ) )

# output
Estimado Pedro , buenos dias
Estimada Juana , buenos dias
Estimado Pedro , buenas tardes
Estimada Cristina , buenos dias

9. Cálculos - funciones

Funciones. Implementar las siguientes funciones:

• La función calcularArea(r, h) calcula el área del cilindro de acuerdo a la fórmula:


2πrh + 2πr2 .
• La función calcularVolumen(r, h) calcula el área del cilindro de acuerdo a la fórmula:
πr2 h

Finalmente, implementar la función calcularCilindro que hace uso de las funciones an-
teriores y funciona de la siguiente manera:
Listing 17: Ejemplo 1
calcularCilindro ()
Prog-I Ejercicios: Str, funciones y listas - Página 7 de 12 2021-2

El area del cilindro es : 141.3716694115407


El volumen del cilindro es : 150.79644737231007

Listing 18: Ejemplo 2


calcularCilindro (3)
El area del cilindro es : 141.3716694115407
El volumen del cilindro es : 150.79644737231007

Listing 19: Ejemplo 3


calcularCilindro (6 , 7)
El area del cilindro es : 791.6813487046279
El volumen del cilindro es : 490.08845396000777

Listing 20: Ejemplo 4


calcularCilindro ( h =2 , r =1)
El area del cilindro es : 6.283185307179586
El volumen del cilindro es : 18.84955592153876

10. Restaurant - listas

El profesor esta llevando a todos sus alumnos a comer a cierto restarurante, el cual
todavia no ha sido definido, por lo que permite que el primero de la lista sea quien eliga
el restaurante para ir a comer. Dado que es una decisión importante, el primero de la
lista será el alumno que tenga la más alta nota del curso.
Se le pide desarrollar un algoritmo que recibe como dato de entrada una lista de notas
y debe generar otra lista en donde la nota mas alta aparezca al inicio de la lista y las
demás notas mantegan su orden original.
Listing 21: Ejemplo 1
Ingresar lista : 15 ,11 ,12 ,13 ,18 ,08 ,14
Nueva lista : [18 , 15 , 11 , 12 , 13 , 8 , 14]

11. Nombre - listas

Dada dos listas de nombres de alumnos, se le pide implementar la operación de UNION


entre ambas listas (sin elementos repetidos). La lista resultante debe estar ordenado
alfabéticamente.
Condición:

• El input son dos textos que contienen a los elementos separados por comas.
• En la salida debe mostrarse en unsa sola lı́nea con los elementos separados por
coma.
Prog-I Ejercicios: Str, funciones y listas - Página 8 de 12 2021-2

Algunos ejemplos de diálogo de este programa serı́an:


Lista 1: Maria , Carlos , Pedro , Teresa , Rosa , Juan
Lista 2: Maria , Roberto , Rosa , Nelly , Juan , Lucas , Matilde
Union : Carlos , Juan , Lucas , Maria , Matilde , Nelly , Pedro , Roberto ,
Rosa , Teresa

Lista 1: Perla , Demetria , Mamerto , Felipe , Carla


Lista 2: Perla , Carla
Union : Carla , Demetria , Felipe , Mamerto , Perla

Lista 1: Perla , Mamerto


Lista 2: Peter ,
Union : Mamerto , Perla , Peter

12. Imprimiendo desde los costados -Listas

Diseñe e implemente un algoritmo que permita imprimir una lista de los costados hacia
el medio. Considere que el tamaño de la lista puede ser para o impar. Asimismo, puede
asumir que la lista ya se encuentra con datos.
Algunos ejemplos de diálogo de este programa serı́an:
Listing 22: Ejemplo 1
lista = [1 , 2 , 3 , 4 , 5 , 6]
1 6 2 5 3 4

Listing 23: Ejemplo 2


lista = [5 , 3 , 1 , 2 , 4 , 6]
5 6 3 4 1 2

Listing 24: Ejemplo 3


lista = [8 , 1 , 2 , 1 , 4]
8 4 1 1 2

13. Jugando con listas - Listas

Elabore un algoritmo y escriba un programa en Python que permita ingresar dos listas
de números enteros, solicitando en cada caso al usuario el número de elementos que
contendrá cada lista, y que luego calcule lo que se solicita a continuación.

• Cree una lista con la intersección de ambas listas (elementos que se encuentran tanto
en la primera como en la segunda lista) y al final la imprima. No debe considerar
valores repetidos.
Prog-I Ejercicios: Str, funciones y listas - Página 9 de 12 2021-2

• Cree una lista que contenga los elementos que se encuentran en la primera pero no
en la segunda lista y al final la imprima. No debe considerar valores repetidos.
• Cree una lista que contenga los elementos pares que se encuentran en la primera o
en la segunda lista y al final la imprima. No debe considerar valores repetidos.

Algunos ejemplos de diálogo de este programa serı́an:


Listing 25: Ejemplo 1
Ingrese n m e r o de elementos lista1 : 5
Ingrese valor 1: 2
Ingrese valor 2: 3
Ingrese valor 3: 6
Ingrese valor 4: 7
Ingrese valor 5: 8
Ingrese n m e r o de elementos lista2 : 4
Ingrese valor 1: 7
Ingrese valor 2: 8
Ingrese valor 3: 1
Ingrese valor 4: 4
Lista 1 = [2 , 3 , 6 , 7 , 8]
Lista 2 = [7 , 8 , 1 , 4]
Resultado 1 ( i n t e r s e c c i n ) = [7 , 8]
Resultado 2 ( diferencia lista1 - lista2 ) = [2 , 3 , 6]
Resultado 3 ( pares en las listas ) = [2 , 6 , 8 , 4]

Listing 26: Ejemplo 2


Ingrese n m e r o de elementos lista1 : 3
Ingrese valor 1: 1
Ingrese valor 2: 2
Ingrese valor 3: 3
Ingrese n m e r o de elementos lista2 : 2
Ingrese valor 1: 4
Ingrese valor 2: 5
Lista 1 = [1 , 2 , 3]
Lista 2 = [4 , 5]
Resultado 1 ( i n t e r s e c c i n ) = []
Resultado 2 ( diferencia lista1 - lista2 ) = [1 , 2 , 3]
Resultado 3 ( pares en las listas ) = [2 , 4]

Listing 27: Ejemplo 3


Ingrese n m e r o de elementos lista1 : 3
Ingrese valor 1: 2
Ingrese valor 2: 4
Ingrese valor 3: 9
Prog-I Ejercicios: Str, funciones y listas - Página 10 de 12 2021-2

Ingrese n m e r o de elementos lista2 : 3


Ingrese valor 1: 2
Ingrese valor 2: 4
Ingrese valor 3: 9
Lista 1 = [2 , 4 , 9]
Lista 2 = [2 , 4 , 9]
Resultado 1 ( i n t e r s e c c i n ) = [2 , 4 , 9]
Resultado 2 ( diferencia lista1 - lista2 ) = []
Resultado 3 ( pares en las listas ) = [2 , 4]

14. Vocales - listas

Listas. Diseñe e implemente un algoritmo que permita ingresar varias palabras hasta
ingresar -1, para luego crear una lista con todas las palabras que empiezan con vocal
abiertas (’a’, ’e’ y ’o’), una lista con todas las palabras que empiezan con vocal cerradas
(’i’ y ’u’), y otra lista con las palabras restantes que no esten en la primera y segunda
lista. Finalmente, imprimimos las tres listas.
Algunos ejemplos de diálogo de este programa serı́an:
Listing 28: Ejemplo 1
Ingrese una palabra : a
Ingrese una palabra : z
Ingrese una palabra : a
Ingrese una palabra : i
Ingrese una palabra : o
Ingrese una palabra : u
Ingrese una palabra : -1
La primera lista es : [ ’a ’ , ’a ’ , ’o ’]
La segunda lista es : [ ’i ’ , ’u ’]
La tercera lista es : [ ’z ’]

Listing 29: Ejemplo 2


Ingrese una palabra : hola
Ingrese una palabra : arbol
Ingrese una palabra : enano
Ingrese una palabra : oso
Ingrese una palabra : uva
Ingrese una palabra : zxy
Ingrese una palabra : -1
La primera lista es : [ ’ arbol ’ , ’ enano ’ , ’ oso ’]
La segunda lista es : [ ’ uva ’ ,]
La tercera lista es : [ ’ hola ’ , ’ zxy ’]
Prog-I Ejercicios: Str, funciones y listas - Página 11 de 12 2021-2

Listing 30: Ejemplo 3


Ingrese una palabra : oso
Ingrese una palabra : iglesia
Ingrese una palabra : oso
Ingrese una palabra : iglesia
Ingrese una palabra : iglesia
Ingrese una palabra : -1
La primera lista es : [ ’ oso ’ , ’ oso ’]
La segunda lista es : [ ’ iglesia ’ , ’ iglesia ’ , ’ iglesia ’]
La tercera lista es : []

15. Números Primos y no primos - listas

Listas. Escribe un programa que permita a un usuario ingresar varios números en


sucesión hasta ingresar 0. Luego, el programa muestra la suma de los números primos y
la suma de los números no primos. Si no se ingresó ningún número primo, se imprime
un mensaje que indique esto. Lo mismo si no se ingreso ningún número no primo. Para
este problema, el número 1 es primo.
Algunos ejemplos de diálogo de este programa serı́an:
Listing 31: Ejemplo 1
Ingrese un numero : 11
Ingrese un numero : 4
Ingrese un numero : 7
Ingrese un numero : 10
Ingrese un numero : 9
Ingrese un numero : 0
La suma de los numeros primos [11 , 7] es : 18
La suma de los numeros no primos [4 , 10 , 9] es : 23

Listing 32: Ejemplo 2


Ingrese un numero : 3
Ingrese un numero : 7
Ingrese un numero : 11
Ingrese un numero : 0
La suma de los numeros primos [3 , 7 , 11] es : 21
No se ingresaron numeros no primos

Listing 33: Ejemplo 3


Ingrese un numero : 4
Ingrese un numero : 8
Ingrese un numero : 16
Ingrese un numero : 0
Prog-I Ejercicios: Str, funciones y listas - Página 12 de 12 2021-2

No se ingresaron numeros primos


La suma de los numeros no primos [4 , 8 , 16] es : 28

Listing 34: Ejemplo 4


Ingrese un numero : 0
No se ingresaron numeros primos
No se ingresaron numeros no primos

También podría gustarte