"*Primer inciso: def un_Pascal que consiste en imprimir la fila de pascal correspondiente al número entero ingresado por el usuario. \n",
"\n",
"*Segundo inciso: def Pascal que imprime todas las filas de los todos los numeros recibidos separados por espacios. \n",
"\n",
"Antes que cualquiera de las dos funciones anteriores se ejecute debe verificarse si el número ingresado por el usuario es un número entero, mediante *try*"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"# Imprime las lineas del triangulo de pascal\n",
"def Pascal(argv):\n",
" #Va a repetir la secuencia para cada argumento ingresado\n",
" for arg in argv:\n",
" #Inicio del triangulo del Pascal. Todas las filas empiezan por 1 \n",
" L = 1\n",
" # Va a seguir trabajando hasta que llegue a la linea \"arg\"\n",
" while True:\n",
" C = 1\n",
" # No calcula nada si la linea no es la \"arg\"\n",
" if L == arg:\n",
" # Calcula la linea\n",
" for i in range(1, L + 1):\n",
" print(C, end = \" \")\n",
" #Se aplica el bionomio de newton para calcular los coeficientes de la linea solicitada\n",
" C = int(C * (L - i) / i)\n",
" #Rompe la repeticion infinita\n",
" break\n",
" L = L + 1 \n",
" print(\"\");"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def un_Pascal(arg):\n",
" #Inicio del triangulo\n",
" L = 1\n",
" while True:\n",
" C = 1\n",
" # No calcula nada si la linea no es la \"arg\"\n",
" if L == arg:\n",
" # Calcula la linea\n",
" for i in range(1, L + 1):\n",
" print(C, end = \" \")\n",
" C = int(C * (L - i) / i)\n",
" #Rompe la repeticion infinita\n",
" break\n",
" L = L + 1 \n",
" print(\"\");"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Ingrese un numero entero: 5\n",
"1 4 6 4 1 \n",
"-----------------\n"
]
}
],
"source": [
"# Try intenta hacer algo, si hay un error va al except\n",
"try:\n",
" #Recibe el dato del usuario\n",
" input_row = input(\"Ingrese un numero entero: \")\n",
" #Intenta pasar la entrada del usuario a entero\n",
" row = int(input_row)\n",
" #Parte 1: Imprimir solo la linea del usuario\n",
" un_Pascal(row)\n",
"except: \n",
" #Avisa que algo salio mal en la conversion\n",
" print(\"Ese no es un entero\")\n",
"print('-----------------')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Se usa print('---------------') para faciltar la visualizacion de los resultados. "
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Ingrese una secuencia de numero entero (separados por espacios): \n",
"1 2 3\n",
"-----------------\n",
"1 \n",
"1 1 \n",
"1 2 1 \n"
]
}
],
"source": [
"try:\n",
" #Recibe el dato del usuario\n",
" print(\"Ingrese una secuencia de numero entero (separados por espacios): \")\n",
" input_rows = input()\n",
" print('-----------------') # formato para separar los valores ingresados de las filas de pascal generadas\n",
" # Divide la entrada del usuario por espacios, los transforma en un array\n",
" input_rows = input_rows.split()\n",
" rows = []\n",
" for num in input_rows:\n",
" # Convierte cada elemento en un entero\n",
" rows.append(int(num))\n",
" #Parte 2: Imprime tantas lineas del triangulo como valores ingresados\n",
" Pascal(rows)\n",
"except: \n",
" print(\"Hay elementos que no son enteros\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
%% Cell type:markdown id: tags:
Nombre: Carla Gomez
Estudiante Lic. Física
Universidad Simón Bolívar
Caracas, Venezuela
**Ejercicio 2: Triángulo de Pascal**
La solución se plantea en 2 funciones:
*Primer inciso: def un_Pascal que consiste en imprimir la fila de pascal correspondiente al número entero ingresado por el usuario.
*Segundo inciso: def Pascal que imprime todas las filas de los todos los numeros recibidos separados por espacios.
Antes que cualquiera de las dos funciones anteriores se ejecute debe verificarse si el número ingresado por el usuario es un número entero, mediante *try*
%% Cell type:code id: tags:
``` python
# Imprime las lineas del triangulo de pascal
defPascal(argv):
#Va a repetir la secuencia para cada argumento ingresado
forarginargv:
#Inicio del triangulo del Pascal. Todas las filas empiezan por 1
L=1
# Va a seguir trabajando hasta que llegue a la linea "arg"
whileTrue:
C=1
# No calcula nada si la linea no es la "arg"
ifL==arg:
# Calcula la linea
foriinrange(1,L+1):
print(C,end="")
#Se aplica el bionomio de newton para calcular los coeficientes de la linea solicitada
C=int(C*(L-i)/i)
#Rompe la repeticion infinita
break
L=L+1
print("");
```
%% Cell type:code id: tags:
``` python
defun_Pascal(arg):
#Inicio del triangulo
L=1
whileTrue:
C=1
# No calcula nada si la linea no es la "arg"
ifL==arg:
# Calcula la linea
foriinrange(1,L+1):
print(C,end="")
C=int(C*(L-i)/i)
#Rompe la repeticion infinita
break
L=L+1
print("");
```
%% Cell type:code id: tags:
``` python
# Try intenta hacer algo, si hay un error va al except
try:
#Recibe el dato del usuario
input_row=input("Ingrese un numero entero: ")
#Intenta pasar la entrada del usuario a entero
row=int(input_row)
#Parte 1: Imprimir solo la linea del usuario
un_Pascal(row)
except:
#Avisa que algo salio mal en la conversion
print("Ese no es un entero")
print('-----------------')
```
%% Output
Ingrese un numero entero: 5
1 4 6 4 1
-----------------
%% Cell type:markdown id: tags:
Se usa print('---------------') para faciltar la visualizacion de los resultados.
%% Cell type:code id: tags:
``` python
try:
#Recibe el dato del usuario
print("Ingrese una secuencia de numero entero (separados por espacios): ")
input_rows=input()
print('-----------------')# formato para separar los valores ingresados de las filas de pascal generadas
# Divide la entrada del usuario por espacios, los transforma en un array
input_rows=input_rows.split()
rows=[]
fornumininput_rows:
# Convierte cada elemento en un entero
rows.append(int(num))
#Parte 2: Imprime tantas lineas del triangulo como valores ingresados
Pascal(rows)
except:
print("Hay elementos que no son enteros")
```
%% Output
Ingrese una secuencia de numero entero (separados por espacios):