20 May Escribir un diccionario sencillo con if versus con for – ejercicio JS
En este ejercicio vamos a practicar los conceptos de lógica de programación con condicionales simples y con una estructura recursiva.
Solucionaremos un mismo ejercicio de dos formas diferentes y así podremos ver las ventajas y necesidades de hacerlo con un for versus con un if.
Las siguientes lecturas te pueden ayudar:
- Instrucciones iterativas y condicionales. If y for.
- Ejercicio de generación de encabezados iterativamente.
Pasemos al enunciado.
Enunciado
Se desea programar un diccionario que pregunte al usuario una palabra y a continuación la devuelva traducida.
Soluciónalo de dos formas distintas. La primera recorriendo un array. La segunda mediante un if o switch.
Como idea puedes usar las siguientes pistas.
var castellano = ["melón","naranja","plátano","uvas","manzana"];
var catala = ["meló","taronja","plàtan","raïm","poma"];
Solución mediante un for
Para solucionar el diccionario mediante el for partiremos la premisa de que disponemos de un array con todas las posibles palabras en un array de nombre castellano.
Y otro array con todas las traducciones en otro idioma. Por ejemplo el catalán.
La idea es localizar la posición dentro del array (vector, lista) en que se encuentra una palabra para escribir la misma posición pareja de la lista en catalán.
De este modo podemos traducir de un idioma a a otro.
var castellano = ["melón","naranja","plátano","uvas","manzana"];
var catala = ["meló","taronja","plàtan","raïm","poma"];
var pregunta = window.prompt("Di una palabra que quieras traducir del castellano al catalán");
var posicion = -1;
for(var i=0; i<castellano.length;i++){
if(castellano[i]==pregunta){
posicion = i;
}
}
if(posicion<0){
document.write("lo sentimos, nuestro diccionario no dispone de esta esta traducción")
}else{
document.write("la traducción de la palabra " + pregunta + " es " + catala[posicion]);
}
Solución del ejercicio mediante un if
En el caso del if evaluaremos caso por caso.
Si se dal a circunstancia de no encontrar la palabra, en cualquier otro caso devolveremos una respuesta diciendo que el diccionario no dispone de la traducción.
pregunta = window.prompt("que palabra quieres traducir");
// en este caso lo haremos mediante un if else if. poco práctico pero académico.
if(pregunta == "manzana"){
document.write("poma");
}else if(pregunta == "pera"){
document.write("pera");
}else if(pregunta == "naranja"){
document.write("taronja");
}else if(pregunta == "cereza"){
document.write("cirera");
}else{
document.write("lo sentimos no disponemos de esta traducción");
}
A continuación sería interesante resolver este mismo ejemplo con un switch en lugar de un if.
Dejémoslo para otro ejercicio de este tutorial.
¡Hola!
Querido lector,
Deseo que estos dos ejemplos te sean de utilidad.
Fíjate que el for ha requerido de una base de datos (el array) en formato lista que ha sido necesario recorrer en su totalidad. Esto es en realidad poco eficiente.
En cuanto al if fíjate que hemos tenido que escribir mucho.
En cualquier caso ha sido una buena excusa para practicar con el if y con el for.
¡Si te ha gustado este contenido te animo a seguirme en mi perfil de empresa de Linkedin!
Entradas relacionadas:
Para poder sustituir un nodo por otro en el DOM previamente necesitas saber como: Identificar nodos del DOM. Crear nuevos nodos. Si tienes claros estos conceptos sigue leyendo el ejemplo práctico.
Explicación teórica y ejemplo práctico del uso de las instrucciones try + throw, catch y finally en javascript. Utilizamos esta estructura para validar un campo en un formulario. Sin embargo se puede ...
Práctica javascript para practicar con las informaciones de un array. Llamamos, substituimos y añadimos elementos. Incluye solución.
Explicamos como desactivar el comportamiento por defecto de un elemento HTML mediante el uso del método javacript preventDefault()
¿Estás preparando un examen javascript? Comparto el último examen JS (nivel básico) del curso de confección y publicación de páginas web (IFCD0110)
Es normal que dudemos entre si debemos usar un while o un for. Se trata de dos estructuras iterativas muy parecidas. ¿Qué debemos elegir?
No Comments