Informática, perguntado por DamonF, 7 meses atrás

Construa um algoritmo que leia 5 números distintos e imprima a soma dos números ímpares.
Linguagem: portugol lite

Condição: não é permitido o uso do "se"

Soluções para a tarefa

Respondido por thiagopokem
1

Resposta:

programa {

funcao inicio() {

 inteiro somaImpar = 0, numero

 para(inteiro i = 0; i < 5; i++){

     leia(numero)

     escolha(numero % 2){

         caso 1:

         somaImpar += numero

         pare

     }

 }

 escreva(somaImpar)

}

}

Explicação:

Primeiro declaramos 2 variáveis do tipo inteiro, a primeira dei o nome de somaImpar que receberá soma dos números ímpares, inicializamos ela em 0. E a segunda dei o nome de numero, não há necessidade de inicializa-la, pois isso será feito através do comando leia(numero) quando o usuário digitar o valor pelo console.

Com isso criamos um laço de repetição do tipo para(), primeiro porque não queremos colococar 5 vezes o comando leia() e para cada um destes uma estrutura condicional, o que seria extremamente ineficiente, segundo porque sabemos quantas vezes os laço irá se repetir, 5 vezes, e a estrutura do para segue o modelo para(inteiro i = 0; i < N; i++){ } neste exemplo o N é 5.

para(inteiro i = 0; i < 5; i++){

   

}

Dentro das chaves do para() { } nós inserimos um leia() que irá ler o valor que o usuário digitar e atribuir isso a variável numero:

para(inteiro i = 0; i < 5; i++){

     leia(numero)

}

Após isso, ainda dentro das chaves do para() nós fazemos o pulo do gato, ao invés de um se() utilizaremos a estrutura condicional escolha(){ }, essa estrutura irá receber um valor e a partir deste valor ela irá testar casos. Ex. caso 1: quando o valor ou variável passado dentro de escolha(valor) for 1.

Este valor será passado por meio de uma conta simples, nós temos o número que o usuário digitou e agora precisamos saber se ele é ímpar, para isso podemos utilizar o operador mod, que é o símbolo de porcentagem(%), esse operador calcula o resto da divisão e veja só, todo número par dividido por 2 tem resto 0 e todo número ímpar dividido por 2 tem resto 1. Logo se eu fizer a conta escolha(numero % 2){ } ele vai sempre passar o valor 1 ou 0, como só queremos quando é ímpar só precisamos do caso 1, ficando:

para(inteiro i = 0; i < 5; i++){

     leia(numero)

     escolha(numero % 2){

         caso 1:

         

         pare

     }

}

Aí agora só precisamos somar a variável numero ao valor já existente na nossa outra variável somaImpar, podemos fazer isso de dois jeitos:

somaImpar = somaImpar + numero

ou

somaImpar += numero

Podendo ficar:

para(inteiro i = 0; i < 5; i++){

     leia(numero)

     escolha(numero % 2){

         caso 1:

         somaImpar += numero

         pare

     }

 }

Com isso temos o código praticamente finalizado e após a chave de fechamento do para() { } basta colocar o comando escreva(somaImpar) para mostrar a soma dos valores ímpares :D

Perguntas interessantes