1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Pequeno prg que fiz pa calc - ajudem a melhorar

Discussão em 'Programação' iniciada por The WolfMan, 16 de Outubro de 2007. (Respostas: 8; Visualizações: 1086)

  1. The WolfMan

    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: 16 de Outubro de 2007
  2. Aparicio

    Aparicio /dev/mod
    Staff Member

    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
    
     
  3. The WolfMan

    The WolfMan 1st Folding then Sex

    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:
     
  4. acfryx

    acfryx Power Member

    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.
     
  5. Aparicio

    Aparicio /dev/mod
    Staff Member

    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
     
  6. MARSHALL

    MARSHALL Power Member

    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 [[]]
     
  7. The WolfMan

    The WolfMan 1st Folding then Sex

    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?
     
  8. Aparicio

    Aparicio /dev/mod
    Staff Member

    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.
     
  9. theforbidden1

    theforbidden1 Banido

    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...
     

Partilhar esta Página