Ir ao conteúdo
  • Cadastre-se
Haroldo77

RESOLVIDO Programa que calcule o custo de ligações.

Recommended Posts

Galera tenho que criar um programa que calcule o custo em ligações.

dessa maneira!

A quantidade em minutos da ligação, o tipo de aparelho(celular ou fixo) e o tipo de ligação (local ou interurbana).

Deverá apresentar o valor gasto na ligação.

sendo que:

*O custo de 1 minuto para ligação local em um aparelho fixo é de R$ 0,50 e no celular de R$ 1,20;

e

* O custo de 1 minuto para ligação interurbana em um aparelho fixo é de R$ 1,00 e no celular de R$ 2,00;

 

minha programação está abaixo, o que estou fazendo de errado?To bem enrolado nesse!

 

  1. procedure Tfrmchamada.btncalcularClick(Sender: TObject);varminutos,a,b,custo:real;beginif (rgpaparelho.ItemIndex=0) thenbeginminutos:=strtofloat(edtminutos.Text);a:=0.50;endelseif (rgpligacao.itemindex=0) thenbeginminutos:=strtofloat(edtminutos.Text);b:=1;custo:=(minutos*a*;edtcusto.Text:=floattostr(custo);endend;end.
       rOnUIim.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Haroldo77

 

 

Você vai precisar encadear os seus If's justamente para saber as opções que foram selecionadas e com isso definir o custo da ligação. A propriedade que você usou para verificar a opção está correta, ItemIndex.

 

Você verifica primeiro (por opção) qual o tipo de ligação escolhida e depois você verifica o tipo de aparelho.

 

É ligação local? Então, agora verifique o aparelho. É fixo? Então, defina o custo A; senão, defina o custo B.

 

E assim por diante..

 

 

[]'s

 

LNW

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou tentar aqui valeu! logo postarei se deu certo.

Fiz a programação mas não está dando certo:

procedure Tfrmchamada.btncalcularClick(Sender: TObject);varminutos,a,b,custo:real;beginif (rgpaparelho.ItemIndex=0) thenbeginminutos:=strtofloat(edtminutos.Text);a:=0.50;beginif (rgpaparelho.ItemIndex=1) thenbeginminutos:=strtofloat(edtminutos.Text);a:=1.00;end   elseif (rgpligacao.itemindex=0) then beginb:=1;beginif (rgpligacao.itemindex=1) then beginb:=2.20;end; custo:=(minutos*a* ; edtcusto.text:=floattostr (custo);      end end; end. 

O que será?Coloquei outros valores só pra testar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Haroldo77

 

Como você vai fornecer os minutos, recomendaria definir a variável minutos como Integer. Neste caso, você usaria StrToInt(). Ao final, após os testes, você multiplica o custo pelos minutos e atribui ao Edit.

 

Você vai ter uma variável apenas para guardar o custo da ligação. No exemplo abaixo, o teste é feito para a ligação local. Se o aparelho for fixo, o custo A é definido, caso contrário, o custo B. Tente terminar a outra parte (continua após o Else) que testa o tipo de aparelho para ligações interurbanas. Basicamente é a mesma coisa feita.

minutos := StrToInt(edtminutos.Text);If rgpligacao.ItemIndex = 0 Then   Begin      If rgpaparelho.ItemIndex = 0 Then         Custo := 0.50 Else         Custo := 1.20;   End Else ...

[]'s

 

NW

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×