Last active
June 6, 2016 16:03
-
-
Save Santiago-j-s/0034e66ba7bb29cbf638d2669cdeeb07 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "metadata": { | |
| "name": "", | |
| "signature": "sha256:e46e3df146a72c847305ef757b7f74a637b358bd5be8cf6ca08a30ee46803cf8" | |
| }, | |
| "nbformat": 3, | |
| "nbformat_minor": 0, | |
| "worksheets": [ | |
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## Diferentes soluciones para el ejercicio 1E del pr\u00e1ctico 6\n", | |
| "\n", | |
| "En la pr\u00e1ctica del martes 31/05 se mostr\u00f3 durante la clase que hay diferentes soluciones posibles al ejercicio 1E del Trabajo Pr\u00e1ctico N\u00b0 6. Proceder\u00e9 a desarrollar diferentes soluciones. \n", | |
| "\n", | |
| "El ejercicio consiste en encontrar los n\u00fameros impares que se encuentran entre 2 valores ingresados por el usuario. Por ejemplo, si los valores ingresados por el usuario fuesen 3 y 15 deber\u00edamos imprimir los n\u00fameros 5, 7, 9, 11 y 13." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "### Soluci\u00f3n 1\n", | |
| "\n", | |
| "Probablemente la soluci\u00f3n m\u00e1s simple sea usar la estructura **para**, veamos como quedar\u00eda en este caso:\n", | |
| "\n", | |
| "**<u>Constantes</u>** <br />\n", | |
| "**<u>Variables</u>** <br />\n", | |
| "a: L\u00edmite inferior. Ingresado por el usuario. <br />\n", | |
| "b: L\u00edmite superior. Ingresado por el usuario. <br />\n", | |
| "num: Variable de control. Var\u00eda de a+1 hasta b-1 <br />\n", | |
| "{ No se conocen los valores a y b } <br />\n", | |
| "**<u>comienza</u>** <br />\n", | |
| "**<u>leer</u>**(a, b) <br />\n", | |
| "a ← a + 1 <br />\n", | |
| "b ← b - 1 <br />\n", | |
| "{ Incremento el l\u00edmite inferior y decremento el superior para deshacerme de los extremos } <br />\n", | |
| "**<u>para</u>** num ← a **<u>hasta</u>** b **<u>hacer</u>** <br />\n", | |
| " **<u>si</u>** [num / 2] \\* 2 <> num **<u>entonces</u>** <br />\n", | |
| " **<u>escribir</u>**(num) <br />\n", | |
| " **<u>fin si</u>** <br />\n", | |
| "**<u>fin para</u>** <br />\n", | |
| "**<u>termina</u>** <br />\n", | |
| "{ Est\u00e1n impresos en pantalla los n\u00fameros impares que se encuentran entre a y b }" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "### Soluci\u00f3n 2\n", | |
| "\n", | |
| "Una posible soluci\u00f3n con **mientras**:\n", | |
| "\n", | |
| "**<u>Constantes</u>** <br />\n", | |
| "**<u>Variables</u>** <br />\n", | |
| "a: L\u00edmite inferior. Ingresado por el usuario. <br />\n", | |
| "b: L\u00edmite superior. Ingresado por el usuario. <br />\n", | |
| "num: Variable de control. Var\u00eda de a+1 hasta b <br />\n", | |
| "{ No se conocen los valores a y b } <br />\n", | |
| "**<u>comienza</u>** <br />\n", | |
| "**<u>leer</u>**(a, b) <br />\n", | |
| "num ← a + 1 <br />\n", | |
| "{ Me deshago del extremo inferior} <br />\n", | |
| "**<u>mientras</u>** num < b **<u>hacer</u>** { Al usar menor estricto evito incluir el extremo superior} <br />\n", | |
| " **<u>si</u>** [num / 2] \\* 2 <> num **<u>entonces</u>** <br />\n", | |
| " **<u>escribir</u>**(num) <br />\n", | |
| " **<u>fin si</u>** <br />\n", | |
| " num ← num + 1 <br />\n", | |
| "**<u>fin mientras</u>** <br />\n", | |
| "**<u>termina</u>** <br />\n", | |
| "{ Est\u00e1n impresos en pantalla los n\u00fameros impares que se encuentran entre a y b }" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "### Soluci\u00f3n 3\n", | |
| "\n", | |
| "Otra posible soluci\u00f3n con **mientras**:\n", | |
| "\n", | |
| "**<u>Constantes</u>** <br />\n", | |
| "**<u>Variables</u>** <br />\n", | |
| "a: L\u00edmite inferior. Ingresado por el usuario. <br />\n", | |
| "b: L\u00edmite superior. Ingresado por el usuario. <br />\n", | |
| "num: Variable de control. Var\u00eda de a+1 hasta b-1<br />\n", | |
| "{ No se conocen los valores a y b } <br />\n", | |
| "**<u>comienza</u>** <br />\n", | |
| "**<u>leer</u>**(a, b) <br />\n", | |
| "num ← a + 1 <br />\n", | |
| "b ← b - 1 <br />\n", | |
| "{ Me deshago de los extremos } <br />\n", | |
| "**<u>mientras</u>** num ≤ b **<u>hacer</u>** { Uso '≤' en lugar de '<' porque ya me deshice de los extremos } <br />\n", | |
| " **<u>si</u>** [num / 2] \\* 2 <> num **<u>entonces</u>** <br />\n", | |
| " **<u>escribir</u>**(num) <br />\n", | |
| " **<u>fin si</u>** <br />\n", | |
| " num ← num + 1 <br />\n", | |
| "**<u>fin mientras</u>** <br />\n", | |
| "**<u>termina</u>** <br />\n", | |
| "{ Est\u00e1n impresos en pantalla los n\u00fameros impares que se encuentran entre a y b }" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "### Soluci\u00f3n 4\n", | |
| "\n", | |
| "Otra soluci\u00f3n m\u00e1s:\n", | |
| "\n", | |
| "**<u>Constantes</u>** <br />\n", | |
| "**<u>Variables</u>** <br />\n", | |
| "a: L\u00edmite inferior. Ingresado por el usuario. <br />\n", | |
| "b: L\u00edmite superior. Ingresado por el usuario. <br />\n", | |
| "num: Variable de control. Var\u00eda de a+1 hasta b-1<br />\n", | |
| "{ No se conocen los valores a y b } <br />\n", | |
| "**<u>comienza</u>** <br />\n", | |
| "**<u>leer</u>**(a, b) <br />\n", | |
| "num ← a + 1 <br />\n", | |
| "b ← b - 1 <br />\n", | |
| "**<u>mientras</u>** num < b **<u>hacer</u>** <br />\n", | |
| " num ← num + 1 <br />\n", | |
| " **<u>si</u>** [num / 2] \\* 2 <> num **<u>entonces</u>** <br />\n", | |
| " **<u>escribir</u>**(num) <br />\n", | |
| " **<u>fin si</u>** <br />\n", | |
| "**<u>fin mientras</u>** <br />\n", | |
| "**<u>termina</u>** <br />\n", | |
| "{ Est\u00e1n impresos en pantalla los n\u00fameros impares que se encuentran entre a y b }" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "### Soluci\u00f3n 5\n", | |
| "\n", | |
| "Para finalizar, otra soluci\u00f3n con la estructura **para**:\n", | |
| "\n", | |
| "**<u>Constantes</u>** <br />\n", | |
| "**<u>Variables</u>** <br />\n", | |
| "a: L\u00edmite inferior. Ingresado por el usuario. <br />\n", | |
| "b: L\u00edmite superior. Ingresado por el usuario. <br />\n", | |
| "num: Variable de control. Var\u00eda de a hasta b <br />\n", | |
| "{ No se conocen los valores a y b } <br />\n", | |
| "**<u>comienza</u>** <br />\n", | |
| "**<u>leer</u>**(a, b) <br />\n", | |
| "**<u>para</u>** num ← a **<u>hasta</u>** b **<u>hacer</u>**<br />\n", | |
| " **<u>si</u>** ([num / 2] \\* 2 <> num) ∧ (num <> a) ∧ (num <> b) **<u>entonces</u>** <br />\n", | |
| " **<u>escribir</u>**(num) <br />\n", | |
| " **<u>fin si</u>** <br />\n", | |
| "**<u>fin para</u>** <br />\n", | |
| "**<u>termina</u>** <br />\n", | |
| "{ Est\u00e1n impresos en pantalla los n\u00fameros impares que se encuentran entre a y b }" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Probablemente hayan llegado a otras soluciones diferentes, aunque seguramente ser\u00e1n similares a las mostradas. Ahora algunas preguntas:\n", | |
| "\n", | |
| "* \u00bfPor qu\u00e9 no ser\u00eda conveniente usar una estructura **repetir** para resolver el problema?\n", | |
| "\n", | |
| "\n", | |
| "* En la condici\u00f3n del **mientras** de la soluci\u00f3n 4 use **<** en lugar de **≤** \u00bfa qu\u00e9 se debe esto? \u00bfQu\u00e9 ocurrir\u00eda si hubiese usado **≤**?" | |
| ] | |
| } | |
| ], | |
| "metadata": {} | |
| } | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment