Commit 34da6af4 authored by Andrea Tugores's avatar Andrea Tugores
Browse files

Tarea1 desde jupyterhub

parent 405d62cc
.ipynb_checkpoints/
This diff is collapsed.
%% Cell type:markdown id: tags:
# Nombre: Andrea Tugores
# Tarea: clase-02
## Ejercicio 1: Lista de Palabras
Escribir un programa en python que acepte una lista de palabras separadas por guiones, e imprima de vuelta las mismas palabras, sin repetición y nuevamente separadas por guiones, después ordenarlas alfabéticamente.
Ejemplo de entrada: naranja-avión-melodía-tupla
Salida esperada: avión-melodia-naranja-tupla
%% Cell type:markdown id: tags:
#### Lista de palabras
Pedir al usuario que ingrese una cadena de palabras separadas por guiones.
%% Cell type:code id: tags:
``` python
cadena = input("Introducir cadena: ")
```
%% Output
Introducir cadena: avion-carro-melodia-avion-avion-carro-playa-naranja-soda-avion
%% Cell type:markdown id: tags:
#### Trabajar la cadena de palabras
Obtener una lista con las palabras que componen la cadena.
%% Cell type:code id: tags:
``` python
#Split elimina los guiones y devuelve una lista
cadena_lista = cadena.split("-")
#Ordenar alfabeticamente
cadena_lista.sort()
```
%% Cell type:markdown id: tags:
#### Eliminar palabras repetidas
%% Cell type:code id: tags:
``` python
#Se crea una lista donde se agragan las palabras sin repetición
cadena_ordenada = []
for i in cadena_lista:
#Si la palabra no se encuentra lista "cadena_ordenada" se agrega
if i not in cadena_ordenada:
cadena_ordenada.append(i)
```
%% Cell type:markdown id: tags:
#### Convertir de lista a cadena
%% Cell type:code id: tags:
``` python
#join forma una cadena, en este caso separada con guiones,
#a partir de una lista
cadena_final = "-".join(cadena_ordenada)
```
%% Cell type:markdown id: tags:
#### Mostrar el resultado
%% Cell type:code id: tags:
``` python
print("Salida esperada:", cadena_final)
```
%% Output
Salida esperada: avion-carro-melodia-naranja-playa-soda
%% Cell type:code id: tags:
``` python
```
This diff is collapsed.
%% Cell type:markdown id: tags:
# Nombre: Andrea Tugores
# Tarea: Clase-02
## Ejercicio 2: Triángulo de Pascal
- Escribir una rutina en python que reciba como entrada un número entero, n, e imprima los números en la n-ésima fila del triángulo de Pascal. El programa debe verificar si el número n es entero, o arrojar un mensaje informando que ha habido un error de usuario en caso contrario.
- Modifique la rutina anterior para que reciba un número variable de argumentos: n1, n2, n3,.. y retorne una lista cuyo primer elemento es una lista conteniendo los números en la fila n1 del triángulo de Pascal, el segundo elemento una lista con los números en la fila n2, y asi sucesivamente.
%% Cell type:markdown id: tags:
### Item 1
%% Cell type:markdown id: tags:
#### Verificar que se ingrese un número entero
%% Cell type:code id: tags:
``` python
try:
n = int(input("Introducir un número entero: "))
except:
print("Error. Tiene que ingresarse un número entero.")
```
%% Output
Introducir un número entero: 10
%% Cell type:markdown id: tags:
#### Crear una función llamada: triangulo_pascal
Esta función forma el triágulo de pascal agregando el resto de filas de acuerdo al valor de n y retorna la y retorna la n-ésima fila.
%% Cell type:code id: tags:
``` python
def triangulo_pascal(x):
#El único dígito de la primera fila del triángulo es 1
triangulo = [[1]]
#Recorrer las filas
for fila in range(0,x):
#Inicializar la línea
linea = [1]
#Recorrer las columnas
for col in range(0, len(triangulo[fila])-1):
#Agregar a la fila siguiente la suma de los elementos
#de la fila que se recorre
linea.extend([triangulo[fila][col] + triangulo[fila][col+1]])
#Agregar el último elemento de todas las filas
linea.append(1)
#Agregar la fila al triángulo
triangulo.append(linea)
return triangulo[x]
```
%% Cell type:markdown id: tags:
#### Mostra la n-ésima fila del triángulo
%% Cell type:code id: tags:
``` python
triangulo_pascal(n)
```
%% Output
[1, 10, 45, 120, 210, 252, 210, 120, 45, 10, 1]
%% Cell type:markdown id: tags:
### Item 2
%% Cell type:markdown id: tags:
#### Crear una lista vacía
En esta lista se almaceran los números ingresados por el usuario.
%% Cell type:code id: tags:
``` python
numeros = []
```
%% Cell type:markdown id: tags:
#### Verificar que se ingresen números enteros
%% Cell type:code id: tags:
``` python
#Se imprimen indicaciones para el usuario
print("Ingresar números enteros uno a la vez.")
print("Una vez ingresados todos escriba: done.")
print(" ")
while True:
try:
#Si el número es entero se agrega a la lista "numeros"
n = input("Ingresar número: ")
num = int(n)
numeros.append(num)
except:
print("Error. Tiene que ingresarse un número entero.")
#Cuando el usuario escribe 'done' el programa deja de
#solicitar números
if n == 'done': break
```
%% Output
Ingresar números enteros uno a la vez.
Una vez ingresados todos escriba: done.
Ingresar número: 2.2
Error. Tiene que ingresarse un número entero.
Ingresar número: 3
Ingresar número: 10
Ingresar número: 2
Ingresar número: 4
Ingresar número: done
Error. Tiene que ingresarse un número entero.
%% Cell type:markdown id: tags:
#### Ordenar los números
%% Cell type:code id: tags:
``` python
#Ordenar los numeros de menor a mayor
numeros.sort()
#Seleccionar el número mayor
mayor = numeros[-1]
```
%% Cell type:markdown id: tags:
#### Modificar la función "triangulo_pascal"
Esta función retorna una lista con las filas correspondientes a los números ingresados.
%% Cell type:code id: tags:
``` python
def pascal_triangulo(x, lista):
#El único dígito de la primera fila del triángulo es 1
triangulo = [[1]]