Mostrando postagens com marcador algoritmo. Mostrar todas as postagens
Mostrando postagens com marcador algoritmo. Mostrar todas as postagens

12 de abril de 2008

Máscaras Dinâmicas para textBox com qualquer tipo numérico ( CEP , CPF, CNPJ, MOEDA , DATA), desenvolvido em C#.net (C Sharp)

12495-assbartjava2a Visando facilitar a vida de quem trabalha com desenvolvimento criei este artigo descrevendo passo-a-passo e elucidando através de código fonte uma maneira dinâmica e eficaz de aplicar máscaras a conteúdos numéricos de qualquer tipo em um texBox, utilizando C# (C Sharp).

Máscara, neste caso em questão, é um recurso de interface utilizado para assemelhar determinada informação(neste exemplo, numérica), visível no sistema, a maneira como estamos acostumados a manipulá-la na vida real.

Por exemplo, ao ver o número "00000000" inicialmente não podemos atribuir nenhuma informação característica adicional a ele, fora o fato de se constituir de uma cadeia numérica. Aplicando uma máscara, através da interface visual do sistema teremos "00000-000", o que pode nos levar a deduzir que este número se trata de um CEP. Este recurso é muito importante na prevenção de erros por parte do usuário assegurando ao mesmo a não necessidade de digitação de determinados dígitos que possam gerar equívocos durante a inserção dos dados no sistema.

Visando dinamizar este processo de "mascarar" um dado numérico em tempo real criei uma função principal que é capaz de adicionar uma mascara de qualquer tipo (CEP, CPF, CNPJ), o que pode facilitar a vida de alguns desenvolvedores, que como eu, inicialmente encontraram poucas referências a respeito.

Mas por que não usar um MaskedTextBox? Eu considero o MakedTextBox um tipo de textBox meio "engessado", com algumas limitações, e para o meu caso em questão achei mais eficiente a criação deste código fonte para manipulação do textBox.

Seguem abaixo algumas características do resultado expresso pelo código que será descrito:

- a inserção dos números ocorre da direita para a esquerda. Sendo assim num campo do tipo moeda (0,00) a inserção de seguidos "2" transcorreria da seguinte maneira:

0,02 -> 0,22 -> 2,22 -> 22,22

- a tecla BackSpace também se sucede da direita para a esquerda (sem perda visual da mascara) da seguinte maneira:

2,22 -> 0,22 -> 0,02

Acompanhem agora o detalhamento do código em questão:

Como exemplo, aplicarei máscara a dois tipos de dados: O CEF ("12345-678"), e o CNPJ("12345678/1234-12"). Note que no caso do CNPJ apresentam-se dois caracteres especiais. Farei isso para mostrar que o código abaixo pode aplicar a mascara com quantos caracteres forem necessários, bastando para isso definir a quantidade na chamada da função.

Para saber mais a respeito basta baixar o arquivo abaixo, em formato .doc, onde descrevo detalhamente o desenvolvimento deste código:

png5

Um bom desenvolvimento a todos...

26 de março de 2008

Fração Geratriz de uma Dízima Periódica

Vou postar hoje o que talvez seja minha ultima dica de matemática para pessoal que está fazendo concurso, vestibular ou até mesmo queira saber como funcionam estes dois métodos de resolução.

Tratam-se da transformação de uma Dízima Periódica em fração.

Vamos encontrar a FRAÇÃO GERATRIZ da dízima 1,3323232....

Todo número que estiver antes da vírgula é a parte inteira da dizima, portanto não corresponde à fração em si:

1 + 0,3323232...

Sendo assim passamos ao que nos resta. Reparem que o periodo (o número que se repete) corresponde a 32.

Sendo assim, façamos o seguinte: Pegaremos a parte não periódica mais a parte periódica e subtrairemos este valor pela parte periódica.

332 - 3

E em seguida dividiremos este valor por tantos 9(noves) quanto forem a quantidade de algarismos do período, mais tantos zeros quanto forem a quantidade de algarismos da parte não periódica.

332 - 3

990

32 -> dois algarismos --> 99

3 -> um algarismo -->0

Sendo assim a fração geratriz de 1,3323232... é:

Essa regra vale para qualquer dizima. Caso não haja número inteiro o mesmo será dispensado. E caso não haja parte não periódica, dispensasse a subtração e o zero no denominador.

Bons estudos!

12 de março de 2008

Regra de Chió - Determinante de uma matriz de ordem maior que 4.

 numbersEm minha viagem pelo universo da MATEMÁTICA posto aqui no blog mais um material que pode ser util. Na verdade muitas vezes durante nossa juventude não damos a devida atenção a determinados conteúdos que acabam por se tornar úteis num futuro, dependendo da área de atuação escolhida. Outras vezes o ensino deficiente das escolas publicas brasileiras acaba por privar de certos ensinamentos que servem de base para cálculos ainda mais complexos executados no ensino superior, por exemplo.

Hoje lhes mostrarei como obter a DETERMINATE de uma matriz com ordem igual ou maior que 4 através de uma regra denominada: Regra de Chió.

Vamos então ao que interessa...

 

Regra de Chió

Tomamos como base a seguinte matriz:

ma1

1 - Escolhe-se o pivô (que precisa ser um número 1) e a partir dele se exclui sua linha e coluna;

ma2

Obs: Caso não haja nenhum elemento 1 (um) na matriz divida uma fila por algum elemento de modo que apareça o elemento 1 e não se esqueça de multiplicar esse elemento ao resultado final do determinante.

2 - Subtraia de cada elemento da nova matriz o produto dos elementos que pertenciam a sua linha e coluna e que foram retirados. E multiplique o determinante da nova matriz por:

(-1)i+j, sendo i e j a posição do elemento pivô.

ma3

3 - O determinante a ser calculado possui o mesmo valor da matriz inicial e possui uma ordem a menos.

ma4 

4 - A partir deste ponto temos duas opções:

4.1 - Podemos obter a determinante da raiz 3x3 através do teorema de Sarrus. ("Esse sim creio que a maioria conheça.")

8002

4.2 - Ou continuamos o calculo pelo teorema de Chió para chegarmos a ordem 2x2.

5 - Seguiremos no teorema de Chió e repetiremos então os procedimentos 1,2 e 3.

ma5

6 - Agora teremos uma matriz de ordem 2x2, como mostrado abaixo. Para resolver a determinante da mesma obedeceremos a seguinte regra: Det = a1x1 * a2x2 - (a1x2 * a2x1).

ma6

Det = -1*1*(-19*-43-(-49*-13) = -180

Como queriamos demonstrar, este é nosso resultado.

Boa noite!

 

Desempregado não! Concurseiro...

11 de março de 2008

Radiciação - Square root

Durante meus estudos atuais me deparei com uma questão. Percebi que durante a minha formação, nenhum de meus professores de matemática, sejam de ensino fundamental ou de ensino médio, me ensinou a fazer raiz quadrada de números que resultassem num numero fracionado. Ou seja, eu não sabia fazer a raiz quadrada de 5 por exemplo.

E não adianta falarem: “O número 5 não tem raiz”. Pois se a calculadora é capaz de dar um resultado a esta questão significa que há, sem duvida, uma lógica por traz deste cálculo. Mas qual seria?

Encontrei um método, intitulado como método chinês por alguns autores, no qual é possível resolver, por exemplo, a raiz quadrada de 2025(raiz = 45) sem auxilio de calculadora. E com algumas adaptações que fiz, diante do encontrado, é possível se obter quantas casas decimais se queira no resultado.

Ao final disto temos um algoritmo que pode ser facilmente implementado. Siga os passos abaixo e veja com é fácil efetuar a raiz de 1031.

1 – Primeiramente definimos quantas casas decimais queremos depois da vírgula. Para o nosso exemplo utilizarei 3 casas decimais. Neste caso acrescentamos ao numero 1031 pares de zeros (00) tantas vezes quanto forem as casas decimais desejadas, ou seja, o numero ficara assim: 1031000000.

2 – Separamos este numero em pares de algarismos começando da direita e indo para a esquerda: Ex.: 10.31.00.00.00

3 – Separamos o primeiro par e fazemos a diferença deste em relação ao primeiro numero impar: 10 -1 = 9.

Em seguida, subtraímos o resultado pelo próximo numero impar: 9 -3: 6.

E assim sucessivamente até que o resultado seja o menor número positivo.

10

31

00

00

00

-1

9

-3

6

-5

1

4 – A quantidade de números impares será o primeiro numero da raiz.

10

31

00

00

00

3 numeros

1

-1

9

2

-3

6

3

-5

1

5 – Acrescentamos ao resto, o próximo par de algarismos.

10

31

00

00

00

3 numeros

1

-1

9

2

-3

6

3

-5

1

31

6 – Pegaremos o numero da raiz (3), já encontra até o momento, multiplicá-lo-emos por 20 e adicionaremos 1: X*20+1 => 3*20+1 => 61.

10

31

00

00

00

3

1

-1

9

2

-3

6

3

-5

1

31

61

=3*20+1

7 – Este número (61) será o primeiro impar a ser subtraído do resto 131. Faça isso e sucessivamente as subtrações dos próximos números ímpares.

10

31

00

00

00

3

-1

9

-3

6

-5

1

31

61

=3*20+1

-61

70

-63

7

8 – A quantidade de números ímpares será o próximo numero da raiz.

10

31

00

00

00

32

-1

9

-3

6

-5

1

31

61

=3*20+1

1

-61

70

2

-63

7

9 – Repita os procedimento 5 e 6.

X*20+1 => 32*20+1 => 641.

E em seguida o procedimento 7 com o número 641.

10

31

00

00

00

32

-1

9

-3

6

-5

3

1

31

61

=3*20+1

-61

70

-63

32

7

00

641

=32*20+1

1

-6

41

59

10 – Novamente efetuamos os passos 8 e 9.

32 + 1 número impar = 321.

X*20+1 => 321*20+1 => 6421

Neste posto chegamos a uma particularidade: o numero 59 acrescido do próximo par 00 = 5900 é menor que o numero 6421, portanto não pode ser subtraído.

Faz-se o seguinte: acrescenta-se “0” à raiz: 321+acréscimo de 0: 3210. E descemos o próximo par de números, ficando assim: 590000.

10

31

00

00

00

3210

-1

9

-3

6

-5

3

1

31

61

=3*20+1

-61

70

-63

32

7

00

641

=32*20+1

-6

41

321

59

00

6421

=321*20+1

6421>5900

3210

59

00

00

64201

=3210*20+1

1

-6

42

01

52

57

99

2

-6

42

03

46

15

96

3

-6

42

05

39

73

91

4

-6

42

07

33

31

84

5

-6

42

09

26

89

75

6

-6

42

11

20

47

64

7

-6

42

13

14

05

51

8

-6

42

15

7

63

36

9

-6

42

17

1

21

19

11 – Nove subtrações fazem com que acrescentemos o numero nome a raiz 3210. Sendo assim, 32109 é nossa raiz final. Porém ao começo deste processo acrescentamos três pares de “00” porque queríamos achar 3 casas decimais após a virgula. Isso significa que agora teremos que dividir este resultado (32109) por (10 elevado ao numero de pares que acrescentamos). 32109/1000 = 32,109.

Resposta: A raiz quadrada de 1031 é igual a 32,109.

Uma boa tarde a todos!