{"id":722,"date":"2024-07-30T20:30:43","date_gmt":"2024-07-30T18:30:43","guid":{"rendered":"https:\/\/blog.sutilweb.eu\/?page_id=722"},"modified":"2024-07-30T20:30:44","modified_gmt":"2024-07-30T18:30:44","slug":"001-ejercicios-de-logica-de-programacion","status":"publish","type":"page","link":"https:\/\/sutilweb.eu\/index.php\/lenguajes\/javascript\/javascript-practico\/07-ejercicios-de-logica-de-programacion\/001-ejercicios-de-logica-de-programacion\/","title":{"rendered":"001. Ejercicios de l\u00f3gica de programaci\u00f3n"},"content":{"rendered":"\n<p>Es indispensable, que junto con la teor\u00eda comencemos a ejercitar la misma, es para ello que en estos cap\u00edtulos trabajaremos con todo lo que hemos estudiado, y haremos ejercicios que abarquen todo lo estudiado hasta ahora. Comenzamos.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Consejos a la hora de resolver ejercicios<\/h2>\n\n\n\n<p>Estos son algunos de los consejos que damos cuando vay\u00e1is a resolver ejercicios:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Usar <strong>funciones expresadas<\/strong> con <strong>operadores ternarios<\/strong> para el retorno impl\u00edcito. Deja tu c\u00f3digo simple, limpio y expresivo.<\/li>\n\n\n\n<li>Usar <strong>operadores ternarios<\/strong> concatenados e indentados en lugar de <strong><em>if<\/em> <\/strong>cuando este \u00faltimo no sea necesario. Al igual que el anterior es m\u00e1s f\u00e1cil de leer y mantener.<\/li>\n\n\n\n<li>Hacer las validaciones necesarias al comienzo de una funci\u00f3n y al \u00faltimo solucionar el problema. Dejar la soluci\u00f3n para el final y resolver los posibles problemas primero con las validaciones.<\/li>\n\n\n\n<li>Definir valores por defecto en los par\u00e1metros de una funci\u00f3n. Mant\u00e9n el control de los par\u00e1metros y antic\u00edpate a posibles valores vac\u00edos.<\/li>\n\n\n\n<li>Usar el <strong><em>return<\/em><\/strong> en condicionales <strong><em>if<\/em> <\/strong>y alinear en c\u00f3digo cuando sea de una sola l\u00ednea. Evitar las llaves si el c\u00f3digo de la condici\u00f3n tiene una sola l\u00ednea.<\/li>\n\n\n\n<li>Si tu condici\u00f3n <strong><em>if<\/em><\/strong> ya tiene un <strong><em>return<\/em> <\/strong>es redundante a\u00f1adir un <strong><em>else<\/em><\/strong>. Evitar anidar varios <strong><em>else if<\/em><\/strong> en una condici\u00f3n, Hazlo simple y mant\u00e9n el nivel sin utilizar tantos anidamientos en condiciones innecesarias.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Ejercicio 1 &#8211; n\u00famero de caracteres<\/h2>\n\n\n\n<p>En el primer ejercicio programaremos una funci\u00f3n que cuente el n\u00famero de caracteres de una cadena de texto.<\/p>\n\n\n\n<p>La sintaxis ser\u00eda la siguiente para una funci\u00f3n declarada:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&nbsp; &nbsp; &nbsp; function contarCaracteres(cadena = \"\") {\n&nbsp; &nbsp; &nbsp; &nbsp; if (!cadena) {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.warn(\"No ingresaste ninguna cadena\");\n&nbsp; &nbsp; &nbsp; &nbsp; } else {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.info(\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; `La cadena \"${cadena}\" tiene ${cadena.length} caracteres`\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; );\n&nbsp; &nbsp; &nbsp; &nbsp; }\n&nbsp; &nbsp; &nbsp; }\n\n&nbsp; &nbsp; &nbsp; contarCaracteres(\"Hola Mundo\");<\/pre>\n\n\n\n<p>Pero vamos a trabajar con funciones expresadas mejor, con lo cual, la sintaxis ser\u00e1 la siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&nbsp; &nbsp; &nbsp; const contarCaracteres2 = (cadena2 = \"\") =&gt;\n&nbsp; &nbsp; &nbsp; &nbsp; !cadena2\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ? console.log(\"No existe la cadena\")\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : console.log(\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; `La cadena \"${cadena2}\" tiene ${cadena2.length} caracteres`\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; );\n\n&nbsp; &nbsp; &nbsp; contarCaracteres2();\n&nbsp; &nbsp; &nbsp; contarCaracteres2(\"Hola que tal\");<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Ejercicio 2 &#8211; texto recortado<\/h2>\n\n\n\n<p>A partir de este ejercicio s\u00f3lo utilizaremos funciones expresadas. En el segundo ejercicio programaremos una funci\u00f3n que devuelva el texto recortado seg\u00fan el n\u00famero de caracteres indicados.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&nbsp; &nbsp; &nbsp; const recortarTexto = (cadena = \"\", longitud = undefined) =&gt;\n&nbsp; &nbsp; &nbsp; &nbsp; !cadena\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ? console.log(\"No ingresaste una cadena\")\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : longitud === undefined\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ? console.log(\"No ingresaste una longitud\")\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : console.log(cadena.slice(0, longitud));\n\n&nbsp; &nbsp; &nbsp; recortarTexto();\n&nbsp; &nbsp; &nbsp; recortarTexto(\"Hola Mundo\");\n&nbsp; &nbsp; &nbsp; recortarTexto(0);\n&nbsp; &nbsp; &nbsp; recortarTexto(\"Hola Mundo\", 4);<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Ejercicio 3 &#8211; devolver un Array<\/h2>\n\n\n\n<p>El tercer ejercicio consiste en programar una funci\u00f3n, que dado un String, devuelva un Array de textos separados por cierto car\u00e1cter.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&nbsp; &nbsp; &nbsp; const devArray = (cadena = \"\", separador = undefined) =&gt; {\n&nbsp; &nbsp; &nbsp; &nbsp; !cadena\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ? console.log(\"No ingresaste una cadena de texto\")\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : separador === undefined\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ? console.log(\"No ingresaste el caracter separador\")\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : console.log(cadena.split(separador));\n&nbsp; &nbsp; &nbsp; };\n\n&nbsp; &nbsp; &nbsp; devArray();\n&nbsp; &nbsp; &nbsp; devArray(\"Hola Mundo\");\n&nbsp; &nbsp; &nbsp; devArray(\"Hola Mundo\", \" \");<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Ejercicio 4 &#8211; texto se repite<\/h2>\n\n\n\n<p>En este ejercicio 4 programaremos una funci\u00f3n que repita un texto x veces.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">  &nbsp; &nbsp; const repetirTexto = (cadena = \"\", numero = undefined) =&gt; {\n&nbsp; &nbsp; &nbsp; &nbsp; if (!cadena) return console.log(\"No ingresaste un texto\");\n\n&nbsp; &nbsp; &nbsp; &nbsp; if (numero === undefined)\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return console.log(\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \"No ingresaste un n\u00famero de veces a repetir el texto\"\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; );\n\n&nbsp; &nbsp; &nbsp; &nbsp; if (numero === 0)\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return console.log(\"El n\u00famero de veces no puede ser cero\");\n\n&nbsp; &nbsp; &nbsp; &nbsp; if (Math.sign(numero) === -1)\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return console.log(\"El n\u00famero de veces no puede ser negativo\");\n\n&nbsp; &nbsp; &nbsp; &nbsp; for (let i = 1; i &lt;= numero; i++) console.log(`${cadena}, ${i}`);\n&nbsp; &nbsp; &nbsp; };\n\n&nbsp; &nbsp; &nbsp; repetirTexto(\"Hola Mundo\", 5);<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Es indispensable, que junto con la teor\u00eda comencemos a ejercitar la misma, es para ello que en estos cap\u00edtulos trabajaremos [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":720,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-722","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Sutil Web","author_link":"https:\/\/sutilweb.eu\/index.php\/author\/sutilweb\/"},"uagb_comment_info":0,"uagb_excerpt":"Es indispensable, que junto con la teor\u00eda comencemos a ejercitar la misma, es para ello que en estos cap\u00edtulos trabajaremos [&hellip;]","_links":{"self":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/722","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/comments?post=722"}],"version-history":[{"count":1,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/722\/revisions"}],"predecessor-version":[{"id":723,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/722\/revisions\/723"}],"up":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/720"}],"wp:attachment":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/media?parent=722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}