Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Algoritmo de uma calculadora. [Atualizado]

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Algoritmo de uma calculadora. [Atualizado]

    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:

    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
    
    {=====================================================================================}
    Valeu!!
X
Working...
X