From ef84fa889aa2a77b806979f278d3e29d95fa938c Mon Sep 17 00:00:00 2001
From: Carla Elena Gomez Alvarado <10-11266@usb.ve>
Date: Mon, 8 Feb 2021 22:00:00 -0500
Subject: [PATCH] Ejercicio 2 final

---
 Ejercicio2_final.ipynb | 176 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 176 insertions(+)
 create mode 100644 Ejercicio2_final.ipynb

diff --git a/Ejercicio2_final.ipynb b/Ejercicio2_final.ipynb
new file mode 100644
index 0000000..28de49e
--- /dev/null
+++ b/Ejercicio2_final.ipynb
@@ -0,0 +1,176 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Nombre: Carla Gomez  \n",
+    "Estudiante Lic. Física  \n",
+    "Universidad Simón Bolívar  \n",
+    "Caracas, Venezuela  \n",
+    "\n",
+    "**Ejercicio 2: Triángulo de Pascal**\n",
+    "\n",
+    "La solución se plantea en 2 funciones:  \n",
+    "\n",
+    "*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
+}
-- 
GitLab