Mod 02- Aula 4 – Exercício 19- Inverso ou Oposto

Home Fóruns Programação Básica Mod 02- Aula 4 – Exercício 19- Inverso ou Oposto

Visualizando 3 respostas da discussão
  • Autor
    Posts
    • #76276

      Boa tarde, não consigo entender onde estou errando.

      programa
      {
      inclua biblioteca Matematica –> mat

      funcao inicio()
      {
      real num
      real absoluto = mat.valor_absoluto(num)

      escreva(“{Exercício 19 – Inverso ou Oposto} \n”)
      escreva(“Digite um número: “)
      leia(num)

      escreva(“O inverso de ” + num + ” é igual a ” + 1/num)
      escreva(“O oposto de ” + num + ” é igual a ” + absoluto “\n”)

      }
      }

      Tem que usar a condição composta Se e Senao?

    • #76293
      Michel Souza
      Participante

      Olá Larissa, boa noite.
      Primeiramente antes de postar seu código tenta configurá-lo, seleciona todo ele e clica em CODE logo acima.
      Isso facilita tanto na visualização, quanto para rodar o código em busca de erros.
      Segundo, tenha como prática a indentação do código, que é jogar a linha mais pra dentro, como num parágrafo, criando uma espécie de estrutura hierárquica, isso vai facilitar no futuro ainda mais quando for trabalhar com vários laços aninhados.
      Quando você chegar na parte de validação dos dados vai entender o que estou falando.
      Agora em relação a seu código, vejamos.
      Primeiro tem que iniciar a variável num, assim:
      real num = 0.0, porque? // Como é real tem que ter o ponto, se fosse inteiro não precisava.
      Você já atribuiu o valor de “absoluto” com o valor de “num” e ao mesmo tempo já colocou “num” como absoluto, sem ter nenhum valor para num.
      Confuso né, até me perdi. Sua lógica:
      real absoluto = mat.valor_absoluto(num)
      Vai funcionar, mas não é uma boa prática de programação, aqui vc está apenas colocando o 0 (zero) como absoluto, poderia colocar no final,
      na resposta, assim:
      escreva("O oposto de " + num + " é igual a " + mat.valor_absoluto(absoluto) + "\n") Veja que coloquei a função na variável absoluto que é digamos uma variável de saída, de resposta.
      Você perguntou se é preciso usar SE ou SENAO, pelo que entendi do enunciado do exercício, acredito que sim (positivo -> inverso/
      negativo -> oposto). Ficaria assim:

      se (num >= 0) { // número positivo
            inverso do número
      } senao se (num < 0) { // número negativo / não é necessário colocar o SE aqui.
            Oposto do número
      }

      Que é pro caso de algum usuário(a) colocar -12 por exemplo.
      Agora caso você esteja querendo mostrar o inverso e o oposto do número ao mesmo tempo,
      basta dividir o 1 pelo num (inverso) e multiplicar o número por -1 (oposto), assim:

      inverso = 1 / num
      oposto = num * (-1)

      Tentei explicar da melhor forma possível, espero ter conseguido tirar sua dúvida.
      Bons Estudos!

    • #76436
      Tutora Mayla
      Mestre

      Larissa, completando a resposta do Michel, o mat.valor_absoluto() irá retornar o valor absoluto de um número, ou seja, se for -1 ou 1 teremos como resposta 1. Nesse contexto irá funcionar pois é o oposto de um número negativo, porém tome cuidado pois não serve para calcular o oposto de números positivos.

      Quanto a onde utilizar a função, lembre-se que é necessário fazer a leitura do valor antes de utiliza-lo, ou seja, nesta linha real absoluto = mat.valor_absoluto(num) a variável num ainda não tem valor, não adiantando de nada então utiliza-la na função.
      Apenas após a linha leia(num) onde o valor é lido que seria correto utiliza-lo para alguma coisa, podendo aqui então realizar absoluto = mat.valor_absoluto(num).

      Como o aluno Michel disse muito bem, o exercício pede a separação de inverso ou oposto de acordo com o sinal do número, ou seja se é positivo se deseja o inverso e se é negativo se deseja o oposto, para isso é necessário utilizar da condição se.

      Espero ter ajudado, quaisquer outras dúvidas estamos a disposição.

    • #76457

      Michel e Mayla

      Muito obrigada pelas orientações, consegui resolver =D

Visualizando 3 respostas da discussão
  • Você deve fazer login para responder a este tópico.