Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Forma alternativa

Baseado no código da atividade, fiz um programa alternativo que pede ao usuário um numerador e denominador e depois representando em quadrados, o código ficou assim:

<canvas width="1000" height="400"></canvas>

<script>

    var tela = document.querySelector("canvas");
    var pincel = tela.getContext("2d");

    function desenhaTexto(texto, x, y)
    {
        pincel.font = "20px Georgia";
        pincel.fillStyle = "black";
        pincel.fillText(texto, x, y);
    }

    function desenhaQuadrado(x, cor)
    {
        pincel.fillStyle = cor;
        pincel.fillRect(x, 50, 100, 100);
        pincel.strokeStyle = "black";
        pincel.strokeRect(x, 50, 100, 100);
    }

    function criarFracao(numerador, denominador)
    {
        var inicioCoordenadaX = 10;

        for(var i = 0; i < denominador; i++)
        {
            desenhaQuadrado(inicioCoordenadaX, "white");
            inicioCoordenadaX += 100;
        }

        inicioCoordenadaX = 10;

        for(i = 0; i < numerador; i++)
        {
            desenhaQuadrado(inicioCoordenadaX, "green");
            inicioCoordenadaX += 100;
        }

    }

    var numerador = prompt("Digite o numerador da fração:");
    var denominador = prompt("Digite o denominador da fração:");

    criarFracao(numerador, denominador);

</script>

Sugestões de melhorias ao código serão muito bem vindas

1 resposta
solução!

Muito bom, mestre! Eu faria 2 alterações: 1)retiraria a função desenho texto já que não foi utilizada. Questão de limpeza para o código. 2)trocaria o inicio da coordenada X para 0. Já que caberiam 10 blocos perfeitamente.

<canvas width="1000" height="400"></canvas>

<script>

    var tela = document.querySelector("canvas");
    var pincel = tela.getContext("2d");

    function desenhaQuadrado(x, cor)
    {
        pincel.fillStyle = cor;
        pincel.fillRect(x, 50, 100, 100);
        pincel.strokeStyle = "black";
        pincel.strokeRect(x, 50, 100, 100);
    }

    function criarFracao(numerador, denominador)
    {
        var inicioCoordenadaX = 0;

        for(var i = 0; i < denominador; i++)
        {
            desenhaQuadrado(inicioCoordenadaX, "white");
            inicioCoordenadaX += 100;
        }

        inicioCoordenadaX = 0;

        for(i = 0; i < numerador; i++)
        {
            desenhaQuadrado(inicioCoordenadaX, "green");
            inicioCoordenadaX += 100;
        }

    }

    var numerador = prompt("Digite o numerador da fração:");
    var denominador = prompt("Digite o denominador da fração:");

    criarFracao(numerador, denominador);

</script>