Ir ao conteúdo

Posts recomendados

Postado

Eu quero criar uma calculadora usando funções, esse é o primeiro calculo, mas nao esta sempre dando erro

algoritmo "calculadora"
var
   n1,n2,total,soma: inteiro
   sinais,calc: caractere

   //-------------------------------------------y--------------------//

funcao reposta (x,y: inteiro): inteiro
var
   divisao, subtracao: real

inicio
   soma <- x+y
   divisao <- x/y
   multiplicacao <- x*y
   subtracao <- x-y

   retorne resposta

fimfuncao

inicio
   //----------------------fimfuncao-----------------------//

   escreval ("                        Calculadora")
   //espaço//
   escreval ("")
   escreval ("")
   escreval ("")

   //fimespaço//
   escreval ("Digite + para fazer a soma de dois numeros")
   escreval ("Digite 2 para fazer a divisao de dois numeros")
   escreval ("Digite 3 para fazer a multiplicacao de dois numeros ")
   escreval ("Digite 4 para fazer a subtracao de dois numeros")

   //------------//

   leia (sinais)
   total <- reposta (x,y)
   escolha (sinais)

   caso "1"
   leia (n1)
   leia (n2)
   escreval (total)
   fimescolha

fimalgoritmo

 

  • Curtir 1
Postado

@Hotaru     o retorno da função não pode ser o nome da função 

algoritmo "calculadora"
var
   n1,n2,soma : inteiro
   sinais,calc      : caractere
   total  :  real

   //-------------------------------------------y--------------------//

funcao resposta (x,y: real): real
var
   divisao, subtracao     : real
   adicao , multiplicacao : real
   resp                   : real
inicio
  se sinais = "+" entao
    resp := x + y
  senao
    se sinais = "/" entao
      se y <> 0 entao
        resp := x/y
      senao
        escreval("impossível didir por zero !")
      fimse
      retorne 0
    senao
      se sinais = "*" entao
        resp := x * y
      senao
        se sinais = "-" entao
          resp := x - y
        fimse
      fimse
    fimse
  fimse
  retorne resp
fimfuncao
//------------------------inicio------------------------------------
inicio
  repita
    limpatela
    escreval("                        Calculadora")
    escreval
    escreval
    escreval
    escreval("Digite + para fazer a soma          de dois numeros")
    escreval("Digite / para fazer a divisão       de dois numeros")
    escreval("Digite * para fazer a multiplicação de dois numeros")
    escreval("Digite - para fazer a subtração     de dois numeros")
    escreval("Digite s para sair do programa de calculadora      ")
    leia(sinais)
    escolha( sinais )
    caso "+"
      leia (n1)
      leia (n2)
      total := resposta(n1,n2)
      escreval("A Soma de",n1," +",n2," é -> ",total)
    fimescolha
    se sinais <> "s" entao
      escreva("   Tecle !")
      leia(sinais)
    fimse
  ate sinais = "s"
  escreval("Saindo Do Programa . . . !")
fimalgoritmo

 

  • Membro VIP
Postado
8 minutos atrás, Hotaru disse:

@devair1010 eu consegui, criei uma funcao para cada tipo de sinal

 

Por favor, poste o teu código para analisarmos e também poder servir de base para outros visitantes.

adicionado 13 minutos depois

@devair1010, alguns pontos:

 

Sobre:

10 horas atrás, devair1010 disse:
funcao resposta (x,y: real): real
var
   divisao, subtracao     : real
   adicao , multiplicacao : real

 

- as variáveis divisao, subtracao, adicao e multiplicacao foram declaras, mas não foram utilizadas. Estas variáveis não deveriam existir para o teu algoritmo.

 

 

 

Sobre:

10 horas atrás, devair1010 disse:
  se sinais = "+" entao
    resp := x + y
  senao
    se sinais = "/" entao
      se y <> 0 entao
        resp := x/y
      senao

 

Os valores das variáveis x e y vem pelo parâmetro da função, ok, mas de onde está vindo o valor da variável sinais? ou seja: ou os 3 valores vêm por parâmetro, ou os 3 são utilizados diretamente como variáveis globais. Acho que se encaixa no ditado: "O pau que dá em Chico dá em Francisco".

 

 

 

Sobre:

10 horas atrás, devair1010 disse:
var
   n1,n2,soma : inteiro
   sinais,calc      : caractere
   total  :  real

 

Apesar de já vir do código do @Hotaru, por que chamar de "sinais" (no plural) se ele armazena apenas um sinal? seria mais recomendado chamar de sinal, não?

 

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!