• Nenhum resultado encontrado

Procalc v1.0. Versão Programador

N/A
N/A
Protected

Academic year: 2021

Share "Procalc v1.0. Versão Programador"

Copied!
19
0
0

Texto

(1)

 

Procalc v1.0 

Versão Programador         

(2)
(3)

   

Conteúdo 

  Procalc ... 4  Primeiros botões ... 5  Funções Básicas ... 6  Como funciona ... 7  Funções avançadas ... 8  Logaritmo ... 8  Logaritmo Natural ... 9  Expoente ... 10  Factorial ... 11  Raiz quadrada e raiz cúbica ... 12  Seno, Cosseno e Tangente ... 13  Funções extra ... 15  Funções e Gráficos ... 16  Imprimir ... 18  Menu Ficheiro ... 19  Copiar / Colar / Cortar / Seleccionar Tudo / Sair ... 19  Sair ... 19   

(4)

Procalc 

    Procalc uma calculadora científica e gráfica programada em Visual Basic. Esta  calculadora promete ser precisa e eficiente em todo o tipo de aplicações.    Dispõe de um design exclusivo e é uma excelente alternativa às calculadoras  convencionais. Esta inovadora ferramenta de trabalho, de fácil utilização mostra como é  possível transportar com grande facilidade a programação mais avançada apenas num  pequeno aplicativo.     Todo o código foi estruturado de forma a obter o melhor desempenho possível.    Através de avançadas fórmulas matemáticas foi‐nos possível criar comandos  semelhantes aos das calculadoras científicas e gráficas.     Funções trigonométricas como seno, co‐seno e tangente, foram verdadeiros desafios  da programação, tal como o cálculo do logaritmo, factorial e raiz cúbica. Não obstante das  funções gráficas, não podemos deixar de mencionar a relação de conhecimentos matemáticos  com o domínio do tratamento de imagem numa linguagem de programação. Podemos afirmar  desta forma que atingimos com sucesso, um grande objectivo do projecto, a criação de  gráficos através de funções.       

(5)

Primeiros botões 

   

 

 

 

 

 

 

    Criamos um controlo arrays através da propriedade caption do visual Basic. Incluímos  também instruções, ciclos e variáveis para controlar o valor inserido, desta forma evitamos a  criação de erros em quanto digitamos números. Este código foi construído para que quando  carregamos nos botões numéricos, o valor seja acrescentado no display da direita para a  esquerda.           Acrescentamos o Botão desligar e o display  da maquina. O display é uma textbox do  visual Basic e o botão off contem a instrução Unload Me para descarregar o programa da  memória.  Private Sub Command1_Click(Index As Integer) If ind = 4 Then          prev = 0          Text1.Text = ""          ind = 0      End If      opnre = 0      If oflag = 0 Then          Text1.Text = " "      End If      oflag = 1      If Command1(Index).Caption <> "." Then         If Text1.Text <> " 0" Then        Text1.Text = Text1.Text & Command1(Index).Caption        Else        Text1.Text = " " & Command1(Index).Caption        End If      Else        If dflag = 0 Then        Text1.Text = Text1.Text & "."        dflag = 1        Else        MsgBox ("Erro")        End If       End If            End Sub 

(6)

Funções Básicas 

    Para começar construímos as funções básicas de qualquer calculadora como, somar,  subtrair, multiplicar, dividir, percentagem e igual.                        Mais uma vez através de arrays de Index distinguimos as funções atribuídas a cada  botão.    Para cada operação temos uma forma de cálculo, ou seja algumas funções já vêm  incluídas no visual Basic, outras temos de ser nós a construir código de forma a obter o  resultado pretendido, por exemplo:         ‐ O cálculo de um expoente pode ser feito através de um símbolo ASCII em vez de  fazer o cálculo por extenso.     Ou seja, para o resultado de 53 podemos fazer de duas formas.        Resultado = 5 x 5 x 5    ou   Resultado = 5 ^ 3       O mesmo se passa com outros caracteres como a soma(+), subtracção(‐), divisão(/),  multiplicação (x), etc.     Embora este método simplifique a programação existe ainda muito trabalho para  fazer.    Por exemplo, para achar a raiz cúbica de um número temos que escrever a formula por  extenso, tal como Newton a escreveu.         Para 3√6 temos :        Resultado = 6 ^ (1 / 3)  Private Sub Command2_Click(Index As Integer) If VF = True Then          Dim pica As Integer          pica = Text1.Text          Text1.Text = var1 ^ pica          VF = False          Else          End If          Dim n As Long          Dim r As Long          If opnre = 0 Or Index = 4 Then        If ind = 0 Then         prev = prev + Val(Text1.Text)        ElseIf ind = 1 Then         prev = prev ‐ Val(Text1.Text)        ElseIf ind = 6 Then        prev = prev Mod Val(Text1.Text)        ElseIf ind = 7 Then        r = Fix(Val(Text1.Text))        n = Fix(Val(prev)) 

(7)

 

Como funciona 

       A melhor forma que encontramos para calcular valores é através do armazenamento  em variáveis, ou seja, sempre que introduzimos um valor e depois carregamos numa tecla de  função (soma por exemplo), esse valor fica guardado na memória através de uma variável até  ser novamente necessário.    Por exemplo, para o cálculo de 3+2=        No código temos declarado a variável VAR1, depois de o utilizador ter introduzido o  número 3 e carregado na tecla (+) o valor será armazenado na memória ou seja (VAR1 = 3).  Assim depois de o utilizador introduzir o número 2 e carregar na tecla igual (=) o código vai ser  processado da seguinte forma:        Resultado  =  var1 + 2         

 

 

 

 

(8)

Funções avançadas 

Logaritmo 

    Já demos uma ideia de como funcionam as teclas mais básicas. Agora vamos mostrar  como é que funcionam os botões da parte mais avançada.    Comecemos pelo calculo do Logaritmo.     Na Matemática, o Logaritmo de base b, maior que zero e diferente de 1, é uma função  de domínio ]0;+∞[ e imagem   injectiva e contínua que devolve o expoente na equação         bn = x. Normalmente é escrito como logb x = n. Por exemplo:        34 = 81    portanto    log381 = 4    Em termos simples o logaritmo é o expoente que uma dada base deve ter para  produzir certa potência. No último exemplo o logaritmo de 81 na base 3 é 4, porque 4 é o  expoente que a base 3 deve usar para obter 81.    Para cálculo no visual Basic fazemos:  If Val(Text1.Text) > 0 Then    Text1.Text = Str((Log(Val(Text1.Text)) / Log(10)))  Else    MsgBox (" ILEGAL. Log não é positivo ")  End If      Nesta fórmula deixamos as variáveis de parte e trabalhamos directamente com os  valores do display. Fizemos isto agora, e fazemos sempre que o resultado for de cálculo  imediato, assim poupamos memória e aceleramos o processo. 

(9)

 

Logaritmo Natural 

    O logaritmo natural (LN) é o logaritmo de base ℮, onde ℮ é um número irracional  aproximadamente igual a 2,718281828459045... (chamado Número de Euler). É, portanto, a  função inversa da função exponencial.    O logaritmo natural é definido para todos os números reais estritamente positivos, e  admite uma extensão como uma função complexa analítica em C/{0} .    Em termos simples, o logaritmo natural é uma função que é o expoente de uma  potência de e, e aparece frequentemente nos processos naturais (o que explica o nome  "logaritmo natural"). Esta função torna possível o estudo de fenómenos que evoluem de  maneira exponencial.    No visual Basic fazemos da seguinte forma:  If val(Text1.Text) > 0 Then    Text1.Text = Log(val(Text1.Text))  Else    MsgBox (" ILEGAL. LN não é positivo ")  End If        Mas uma vez não foi necessária a criação de variáveis. 

(10)

 

Expoente 

    O expoente significa multiplicar um número real (base) por ele mesmo X vezes, onde X  é a potência (número natural).    Para x℮  temos:    If Val(Text1.Text) < 700 Then        Text1.Text = Str(Exp(Val(Text1.Text)))        Else        MsgBox (" OVERFLOW. Valor muito grande ")        End If    Sendo ℮ um valor constante na matemática.     

 Para x2 e x temos  

    If (Val(Text1.Text)) < 1290 Then        Text1.Text = Text1.Text ^ 2 (ou 3)        Else        MsgBox ("OVERFLOW.VALOR MUITO GRANDE ")        End If     

 Para xy temos um processo diferente, vamos por passos. 

O utilizador:     ‐ introduz um valor     ‐carrega no botão xy  [O código guarda o valor numa variável (varX).]    ‐ introduz o expoente    ‐Carrega no (=) [O código guarda o expoente noutra variável (varY) e dispõe o código  da seguinte forma,  resultado = varX ^ varY.]      Botão (xy):      If Text1.Text <> "" Then  varX = Text1.Text  Text1.Text = ""  VF = True  Else  End If  Botão  (=):  If VF = True Then  Dim varY As Integer  varY = Text1.Text  Text1.Text = varX ^ varY  VF = False  Else 

(11)

 

Facto

  positiv              

orial 

  Na matemá os menores o A função fac Por exemplo 5! = 1 × 2 ×  Esta definiç 0! = 1     No visual Ba Text1.Text = ática, o factor ou iguais a n.  ctorial é norm o,  3 × 4 × 5 = 12 ão implica em asic temos:  = Str(fact(Val ial de um núm Isso é escrito malmente def 20   m particular q l(Text1.Text))   mero natural o como n! e li finida por:    que:  )  n é o produt do como "fac o de todos os ctorial de n ".  s inteiros 

(12)

 

Raiz quadrada e raiz cúbica 

      Como já tínhamos mencionado a raiz cúbica calcula‐se através da fórmula:       Resultado = var1 ^ (1 / 3)    A raiz quadrada calcula‐se através de uma função predefinida do visual basic:      Resultado  =  Sqr(Val(var1))     

 

(13)

 

Seno, Cosseno e Tangente 

         seno = cateto oposto dividido pela hipotenusa      cosseno = cateto adjacente dividido pela hipotenusa      tangente = cateto oposto dividido pelo cateto adjacente  SENO‐ Text1.Text = Str(Sin(ang * Val(Text1.Text)))  COSSENO‐ Text1.Text = Str((Atn(Val(Text1.Text))) / ang)  TANGENT‐ Text1.Text = Str(Sin(ang * Val(Text1.Text)) / Cos(ang * Val(Text1.Text)))      Em que str designa uma função numérica do visual Basic “ang”  o tipo de ângulo a calcular, o  valor é predefinido e pode ser seleccionado pelo utilizador.     No Visual Basic temos :  Private Sub Option2_Click(Index As Integer)          Select Case Index        Case 0        ang = 3.141592654 / 180        Case 1        ang = 1        Case 2        ang = 3.141592654 / 200        End Select  End Sub  No código acima vemos que é criado 3 parâmetros “no caso de” então se tiver a trabalhar normalmente em graus o valor ângulo que será usado para converter um valor em graus é resultado de  3.141592654 conhecido por  e dividido por 180 ou seja 

(14)

Neste caso o programador poderia deixar apenas o valor, uma vez que são valores  fixos, o que não acontece porque iria dificultar o trabalho a programadores futuros que  queriam analisar o código.       

 

(15)

Funções extra 

      Estas teclas foram criadas a pensar em possíveis problemas do utilizador, assim  tentamos facilitar com algumas funções simples.     ‐ Introduz automaticamente o valor de .     ‐ Guarda o valor do display, numa Label ao lado.     ‐ Impressão rápida da janela actual.     

 

(16)

Funções e Gráficos 

    Uma função é determinada pelo seu gráfico e pela especificação do conjunto de  chegada.     Embora o conceito de gráfico esteja relacionado ao conceito de desenho, pode‐se falar  do gráfico de funções em espaços de dimensão infinita.    Através de uma PictureBox foi‐nos possível criar gráficos do tipo y=ax + b (rectas) e  y=ax*x+bx+c (parábolas).    Para aceder às funções e gráficos basta aceder no menu a gráfico e clicar criar  aparecendo o seguinte menu, em que se pode recriar na forma gráfica funções do primeiro  grau e do segundo grau e comparando estas sobre as mesmas, uma vez que ao criar nova  função a anterior só será apagada se clicar no botão Limpar.    No visual Basic temos:    Private Sub Command53_Click()  Graph.ScaleMode = 3  Dim a, b, RandomColor  a = Text2.Text  b = Text3.Text  X = 0  Y = 50  RandomColor = QBColor(Rnd * 14) + 1 

(17)

  X = (i ‐ 5000) / 50  Y1 = a * X + b  O que o código acima realiza é criada duas textbox do tipo text, em que são definidos  valores de referencia. De seguida é criada aleatoriamente uma cor para o desenho do gráfico  entrando num ciclo que realizará 10000 ciclos para os valores introduzidos nas textbox para o  tipo de função em questão. Assim podemos dizer que neste caso a recta é definida por 10000  pontos, embora na realidade se saiba que as rectas em termos de pontos são ilimitadas, em  termos  de  programação  criar  um  recta  nesses  termos  o  programa  iria  entrar  em  processamento infinito bloqueando como acontece diariamente ao utilizador comum. 

 

Para  as  funções  do  segundo  grau  acontece  exactamente  o mesmo do acima descrito  com  a  diferença  que  muda  a  expressão  em  questão  e  como  a  expressão  contêm  mais  uma  variável é adicionada uma textbox.

Private Sub Command55_Click()  Graph.ScaleMode = 3  Dim a, b, RandomColor  a = Text5.Text  b = Text4.Text  c = Text6.Text    RandomColor = QBColor(Rnd * 14) + 1  For i = 1 To 10000  X = (i ‐ 5000) / 50  Y1 = a * X * X + b * X + c    X1 = X     

(18)

Imprimir 

  Esta opção do menu o que faz é um printscreen dos formulários do programa, ou seja  em linguagem de utilizador comum é uma fotografia da janela do programa e passa‐a  directamente para a impressora que estiver predefinida.      Para tal acontecer é só associar o botão à função predefinida no visual Basic :  Private Sub agora_Click()  Me.PrintForm  End Sub     

(19)

 

Menu Ficheiro 

Copiar / Colar / Cortar / Seleccionar Tudo / Sair 

      Copiar colar e cortar são das 3 operações mais usadas pelos utilizadores para facilitar a  transferência de valores em programas, como tal estas não poderiam faltar, sendo estas de um  modo geral muito idênticas e simples.    Tendo assim no visual Basic :  Text1.SelText = Clipboard.GetText()  Ou seja coloca o valor que está na caixa de transferência do Windows dentro da  textbox Text1, sendo assim foi transferido o valor para o nosso programa existindo assim um  interface de passagem de valores com o Windows. Para as opções Cortar / Colar / Seleccionar  Tudo acontece exactamente o mesmo trabalhando claro com outras opções da função  Clipboard.   

Sair 

Saí do programa. Fecha assim a form, em que é executada uma das funções mais simples do  visual Basic.  Private Sub sair_Click()          Unload Me         End Sub  O parâmetro  Unload Me ao ser executado fecha a form em questão, ou seja fecha a  form principal pois é onde está definida a função.   

Referências

Documentos relacionados

de lôbo-guará (Chrysocyon brachyurus), a partir do cérebro e da glândula submaxilar em face das ino- culações em camundongos, cobaios e coelho e, também, pela presença

Você está sendo convidado para participar do projeto de pesquisa intitulada “NÍVEL DE ATIVIDADE FÍSICA, OBESIDADE ABDOMINAL E FATORES ASSOCIADOS EM POLICIAIS MILITARES DE

Foi apresentada, pelo Ademar, a documentação encaminhada pelo APL ao INMETRO, o qual argumentar sobre a PORTARIA Nº 398, DE 31 DE JULHO DE 2012 E SEU REGULAMENTO TÉCNICO

Neste trabalho avaliamos as respostas de duas espécies de aranhas errantes do gênero Ctenus às pistas químicas de presas e predadores e ao tipo de solo (arenoso ou

O enfermeiro, como integrante da equipe multidisciplinar em saúde, possui respaldo ético legal e técnico cientifico para atuar junto ao paciente portador de feridas, da avaliação

Verificar a efetividade da técnica do clareamento dentário caseiro com peróxido de carbamida a 10% através da avaliação da alteração da cor determinada pela comparação com

Focamos nosso estudo no primeiro termo do ensino médio porque suas turmas recebem tanto os alunos egressos do nono ano do ensino fundamental regular, quanto alunos

No primeiro livro, o público infantojuvenil é rapidamente cativado pela história de um jovem brux- inho que teve seus pais terrivelmente executados pelo personagem antagonista,