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