From e5f0c8036cf5971db7842f7abf6d83895a5b0b66 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Wilson=20Casta=C3=B1eda=20Ayay?= <castanedaw@jupyterMiLAB>
Date: Tue, 9 Feb 2021 01:06:47 -0500
Subject: [PATCH] ejercicio 02

---
 Ejercicio02.ipynb | 88 +++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 77 insertions(+), 11 deletions(-)

diff --git a/Ejercicio02.ipynb b/Ejercicio02.ipynb
index 1a67d7d..c442c8f 100644
--- a/Ejercicio02.ipynb
+++ b/Ejercicio02.ipynb
@@ -1,40 +1,106 @@
 {
  "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 2 Ejercicio No. 2 - Triángulo de Pascal"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Escriba 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 del 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 así sucesivamente."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#se define una funcion para calcular cada término.\n",
+    "def pascalCelda(fil,col):\n",
+    "    #la primera columna siempre es 1\n",
+    "    if (col==1): return 1\n",
+    "    #Los términos donde fila=columna son siempre 1\n",
+    "    if (fil==col): return 1\n",
+    "    #termino inmediatamente anterior de la celda izquierda\n",
+    "    upIzq = pascalCelda(fil-1,col-1)\n",
+    "    #termino inmediatamente anterior de la celda derecha\n",
+    "    upDer = pascalCelda(fil-1,col)\n",
+    "    #el valor del término es la suma de los términos anteriores.\n",
+    "    return upIzq+upDer\n"
+   ]
+  },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 14,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "ingrese un numero:8\n",
+      "ingrese un numero:10\n",
       "1 \n",
       "1 1 \n",
       "1 2 1 \n",
       "1 3 3 1 \n",
       "1 4 6 4 1 \n",
       "1 5 10 10 5 1 \n",
-      "1 6 15 20 15 6 1 \n"
+      "1 6 15 20 15 6 1 \n",
+      "1 7 21 35 35 21 7 1 \n",
+      "1 8 28 56 70 56 28 8 1 \n"
      ]
     }
    ],
    "source": [
-    "def pascalCelda(fil,col):\n",
-    "    if (col==1): return 1\n",
-    "    if (fil==col): return 1\n",
-    "    upIzq = pascalCelda(fil-1,col-1)\n",
-    "    upDer = pascalCelda(fil-1,col)\n",
-    "    return upIzq+upDer\n",
-    "\n",
     "n=input(\"ingrese un numero:\")\n",
     "for f in range(1,int(n)):\n",
+    "    #para cada columna\n",
     "    for c in range(1,f+1):\n",
     "        print(pascalCelda(f,c),end=\" \",sep=\" \")\n",
-    "    print(\"\")"
+    "    #para separar cada fila\n",
+    "    print(\"\")  "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "ingrese varios numeros separados por ,:5,4,7\n",
+      "[[1, 1, 1, 1, 2, 1, 1, 3, 3, 1], [1, 1, 1, 1, 2, 1], [1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, 1, 5, 10, 10, 5, 1]]\n"
+     ]
+    }
+   ],
+   "source": [
+    "nn=input(\"ingrese varios numeros separados por ,:\")\n",
+    "#obtengo la lista de elementos\n",
+    "lista=nn.split(sep=\",\")\n",
+    "salida=[]\n",
+    "for p in range(len(lista)):\n",
+    "    lpascal=[]\n",
+    "    for f in range(1,int(lista[p])):\n",
+    "        for c in range(1,f+1):\n",
+    "            lpascal.append(pascalCelda(f,c))\n",
+    "    salida.append(lpascal)\n",
+    "print(salida)"
    ]
   },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
   {
    "cell_type": "code",
    "execution_count": null,
-- 
GitLab