Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Exercício do livro da Casa do Código II

Olá, como disse no tópico anterior, tenho o livro de lógica de programação da casa do código, e estou com dúvida no seguinte exercício:

DICA DO LIVRO: O segredo é pensar assim: na primeira linha queremos apenas uma coluna; na segunda linha queremos duas colunas etc... até a décima linha, que possuirá dez colunas. Você também precisará de dois loops aninhados. Há duas formas de fazer: uma usando o break para parar de imprimir os asteriscos em cada linha em uma determinada condição, ou colocando essa condição direto dentro do for.

*
**
***
****
*****
******
*******
********
*********
**********

Consegui imprimir os asteriscos na ordem pedida, porém fiz repetindo o código:

<meta charset="UTF-8">
<script>
function pulaLinha(){
    document.write("<br>");
}
function mostra(frase){
    document.write(frase);
    pulaLinha();
}

for(var linha=1; linha <= 10; linha++){

    for(var coluna=1; coluna <= 1; coluna++){
    document.write("*");

    }

    pulaLinha();

    for(var coluna=1; coluna <= 2; coluna++){
    document.write("*");

    }    
    pulaLinha();

    for(var coluna=1; coluna <= 3; coluna++){
    document.write("*");

    }    
    pulaLinha();

    //ETC...

    break;
}


</script>

Acho que deve haver um jeito mais elegante e fácil de fazer isso, colocando alguma condição dentro do for, mas não sei qual. Alguém faz alguma ideia da solução??

2 respostas
solução!

Olá José,

o seguinte código resolve:

for (var i = 1; i <= 10; i++) {
    for (var j = 1; j <= i; j++) {
        document.write("*");
    }
    pulaLinha();
}

A ideia é que o primeiro for decide quantos asteríscos você deve imprimir na linha, enquanto o segundo imprime-os.

Abraços, Victor.

Muito obrigado Vitor! Solução bem simples.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software