Skip to content

Instantly share code, notes, and snippets.

@Santiago-j-s
Last active June 6, 2016 16:03
Show Gist options
  • Select an option

  • Save Santiago-j-s/0034e66ba7bb29cbf638d2669cdeeb07 to your computer and use it in GitHub Desktop.

Select an option

Save Santiago-j-s/0034e66ba7bb29cbf638d2669cdeeb07 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"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 &#8592; a + 1 <br />\n",
"b &#8592; b - 1 <br />\n",
"{ Incremento el l\u00edmite inferior y decremento el superior para deshacerme de los extremos } <br />\n",
"**<u>para</u>** num &#8592; a **<u>hasta</u>** b **<u>hacer</u>** <br />\n",
"&nbsp;&nbsp;&nbsp;&nbsp;**<u>si</u>** [num / 2] \\* 2 <> num **<u>entonces</u>** <br />\n",
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**<u>escribir</u>**(num) <br />\n",
"&nbsp;&nbsp;&nbsp;&nbsp;**<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 &#8592; a + 1 <br />\n",
"{ Me deshago del extremo inferior} <br />\n",
"**<u>mientras</u>** num &lt; b **<u>hacer</u>** { Al usar menor estricto evito incluir el extremo superior} <br />\n",
"&nbsp;&nbsp;&nbsp;&nbsp;**<u>si</u>** [num / 2] \\* 2 <> num **<u>entonces</u>** <br />\n",
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**<u>escribir</u>**(num) <br />\n",
"&nbsp;&nbsp;&nbsp;&nbsp;**<u>fin si</u>** <br />\n",
"&nbsp;&nbsp;&nbsp;&nbsp;num &#8592; 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 &#8592; a + 1 <br />\n",
"b &#8592; b - 1 <br />\n",
"{ Me deshago de los extremos } <br />\n",
"**<u>mientras</u>** num &le; b **<u>hacer</u>** { Uso '&le;' en lugar de '&lt;' porque ya me deshice de los extremos } <br />\n",
"&nbsp;&nbsp;&nbsp;&nbsp;**<u>si</u>** [num / 2] \\* 2 <> num **<u>entonces</u>** <br />\n",
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**<u>escribir</u>**(num) <br />\n",
"&nbsp;&nbsp;&nbsp;&nbsp;**<u>fin si</u>** <br />\n",
"&nbsp;&nbsp;&nbsp;&nbsp;num &#8592; 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 &#8592; a + 1 <br />\n",
"b &#8592; b - 1 <br />\n",
"**<u>mientras</u>** num &lt; b **<u>hacer</u>** <br />\n",
"&nbsp;&nbsp;&nbsp;&nbsp;num &#8592; num + 1 <br />\n",
"&nbsp;&nbsp;&nbsp;&nbsp;**<u>si</u>** [num / 2] \\* 2 <> num **<u>entonces</u>** <br />\n",
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**<u>escribir</u>**(num) <br />\n",
"&nbsp;&nbsp;&nbsp;&nbsp;**<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 &#8592; a **<u>hasta</u>** b **<u>hacer</u>**<br />\n",
"&nbsp;&nbsp;&nbsp;&nbsp;**<u>si</u>** ([num / 2] \\* 2 <> num) &and; (num <> a) &and; (num <> b) **<u>entonces</u>** <br />\n",
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**<u>escribir</u>**(num) <br />\n",
"&nbsp;&nbsp;&nbsp;&nbsp;**<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 **&lt;** en lugar de **&le;** \u00bfa qu\u00e9 se debe esto? \u00bfQu\u00e9 ocurrir\u00eda si hubiese usado **&le;**?"
]
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment