Commit 8649262d authored by Alfonso De Jesus Navas Gomez's avatar Alfonso De Jesus Navas Gomez
Browse files

Tarea terminada

parent 405d62cc
.ipynb_checkpoints/
This diff is collapsed.
%% Cell type:markdown id: tags:
## Ejercicio No. 1 - Lista de palabras
%% Cell type:markdown id: tags:
Soy Alfonso Navas (**@navasa**) y en este cuaderno presentaré mi solución para el **ejercicio No. 1 - Lista de palabras.**
%% Cell type:markdown id: tags:
En este ejercicio, se pretende escribir programa que acepta una lista de palabras separadas por guiones e imprime de vuelta las mismas palabras, sin repetición, nuevamente separadas por guiones y ordenadas alfabéticamente.
%% Cell type:markdown id: tags:
Utilizando la función `input()`, se le solicita al usuario que ingrese una secuencia de palabras separadas por guiones.
%% Cell type:code id: tags:
``` python
sec_in = input('Por favor, ingrese una secuencia de palabras separadas por guiones: ')
```
%% Output
Por favor, ingrese una secuencia de palabras separadas por guiones: naranja-avión-melodía-tupla-avión
%% Cell type:markdown id: tags:
Usando el método `split()`, obtenemos una lista que contiene las palabras ingresadas.
%% Cell type:code id: tags:
``` python
lista_in = sec_in.split('-')
print(lista_in)
```
%% Output
['naranja', 'avión', 'melodía', 'tupla', 'avión']
%% Cell type:markdown id: tags:
Convirtiendo una lista ( `list` ) en un conjunto ( `set` ) eliminamos las palabras repetidas.
%% Cell type:code id: tags:
``` python
set_in = set(lista_in)
print(set_in)
```
%% Output
{'avión', 'melodía', 'tupla', 'naranja'}
%% Cell type:markdown id: tags:
Usando la función `sorted()` ordenamos alfabéticamente las palabras del conjunto.
%% Cell type:code id: tags:
``` python
lista_out = sorted(set_in)
print(lista_out)
```
%% Output
['avión', 'melodía', 'naranja', 'tupla']
%% Cell type:code id: tags:
``` python
#Nótese que la función sorted() nos arroja una lista y no un conjuto
print(type(lista_out))
```
%% Output
<class 'list'>
%% Cell type:markdown id: tags:
Por último, escribimos e imprimimos la secuencia de salida a partir de `lista_out`.
%% Cell type:code id: tags:
``` python
#Escribimos la primera palabra en nuestra secuencia de salida
sec_out = lista_out[0]
#Creamos esta variable para adicionar las palabras que hacen falta
n = len(lista_out) - 1
#Usando un ciclo sencillo adicionamos las demás palabras separadas por guiones
for i in range(n):
sec_out += '-' + lista_out[i+1]
#Imprimimos la secuencia de palabras sin repetición ordenadas alfabéticamente
print(sec_out)
```
%% Output
avión-melodía-naranja-tupla
This diff is collapsed.
%% Cell type:markdown id: tags:
## Ejercicio No. 2 - Triángulo de Pascal
%% Cell type:markdown id: tags:
Soy Alfonso Navas (**@navasa**) y en este cuaderno presentaré mi solución para el **ejercicio No. 2 - Triángulo de Pascal.**
%% Cell type:markdown id: tags:
Este ejercicio consta de 2 incisos, pero en vez de enfrentarlos directamente primero definiremos algunas funciones que nos serán de utilidad.
%% Cell type:markdown id: tags:
### Pasos preliminares:
%% Cell type:markdown id: tags:
Creamos la función `factorial()`, la cual recibe como argumento un número entero y devuelve su factorial.
%% Cell type:code id: tags:
``` python
def factorial(n = 1):
if (n <= 1):
return 1
else:
return n * factorial(n-1) # hacemos uso de la recursividad para calcular el factorial de un número
```
%% Cell type:code id: tags:
``` python
print(factorial(5)) # comprobando que nuestra función funciona bien, 5! = 120
```
%% Output
120
%% Cell type:markdown id: tags:
Usando la función `factorial()`, creamos la función `combinatorio()`, la cual, a partir de dos argumentos *n* y *k*, calcula *nCk*.
%% Cell type:code id: tags:
``` python
def combinatorio (n=1, k =0):
combinatorio = factorial(n)/(factorial(k)*factorial(n - k))
return int(combinatorio)
```
%% Cell type:code id: tags:
``` python
print(combinatorio(5,3)) # comprobando que nuestra función funciona bien, 5C3 = 10
```
%% Output
10