Laço de repetição para (portugol)

6 respostas
L

Boa tarde, uma pergunta simples (desculpem minha ignorância)

Eu criei um laço de repetição regressivo (PARA) no Portugol Studio e o resultado foi o seguinte:
10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 x.

A pergunta é: Como eu faço pra eliminar esse X depois do 1? Ou colocar um sinal de = por exemplo.

Obrigado a todos (as)

6 Respostas

Fefo80

Posta aí o código.

L

Desculpa, segue o código:

inteiro fatorial = 1, num
	escreva("Informe um número: ")
	leia (num)
	limpa()

	escreva("Vamos calcular o fatorial de " + num, ".\n\n")

	se (num >= 0 e num <= 1){
		escreva(num,"!= " , 1)
	}senao{
		para (inteiro n = num; n>=1;n--){
		escreva(n, " x ")
		fatorial = fatorial * n
		
	}
	escreva("\n\n", num,"!= " , fatorial)
	}
staroski

Assim?

inteiro fatorial = 1, num
escreva("Informe um número: ")
leia (num)
limpa()

escreva("Vamos calcular o fatorial de " + num, ".\n\n")

se (num >= 0 e num <= 1){
    escreva(num, " != " , 1)
} senao {
    para (inteiro n = num; n >= 1; n--){
        se (n == 1) {
            escreva(n, " = ")
        } senao {
            escreva(n, " x ")                
        }
        fatorial = fatorial * n
    }
    escreva("\n\n", num,"!= " , fatorial)
}
L

Mais ou menos, queria que fosse sem precisar do IF!

staroski

E como você pensa em decidir se é pra imprimir x ou = ?

hugokotsubo

Por que não quer usar if? É uma das estruturas mais básicas de qualquer linguagem de programação, e não há motivo nenhum para não usar aqui.

Um jeito seria fazer o loop até o 2, e depois dele escrever o 1 (não fará diferença no cálculo porque multiplicar por 1 não muda o número). Mas aí fica um escreva a mais fora do loop, que deixa o código - na minha opinião - um pouco pior (se dá para resolver tudo no loop, pra que colocar uma parte fora dele? só para “economizar” um if?)

Criado 25 de outubro de 2020
Ultima resposta 27 de out. de 2020
Respostas 6
Participantes 4