Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

[Bug] Error en el orden de lo caracteres

Me encuentro en la clase "04 Otra forma de Repetir": https://app.aluracursos.com/course/logica-de-programacion-conceptos-primordiales/task/73399

Con el fin de que las tablas de multiplicar se asemejaran más a las que me enseñaron hice modificaciones en el código que se presentó en la clase.

<meta charset="UTF-8">

<h1>Tabla de multiplicar</h1>
<br>
<script>

    function saltoLinea() {

        document.write("<br>");
        document.write("<br>");

    }

    function imprimir(frase) {

        document.write(frase);
        saltoLinea();

    }

    var multiplicador = 1

    imprimir("WHILE")

    while (multiplicador <= 12) {

        imprimir("5 x " + multiplicador + " = " + 5 * multiplicador);
        multiplicador++;

    }

    imprimir("FOR")

    for (multiplicador = 1; multiplicador <= 12; multiplicador ++) {

        imprimir("6 x " + multiplicador + " = " + 6 * multiplicador);

    }

</script>

Debería verse así "5 x 1 = 5", pero por algún motivo algunos caracteres retrocedían una línea y terminaban uniéndose con otros elementos de la tabla de multiplicación, cosa que no debería de suceder según el código.

Captura de pantalla del error

(Estoy usando Google Chrome en su versión 112.0.5615.50)

En un principio pensé que por la velocidad con la que se ejecutaba el script de FOR y WHILE la función "saltoLinea" fallaba o que como usaba el navegador a media pantalla para ver el código en la otra mitad afectaba la visualización de alguna manera, pero luego pensé si es que el navegador era el culpable y efectiva mente así fue, al menos en parte.

El navegador estaba configurado para traducir automáticamente las páginas del ingles al español, la página era detectada como una página en ingles por las palabras "FOR" y "WHILE" y cuando lo traducía el orden del contenido de alguna manera era afectado, cuando desactive esta función el contenido se mostraba como era debido.

Mi pregunta es: ¿Porque el traductor integrado en el navegador distorsiona de esa manera los contenidos y hay alguna manera de evitarlo desde el código?

Recomiendo a los compañero que desactiven esa función en el navegador a para no atribuir esos errores a su código, gracias por su atención.

2 respuestas
solución!

Holaaa Leonardo!

Es un caso poco comun, pero creo que una solucion que se puede dar desde el código sería la siguiente:

<html lang="en">

Este fragmento de código es una etiqueta HTML que indica que el contenido del documento está escrito en inglés. "lang" es el atributo que se utiliza para especificar el idioma del contenido de la página web. En este caso, "en" es el código ISO de dos letras que representa el idioma inglés o english.

Espero que te haya ayudado. Hasta luego.

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>TABLAS DE MULTIPLICAR</title>
</head>

<body>
    <h1>CALCULA LAS TABLAS DE MULTIPLICAR</h1>
    <script>
        function saltarLinea() {
            document.write("<br> <hr> <br>");
        }

        function imprimir(frase) {
            document.write("<big>" + frase + "</big>");
            saltarLinea();
        }

        imprimir("CON WHILE");

        var multiplicador = 1;
        var multiplicando = parseInt(prompt("Ingresa el número a multiplicar que deseas ver su tabla: "));
        imprimir("Te presento la tabla del " + multiplicando);
        while (multiplicador <= 10) {
            imprimir(multiplicando * multiplicador);
            multiplicador = multiplicador + 1;
        }

        imprimir("CON FOR");

        for (var multiplicador = 1; multiplicador <= 10;  multiplicador = multiplicador + 1) {
            imprimir(multiplicando * multiplicador);            
        }

        imprimir("Fin de cálculo");
    </script>

</body>

</html>