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!
Deja una respuesta