Um Número Elevado a Outro em Pascal

Linguagem Pascal.jpg

Nem todas as linguagens de programação direto como elevar um número a outro.

Quase todas as dicas que tenho postado em Pascal elas tem mais de matemática do que propriamente programação, mas isso não é uma preferência minhas, mas de vários professores que por sua vez são formados em matemática.

Lembrando um pouco de matemática:

2 elevado ao cubo = 2.2.2 = 8

Nessa dicas nós temos duas soluções:

1. Processo de multiplicação sucessiva

 Program Elevador1;  
 Uses Crt;  
 var  
  i, j, k, r : Integer;  
 Begin  
  ClrScr;  
  Write ('Entre com um numero: ');  
  ReadLn (j);  
  Write ('Entre com a exponenciacao: ');  
  ReadLn (k);  
  r := 1;  
  for i := 1 to k do  
   r := r * j;  
  WriteLn (' O numero ',j:4,' elevado a ',k:4,' = ',r:8);  
  ReadLn;  
 End.  

Nessa primeira solução nós multiplicamos o número J por K vezes.

Você poderá fazer o número J negativo, mas não o número K.

2. Processo de exponenciação e logaritmo

Da matemática nós precisamos fazer X elevado a Y:

XY

Aplicando o logaritmo neperiano:

ln (XY)

Pela regra do logaritmo:

Y.ln (X)

Como aplicamos logaritmo neperiano para voltar precisamos da exponêncial:

exp (Y.ln(X))

Transformando em Pascal:

exp (Y*ln(X))

 Program Elevado2;  
 Uses Crt;  
 var  
  i, j : Integer;  
  r : Real;  
 Begin  
  ClrScr;  
  Write ('Entre com um numero: ');  
  ReadLn (i);  
  Write ('Entre com a exponenciacao: ');  
  ReadLn (j);  
  // Verifica se I ' positivo  
  if i > 0 then  
   r := exp(j*ln(i))  
  else  
  begin  
   i := i * (-1);  
   r := exp(j*ln(i));  
   // Verifica se J ' PAR  
   if (j mod 2)<>0 then r := r * (-1);  
  end;  
  WriteLn (' O numero ',i:4,' elevado a ',j:4,' = ',r:8:2);  
  ReadLn;  
 end.  

Ainda há outras restrições nesse segundo programa e vou deixar um desafio antes da solução definitiva, mas para efeito de programas para os vossos professores essa segunda solução pode resolver 80% de um valor elevado a outro.

2 comentários:

  1. Muito bom o artigo.
    Me ajudou bastante também
    Obrigado pelo post

    ResponderExcluir
  2. Excelente explicação. Bem clara. Obrigado pela ajuda!

    ResponderExcluir