Pequeno prg que fiz pa calc - ajudem a melhorar

The WolfMan

1st Folding then Sex
Bem, tudo começou quando a minha professora de Matemática me deu um programa para a calculadora chamado Formres que resolvia equações. Eu em vez de executar, editei o programa vi como era mais ou menos a programação. Hoje de-me para fazer um programa para calcular a massa molecular relativa:

prgmMASMOLEC:
:Disp ''AR=I1*P1+I2*P2+I3*P3+I4*P4''
:Input ''I1?'',A
:Input ''P1?'',B
:Input ''I2?'',C
:Input ''P2?'',D
:Input ''I3?'',E
:Input ''P3?'',F
:Input ''I4?'',G
:Input ''P4?'',H
:(A*B)+(C*D)+(E*F)+(G*H)=I
:If I<0
:Then
:Disp ''BURRO!''
:Else
:Disp (A*B)+(C*D)+(E*F)+(G*H)
:Disp ''AR=I/100''
:Input ''I?'',J
:J/100=K
:Disp (J/100)
:Disp ''BY THE WOLFMAN''
:End

Primeira pergunta: Que linguagem utilizei?:lol: Limitei-me a seguir as bases do programa que a minha stora me tinha dado.

Segunda: Ajudem-me a corrijir os bugs: 1º-Eu tenho isto ''Disp ''AR=I1*P1+I2*P2+I3*P3+I4*P4'''' e no visor da Calc só aparece ''Disp ''AR=I1*P1+I2*P2...''.

2º- Quero que ele faça a conta de seguida, mas não vi como.

Obrigado.

EDIT: Os smiles são dois pontos. O trise é : e ( e o sorridente é : e D
 
Última edição:
1. A linguagem é chamada de TI-Basic por ser parecido com BASIC.

2.1. Se não cabe tudo no ecrã a única hipótese é dividires a mensagem em duas linhas.

2.2. Isso não é o que está em (A*B)+(C*D)+(E*F)+(G*H)=I ?

Quando fazes uma conta e guardas numa variável podes mostrar a variável logo no Disp.

:Input ''I?'',J
:J/100=K
: Disp (J/100)

Esta parte não faz sentido visto que fazes a conta, guardas na variável e voltas a fazer a conta no Disp não utilizando a variável, pode ficar apenas:

:Input ''I?'',J
: Disp (J/100)

Código:
prgmMASMOLEC:
:Disp ''AR=I1*P1+I2*P2''
:Disp ''+I3*P3+I4*P4''
:Input ''I1?'',A
:Input ''P1?'',B
:Input ''I2?'',C
:Input ''P2?'',D
:Input ''I3?'',E
:Input ''P3?'',F
:Input ''I4?'',G
:Input ''P4?'',H
:(A*B)+(C*D)+(E*F)+(G*H)=I
:If I<0
:Then
:Disp ''BURRO!''
:Else
:Disp I
:Disp ''AR=I/100''
:Input ''I?'',J
:Disp  J/100
:Disp ''BY THE WOLFMAN''
:End
 
Obrigado pela resposta breve, mas esta parte assim não dá. aparece 0 no resultado [Ar(Cl)].
Código:
:Disp I
:Disp ''AR=I/100''
:Input ''I?'',J
:Disp  J/100
:Disp ''BY THE WOLFMAN''
:End

EDIT: O que são variaveis :lol:
 
Variáveis são como gavetas onde em vez de gravares objectos guardas valores, por exemplo: 1, 1.2, 3.5, 43624, etc...

As variáveis servem para por exemplo fazeres um cálculo e guardares o resultado numa variável para mais tarde usares.

Olha, por exemplo, este programa que usa a formula resolvente.

Código:
Input "A = ",A # escreve "A = ", e guarda o que o utilizador escreveu na variável A
Input "B = ",B # escreve "B = ", e guarda o que o utilizador escreveu na variável B
Input "C = ",C # escreve "C = ", e guarda o que o utilizador escreveu na variavel C
B^2 - 4AC -> X # guarda o resultado de B^2 - 4AC na variável X
If (X > 0) # verifica se é possivel
Then # se é possivel
-B+raiz(X) -> U # calcula a primeira solução e guarda o resultado na variável U
-B-raiz(X) -> V # calcula a segunda solução e guarda o resultado na variável V
ClrHome # apaga o ecrã
Disp "Resulatados",U,"ou",V # escreve o resultado
Pause # espera que o utilizador pressione Enter
Stop # sai do pograma
Else # se é impossivel
Disp "Impossivel"


Não tenho a certeza se todas as keywords estão correctas (já não uso isto à muito tempo).

Dicas:
Não confundas = com ->. = serve para comparar. -> serve para guardar qualquer coisa numa variavel.
Não podes usar espaços excepto em texto/strings (em Disp por exemplo).
Se gostares disto lê o capitulo sobre programação (só esse!!) e ai tiras as tuas duvidas todas.
 
Obrigado pela resposta breve, mas esta parte assim não dá. aparece 0 no resultado [Ar(Cl)].
Código:
:Disp I
:Disp ''AR=I/100''
:Input ''I?'',J
:Disp  J/100
:Disp ''BY THE WOLFMAN''
:End
EDIT: O que são variaveis :lol:

Executei o código que pus no meu post e não apareceu 0 em lado nenhum.


Desta forma faz logo as duas contas de uma vez:
Código:
Disp "AR=I1*P1+I2*P2"
Disp "+I3*P3+I4*P4"
Input "I1?",A
Input "P1?",B
Input "I2?",C
Input "P2?",D
Input "I3?",E
Input "P3?",F
Input "I4?",G
Input "P4?",H
((A*B)+(C*D)+(E*F)+(G*H))/100->I
If I<0
Then
Disp "BURRO!"
Else
Disp I
Disp "BY THE WOLFMAN"
End
 
Boas

O primeiro programa foi +ara um Ti-83. Não me lembro bem, mas as variaveis não devem ficar entre aspas nem plicas, se não é entendido com uma string.
Mas não me lembro bem.

Cumps [[]]
 
Executei o código que pus no meu post e não apareceu 0 em lado nenhum.


Desta forma faz logo as duas contas de uma vez:
Código:
Disp "AR=I1*P1+I2*P2"
Disp "+I3*P3+I4*P4"
Input "I1?",A
Input "P1?",B
Input "I2?",C
Input "P2?",D
Input "I3?",E
Input "P3?",F
Input "I4?",G
Input "P4?",H
((A*B)+(C*D)+(E*F)+(G*H))/100->I
If I<0
Then
Disp "BURRO!"
Else
Disp I
Disp "BY THE WOLFMAN"
End
Fiz assim, mas deixo o /100 em separado porque causa que e uma percentagem.
Ja eliminei todos os bugs. Agora quero ''bloquear'' a edição deste programa. Como e que fasso isso?
 
Com o MirageOS dá para bloquear/desbloquear a edição de qualquer programa em basic, além de poderes correr o programa estando arquivado e não visível na lista de programas.
 
Com o MirageOS dá para bloquear/desbloquear a edição de qualquer programa em basic, além de poderes correr o programa estando arquivado e não visível na lista de programas.

COm qualquer cabo de dados dá.

Já agora a minha sugestão para ele era nos inputs não utilizar o "?" e usar antes 1 ":", fica deselegante, era melhor ele usar nomes em ves dos tradicionais A, B, C, D...

muito ti-Basic programei quando era catraio...
 
Back
Topo