Skip to content
Snippets Groups Projects
Commit 940aa6ad authored by Jalil Varela Manjarres's avatar Jalil Varela Manjarres
Browse files

Ejercicios terminados

parent 6eba17f8
No related branches found
No related tags found
No related merge requests found
%% 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
import numpy as np
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()
def orden(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
%% Cell type:code id: tags:
``` python
orden(i)
```
%% Output
w-d-z-a
a-d-w-z
a-s
%% Cell type:markdown id: tags:
## Ejemplos
%% Cell type:code id: tags:
``` python
orden('uno-dos-mil-pollo-comida')
```
%% Output
comida-dos-mil-pollo-uno
%% Cell type:code id: tags:
``` python
orden('pepe-neno-memo-olivia')
```
%% Output
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-51-2bc23ea85970> in <module>
----> 1 tuple(da)
memo-neno-olivia-pepe
%% Cell type:code id: tags:
``` python
orden('Zuluaga-Zuluaga-Juanito-Alberto-Alberto-Pepe-Mauricio')
```
%% Output
NameError: name 'da' is not defined
Alberto-Juanito-Mauricio-Pepe-Zuluaga
%% Cell type:code id: tags:
``` python
!jupyter nbconvert --to html Ejercicio1.ipynb
```
%% Output
[NbConvertApp] Converting notebook Ejercicio1.ipynb to html
[NbConvertApp] Writing 576316 bytes to Ejercicio1.html
......
%% Cell type:markdown id: tags:
# Jalil Varela Manjarres
## Ejercicio 2
* 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.
%% Cell type:code id: tags:
``` python
#Librerias que se van a usar.
import numpy as np
import math
```
%% Cell type:markdown id: tags:
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.
%% Cell type:code id: tags:
``` python
def combinatoria(n,k):
return math.factorial(n)/(math.factorial(k)*math.factorial(n-k))
return int(math.factorial(n)/(math.factorial(k)*math.factorial(n-k)))
```
%% Cell type:code id: tags:
``` python
# Ejemplo del funcionamiento.
combinatoria(5,0)
```
%% Output
1.0
1
%% Cell type:markdown id: tags:
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 id: tags:
``` python
def Pascal(n):
#Se define a x como una lista
x=[]
#Se utiliza un for, para ir llenando los elementos de la lista con los elementos de la fila de pascal.
for k in range(0,n+1):
x.append(int(combinatoria(n,k)))
#Se agrea a la lista el elemento k-esimo de la fila n-esima del triangulo de pascal.
x.append(combinatoria(n,k))
#Se retorna una lista con los elementos de la fila n-esima del triagulo de Pascal.
return x
```
%% Cell type:code id: tags:
``` python
# Ejemplo del funcionamiento.
Pascal(5)
```
%% Output
[1, 5, 10, 10, 5, 1]
%% Cell type:markdown id: tags:
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.
%% Cell type:code id: tags:
``` python
def pasc(n):
#Determina si el numero ingresado es de tipo entero.
if type(n)==type(3):
#Imprime los números de la n-ésima fila del triángulo de Pascal en una lista.
print(Pascal(n))
#Si el elemento ingresado no es de tipo entero, arroja un mensaje de error.
else :
# Imprime el mensaje de error.
print("Su numero ingresado no es entero")
```
%% Cell type:markdown id: tags:
## Ejemplos
%% Cell type:code id: tags:
``` python
#Ejemeplo1
pasc(5.)
```
%% Output
Su numero ingresado no es entero
%% Cell type:code id: tags:
``` python
#Ejemplo2
pasc(5)
```
%% Output
[1, 5, 10, 10, 5, 1]
%% Cell type:markdown id: tags:
* 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.
%% Cell type:markdown id: tags:
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 id: tags:
``` python
def pasc2(*args):
# list(args)
# print(type(args[0][2]))
# print(len(args[0]))
#Se incializa una lista que almacenara los numeros de pascal.
X=[]
#Se realiza un loop para llenar los elemento de la lista.
for i in range(len(args[0])):
#Se determina si cada argumento i-esimo de la lista es de tipo entero.
if type(args[0][i])==type(3):
#Almacena en la lista otra lista con los correspondiente numeros de pascal de la fila i-esima.
X.append(Pascal(args[0][i]))
# print(X)
else :
#Si no es de tipo entero, entonces arroja un mensaje de error.
print(f"el numero en la posicion {i+1} no es entero")
#La funcion termina.
return 0
print(X)
```
%% Cell type:markdown id: tags:
```
## Ejemplos
%% Cell type:code id: tags:
``` python
#Ejemplo1
pasc2([1,2,3])
```
%% Output
[[1, 1], [1, 2, 1], [1, 3, 3, 1]]
%% Cell type:code id: tags:
``` python
#Ejemplo2
pasc2([4,0,5])
```
%% Cell type:code id: tags:
``` python
```
%% Cell type:code id: tags:
%% Output
``` python
range?
```
[[1, 4, 6, 4, 1], [1], [1, 5, 10, 10, 5, 1]]
%% Cell type:code id: tags:
``` python
#Ejemplo3
pasc2([8,1,6])
```
%% Cell type:code id: tags:
%% Output
``` python
```
[[1, 8, 28, 56, 70, 56, 28, 8, 1], [1, 1], [1, 6, 15, 20, 15, 6, 1]]
%% Cell type:code id: tags:
``` python
!jupyter nbconvert --to html Ejercicio2.ipynb
```
%% Cell type:code id: tags:
%% Output
``` python
```
[NbConvertApp] Converting notebook Ejercicio2.ipynb to html
[NbConvertApp] Writing 585246 bytes to Ejercicio2.html
......
%% Cell type:markdown id: tags:
# Jalil Varela Manjarres
## Ejercicio 3
* Se crea un diccionario llamado “compas”, donde cada elemento tiene como llave el nombre de usuario en mattermost de un compañero, tal que si depliego el valor almacenado, por ejemplo en compas[“juan-pineda”], lo que obtengo es a la vez otro diccionario, con las llaves “nombre”, “apellido”, “país”, “residencia”, “edad”, “institución”, “hobbie”
%% Cell type:markdown id: tags:
Diccionarios llamados por el nombre de usuario de mattermos con las llaves “nombre”, “apellido”, “país”, “residencia”, “edad”, “institución”, “hobbie”.
%% Cell type:code id: tags:
``` python
juanpineda= {
'nombre': 'JuanPineda',
'apellido':'1',
'pais': 'mexico',
'residencia':'1',
'edad':'1',
'institucion':'colegio1',
'hobbie':'1'
#Estudiantes
andreatugores= {
'nombre': 'Andrea Carolina',
'apellido':'Tugores Hernández',
'residencia':'Caracas',
'edad':'24',
'pais':'Venezuela',
'especialidad':'Fisica médica',
'institucion' : 'Universidad Central de Venezuela',
'hobbie':'Tennis'
}
camilo={
'nombre': 'Camilo',
'apellido':'2',
'pais':'mexico',
'residencia':'2',
'edad':'2',
'institucion':'colegio1',
'hobbie':'2'
bermudezj={
'nombre': 'Jesus David',
'apellido':'Bermudez Sanchez',
'residencia':'Bogotá',
'edad':'24',
'pais':'Colombia',
'especialidad':'Estado Solido',
'institucion' : 'Universidad Nacional de Colombia',
'hobbie':'enderismo y montar en bicicleta'
}
britod={
'nombre': 'Daniel Arturo',
'apellido':'Brito Urbina',
'residencia':'Caracas',
'edad':'26',
'pais':'Venezuela',
'especialidad':'Teoria de Campos',
'institucion' : 'Universidad Central de Venezuela',
'hobbie':'Patinetas, Bicicletas y Video juegos'
}
fernandezn={
'nombre': 'Nicolás',
'apellido':'Fernández Cinquepalmi',
'residencia':'Lima',
'edad':'27',
'pais':'Argentina',
'especialidad':'Fisica Nuclear',
'institucion' : 'Universidad Nacional Mayor de San Marcos',
'hobbie':'Piano'
}
grisalesj={
'nombre': 'Jennifer',
'apellido':'Grisales',
'residencia':'Bucaramanga',
'edad':'27',
'pais':'Colombia',
'especialidad':'Astropartículas',
'institucion' : 'Universidad Industrial de Santander',
'hobbie':'Rugby, correr, yoga'
}
ramosd={
'nombre': 'David',
'apellido':'Ramos',
'residencia':'Bucaramanga',
'edad':'24',
'pais':'Colombia',
'especialidad':'Astrofísica relativista',
'institucion' : 'Universidad Industrial de Santander',
'hobbie':'tocar guitarra'
}
hernandezj={
'nombre': 'Juan David',
'apellido':'Hernandez',
'residencia':'Bogota',
'edad':'24',
'pais':'Colombia',
'especialidad':'Electrodinamica cuántica',
'institucion' : 'Universidad Nacional de Colombia',
'hobbie':'Leer, jugar en el computador'
}
malamboj={
'nombre': 'Jorge Enrique',
'apellido':'Malambo Martínez',
'residencia':'Bogota',
'edad':'39',
'pais':'Colombia',
'especialidad':'Modelaje y simulación - ciencia de materiales',
'institucion' : 'Universidad Nacional de Colombia',
'hobbie':'Talla en madera - ecoturismo'
}
martinezj={
'nombre': ' Jocabed',
'apellido':'Martínez',
'residencia':'Caracas',
'edad':'22',
'pais':'Venezuela',
'especialidad':'Modelaje y simulación - ciencia de materiales',
'institucion' : 'Universidad Central de Venezuela',
'hobbie':'Musica'
}
pinzonc={
'nombre': 'Carlos Andres',
'apellido':'Pinzon Osorio',
'residencia':'Colombia',
'edad':'30',
'pais':'Bogota',
'especialidad':'Ingeniería física ',
'institucion' : 'Universidad Antonio de Nariño',
'hobbie':'Atletismo'
}
#Profesores
juan_pineda={
'nombre': 'Juan Carlos',
'apellido':'Basto Pineda',
'residencia':'Bucaramanga',
'edad':'37',
'pais':'Colombia',
'especialidad':'Astronomia',
'institucion' : 'Universidad Industrial de Santander',
'hobbie':'Dibujar, caminatas'
}
Inunez={
'nombre': 'Luis',
'apellido':'Núñez',
'residencia':'Bucaramanga',
'edad':'64',
'pais':'Venezuela',
'especialidad':'Astrofisica de Altas Energías',
'institucion' : 'Universidad Industrial de Santander',
'hobbie':'Cocina'
}
#Dicciomario compas
compas={
'juanpineda': juanpineda,
'camilo':camilo
'andreatugores' : andreatugores,
'bermudezj' : bermudezj,
'britod' : britod,
'fernandezn': fernandezn,
'grisalesj' : grisalesj,
'ramosd' : ramosd,
'hernandezj' : hernandezj,
'malamboj' : malamboj,
'martinezj' : martinezj,
'pinzonc' : pinzonc,
'juan_pineda' : juan_pineda,
'Inunez' : Inunez
}
print(compas['juanpineda']['pais'])
```
%% Cell type:code id: tags:
``` python
#Ejemplo
print(compas['Inunez']['pais'])
```
%% Output
mexico
Venezuela
%% Cell type:markdown id: tags:
* Funcion encargada de recibir dos variables, una variable tipo diccionario con la informacion de los compañeros, y la otra tipo string, asociada con el pais, esta funcion devuelve una Tabla con las columnas asociadas a nombre,apellido,residencia,edad,pais,especialidad,institucion,hobbie, separadas por un -, de los usuarios del diccionario unicamente asociados al pais especificado en el argumento
%% Cell type:code id: tags:
``` python
#Tabla Organizada
nombres=['juanpineda','camilo']
def Orden(compas,b):
print(' '.join(list((compas['camilo'].keys()))))
for i in nombres:
#Imprime los elementos de la tabla en el orden de la informacion de del diccionario, separados por un -
print('nombre-apellido-residencia-edad-pais-especialidad-institucion-hobbie \n')
# print('-'.join(list((compas['pinzonc'].keys())))+'\n')
# itera sobre las llaves del diccionario con los compañeros de LaConga y revisa si el pais es el mismo que el del argumento
for i in compas.keys():
# print(type(i))
if compas[i]['pais']==b:
# De ser el mismo pinta los datos asociados a este usuario
print('-'.join(list((compas[i].values())))+'\n' )
print(' '.join(list((compas[i].values()))))
```
%% Cell type:markdown id: tags:
## Ejemplos
%% Cell type:code id: tags:
``` python
Orden(compas,'mexico')
Orden(compas,'Colombia')
```
%% Output
nombre apellido pais residencia edad institucion hobbie
JuanPineda 1 mexico 1 1 colegio1 1
Camilo 2 mexico 2 2 colegio1 2
nombre-apellido-residencia-edad-pais-especialidad-institucion-hobbie
Jesus David-Bermudez Sanchez-Bogotá-24-Colombia-Estado Solido-Universidad Nacional de Colombia-enderismo y montar en bicicleta
Jennifer-Grisales-Bucaramanga-27-Colombia-Astropartículas-Universidad Industrial de Santander-Rugby, correr, yoga
David-Ramos-Bucaramanga-24-Colombia-Astrofísica relativista-Universidad Industrial de Santander-tocar guitarra
Juan David-Hernandez-Bogota-24-Colombia-Electrodinamica cuántica-Universidad Nacional de Colombia-Leer, jugar en el computador
Jorge Enrique-Malambo Martínez-Bogota-39-Colombia-Modelaje y simulación - ciencia de materiales-Universidad Nacional de Colombia-Talla en madera - ecoturismo
Juan Carlos-Basto Pineda-Bucaramanga-37-Colombia-Astronomia-Universidad Industrial de Santander-Dibujar, caminatas
%% Cell type:code id: tags:
``` python
Orden(compas,'Venezuela')
```
%% Output
nombre-apellido-residencia-edad-pais-especialidad-institucion-hobbie
Andrea Carolina-Tugores Hernández-Caracas-24-Venezuela-Fisica médica-Universidad Central de Venezuela-Tennis
Daniel Arturo-Brito Urbina-Caracas-26-Venezuela-Teoria de Campos-Universidad Central de Venezuela-Patinetas, Bicicletas y Video juegos
Jocabed-Martínez-Caracas-22-Venezuela-Modelaje y simulación - ciencia de materiales-Universidad Central de Venezuela-Musica
Luis-Núñez-Bucaramanga-64-Venezuela-Astrofisica de Altas Energías-Universidad Industrial de Santander-Cocina
%% Cell type:markdown id: tags:
* Se crea un codigo para calcular, a partir del diccionario, el promedio de edad de todas las personas en él
%% Cell type:code id: tags:
``` python
#Media de la edad
x=0
for i in nombres:
x+=int(compas[i]['edad'])/len(nombres)
for i in compas.keys():
x+=int(compas[i]['edad'])/len(compas.keys())
```
%% Cell type:code id: tags:
``` python
#Ejemplo
print(x)
```
%% Output
1.5
30.66666666666666
%% Cell type:markdown id: tags:
* Se crea un codigo para una mostrar todas las instituciones del diccionario(sin repetición)
%% Cell type:code id: tags:
``` python
#Instituciones
#Se inicializa una lista que se llenara con los elementos de las instituciones
s=[]
for i in nombres:
# Se crea un loop que toma las llaves del diccionario y va añadiendo a s los nombres de las instituciones
for i in compas.keys():
s.append(compas[i]['institucion'])
print(set(s))
#Trasnforma a s en un conjunto para eliminar los elementos repetidos
s=set(s)
```
%% Cell type:code id: tags:
``` python
#Ejemplo
print(s)
```
%% Output
{'colegio1'}
{'Universidad Nacional de Colombia', 'Universidad Industrial de Santander', 'Universidad Central de Venezuela', 'Universidad Antonio de Nariño', 'Universidad Nacional Mayor de San Marcos'}
%% Cell type:code id: tags:
``` python
!jupyter nbconvert --to html Ejercicio3.ipynb
```
%% Output
[NbConvertApp] Converting notebook Ejercicio3.ipynb to html
[NbConvertApp] Writing 598110 bytes to Ejercicio3.html
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment