<?xml version="1.0"?>
<rss version="2.0">
   <channel>
      <title>Mi padlet magnífico by Diego Barrera</title>
      <link>https://padlet.com/dbarrerafelix/7a6tgh6h1fdw41ei</link>
      <description></description>
      <language>en-us</language>
      <pubDate>2024-02-17 04:03:43 UTC</pubDate>
      <lastBuildDate>2024-02-17 05:05:31 UTC</lastBuildDate>
      <webMaster>hello@padlet.com</webMaster>
      <image>
         <url></url>
      </image>
      <item>
         <title></title>
         <author>dbarrerafelix</author>
         <link>https://padlet.com/dbarrerafelix/7a6tgh6h1fdw41ei/wish/2886558452</link>
         <description><![CDATA[<p>Se incluyen las bibliotecas necesarias para el programa:</p><ul><li><p>&lt;iostream&gt;: Proporciona funcionalidades básicas de entrada/salida, como la lectura y escritura en la consola.</p></li><li><p>&lt;algorithm&gt;: Contiene funciones para realizar operaciones en contenedores, como buscar, ordenar y manipular elementos.</p></li><li><p>&lt;string&gt;: Permite trabajar con cadenas de caracteres y realizar operaciones como concatenación, búsqueda y manipulación de caracteres.</p></li><li><p>&lt;cmath&gt;: Proporciona funciones matemáticas comunes, como cálculos trigonométricos, exponenciales y logarítmicos.</p></li><li><p>&lt;sstream&gt;: Permite trabajar con flujos de entrada/salida de cadenas, lo que facilita la conversión entre diferentes tipos de datos.</p></li><li><p>&lt;vector&gt;: Proporciona una implementación de un contenedor dinámico llamado vector, que permite almacenar y manipular una secuencia de elementos.</p></li><li><p>&lt;iomanip&gt;: Contiene herramientas para manipular el formato de salida, como establecer la precisión decimal y el ancho de campo.</p></li></ul><p>Se utiliza la declaración using namespace std; para evitar tener que escribir std:: delante de las funciones y clases de la biblioteca estándar de C++. Esto permite acceder directamente a las funciones y clases de la biblioteca estándar sin tener que especificar su espacio de nombres.</p><p><br/></p><p>1. La función `esOperador` es una función que toma un carácter como argumento y devuelve un valor booleano. Su propósito es determinar si el carácter dado es un operador matemático válido.</p><p>2. La declaración `bool` al inicio de la función indica que el valor de retorno de la función será un valor booleano, es decir, será `true` o `false`.</p><p>3. El cuerpo de la función está delimitado por llaves `{}`. Todo el código dentro de estas llaves forma parte del cuerpo de la función.</p><p>4. Dentro del cuerpo de la función, hay una sola instrucción: `return (c '+' || c '-' || c '*' || c '/' || c == '^');`. Esta instrucción utiliza una expresión de comparación para determinar si el carácter `c` es un operador válido.</p><p>5. La expresión `(c '+' || c '-' || c '*' || c '/' || c '^')` es una condición que se evalúa para decidir si el carácter `c` es un operador. Esta condición está compuesta por varias comparaciones utilizando el operador de igualdad (``) y el operador lógico OR (`||`).</p><p>6. Cada comparación en la condición verifica si el carácter `c` es igual a uno de los operadores matemáticos válidos. Por ejemplo, `c == '+'` verifica si `c` es igual al carácter '+'. Del mismo modo, las otras comparaciones verifican si `c` es igual a '-', '*', '/', o '^' respectivamente.</p><p>7. Si alguna de las comparaciones en la condición es verdadera, la expresión completa se evaluará como `true`. Esto significa que el carácter `c` es un operador válido y la función devolverá `true`.</p><p>8. Si ninguna de las comparaciones en la condición es verdadera, la expresión completa se evaluará como `false`. Esto significa que el carácter `c` no es un operador válido y la función devolverá `false`.</p><p>9. La palabra clave `return` se utiliza para devolver el resultado de la condición. Si la condición es verdadera, es decir, `c` es un operador válido, la función devuelve `true` usando `return true;`. Si la condición es falsa, es decir, `c` no es un operador válido, la función devuelve `false` usando `return false;`.</p>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2285894740/605f9a9beb7ebfef153a9d37153e64bc/imagen_2024_02_16_215137901.png" />
         <pubDate>2024-02-17 04:04:22 UTC</pubDate>
         <guid>https://padlet.com/dbarrerafelix/7a6tgh6h1fdw41ei/wish/2886558452</guid>
      </item>
      <item>
         <title></title>
         <author>dbarrerafelix</author>
         <link>https://padlet.com/dbarrerafelix/7a6tgh6h1fdw41ei/wish/2886558591</link>
         <description><![CDATA[<p>1. La función `esDigito` es una función que toma un carácter como argumento y devuelve un valor booleano. Su propósito es determinar si el carácter dado es un dígito numérico o el carácter de punto decimal.</p><p>2. La declaración `bool` al inicio de la función indica que el valor de retorno de la función será un valor booleano, es decir, será `true` o `false`.</p><p>3. El cuerpo de la función está delimitado por llaves `{}`. Todo el código dentro de estas llaves forma parte del cuerpo de la función.</p><p>4. Dentro del cuerpo de la función, hay una sola instrucción: `return (c &gt;= '0' &amp;&amp; c &lt;= '9') || (c == '.');`. Esta instrucción utiliza una expresión de comparación para determinar si el carácter `c` es un dígito numérico o el carácter de punto decimal.</p><p>5. La expresión `(c &gt;= '0' &amp;&amp; c &lt;= '9')` es la primera parte de la condición. Verifica si el carácter `c` se encuentra en el rango de caracteres numéricos. La comparación `c &gt;= '0'` verifica si `c` es mayor o igual que el carácter '0', que representa el dígito 0. La comparación `c &lt;= '9'` verifica si `c` es menor o igual que el carácter '9', que representa el dígito 9. En resumen, esta parte de la condición verifica si `c` es un dígito numérico.</p><p>6. La expresión `(c == '.')` es la segunda parte de la condición. Verifica si el carácter `c` es igual al carácter de punto decimal, representado por '.'. Esta parte de la condición verifica si `c` es el carácter de punto decimal.</p><p>7. El operador lógico OR (`||`) se utiliza para combinar las dos partes de la condición. Si alguna de las partes de la condición es verdadera, es decir, si `c` es un dígito numérico o el carácter de punto decimal, la condición completa se evalúa como `true`.</p><p>8. La palabra clave `return` se utiliza para devolver el resultado de la condición. Si la condición es verdadera, es decir, `c` es un dígito numérico o el carácter de punto decimal, la función devuelve `true` usando `return true;`. Si la condición es falsa, es decir, `c` no es un dígito numérico ni el carácter de punto decimal, la función devuelve `false` usando `return false;`.</p><p>En resumen, la función `esDigito` verifica si un carácter dado es un dígito numérico o el carácter de punto decimal. Devuelve `true` si el carácter es un dígito numérico o el punto decimal, y `false` si no lo es.</p>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2285894740/6720e8906081860337987fd68e3eefb9/imagen_2024_02_16_215327928.png" />
         <pubDate>2024-02-17 04:04:53 UTC</pubDate>
         <guid>https://padlet.com/dbarrerafelix/7a6tgh6h1fdw41ei/wish/2886558591</guid>
      </item>
      <item>
         <title></title>
         <author>dbarrerafelix</author>
         <link>https://padlet.com/dbarrerafelix/7a6tgh6h1fdw41ei/wish/2886558764</link>
         <description><![CDATA[<p>1. La función `operar` es una función que realiza una operación matemática entre dos operandos utilizando el operador especificado. Toma tres argumentos: `operand1`, `operand2` y `operador`. Ambos operandos son cadenas de texto (`string`) y el operador es un carácter (`char`).</p><p>2. La función tiene un tipo de retorno `string`, lo que significa que devuelve una cadena de texto como resultado de la operación.</p><p>3. Dentro de la función, se declaran tres variables de tipo `double`: `numero1`, `numero2` y `resultado`. Estas variables se utilizan para almacenar los valores numéricos de los operandos y el resultado de la operación, respectivamente.</p><p>4. Se utiliza la función `stod` para convertir las cadenas `operand1` y `operand2` en números de tipo `double`. La función `stod` es parte de la biblioteca estándar de C++ y se utiliza para convertir una cadena de texto en su equivalente numérico de tipo `double`.</p><p>5. Después de la conversión, los valores de `operand1` y `operand2` se almacenan en las variables `numero1` y `numero2`, respectivamente.</p><p>6. Se utiliza un `switch` para realizar diferentes acciones según el valor del `operador`. El `switch` evalúa el valor de `operador` y ejecuta el caso correspondiente.</p><p>7. En cada caso del `switch`, se realiza la operación matemática correspondiente utilizando los valores de `numero1` y `numero2`, y se asigna el resultado a la variable `resultado`. Los casos del `switch` representan diferentes operaciones matemáticas: suma, resta, multiplicación, división y potenciación.</p><p>8. En el caso de `'+': resultado = numero1 + numero2;`, se suma `numero1` y `numero2` y se asigna el resultado a `resultado`.</p><p>9. En el caso de `'-': resultado = numero1 - numero2;`, se resta `numero2` de `numero1` y se asigna el resultado a `resultado`.</p><p>10. En el caso de `'*': resultado = numero1 * numero2;`, se multiplica `numero1` por `numero2` y se asigna el resultado a `resultado`.</p><p>11. En el caso de `'/': resultado = numero1 / numero2;`, se divide `numero1` entre `numero2` y se asigna el resultado a `resultado`.</p><p>12. En el caso de `'^': resultado = pow(numero1, numero2);`, se utiliza la función `pow` de la biblioteca estándar de C++ para calcular `numero1` elevado a la potencia `numero2`, y se asigna el resultado a `resultado`.</p><p>13. Después del `switch`, se utiliza la función `to_string` para convertir el resultado de tipo `double` en una cadena de texto de tipo `string`. La función `to_string` es parte de la biblioteca estándar de C++ y se utiliza para convertir un número en su representación de cadena de texto.</p><p>14. Finalmente, se devuelve el resultado de la operación como una cadena de texto utilizando la palabra clave `return`.</p>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2285894740/bbcdc4f9354f508f3159ec6477e41558/imagen_2024_02_16_215438137.png" />
         <pubDate>2024-02-17 04:05:20 UTC</pubDate>
         <guid>https://padlet.com/dbarrerafelix/7a6tgh6h1fdw41ei/wish/2886558764</guid>
      </item>
      <item>
         <title></title>
         <author>dbarrerafelix</author>
         <link>https://padlet.com/dbarrerafelix/7a6tgh6h1fdw41ei/wish/2886558916</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2285894740/b141371bd83f410445ade4f360e951fe/imagen_2024_02_16_215702155.png" />
         <pubDate>2024-02-17 04:05:55 UTC</pubDate>
         <guid>https://padlet.com/dbarrerafelix/7a6tgh6h1fdw41ei/wish/2886558916</guid>
      </item>
      <item>
         <title></title>
         <author>dbarrerafelix</author>
         <link>https://padlet.com/dbarrerafelix/7a6tgh6h1fdw41ei/wish/2886558980</link>
         <description><![CDATA[<p>1. La función `evaluarEcuacion` toma una ecuación matemática representada como una cadena de texto (`string`) y devuelve el resultado de evaluarla como un número de tipo `double`.</p><p>2. Dentro de la función, se declaran dos vectores: `operandos` y `operadores`. Estos vectores se utilizan para almacenar los operandos y operadores de la ecuación, respectivamente.</p><p>3. Se utiliza un bucle `for` para iterar a través de cada carácter de la ecuación.</p><p>4. En cada iteración, se obtiene el carácter actual de la ecuación y se almacena en la variable `c`.</p><p>5. Si el carácter es un espacio en blanco, se omite y se continúa con la siguiente iteración del bucle.</p><p>6. Si el carácter es un dígito, se inicia un proceso para obtener el número completo al que pertenece. Se declara una variable `numero` como una cadena de texto vacía y se inicia un bucle `while` que se ejecuta mientras el carácter actual y los siguientes sean dígitos.</p><p>7. Dentro del bucle `while`, se agrega cada carácter dígito a la cadena `numero`, y se incrementa el índice `i` para pasar al siguiente carácter.</p><p>8. Una vez que se obtiene el número completo, se agrega al vector `operandos`. Luego, se decrementa el índice `i` en 1 para compensar el incremento adicional en la iteración principal del bucle `for`.</p><p>9. Si el carácter es un operador, se realiza una serie de evaluaciones para determinar si es necesario realizar operaciones anteriores antes de agregar el operador actual al vector `operadores`.</p><p>10. Se verifica si hay operadores anteriores en el vector `operadores` y si el operador anterior no es un paréntesis de apertura ('('). Además, se verifica si la prioridad del operador actual es menor o igual a la prioridad del operador anterior.</p><p>11. Si se cumplen estas condiciones, se extraen dos operandos y un operador del final de los vectores `operandos` y `operadores`. Luego, se utiliza la función `operar` con estos operandos y operador para obtener el resultado y se agrega al vector `operandos`.</p><p>12. Después de evaluar las operaciones anteriores, se agrega el operador actual al final del vector `operadores`.</p><p>13. Si el carácter es un paréntesis de apertura ('('), se agrega al final del vector `operadores`.</p><p>14. Si el carácter es un paréntesis de cierre (')'), se realizan operaciones hasta encontrar el paréntesis de apertura correspondiente en el vector `operadores`. Se extraen dos operandos y un operador del final de los vectores `operandos` y `operadores`, se utiliza la función `operar` para obtener el resultado y se agrega al vector `operandos`.</p><p>15. Si el vector `operadores` no está vacío y el último operador es un paréntesis de apertura, se elimina del vector.</p><p>16. Después de completar el bucle `for`, es posible que aún queden operaciones pendientes en los vectores `operadores` y `operandos`. Se realiza un bucle `while` para ejecutar operaciones hasta que el vector `operadores` esté vacío.</p><p>17. Dentro del bucle `while`, se extraen dos operandos y un operador del final de los vectores `operandos` y `operadores`, se utiliza la función `operar` para obtener el resultado y se agrega al vector `operandos`.</p><p>18. Finalmente, se devuelve el último elemento del vector `operandos` después de evaluar todas las operaciones como el resultado de la ecuación, utilizando la función `stod` para convertirlo de `string` a `double`.</p>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2285894740/871d5cb03d03b072c13e083c9ef42658/V4_5.png" />
         <pubDate>2024-02-17 04:06:11 UTC</pubDate>
         <guid>https://padlet.com/dbarrerafelix/7a6tgh6h1fdw41ei/wish/2886558980</guid>
      </item>
      <item>
         <title></title>
         <author>dbarrerafelix</author>
         <link>https://padlet.com/dbarrerafelix/7a6tgh6h1fdw41ei/wish/2886563693</link>
         <description><![CDATA[<p>1. La función `doubleToString` toma un número de tipo `double` llamado `valor` y devuelve una representación en forma de cadena de ese número.</p><p>2. Se comienza declarando un objeto `ostringstream` llamado `oss`. El objeto `ostringstream` se utiliza para construir una cadena de texto a partir de diferentes tipos de datos, en este caso, el número `valor`.</p><p>3. Se utiliza el operador de inserción `&lt;&lt;` para agregar el número `valor` al objeto `oss`. Antes de hacerlo, se establecen dos modificadores: `fixed` y `setprecision(10)`. `fixed` indica que el número debe mostrarse en formato de punto fijo, y `setprecision(10)` establece que se deben mostrar hasta 10 dígitos después del punto decimal.</p><p>4. Después de la inserción, se llama al método `str()` del objeto `oss` para obtener la cadena de texto resultante y se almacena en la variable `str`.</p><p>5. A continuación, se busca el último carácter distinto de '0' en la cadena `str` utilizando la función `find_last_not_of('0')`. Esto se hace para eliminar los ceros finales innecesarios después del punto decimal.</p><p>6. Si se encuentra un carácter distinto de '0', se realiza una verificación adicional. Si ese carácter es un punto decimal '.', se devuelve una subcadena de `str` que va desde el inicio hasta el carácter encontrado (excluyendo el carácter encontrado).</p><p>7. Si el carácter encontrado no es un punto decimal, se devuelve una subcadena de `str` que va desde el inicio hasta el carácter encontrado más uno (incluyendo el carácter encontrado).</p><p>8. Si no se encuentra ningún carácter distinto de '0', se devuelve la cadena `str` sin modificaciones.</p><p>9. En resumen, la función `doubleToString` convierte un número de tipo `double` en una cadena de texto, aplicando un formato de punto fijo y eliminando los ceros finales innecesarios después del punto decimal.</p>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2285894740/6423bb5d779dd31eaef1b016d3ca9218/imagen_2024_02_16_215838642.png" />
         <pubDate>2024-02-17 04:23:53 UTC</pubDate>
         <guid>https://padlet.com/dbarrerafelix/7a6tgh6h1fdw41ei/wish/2886563693</guid>
      </item>
      <item>
         <title></title>
         <author>dbarrerafelix</author>
         <link>https://padlet.com/dbarrerafelix/7a6tgh6h1fdw41ei/wish/2886565066</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2285894740/7d80171bd65aa3f0e154df5f1d7d81dd/imagen_2024_02_16_220142525.png" />
         <pubDate>2024-02-17 04:29:46 UTC</pubDate>
         <guid>https://padlet.com/dbarrerafelix/7a6tgh6h1fdw41ei/wish/2886565066</guid>
      </item>
      <item>
         <title></title>
         <author>dbarrerafelix</author>
         <link>https://padlet.com/dbarrerafelix/7a6tgh6h1fdw41ei/wish/2886565112</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2285894740/6e82dc0278a0023b264bc41972421a42/V6_1.png" />
         <pubDate>2024-02-17 04:29:58 UTC</pubDate>
         <guid>https://padlet.com/dbarrerafelix/7a6tgh6h1fdw41ei/wish/2886565112</guid>
      </item>
      <item>
         <title></title>
         <author>dbarrerafelix</author>
         <link>https://padlet.com/dbarrerafelix/7a6tgh6h1fdw41ei/wish/2886565228</link>
         <description><![CDATA[<p>1. En la función `main`, se declaran varias variables: `ecuacion1` y `ecuacion2` de tipo `string` para almacenar las ecuaciones, `r1`, `r2`, `r3`, y `r4` de tipo `int` para almacenar los límites de los rangos.</p><p>2. Se muestra por pantalla un mensaje pidiendo al usuario que ingrese la primera ecuación (`f(x)`), y se guarda en la variable `ecuacion1` utilizando la función `cin`.</p><p>3. Se muestra por pantalla un mensaje pidiendo al usuario que ingrese el límite inferior del primer rango, y se guarda en la variable `r1` utilizando la función `cin`.</p><p>4. Se muestra por pantalla un mensaje pidiendo al usuario que ingrese el límite superior del primer rango, y se guarda en la variable `r2` utilizando la función `cin`.</p><p>5. Se muestra por pantalla un mensaje pidiendo al usuario que ingrese la segunda ecuación (`f(x)`), y se guarda en la variable `ecuacion2` utilizando la función `cin`.</p><p>6. Se muestra por pantalla un mensaje pidiendo al usuario que ingrese el límite inferior del segundo rango, y se guarda en la variable `r3` utilizando la función `cin`.</p><p>7. Se muestra por pantalla un mensaje pidiendo al usuario que ingrese el límite superior del segundo rango, y se guarda en la variable `r4` utilizando la función `cin`.</p><p>8. Se calcula el tamaño de los arreglos `x`, `w`, `y` y `z` utilizando las fórmulas `(r2 - r1) / 5 + 1` y `(r4 - r3) / 5 + 1`. Estos arreglos se utilizan para almacenar los valores de `x`, `w`, `y` y `z` respectivamente.</p><p>9. Se inicia un bucle `for` para llenar los arreglos `x` y `y`. En cada iteración, se calcula el valor de `x[i]` utilizando la función `doubleToString` con el valor de `r1 + i * 5`, y se asigna `ecuacion1` a `y[i]`.</p><p>10. Se inicia otro bucle `for` para llenar los arreglos `w` y `z`. En cada iteración, se calcula el valor de `w[i]` utilizando la función `doubleToString` con el valor de `r3 + i * 5`, y se asigna `ecuacion2` a `z[i]`.</p><p>11. Se declara una variable `letra` de tipo `char` y se le asigna el valor `'x'`.</p><p>12. Se inicia un bloque `try` para manejar cualquier excepción que pueda ocurrir durante la ejecución del código.</p><p>13. Dentro del bloque `try`, se inicia un bucle `for` para reemplazar todas las apariciones de `'x'` en los elementos del arreglo `y` utilizando el valor correspondiente en `x`. Se utiliza la función `find` para buscar la posición de `'x'`, y luego se utiliza la función `replace` para reemplazarlo por el valor de `x[i]`. El bucle se repite hasta que no se encuentren más apariciones de `'x'` en el elemento de `y[i]`.</p><p>14. Se repite el mismo proceso del paso anterior para los elementos del arreglo `z` utilizando los valores correspondientes en `w`.</p><p>15. Se declara una variable `max_x_length` de tipo `size_t` y se inicializa en `0`. Esta variable se utiliza para almacenar la longitud máxima de los valores en el arreglo `w`.</p><p>16. Se inicia un bucle `for` para encontrar la longitud máxima de los valores en el arreglo `w`. En cada iteración, se compara la longitud de `w[i]` con el valor actual de `max_x_length` utilizando la función `max`, y el resultado se asigna nuevamente a `max_x_length`.</p><p>17. Se muestra por pantalla un encabezado para la tabla de valores.</p><p>18. Se muestra por pantalla una línea separadora.</p><p>19. Se muestra por pantalla los encabezados de las columnas "x" y "f(x)" utilizando `setw` para establecer un ancho fijo para la columna "x" basado en la longitud máxima de los valores en el arreglo `w`.</p><p>20. Se muestra por pantalla una línea separadora.</p><p>21. Se inicia un bucle `for` para mostrar los valores de `x` y los resultados de evaluar `y[i]` utilizando la función `evaluarEcuacion(y[i])`. Se utiliza `setw` para establecer un ancho fijo para la columna "x" basado en la longitud máxima de los valores en el arreglo `w`.</p><p>22. Se repite el mismo proceso del paso anterior para mostrar los valores de `w` y los resultados de evaluar `z[i]`.</p><p>23. Se muestra por pantalla una línea separadora.</p><p>24. Se muestra por pantalla un mensaje pidiendo al usuario que ingrese una opción del menú para resolver otro límite, y se guarda en la variable `menu` utilizando la función `cin`.</p><p>25. Si el valor de `menu` es igual a "S", se llama a la función `main()` de forma recursiva para resolver otro límite.</p><p>26. Si el valor de `menu` no es igual a "S", se muestra por pantalla el mensaje "Adiós :3" y se retorna 0 para finalizar el programa.</p>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2285894740/370881d3f08adcd613742b5816e4caa5/V6_2.png" />
         <pubDate>2024-02-17 04:30:28 UTC</pubDate>
         <guid>https://padlet.com/dbarrerafelix/7a6tgh6h1fdw41ei/wish/2886565228</guid>
      </item>
   </channel>
</rss>
