• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Tiago

[x] Trabalhos da Pascoa

48 mensagens neste tópico

Olá a todos tenhu aqui um trabalho da Pascoa Mais ao menos

Tenhu de Fazer uma Calculadora que me fassa as Seguintes operações

- > Soma

- >Subtracção

- >Multiplicação

- >Divisão

- >Raiz Quadrada de Um Número

- > Inteiro de Um Numero

- > Arredondamento de um número

- > Área de Rectângulo

- > Área de um Circulo

- > Área de um Quadrado

- > Perímetro de Rectangulo

- > Perímetro de um Quadrado

- > Perímetro de um Circulo

- > Os valores de X1 e X2 de um polinómio de 2º Grau

- > o mair Número de N entradas de Números

Se alguem me poder ajudar!! a minha duvida é quando clicar nos numero tipo como guardar os numeros

Ex ele Carrega nu 1 depois no  2 isto vai ser 12 depois ele escolhe a operação  Subtrair e os numeros desapareçe !! e depois ele clika nu numero

1 mas claro ele kd clicou Subtrair o numero 12 desapareceu e o utilizador clikou no 1 !!

não me sei explicar melhor agradecia se alguem me pode ajudar a fazer esta calculadora !! nao peço o Codigo apenas algumas dicas !!

Obrigada e peço desculpa por algo

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu tinha a seguinte ideia :P

Um contador para saberes em que caracter tas, uma variavel para ter o ultimo operador, e 3 para os resultados( 2 para os intermedios e 1 para o final)

contador = 0

Clica no 1

resultado1 = 1*10^contador

contador++

Clica no 2

resultado1 = resultado + 2*10 ^contador

Clica no +

operador = '+'

contador = 0

Clica no 1

resultado2 = 1*10^contador

contador++

Clica no 5

resultado2 = 5 *10^contador

contador++

clica no igual, soma, subtracção, ...

se operador = '+' entao

    resultadofinal = resultado1 +resultado2

senao se operador = '-'

                resultadofinal = resultado1 - resultado2

...

Uma versão simplista da máquina podia ser implementada desta maneira :)

Pode ser melhorada e muito

:biggrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas tens mesmo de fazer assim ? :| Com apenas 1 Campo para digitaçao de nºs ? Eu também tenho a tua Dúvida ... nao sei guardar os valores e com a "Explicaçao" do Sub-Z3r0 inda fikei mais á nora

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol

entao ...

mil duzentos e trinta e quatro escreve-se 1234 e pode-se representar como

1*10^3+2*10^2+3*10^1+4*10^0

ou seja

1 * 1000 + 2 * 100 + 3 * 10 + 4 * 1

foi isto que não percebeste?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não ... lol :P Foi mesmo a suposta técnica para somar, subtrair, etc... no mesmo campo

          _______

Text1|_______|

CommandButton1 |BUTTON|

          _______

Text2|_______|

Text1 = 2

CommandButton1 = Somar

Text1 = 3

Text2 = 5

Tipo calculadora do Windows ... indicas os dois valores num só campo ... como é que se gravam os valores do 1º para depois se indicar o 2º ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tenhu duas semanas para fazer este programa !!

eu pensei tb da maneira de guardas u numero na variavel !! mas a maneira do Sub zero tb me confundiu um pouco !!

mas obrigada pela dica Subzero

um abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

se pensares que tens de guardar sempre dois numeros. na calculadora do windows acho que funciona da seguinte maneira.

* escreves o numero(resultado1)

* clicas na operação(operacao)

* escreves outro numero(resultado2)

* clicas na operacao

   -  executa a operacao anterior

   - guarda o resultado da operacao como resultado1

   - guarda o operador

* escreves outro numero(resultado2)

* clicas na operacao

   -  executa a operacao anterior

   - guarda o resultado da operacao como resultado1

   - guarda o operador

acho que o algoritmo nao foge disto

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim mas como é que indica que vai guardar ?

Em dois campos é facil ... sao independentes logo,

Dim a, b, c As Double
a = Val(Text1.Text) // Guarda o valor do 1º campo
b = Val(Text2.Text) // Guarda o valor do 2º campo
c = a + b
Text3.Text = c

Mas assim tinha de indicar Guardar 2 valores no mesmo campo ... :\

Nao percebo como ...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol

eu acho é que não estou a perceber a tua dúvida. guardar os valores como?

o algoritmo n deve fugir mt da ultima coisa que disse. acho que está explicito :P

é só bater código na linguagem que for....

em VB ao clicares nos botões vai desencadear as ditas acções.

Tens os números(0..9), e as operações(numa máquina simples, +,-,/,*), uma caixa de texto bloqueada, para não meteres valores disparatados(ex. texto), tens os botoes de apagar normais.

No VB tens a vida muito facilitada, já não é preciso o 1*10^0, 2*10^1 etc etc ... a textbox guarda o valor todo

agora podes explicar mais propriamente a tua duvida lol

se eu souber, tento não te confundir mais

eheheh

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fiquei curioso, e pus-me a fazer a dita calculadora lol

Muito simples esta que fiz, e com muitos erros, principalmente por guardar as cenas em INTEGER. foi só teste, por isso :P

alguns botoes nao funcionam por isso msmo. foi so para dar a sensacao do "guardar" que eu acho que voces falam

Está em VB6.0

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Oi!! A tecla zero tava a dar erro, tirei o cint que tinhas la no if e ficou bom.

Agora diz me lá: queres que ao carregar no mais apareça o sinal ou queres que o numero desapareça pra escreveres outro?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol, o numero só desaparece quando clicas na caixa de texto para escrever :P

como te disse é uma versão MUITO rasca de uma calculadora lol

quanto ao problema de carregar no zero, já não me lembro fiz isto tudo com uma moca de sono, ehehehe

mas sei q o zero é um caso a parte, pq no inicio n se pode escrever zeros à toa

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fiquei curioso, e pus-me a fazer a dita calculadora lol

Muito simples esta que fiz, e com muitos erros, principalmente por guardar as cenas em INTEGER. foi só teste, por isso :P

alguns botoes nao funcionam por isso msmo. foi so para dar a sensacao do "guardar" que eu acho que voces falam

Está em VB6.0

Comigo nao Funka a Calculadora ... :P

Kuando carrego no 9+3 aparece 93 no campo e depois Igual (=) a "" ('nada')

Anyway, o que queria que me explicassem é como é que vces conseguem fazer tudo num só campo ...

Se eu tiver 2 campos torna-se mt mais facil ... sao independentes e tal 'a','b','c' -> 'a'+'b'='c'

Mas como é que fazem para 'a' ser do Text1.Text e 'b' também ?

I'm ConfuseD! :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

M@KO, toma a correcção do zero, e com Double em vez de Integer  :biggrin:

quanto ao UnKnowN, não funciona pq já disse que tens de carregar na caixa de texto, tipo, escreves 9 -> clicas no + -> clicas na caixa de texto -> clicas no 3

ehehe

quanto è tua duvida é um bocado dificil de explicar.

Eu tenho uma variavel intermédia, que serve para guardar o valor actual da caixa txtresultado, ou seja, o valor que estava escrito antes de carregares na operacao.

Tenho a variavel de resultado, que vai guardar o resultado das operacoes sucessivamente.

em vez de , C = A + B, é mais do tipo C = C + A, não ha outra maneira.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nao percebi a parte do C=C+A ... tenho dificuldade em perceber isto de x = x + 1 visto que x só pode ser x :P LOL!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol

em relação ao VB, têm de compreender os erros, já não pegava no VB há prai 4/5 anos, foi no 12º ano

ehehe

vou-te por em termos de C e A

Vamos pensar que queres somar 1+3+4

1. Carregas no 1

2. Carregas no + [C = 1]

3. Carregas no 3

4. Carregas no + [C = 1 + 3] -> ou seja C = C + 3

5. Carregas no 4

6. Carregas no = [C = 4 + 4] -> ou seja C = C + 4

tá melhor assim? lol

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol

em relação ao VB, têm de compreender os erros, já não pegava no VB há prai 4/5 anos, foi no 12º ano

ehehe

vou-te por em termos de C e A

Vamos pensar que queres somar 1+3+4

1. Carregas no 1

2. Carregas no + [C = 1]

3. Carregas no 3

4. Carregas no + [C = 1 + 3] -> ou seja C = C + 3

5. Carregas no 4

6. Carregas no = [C = 4 + 4] -> ou seja C = C + 4

tá melhor assim? lol

EhEh tens jeito pa Prof. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Outra versão, já tem o "." a funcar ehehe

ah !  e tava a fazer coisas que não necessitava, mas na altura que as fiz estava a pensar noutra coisa...

além de ter encontrado na net o CDbl(String)  :biggrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá Mais uma vez eu fiz com um Case e está bom !!

Agora tenhu de fazer  um arredondamento!! alguem me podia explicar isso sff

um Abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como é que queres fazer o arredondamento ? de Double para Integer , ou seja, de Inteiro para Real ?

Se for o caso o code fika:

Private Sub Command1_Click()
Dim a As Double
a = Int(2.03 * 3)
Text1.Text = a
End Sub

Isto tendo 1 Botao e 1 Campo Text (de nome Text1)

Se experimentares esse code vais ver que em vez do valor ser 6.09 como deveria vai ser 6 pk 6.09 arredondado dá 6 :cheesygrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

UnKnowN tipo

eu fasso 6.5 + 0.5 e ele dame 6 a minha variavel esta em Double !! como fasso para ele somar com virgulas !!

se poderes ajudar agradeço!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fizeste com 2 Campos para A e B e um 3º © para o resultado da Soma e um Botao para realizar a Operação? Se Sim o código é assim:

Private Sub Command1_Click()
Dim A, B, C As Double
A = Val(Text1.Text)
B = Val(Text2.Text)
C = A + B
Text3.Text = C
End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado pela ajuda tenhu aprendido muito!!  se nao for abusar muito era mais uma questão !!

Tipo agora uma das piores operações para mim

Tenhe de dizer o Maior Numero de (N) Entradas de Números !! Visto ke (N) é o Utilizador ke escolhe

Podes ajudar Uknow!?

Agradeçido

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Depende da forma que estás a armazenar esses números que queres comparar. Neste momento apenas tou a ver 2 maneiras que serão simples de fazeres isso...

À medida que o utilizador vai inserindo os números, tu vais guardando num array e depois usando um algoritmo de ordenação tens o o maior número (indo buscar à ultima posição após a ordenação)

O utilizador qd insere o primeiro valor guardas numa variavel esse mesmo valor. Dps nas outras inserções vais comparando com o valor da variavel. Se próximo valor q for inserido for maior, substituis pelo que estava na variavel, se não for mantens o valor da variavel. Dps é só ires ler a variavel e já tens o maior valor.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora