"## En este ejercicio se busca crear un 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 de ordenarlas alfabéticamente\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np"
"Se almacena una variable correspondiente a la lista de palabras separadas por guiones que recibe el programa. Las palabras se almacenan en variables tipo string "
]
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"w-d-z-a\n",
"a-d-w-z\n"
"s-a-s\n"
]
}
],
"source": [
"i=input()\n",
"\n",
"i=input()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Funcion encargada de imprimir las mismas palabras que recibe el programa, sin repeticion y nuevamente separadas por guiones. Esta debe recibir un String"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"\n",
"\n",
"def orden(f):\n",
" x='-'.join(sorted(set(f.split('-'))))\n",
" \n",
" \n",
" #la funcion split('-') acuando sobre argumento f tipo String, transforma el mismo en una lista \n",
" #almacenando cada elemento de la lista con las palabras separadas por un guion.\n",
" \n",
" c=f.split('-')\n",
" \n",
" #La funcion set() transforma la lista en un conjunto, esto se realiza para eliminar los elementos repetidos.\n",
" \n",
" a=set(c)\n",
" \n",
" #La funcion sorted() se encarga de organizar los elementos del conjunto por orden alfabetico.\n",
" \n",
" y=sorted(a)\n",
" \n",
" #Finalmente se transforma de nuevo a un string con la funcion '-'.join(), la cual concatena los elementos de una lista\n",
" #y los transforma en un String, separados por un guion.\n",
" \n",
" x='-'.join(y)\n",
" \n",
" #Se imprime el resultado obtenido\n",
" \n",
" print(x)\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Se evalua la funcion en el argumento recibido por el programa"
"\u001b[0;32m<ipython-input-51-2bc23ea85970>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mtuple\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mda\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mNameError\u001b[0m: name 'da' is not defined"
"[NbConvertApp] Converting notebook Ejercicio1.ipynb to html\n",
"[NbConvertApp] Writing 576316 bytes to Ejercicio1.html\n"
]
}
],
"source": [
"!jupyter nbconvert --to html Ejercicio1.ipynb"
]
}
],
"metadata": {
...
...
%% Cell type:markdown id: tags:
# Jalil Varela Manjarres
## Ejercicio 1
## En este ejercicio se busca crear un 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 de ordenarlas alfabéticamente
%% Cell type:markdown id: tags:
Se almacena una variable correspondiente a la lista de palabras separadas por guiones que recibe el programa. Las palabras se almacenan en variables tipo string
%% Cell type:code id: tags:
``` python
importnumpyasnp
i=input()
```
%% Output
s-a-s
%% Cell type:markdown id: tags:
Funcion encargada de imprimir las mismas palabras que recibe el programa, sin repeticion y nuevamente separadas por guiones. Esta debe recibir un String
%% Cell type:code id: tags:
``` python
i=input()
deforden(f):
x='-'.join(sorted(set(f.split('-'))))
#la funcion split('-') acuando sobre argumento f tipo String, transforma el mismo en una lista
#almacenando cada elemento de la lista con las palabras separadas por un guion.
c=f.split('-')
#La funcion set() transforma la lista en un conjunto, esto se realiza para eliminar los elementos repetidos.
a=set(c)
#La funcion sorted() se encarga de organizar los elementos del conjunto por orden alfabetico.
y=sorted(a)
#Finalmente se transforma de nuevo a un string con la funcion '-'.join(), la cual concatena los elementos de una lista
#y los transforma en un String, separados por un guion.
x='-'.join(y)
#Se imprime el resultado obtenido
print(x)
```
%% Cell type:markdown id: tags:
Se evalua la funcion en el argumento recibido por el programa
"* En este ejercicio se busca crear una rutina que reciba como entrada un número entero, n, e imprima losnúmeros en la n-ésima fila del triángulo de Pascal. verificando si el número n es entero, o arrojaranjo un mensaje informando que ha habido un error del usuario en caso contrario.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"#Librerias que se van a usar.\n",
"import numpy as np\n",
"import math"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Funcion encargada de recibir un numero n y k devolver el número de combinaciones sin repetición de k elementos elegidos entre los n se nota habitualmente, estoscorresponden al elemento k-esimo de la fila n-esima del triangulo de Pascal."
"Funcion encargada de recibir un numero n y retornar una lista con los elementos de la fila n-esima del triangulo de Pascal"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"def Pascal(n):\n",
" #Se define a x como una lista\n",
" x=[]\n",
" #Se utiliza un for, para ir llenando los elementos de la lista con los elementos de la fila de pascal.\n",
" for k in range(0,n+1):\n",
" #Se agrea a la lista el elemento k-esimo de la fila n-esima del triangulo de pascal.\n",
" x.append(combinatoria(n,k))\n",
" #Se retorna una lista con los elementos de la fila n-esima del triagulo de Pascal.\n",
" return x\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 25,
"metadata": {},
"outputs": [
{
...
...
@@ -43,36 +97,51 @@
"[1, 5, 10, 10, 5, 1]"
]
},
"execution_count": 3,
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def Pascal(n):\n",
" x=[]\n",
" for k in range(0,n+1):\n",
" x.append(int(combinatoria(n,k)))\n",
" return x\n",
"Pascal(5)"
"# Ejemplo del funcionamiento.\n",
"Pascal(5)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Funcion encargada de verificar si el número ingresado es entero e imprimiendo los números de la n-ésima fila del triángulo de Pascal, o arrojaranjo un mensaje informando que ha habido un error del usuario en caso contrario.\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"\n",
"def pasc(n):\n",
" #Determina si el numero ingresado es de tipo entero.\n",
" if type(n)==type(3):\n",
" #Imprime los números de la n-ésima fila del triángulo de Pascal en una lista.\n",
" print(Pascal(n))\n",
" #Si el elemento ingresado no es de tipo entero, arroja un mensaje de error.\n",
" else :\n",
" # Imprime el mensaje de error.\n",
" print(\"Su numero ingresado no es entero\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Ejemplos"
]
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 27,
"metadata": {},
"outputs": [
{
...
...
@@ -84,43 +153,78 @@
}
],
"source": [
"#Ejemeplo1\n",
"pasc(5.)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"execution_count": 28,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1, 5, 10, 10, 5, 1]\n"
]
}
],
"source": [
"#Ejemplo2\n",
"pasc(5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* se modifica la rutina anterior para que el programa 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 así sucesivamente.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Funcion encargada de recibir un número variable de argumentos: n1, n2, n3,… , **almacenados en una lista** y retornar 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 así sucesivamente. verificando que cada elemento n-esimo sea entero, de lo contrario arrojando un mensaje de error."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
"\n",
"def pasc2(*args):\n",
" # list(args)\n",
"# print(type(args[0][2]))\n",
"# print(len(args[0]))\n",
" #Se incializa una lista que almacenara los numeros de pascal.\n",
" X=[]\n",
" #Se realiza un loop para llenar los elemento de la lista.\n",
" for i in range(len(args[0])):\n",
" #Se determina si cada argumento i-esimo de la lista es de tipo entero.\n",
" if type(args[0][i])==type(3):\n",
" #Almacena en la lista otra lista con los correspondiente numeros de pascal de la fila i-esima.\n",
" X.append(Pascal(args[0][i]))\n",
"# print(X)\n",
" else :\n",
" #Si no es de tipo entero, entonces arroja un mensaje de error.\n",
" print(f\"el numero en la posicion {i+1} no es entero\")\n",