Bom galera, eu atualizei o algoritmo da minha calculadora.
Na verdade não foi bem uma atualização, foi mais um 'incremento'.
Eu acrescentei a função [Equacao_SegundoGrau_Delta].
Vejam ele:
Valeu!!
Na verdade não foi bem uma atualização, foi mais um 'incremento'.
Eu acrescentei a função [Equacao_SegundoGrau_Delta].
Vejam ele:
Código:
{*************************************************************************} *} {* Programador: evoluti0n *} {* Algoritmo: Calc_Test *} {* Versão: 0.2 *} {* Função: "Calculadora com as [varios calculos], usada para estudo." *} {* Observação: "Pode e deve ser altedo." *} {***************************************************************************} Algoritmo Calc_Test; {=====================================================================================} {=====================================================================================} Soma_Simples( ) : REAL; Subtracao_Simples( ) : REAL; Multiplicacao_Simples( ) : REAL; Divisao_Simples( ) : REAL; {-------------------------------------------------------------------------------------} Equacao_SegundoGrau_Delta( ) : INTEIRO; {-------------------------------------------------------------------------------------} Continuar_Calc_Simples( ValorContinuar : REAL ) : REAL; {-------------------------------------------------------------------------------------} Fechar( ) : NEUTRO; {=====================================================================================} {=====================================================================================} Principal( NEUTRO ) VAR: eOperacao : INTEIRO; INICIO ESCREVA( "Calc_Test..." ); {----------------------------} {Parte 1} {----------------------------} ESCREVA( "O que você deseja fazer?" ); ESCREVA( "[1]Soma Simples." ); ESCREVA( "[2]Subtração Simples." ); ESCREVA( "[3]Multiplicação Simples." ); ESCREVA( "[4]Divisão Simples. " ); ESCREVA( "[5]Sair." ); LEIA( eOperacao ); CASO( eOperacao ) INICIO SEJA 1: Soma_Simples( ); SEJA 2: Subtracao_Simples( ); SEJA 3: Multiplicacao_Simples( ); SEJA 4: Divisao_Simples( ); SEJA 5: Fechar( ); SEJA_NENHUM: ESCREVA( "Erro: Operação incorreta!" ); Principal( ); FIM RETORNE( 0 ); FIM {=====================================================================================} Soma_Simples( ) : REAL VAR: ssValor1, ssValor2 : REAL; ssResultado : REAL; eContinuar : CHARACTER; INICIO {----------------------------} {Parte 2} {----------------------------} ESCREVA( "Opção: Soma Simples" ); ESCREVA( "Digite o numero: " ); LEIA( ssValor1 ); ESCREVA( "Digite o outro numero: " ); LEIA( ssValor2 ); ssResultado <-- ssValor1 + ssValor2; {----------------------------} {Parte 3} {----------------------------} ESCREVA( "O resultado é: ", ssResultado ); {----------------------------} {Parte 4} {----------------------------} ESCREVA( "Deseja continuar? [S/N]" ); LEIA( eContinuar ); CASO( eContinuar ) INICIO SEJA 'S': Continuar_Calc_Simples( ssResultado ); SEJA 's': Continuar_Calc_Simples( ssResultado ); SEJA 'N': Fechar( ); SEJA 'n': Fechar( ); SEJA_NENHUM: ESCREVA( "Erro: Opção incorreta!" ); Soma_Simples( ); FIM RETORNE( 0 ); FIM {=====================================================================================} Subtracao_Simples( ) : REAL VAR: sbsValor1, sbsValor2 : REAL; sbsResultado : REAL; eContinuar : CHARACTER; INICIO {----------------------------} {Parte 2} {----------------------------} ESCREVA( "Opção: Subtração Simples" ); ESCREVA( "Digite o numero: " ); LEIA( sbsValor1 ); ESCREVA( "Digite o outro numero: " ); LEIA( sbsValor2 ); sbsResultado <-- sbsValor1 - sbsValor2; {----------------------------} {Parte 3} {----------------------------} ESCREVA( "O resultado é: ", sbsResultado ); {----------------------------} {Parte 4} {----------------------------} ESCREVA( "Deseja continuar? [S/N]" ); LEIA( eContinuar ); CASO( eContinuar ) INICIO SEJA 'S': Continuar_Calc_Simples( sbsResultado ); SEJA 's': Continuar_Calc_Simples( sbsResultado ); SEJA 'N': Fechar( ); SEJA 'n': Fechar( ); SEJA_NENHUM: ESCREVA( "Erro: Opção incorreta!" ); Subtracao_Simples( ); FIM RETORNE( 0 ); FIM {=====================================================================================} Multiplicacao_Simples( ) : REAL VAR: msValor1, msValor2 : REAL; msResultado : REAL; eContinuar : CHARACTER; INICIO {----------------------------} {Parte 2} {----------------------------} ESCREVA( "Opção: Multiplicação Simples" ); ESCREVA( "Digite o numero: " ); LEIA( msValor1 ); ESCREVA( "Digite o outro numero: " ); LEIA( msValor2 ); msResultado <-- msValor1 * msValor2; {----------------------------} {Parte 3} {----------------------------} ESCREVA( "O resultado é: ", msResultado ); {----------------------------} {Parte 4} {----------------------------} ESCREVA( "Deseja continuar? [S/N]" ); LEIA( eContinuar ); CASO( eContinuar ) INICIO SEJA 'S': Continuar_Calc_Simples( msResultado ); SEJA 's': Continuar_Calc_Simples( msResultado ); SEJA 'N': Fechar( ); SEJA 'n': Fechar( ); SEJA_NENHUM: ESCREVA( "Erro: Opção incorreta!" ); Multiplicacao_Simples( ); FIM RETORNE( 0 ); FIM {=====================================================================================} Divisao_Simples( ) : REAL VAR: dsValor1, dsValor2 : REAL; dsResultado : REAL; INICIO {----------------------------} {Parte 2} {----------------------------} ESCREVA( "Opção: Divisão Simples" ); ESCREVA( "Digite o numero: " ); LEIA( dsValor1 ); ESCREVA( "Digite o outro numero: " ); LEIA( dsValor2 ); dsResultado <-- dsValor1 / dsValor2; {----------------------------} {Parte 3} {----------------------------} ESCREVA( "O resultado é: ", dsResultado ); {----------------------------} {Parte 4} {----------------------------} ESCREVA( "Deseja continuar? [S/N]" ); LEIA( eContinuar ); CASO( eContinuar ) INICIO SEJA 'S': Continuar_Calc_Simples( dsResultado ); SEJA 's': Continuar_Calc_Simples( dsResultado ); SEJA 'N': Fechar( ); SEJA 'n': Fechar( ); SEJA_NENHUM: ESCREVA( "Erro: Opção incorreta!" ); Divisao_Simples( ); FIM RETORNE( 0 ); FIM {=====================================================================================} Continuar_Calc_Simples( ValorContinuar : REAL ) : REAL; VAR: NovoValor1 : REAL; ultResultado : REAL; eOperacao : INTEIRO; eContinuar : CHARACTER; INICIO {----------------------------} {Parte 5} {----------------------------} ESCREVA( "Continuar..." ); ESCREVA( "Digite o outro numero: " ); LEIA( NovoValor1 ); ESCREVA( "O que você deseja fazer?" ); ESCREVA( "[1]Continuar, Soma Simples." ); ESCREVA( "[2]Continuar, Subtração Simples." ); ESCREVA( "[3]Continuar, Multiplicação Simples." ); ESCREVA( "[4]Continuar, Divisão Simples. " ); ESCREVA( "[5]Sair." ); LEIA( eOperacao ); CASO( eOperacao ) INICIO SEJA 1: {----------------------------} {Parte 6} {----------------------------} UltResultado <-- ValorContinuar + NovoValor1; ESCREVA( "O resultado é: ", UltResultado ); {----------------------------} {Parte 7} {----------------------------} ESCREVA( "Deseja continuar? [S/N]" ); LEIA( eContinuar ); CASO( eContinuar ) INICIO SEJA 'S': Continuar_Calc_Simples( UltResultado ); SEJA 's': Continuar_Calc_Simples( UltResultado ); SEJA 'N': Fechar( ); SEJA 'n': Fechar( ); SEJA_NENHUM: ESCREVA( "Erro: Opção incorreta!" ); Continuar_Calc_Simples( UltResultado ); FIM SEJA 2: {----------------------------} {Parte 6} {----------------------------} UltResultado <-- ValorContinuar - NovoValor1; ESCREVA( "O resultado é: ", UltResultado ); {----------------------------} {Parte 7} {----------------------------} ESCREVA( "Deseja continuar? [S/N]" ); LEIA( eContinuar ); CASO( eContinuar ) INICIO SEJA 'S': Continuar_Calc_Simples( UltResultado ); SEJA 's': Continuar_Calc_Simples( UltResultado ); SEJA 'N': Fechar( ); SEJA 'n': Fechar( ); SEJA_NENHUM: ESCREVA( "Erro: Opção incorreta!" ); Continuar_Calc_Simples( UltResultado ); FIM SEJA 3: {----------------------------} {Parte 6} {----------------------------} UltResultado <-- ValorContinuar * NovoValor1; ESCREVA( "O resultado é: ", UltResultado ); {----------------------------} {Parte 7} {----------------------------} ESCREVA( "Deseja continuar? [S/N]" ); LEIA( eContinuar ); CASO( eContinuar ) INICIO SEJA 'S': Continuar_Calc_Simples( UltResultado ); SEJA 's': Continuar_Calc_Simples( UltResultado ); SEJA 'N': Fechar( ); SEJA 'n': Fechar( ); SEJA_NENHUM: ESCREVA( "Erro: Opção incorreta!" ); Continuar_Calc_Simples( UltResultado ); FIM SEJA 4: {----------------------------} {Parte 6} {----------------------------} UltResultado <-- ValorContinuar / NovoValor1; ESCREVA( "O resultado é: ", UltResultado ); {----------------------------} {Parte 7} {----------------------------} ESCREVA( "Deseja continuar? [S/N]" ); LEIA( eContinuar ); CASO( eContinuar ) INICIO SEJA 'S': Continuar_Calc_Simples( UltResultado ); SEJA 's': Continuar_Calc_Simples( UltResultado ); SEJA 'N': Fechar( ); SEJA 'n': Fechar( ); SEJA_NENHUM: ESCREVA( "Erro: Opção incorreta!" ); Continuar_Calc_Simples( UltResultado ); FIM SEJA 5: Fechar( ); SEJA_NENHUM: ESCREVA( "Erro: Operação incorreta!" ); Continuar_Calc_Simples( UltResultado ); FIM RETORNE( 0 ); FIM {=====================================================================================} Equacao_SegundoGrau_Delta( ) : INTEIRO VAR: a, b, c : INTEIRO; Delta : INTEIRO; x1, x2 : INTEIRO; INCIO ESCREVA( "Opção: Equação de SegundoGrau, por Delta" ); ESCREVA( "Digite as coeficientes: a, b, c: " ); LEIA( a, b, c ); Delta <-- ( b POT 2 ) - 4 * a * c; {POT = potencia} Delta <-- ( Delta RAIZ 2 ); {RAIZ = neste caso, "raiz quadrada"} SE( NÃO( Delta RAIZ 2 ) ) {Se Delta não tiver raiz} INICIO ESCREVA( "Delta não tem uma raiz quadrada!" ); Equaçao_SegundoGrau_Delta( ); FIM x1 <-- ( - b + Delta ) / 2 * a ) ); x2 <-- ( - b - Delta ) / 2 * a ) ); ESCREVA( "O valor de x1 é: ", x1 ); ESCREVA( "O valor de x2 é: ", x2 ); RETORNE( 0 ); FIM {=====================================================================================} Fechar( ) : NEUTRO INICIO RETORNE( 0 ); FIM {=====================================================================================}