domingo, 4 de maio de 2014

Triângulo de Pascal - O Código

Na minha última postagem sobre o triângulo de Pascal, mencionei alguns detalhes sobre ele. Muitos devem estar até o momento um tanto curioso quando ao seu código. 

Abaixo segue um exemplo utilizando a linguagem Pascal.

Program Pzim ;

type
  matriz = array[1..100,1..100] of integer;
var
  a : matriz;
  i, j, k, num : integer;
 Begin                                
   writeln('Entre com um número: ');
   read(num);
   for i:=1 to num do
     for j:=1 to i do
          if (j = 1) or (i = J) then
 a[i,j]:=1
else
      a[i,j]:=a[i-1,j-1] + a[i-1,j];

     clrscr;
     writeln('TRIANGULO DE PASCAL :');
     writeln('------------------------------ ');
     for i:=1 to num do
       begin
         for  j:=1 to i do
     write(a[i,j]:6);
         writeln;
       end;
     writeln;
     readkey;                                                            

 End.


Espero que tenham gostado e até a próxima

quinta-feira, 17 de abril de 2014

Triângulo de Pascal



Blaise Pascal (Clermont-Ferrand, Puy-de-Dôme, 19 de Junho de 1623 - Paris, 19 de Agosto de 1662)

Filósofo e matemático Blaise Pascal, foi um prodígio matemático.

Em torno de 1650 escreveu o "Traité du Triangle Arithmétique" publicado em 1665 e, juntamente com Pierre Fermat, estabeleceu os fundamentos da teoria da probabilidade.

Embora não tenha sido o primeiro a trabalhar com o triângulo, este tornou-se conhecido como "triângulo de Pascal" devido ao desenvolvimento e aplicações que Pascal fez de muitas de suas propriedades.

O triângulo aritmético é conhecido há muito tempo, mas recebeu o nome de 'Triângulo de Pascal' devido aos estudos que o filósofo e matemático Blaise Pascal (1623-1662) fez deste.

O triângulo é infinito e simétrico, e seus lados esquerdo e direito sempre devem possuir o número  

O triângulo ao lado, dividido em linhas e colunas, é composto de números binomiais.


Cada linha possui um número a mais que a linha anterior. Além disso, o triângulo também possui várias propriedades interessantes que permitem construir com facilidade a linha seguinte.



Este triângulo forma-se de forma recursiva, ou seja, as diagonais de fora são formadas por 1's, os restantes números são a soma dos números acima. Como exemplo podemos dizer que: 10=4+6 (10-linha 5; 4 e 6-linha 4).

NOTA: Considera-se que o topo do triângulo corresponde à linha 0, coluna 0.


Propriedades


Propriedade 1


A primeira propriedade do triângulo que iremos apresentar está relacionada à soma dos elementos de cada uma das linhas. Para ilustrar isto, vamos associar a cada linha do triângulo um número, começando do 0



A propriedade diz que a soma de todos os números de uma linha é igual a 2  elevado àquele número que associamos à linha. E o que significa isto?

Quando dizemos que o número 2 está elevado a 3 por exemplo, queremos dizer que o 2 foi multiplicado por si mesmo 3 vezes:




Você pode observar na figura o resultado das somas relacionadas à cada linha do triângulo:



Vamos conferir algumas delas:

 


Propriedade 2


A próxima propriedade do triângulo que veremos é a relação de Stifel.

Ela diz que a soma de dois números de uma mesma linha do triângulo é o número que está na linha logo abaixo, bem abaixo dos dois números somados. A figura ilustra melhor a propriedade:



Vamos verificar as somas apontadas na figura:



Propriedade 3


Nossa próxima propriedade diz respeito à soma dos números dispostos em diagonal, começando sempre do 1 a partir da direita. Observe a figura para visualizar melhor:



A soma dos números da coluna estará sempre na coluna seguinte, na linha logo abaixo daquela em que está o último número que foi somado, como mostra a figura.

Vamos conferir algumas somas:




Da mesma forma que foi feito com as propriedades anteriores, você pode continuar verificando esta! Mas tome cuidado, as somas das colunas devem começar sempre a partir do primeiro número 1 da coluna.


Propriedade 4


Nossa última propriedade é bem parecida com a anterior, só que, em vez de as somas começarem do lado direito do triângulo, desta vez devem começar do lado esquerdo:



Da mesma forma, você vai encontrar a soma desta diagonal na linha abaixo daquela em que está o último número somado. Também aqui você deve ter sempre o cuidado de começar a soma do primeiro número 1 da coluna.

Vamos verificar as somas da figura:




Soma dos Números de uma Linha

Qualquer que seja a linha de um Triângulo de Pascal, se somarmos os números nela contidos, sempre iremos obter como total uma potência de 2, cujo expoente é o próprio número da linha.

Vejamos alguns exemplos:


Números de Fibonacci nas Diagonais do Triângulo de Pascal

 Os números de Fibonacci formam uma sequência numérica infinita, onde a partir do terceiro número, os números são obtidos através da soma dos dois números anteriores.


Os dois primeiros números da sequência de Fibonacci são iguais a 1 e todos os demais números são obtidos a partir da soma dos dois números anteriores, assim temos:


1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, ...


Observe no triângulo ao lado que ao somarmos os números nas diagonais conforme mostrado, as somas obtidas vão formando a sequência de sequência de Fibonacci.


Mas, todos devem estar curioso, e o código em Pascal. Aguarde, breve irei postar.



Bibliografia




http://www.brasilescola.com/matematica/triangulo-pascal.htm

quarta-feira, 12 de março de 2014

Como pegar o maior valor de um campo no SQL SERVER


Veja como é fácil obter o maior valor de um campo inserido em uma tabela no SQL Server, utilizaremos função MAX.

SELECT MAX(campo)
FROM NOME_TABELA;

quarta-feira, 26 de fevereiro de 2014

WebForm - Registros Duplicados ao dar Duplo Click em um Botão Salvar


Em algumas ocasiões pode acontecer que após o usuário preencher todo o formulário e clica no botão Salvar o registro é duplicado na tabela. Em alguns casos nem a propriedade Enabled resolve este problema.
Neste caso, o código abaixo pode ser de ajuda.
protected void Page_Load(object sender, EventArgs e)
{
        DesabilitarBotao(this.Page, Salvar);
}
protected void Salvar_Click(object sender, EventArgs e)
{
        for (int i = 0; i < 1000000; i++)
        {
             TextBox txtBox = new TextBox();
             txtBox.Text = "we " + i;
         }
}
public static void DesabilitarBotao(Page paginaAtual, Button botao)
{
        botao.Attributes.Add("onclick", paginaAtual.ClientScript.GetPostBackEventReference(botao, "") + ";this.value='Aguarde...';this.disabled = true;");
}
O comando for foi utilizado apenas para efeito de teste.

Máscara de Telefone com 9 dígitos em JavaScript


Este exemplo mostra como implementar uma função JavaScript para adicionar mais um dígito ao número de telefone.

 

<html>

<head>

    <title>Máscara de Telefone com 9 dígitos em JavaScript</title>

<script type="text/javascript">

/* Máscaras ER */

function mascaraTel(o, f) {

    v_obj = o;

    v_fun = f;

    setTimeout(execmascara, 1);

}

function execmascara() {

    v_obj.value = v_fun(v_obj.value)

}

function mtel(v) {

    v=v.replace(/\D/g,"");

    v=v.replace(/^(\d{2})(\d)/g,"($1) $2");

    v=v.replace(/(\d)(\d{4})$/,"$1-$2");

    return v;

}

function id(el) {

          return document.getElementById(el);

}

window.onload = function() {

          var $telefone = id('mascaraTel');

          $telefone.onkeyup = function() {

                    mascaraTel( this, mtel );

          }

          $telefone.onblur = function() {

                    var v = this.value;

                    if( v.indexOf('(11)') !== -1 && v.length === 14) {

                              this.value = v.replace(/\((\d{2})\) (\d{4})-(\d{4})/g,'($1) 9$2-$3');

                    }

          }

}

</script>

 

</head>

<body>

          <h1 style="color:#FF9933">Máscara de Telefone com 9 dígitos em JavaScript</h1>

    <label type="text" style="font-family:Verdana,Arial;" >Telefone</label>

    <input type="text" name="mascaraTel" id="mascaraTel" maxlength="15" />

 

</body>

</html>